From c11ba05cfb8d7ff7b5b050d07dde6866ba8944b3 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Fri, 23 Oct 2026 03:16:56 +0000 Subject: [PATCH 1/7] update locales from crowdin [ci skip] --- config/locales/crowdin/da.yml | 3514 +++++++++++++++--------------- config/locales/crowdin/js-da.yml | 16 +- 2 files changed, 1765 insertions(+), 1765 deletions(-) diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 9a78105a33b7..8cec496b6222 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -79,51 +79,51 @@ da: activerecord: attributes: ai/text_transform_action: - active: Active - injects_type_template: Insert work package type template - label: Label + active: Aktiv + injects_type_template: Indsæt skabelon for arbejdspakketypen + label: Betegnelse prompt: Prompt - types: Work package types - usage_scope: Scope + types: Arbejdspakketyper + usage_scope: Omfang ai/text_transform_run: - action: Action - cancel_requested: Cancel requested - error_message: Error message - finished_at: Finished at + action: Handling + cancel_requested: Annullering ønsket + error_message: Fejlmeddelelse + finished_at: Afsluttet input: Input status: Status - system_prompt: System prompt - user: User + system_prompt: Systemprompt + user: Bruger uuid: UUID ai/text_transform_run_event: - kind: Kind - payload: Payload - run: Run - seq: Sequence number + kind: Art + payload: Nyttedata + run: Kørsel + seq: Løbenummer announcements: - show_until: Display until + show_until: Vis indtil attachment: - attachment_content: Attachment content - attachment_file_name: Attachment file name - charset: Character set - content_type: Content-type + attachment_content: Den vedhæftede fils indhold + attachment_file_name: Den vedhæftede fils navn + charset: Tegnsæt + content_type: Indholdstype downloads: Hentninger file: Fil filename: Fil filesize: Størrelse attribute_help_text: attribute_name: Egenskab - caption: Caption - help_text: Help text + caption: Undertekst + help_text: Hjælpetekst auth_provider: additional_form_action_urls: Additional allowed login redirect URLs - scim_clients: SCIM clients + scim_clients: SCIM-klienter calculated_value_error: - customized_id: Customized ID - customized_type: Customized type - error_code: Error code + customized_id: Objektets id + customized_type: Objektets type + error_code: Fejlkode capability: - context: Context + context: Kontekst changeset: repository: Projektarkiv comment: @@ -131,220 +131,220 @@ da: custom_action: actions: Handlinger custom_field: - admin_only: Admin-only - allow_non_open_versions: Allow non-open versions - content_right_to_left: Right-to-Left content + admin_only: Kun for administratorer + allow_non_open_versions: Tillad versioner, der ikke er åbne + content_right_to_left: Indhold fra højre mod venstre default_value: Forhåndsvalgt værdi editable: Redigerbar field_format: Format - formula: Formula - has_comment: Add a comment text field + formula: Formel + has_comment: Tilføj et tekstfelt til en kommentar is_filter: Bruges som filter is_for_all: For alle projekter is_required: Påkrævet max_length: Største længde - max_value: Maximum value + max_value: Største værdi min_length: Mindste længde - min_value: Minimum value - multi_value: Allow multi-select + min_value: Mindste værdi + multi_value: Tillad flere valg possible_values: Mulige værdier regexp: Normalt udtryk searchable: Søgbar - semantic_key: Semantic meaning - visible_on_user_card: Show on user card + semantic_key: Semantisk betydning + visible_on_user_card: Vis på brugerkortet custom_value: value: Værdi design_color: - variable: Variable + variable: Variabel doorkeeper/application: - builtin: Builtin - client_credentials_user_id: Client Credentials User ID - confidential: Confidential + builtin: Indbygget + client_credentials_user_id: Bruger-id for Client Credentials + confidential: Fortrolig enabled: Aktiv - owner: Owner - redirect_uri: Redirect URI - scopes: Scopes - secret: Client secret - uid: Client ID + owner: Ejer + redirect_uri: Omdirigerings-URI + scopes: Omfang + secret: Klienthemmelighed + uid: Klient-id emoji_reaction: - reactable: Reacted on + reactable: Reageret på enterprise_token: - active_user_count_restriction: Active users - encoded_token: Enterprise support token + active_user_count_restriction: Aktive brugere + encoded_token: Enterprise-supporttoken plan: Plan - starts_at: Valid since - subscriber: Subscriber - subscription: Subscription + starts_at: Gyldig siden + subscriber: Abonnent + subscription: Abonnement enterprise_trial: company: Virksomhed favorite: - favorited: Item + favorited: Element grids/grid: column_count: Antal kolonner page: Side row_count: Antal rækker widgets: Widgets group: - group_users: Group users - identity_url: Identity URL - organizational_unit: Organizational unit - parent: Parent group + group_users: Gruppens brugere + identity_url: Identitets-URL + organizational_unit: Organisatorisk enhed + parent: Overordnet gruppe group_detail: - organizational_unit: Organizational unit - parent: Parent group + organizational_unit: Organisatorisk enhed + parent: Overordnet gruppe import/jira: name: Jira instance name personal_access_token: Personal access token url: Jira instance URL import/jira_open_project_reference: jira: Jira - jira_import: Jira Migrator + jira_import: Jira-migrering jira_import: - projects: Projects + projects: Projekter journal: - cause_type: Cause type + cause_type: Årsagstype notes: Kommentarer ldap_auth_source: account: Konto admin: Administrator attr_firstname: Fornavn attr_lastname: Efternavn - attr_login: Username attribute + attr_login: Attribut for brugernavn attr_mail: E-mail base_dn: DN base - filter_string: Filter string + filter_string: Filterstreng host: Vært - onthefly: Automatic user creation + onthefly: Automatisk oprettelse af brugere port: Port - tls_certificate_string: LDAP server SSL certificate + tls_certificate_string: LDAP-serverens SSL-certifikat mcp_configuration: description: Description enabled: Enabled title: Title member: - blocked: Blocked + blocked: Blokeret roles: Rollee notification: - read_ian: Read in-app - resource: Resource + read_ian: Læst i appen + resource: Ressource oauth_client: - client: Client ID + client: Klient-id ordered_persisted_query_entity: - entity: Entity - persisted_query: Persisted query - position: Position + entity: Entitet + persisted_query: Gemt forespørgsel + position: Placering persisted_query: - filters: Filters - name: Name - orders: Orders - selects: Selects - views: Views + filters: Filtre + name: Navn + orders: Sortering + selects: Valgte attributter + views: Visninger persisted_view: - name: Name - parent: Parent view - public: Public - query: Query + name: Navn + parent: Overordnet visning + public: Offentlig + query: Forespørgsel project: active_value: - false: archived - true: unarchived - attribute_groups: Attribute Groups + false: arkiveret + true: ikke arkiveret + attribute_groups: Attributgrupper description: Beskrivelse enabled_modules: Aktiverede moduler identifier: ID - latest_activity_at: Latest activity at + latest_activity_at: Seneste aktivitet parent: Delprojekt af - portfolio: Portfolio + portfolio: Portefølje program: Program - project_creation_wizard_assignee_custom_field: Assignee when submitted - project_creation_wizard_enabled: Project initiation request - project_creation_wizard_notification_text: Notification text - project_creation_wizard_send_confirmation_email: Confirmation email - project_creation_wizard_status_when_submitted: Status when submitted - project_creation_wizard_work_package_comment: Work package comment - project_creation_wizard_work_package_type: Work package type - project_types: Types + project_creation_wizard_assignee_custom_field: Tildelt ved indsendelse + project_creation_wizard_enabled: Anmodning om projektinitiering + project_creation_wizard_notification_text: Notifikationstekst + project_creation_wizard_send_confirmation_email: E-mail med bekræftelse + project_creation_wizard_status_when_submitted: Status ved indsendelse + project_creation_wizard_work_package_comment: Kommentar til arbejdspakken + project_creation_wizard_work_package_type: Arbejdspakketype + project_types: Typer public_value: - false: private + false: privat title: Synlighed - true: public + true: offentlig queries: Forespørgsler status_code: Status status_codes: - at_risk: I fare - discontinued: Discontinued + at_risk: I risiko + discontinued: Afsluttet i utide finished: Afsluttet - not_started: Not started - off_track: Af sporet - on_track: På sporet + not_started: Ikke startet + off_track: Afviger fra planen + on_track: Følger planen status_explanation: Status description - template: Template - templated: Template project + template: Skabelon + templated: Skabelonprojekt templated_value: - false: unmarked as template - true: marked as template - type_variant: Work package type variant + false: ikke længere markeret som skabelon + true: markeret som skabelon + type_variant: Variant af arbejdspakketype types: Typer versions: Versioner work_packages: Arbejdspakker - workspace_type: Workspace type + workspace_type: Type af arbejdsområde project/phase: - date_range: Datointerval + date_range: Periode definition: Definition duration: Varighed - finish_date: Finish date - start_date: Start dato - start_date_caption: Follows the previous phase. + finish_date: Slutdato + start_date: Startdato + start_date_caption: Følger den foregående fase. project/phase_definition: color: Farve - finish_gate: Finish phase gate - finish_gate_name: Finish phase gate name + finish_gate: Fase-gate ved afslutning + finish_gate_name: Navn på fase-gate ved afslutning name: Navn - start_gate: Start phase gate - start_gate_name: Start phase gate name + start_gate: Fase-gate ved start + start_gate_name: Navn på fase-gate ved start project_custom_field: - custom_field_section: Section + custom_field_section: Afsnit project_type: variant: Variant query: - child_work_packages: Child work packages + child_work_packages: Underordnede arbejdspakker column_names: Kolonner columns: Kolonner - display_representation: Display mode + display_representation: Visningstilstand filters: Filtre group_by: Gruppér resultater efter - hidden: Hidden - highlighted_attributes: Highlighted attributes - highlighting_mode: Highlight mode - include_subprojects: Include subprojects - manual_sorting: Manual sort order - ordered_work_packages: Work packages order - relations_of_type_column: "%{type} relations" - relations_to_type_column: Relations to %{type} + hidden: Skjult + highlighted_attributes: Fremhævede attributter + highlighting_mode: Fremhævningstilstand + include_subprojects: Medtag underprojekter + manual_sorting: Manuel sorteringsrækkefølge + ordered_work_packages: Arbejdspakkernes rækkefølge + relations_of_type_column: Relationer af typen %{type} + relations_to_type_column: Relationer til %{type} results: Resultater - show_hierarchies: Display mode - sort_by: Sort results by - sort_criteria: Sort criteria - starred: Favorite - sums: Sums - timeline_labels: Timeline labels - timeline_visible: Show Gantt chart - timeline_zoom_level: Gantt chart zoom level - timestamps: Baseline timestamps + show_hierarchies: Visningstilstand + sort_by: Sortér resultater efter + sort_criteria: Sorteringskriterier + starred: Favorit + sums: Summer + timeline_labels: Tekster i tidslinjen + timeline_visible: Vis Gantt-diagram + timeline_zoom_level: Zoomniveau for Gantt-diagram + timestamps: Tidsstempler for Baseline relation: from: Sammenhørende arbejdspakker - lag: Lag - relation_type: Relation type + lag: Forsinkelse + relation_type: Relationstype to: Sammenhørende arbejdspakker reminder: - remind_at: Remind at + remind_at: Påmindelsestidspunkt remind_at_date: Dato remind_at_time: Tidspunkt - remindable: Reminded object + remindable: Objekt for påmindelsen reminder_notification: - notification: Notification + notification: Notifikation remote_identity: - auth_source: Auth Source + auth_source: Godkendelseskilde integration: Integration user: Bruger repository: @@ -352,270 +352,270 @@ da: role: permissions: Tilladelser scim_client: - authentication_method: Authentication method - jwt_sub: Subject claim + authentication_method: Godkendelsesmetode + jwt_sub: Subject-claim status: - default_done_ratio: "% Complete" - excluded_from_totals: Exclude from calculation of totals in hierarchy + default_done_ratio: "% færdigt" + excluded_from_totals: Udelad fra beregning af totaler i hierarkiet is_closed: Lukket arbejdspakke - is_readonly: Work package read-only + is_readonly: Arbejdspakke skrivebeskyttet subproject_template_assignment: - workspace_type: Workspace type + workspace_type: Type af arbejdsområde time_entry: activity: Aktivivtet hours: Timer - ongoing: Ongoing + ongoing: Igangværende spent_on: Dato type: Type token/ical: calendar: Kalender - ical_token_query_assignment: Query assignment + ical_token_query_assignment: Tilknyttet visning token/named: - token_name: Token name + token_name: Tokennavn type: - allow_project_variants: Allow project-specific variants + allow_project_variants: Tillad projektspecifikke varianter color: Farve - is_in_roadmap: Displayed in roadmap by default - is_milestone: Is milestone - project_types: Projects - variants: Variants + is_in_roadmap: Vises som standard i køreplanen + is_milestone: Er milepæl + project_types: Projekter + variants: Varianter type/configuration_link: - source: Source type + source: Kildetype type_variant: - attribute_groups: Form - default_work_package_description: Default text for description + attribute_groups: Formular + default_work_package_description: Standardtekst til beskrivelsen defaults_source: Defaults source - enabled_in_new_projects: Active in new projects + enabled_in_new_projects: Aktiv i nye projekter form_configuration_source: Form source - patterns: Patterns + patterns: Mønstre pdf_export_source: PDF export source project_attributes_source: Project attributes source - project_types: Projects using this variant + project_types: Projekter, der bruger varianten variant: Variant - variant_name: Name + variant_name: Navn workflows_source: Workflows source user: admin: Administrator auth_source: Authentication source - consented_at: Consented at + consented_at: Samtykke givet current_password: Nuværende adgangskode - department: Department - failed_login_count: Failed login attempts - first_login: First login + department: Afdeling + failed_login_count: Mislykkede loginforsøg + first_login: Første login first_name: Fornavn force_password_change: Ændring af adgangskode virksom ved næste login - identity_url: Identity URL + identity_url: Identitets-URL language: Sprog last_login_on: Seneste login last_name: Efternavn - ldap_auth_source: LDAP connection + ldap_auth_source: LDAP-forbindelse new_password: Ny adgangskode password_confirmation: Bekræftelse user_custom_field: - custom_field_section: Section + custom_field_section: Afsnit user_non_working_time: - end_date: End date - start_date: Start date + end_date: Slutdato + start_date: Startdato user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. - button_update_alerts: Update alerts - button_update_look_and_feel: Update look and feel - button_update_user_information: Update profile - comments_sorting: Display work package activity sorted by - daily_reminders: Daily reminders - disable_keyboard_shortcuts: Disable keyboard shortcuts - dismissed_enterprise_banners: Hidden enterprise banners - force_dark_theme_contrast: Force high-contrast when in Dark mode - force_dark_theme_contrast_caption: Uses the high-contrast version of Dark mode when automatic color mode is selected. - force_light_theme_contrast: Force high-contrast when in Light mode - force_light_theme_contrast_caption: Uses the high-contrast version of Light mode when automatic color mode is selected. - header_alerts: Alerts - header_look_and_feel: Look and feel + button_update_alerts: Opdater advarsler + button_update_look_and_feel: Opdater udseende + button_update_user_information: Opdater profil + comments_sorting: Vis aktiviteten i arbejdspakker sorteret efter + daily_reminders: Daglige påmindelser + disable_keyboard_shortcuts: Deaktiver tastaturgenveje + dismissed_enterprise_banners: Skjulte Enterprise-bannere + force_dark_theme_contrast: Gennemtving høj kontrast i mørk tilstand + force_dark_theme_contrast_caption: Bruger versionen med høj kontrast af mørk tilstand, når automatisk farvetilstand er valgt. + force_light_theme_contrast: Gennemtving høj kontrast i lys tilstand + force_light_theme_contrast_caption: Bruger versionen med høj kontrast af lys tilstand, når automatisk farvetilstand er valgt. + header_alerts: Advarsler + header_look_and_feel: Udseende impaired: Tilgængelighedstilstand - increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. - increase_theme_contrast: Increase theme contrast + increase_contrast: Øg kontrasten + increase_contrast_caption: Slår høj kontrast til for den valgte farvetilstand. + increase_theme_contrast: Øg temaets kontrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. theme: Color mode time_zone: Tidszone - warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes - workdays: Working days + warn_on_leaving_unsaved: Advar mig, når jeg forlader en arbejdspakke med ændringer, der ikke er gemt + workdays: Arbejdsdage user_working_hours: - availability_factor: Availability factor - days: Working days - friday: Friday - friday_hours: Friday hours - monday: Monday - monday_hours: Monday hours - saturday: Saturday - saturday_hours: Saturday hours - shared_hours: Work hours - sunday: Sunday - sunday_hours: Sunday hours - thursday: Thursday - thursday_hours: Thursday hours - tuesday: Tuesday - tuesday_hours: Tuesday hours - valid_from: Valid from - wednesday: Wednesday - wednesday_hours: Wednesday hours + availability_factor: Tilgængelighedsfaktor + days: Arbejdsdage + friday: Fredag + friday_hours: Timer fredag + monday: Mandag + monday_hours: Timer mandag + saturday: Lørdag + saturday_hours: Timer lørdag + shared_hours: Arbejdstimer + sunday: Søndag + sunday_hours: Timer søndag + thursday: Torsdag + thursday_hours: Timer torsdag + tuesday: Tirsdag + tuesday_hours: Timer tirsdag + valid_from: Gyldig fra + wednesday: Onsdag + wednesday_hours: Timer onsdag users/invitation/form_model: id_or_email: Navn eller e-mailadresse - principal_type: Invitation type + principal_type: Invitationstype version: - effective_date: Finish date + effective_date: Slutdato sharing: Deler wiki_content: text: Tekst wiki_page: parent_title: Overordnet side redirect_existing_links: Omdiriger eksisterende links - text: Page content + text: Sidens indhold work_package: - ancestor: Descendants of - begin_deletion: Begin of the deletion - begin_insertion: Begin of the insertion - children: Subelements + ancestor: Underordnet af + begin_deletion: Start på sletning + begin_insertion: Start på indsættelse + children: Underelementer derived_done_ratio: Total % complete derived_remaining_hours: Total remaining work derived_remaining_time: Total remaining work - done_ratio: "% Complete" + done_ratio: "% færdigt" duration: Varighed - end_deletion: End of the deletion - end_insertion: End of the insertion - identifier: Identifier - ignore_non_working_days: Ignore non working days + end_deletion: Slut på sletning + end_insertion: Slut på indsættelse + identifier: Id + ignore_non_working_days: Ignorer arbejdsfrie dage include_non_working_days: - false: working days only - title: Working days - true: include non-working days - journal_internal: Internal Journal - notify: Notify - observed_in_versions: Observed in versions + false: kun arbejdsdage + title: Arbejdsdage + true: medtag arbejdsfrie dage + journal_internal: Intern journal + notify: Giv besked + observed_in_versions: Observeret i versioner parent: Overordnet parent_issue: Overordnet parent_work_package: Overordnet priority: Prioritet - progress: "% Complete" - readonly: Read only - relatable: Relatable to + progress: "% færdigt" + readonly: Skrivebeskyttet + relatable: Kan relateres til remaining_hours: Resterende arbejde remaining_time: Resterende arbejde - schedule_manually: Manual scheduling - sequence_number: Sequence number - shared_with_users: Shared with + schedule_manually: Manuel planlægning + sequence_number: Løbenummer + shared_with_users: Delt med spent_hours: Anvendt tid spent_time: Anvendt tid subproject: Underprojekt - target_version: Target version - target_versions: Target versions + target_version: Målversion + target_versions: Målversioner time_entries: Tidsregistrering type: Type version: Version watcher: Tilsynsførende work_package_semantic_alias: - identifier: Identifier - work_package: Work package + identifier: Id + work_package: Arbejdspakke work_package_version: - kind: Kind + kind: Art errors: messages: accepted: skal accepteres. after: skal være senere end %{date}. after_or_equal_to: skal være tidligst %{date}. - after_today: must be in the future. + after_today: skal ligge i fremtiden. before: skal være før %{date}. before_or_equal_to: skal være senest %{date}. blank: må ikke være tomt. - blank_nested: needs to have the property '%{property}' set. - blocked_domain: is not allowed. Please use an email address from a different domain. - cannot_delete_mapping: is required. Cannot be deleted. + blank_nested: skal have egenskaben '%{property}' angivet. + blocked_domain: er ikke tilladt. Brug en e-mailadresse fra et andet domæne. + cannot_delete_mapping: er påkrævet. Kan ikke slettes. cant_link_a_work_package_with_a_descendant: En arbejdspakke kan ikke knyttes til en af dens underopgaver. circular_dependency: Denne relation vil skabe en cirkulær afhængighed. - configured_via_env: The configuration of this object is managed through environment variables and can't be changed at runtime. + configured_via_env: Objektets konfiguration styres af miljøvariabler og kan ikke ændres, mens programmet kører. confirmation: matcher ikke %{attribute}. - could_not_be_copied: "%{dependency} could not be (fully) copied." - datetime_must_be_in_future: must be in the future. + could_not_be_copied: "%{dependency} kunne ikke kopieres (helt)." + datetime_must_be_in_future: skal ligge i fremtiden. does_not_exist: findes ikke. - email: is not a valid email address. + email: er ikke en gyldig e-mailadresse. empty: må ikke være tomt. - enterprise_plan_required: requires at least the %{plan_name}. + enterprise_plan_required: kræver mindst %{plan_name}. error_conflict: Oplysning er opdateret af mindst én anden bruger i mellemtiden. - error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition." - error_not_found: not found. - error_readonly: was attempted to be written but is not writable. + error_enterprise_only: "%{action} findes kun i OpenProject Enterprise-udgaven." + error_not_found: blev ikke fundet. + error_readonly: er skrivebeskyttet og kan ikke ændres. error_unauthorized: kan muligvis ikke tilgås. even: skal være lige. exclusion: er reserveret. - feature_disabled: is not available. - feature_disabled_for_project: is disabled for this project. + feature_disabled: er ikke tilgængelig. + feature_disabled_for_project: er deaktiveret for dette projekt. file_too_large: er for stor (maks. størrelse er %{count} Bytes). - filter_does_not_exist: filter does not exist. - format: does not match the expected format '%{expected}'. - format_nested: does not match the expected format '%{expected}' at path '%{path}'. + filter_does_not_exist: filteret findes ikke. + format: svarer ikke til det forventede format '%{expected}'. + format_nested: svarer ikke til det forventede format '%{expected}' ved stien '%{path}'. greater_than: skal være større end %{count}. greater_than_or_equal_to: skal være større end eller lig med %{count}. - greater_than_or_equal_to_start_date: must be greater than or equal to the start date. - greater_than_start_date: must be greater than the start date. - hexcode_invalid: is not a valid 6-digit hexadecimal color code. + greater_than_or_equal_to_start_date: skal være samme dag som eller senere end startdatoen. + greater_than_start_date: skal være senere end startdatoen. + hexcode_invalid: er ikke en gyldig sekscifret hexadecimal farvekode. inclusion: er ikke sat til en tilladt værdi. - inclusion_nested: is not set to one of the allowed values at path '%{path}'. + inclusion_nested: er ikke sat til en tilladt værdi ved stien '%{path}'. invalid: er ugyldig. - invalid_uri: must be a valid URI. - invalid_url: is not a valid URL. - invalid_url_scheme: 'is not a supported protocol (allowed: %{allowed_schemes}).' - is_for_all_cannot_modify: is for all projects and can therefore not be modified. - ldap_managed: This department is managed by LDAP synchronization and cannot be changed manually. + invalid_uri: skal være en gyldig URI. + invalid_url: er ikke en gyldig URL. + invalid_url_scheme: 'er ikke en understøttet protokol (tilladt: %{allowed_schemes}).' + is_for_all_cannot_modify: gælder for alle projekter og kan derfor ikke ændres. + ldap_managed: Afdelingen styres af LDAP-synkroniseringen og kan ikke ændres manuelt. less_than_or_equal_to: skal være mindre end eller lig med %{count}. - migration_failed: 'The variant could not be switched for project ''%{project}'': %{reason}' - migration_target_invalid: The selected variant must be another variant of the same type that every affected project can use. - not_a_date: is not a valid date. - not_a_datetime: is not a valid date time. + migration_failed: 'Varianten kunne ikke skiftes for projektet ''%{project}'': %{reason}' + migration_target_invalid: Den valgte variant skal være en anden variant af samme type, som alle berørte projekter kan bruge. + not_a_date: er ikke en gyldig dato. + not_a_datetime: er ikke et gyldigt tidspunkt. not_a_number: er ikke et tal. - not_allowed: is invalid because of missing permissions. + not_allowed: er ugyldig, fordi der mangler tilladelser. not_an_integer: er ikke et heltal. - not_an_iso_date: 'is not a valid date. Required format: YYYY-MM-DD.' - not_available: is not available due to a system configuration. - not_before_start_date: must not be before the start date. + not_an_iso_date: 'er ikke en gyldig dato. Påkrævet format: ÅÅÅÅ-MM-DD.' + not_available: er ikke tilgængelig på grund af systemets konfiguration. + not_before_start_date: må ikke ligge før startdatoen. not_current_user: er ikke den aktuelle bruger. not_deletable: Kan ikke slettes - not_editable: cannot be edited because it is already in effect. - not_found: not found. - not_json: is not parseable as JSON. - not_json_object: is not a JSON object. + not_editable: kan ikke redigeres, fordi den allerede er trådt i kraft. + not_found: blev ikke fundet. + not_json: kan ikke fortolkes som JSON. + not_json_object: er ikke et JSON-objekt. not_same_project: hører ikke til samme projekt. odd: skal være ulige. - overlapping_range: overlaps with an existing non-working day range. - regex_invalid: could not be validated with the associated regular expression. - regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. - regex_match_failed: does not match the regular expression %{expression}. + overlapping_range: overlapper en eksisterende periode med arbejdsfrie dage. + regex_invalid: kunne ikke valideres med det tilknyttede regulære udtryk. + regex_list_invalid: Linjerne %{invalid_lines} kunne ikke fortolkes som regulære udtryk. + regex_match_failed: svarer ikke til det regulære udtryk %{expression}. smaller_than_or_equal_to_max_length: skal være mindre end eller lig den maksimale længde. - smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. - ssrf_filtered: violates the SSRF policy of this OpenProject instance. - status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. - system_wide_non_working_day_exists: conflicts with an existing system-wide non-working day for this date. + smaller_than_or_equal_to_max_value: skal være mindre end eller lig med den største værdi. + ssrf_filtered: overtræder SSRF-politikken for denne OpenProject-installation. + status_transition_invalid: er ugyldig, fordi der ikke findes en gyldig overgang fra den gamle til den nye status for den aktuelle brugers roller. + system_wide_non_working_day_exists: er i konflikt med en eksisterende arbejdsfri dag for hele systemet på denne dato. taken: er allerede taget. too_long: 'er for lang (maks.: %{count} tegn).' too_short: 'er for kort (min.: %{count} tegn).' - type_mismatch: is not of type '%{type}' - type_mismatch_nested: is not of type '%{type}' at path '%{path}' - unchangeable: cannot be changed. - unknown_property: is not a known property. - unknown_property_nested: has the unknown path '%{path}'. - unremovable: cannot be removed. + type_mismatch: er ikke af typen '%{type}' + type_mismatch_nested: er ikke af typen '%{type}' ved stien '%{path}' + unchangeable: kan ikke ændres. + unknown_property: er ikke en kendt egenskab. + unknown_property_nested: har den ukendte sti '%{path}'. + unremovable: kan ikke fjernes. url_list_invalid: Lines %{invalid_lines} are not valid HTTP or HTTPS URLs. url_not_secure_context: 'is not providing a "Secure Context". Either use HTTPS or a loopback address, such as localhost. ' - user_already_in_department: User %{user_id} is already a member of department %{department_id}. - user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. + user_already_in_department: Brugeren %{user_id} er allerede medlem af afdelingen %{department_id}. + user_in_ldap_managed_department: Brugeren hører til en afdeling, der styres af LDAP-synkroniseringen, og kan ikke flyttes. wrong_length: har forkert længde (burde være %{count} tegn). models: attachment: attributes: content_type: - blank: The content type of the file cannot be blank. + blank: Filens indholdstype må ikke være tom. format: "%{message}" not_allowlisted: The file was rejected by an automatic filter. '%{value}' is not allowed for upload. capability: @@ -623,55 +623,55 @@ da: global: Global query: filters: - minimum: need to include at least one filter for principal, context or id with the '=' operator. + minimum: skal indeholde mindst ét filter for 'principal' (bruger eller gruppe), 'context' eller 'id' med operatoren '='. custom_actions: - empty: "(%{name}) value can't be empty." + empty: "(%{name}) værdien må ikke være tom." format: "%{message}" - greater_than_or_equal_to: "(%{name}) must be greater than or equal to %{count}." - inclusion: "(%{name}) value is not set to one of the allowed values." - not_an_integer: "(%{name}) is not an integer." - not_logged_in: "(%{name}) value cannot be set because you are not logged in." - only_one_allowed: "(%{name}) only one value is allowed." - smaller_than_or_equal_to: "(%{name}) must be smaller than or equal to %{count}." + greater_than_or_equal_to: "(%{name}) skal være større end eller lig med %{count}." + inclusion: "(%{name}) værdien er ikke sat til en tilladt værdi." + not_an_integer: "(%{name}) er ikke et heltal." + not_logged_in: "(%{name}) værdien kan ikke angives, fordi du ikke er logget ind." + only_one_allowed: "(%{name}) der er kun tilladt én værdi." + smaller_than_or_equal_to: "(%{name}) skal være mindre end eller lig med %{count}." custom_field: - at_least_one_custom_option: At least one option needs to be available. + at_least_one_custom_option: Der skal være mindst én valgmulighed. attributes: formula: - blank: Formula can't be blank. + blank: Formlen må ikke være tom. format: "%{message}" - invalid: Formula is invalid. - invalid_tokens: Only numeric values, operators, functions, keywords and project attributes of type integer, float, calculated value and weighted list are allowed. - not_allowed_custom_fields_referenced: The attribute %{custom_fields} cannot be used because it leads to a circular reference; one attribute depends on the other. + invalid: Formlen er ugyldig. + invalid_tokens: Kun talværdier, operatorer, funktioner, nøgleord og projektattributter af typen heltal, decimaltal, beregnet værdi og vægtet liste er tilladt. + not_allowed_custom_fields_referenced: 'Attributten %{custom_fields} kan ikke bruges, fordi den fører til en cirkulær reference: Den ene attribut afhænger af den anden.' required: - cannot_be_true: cannot be set to true. + cannot_be_true: kan ikke slås til. previous_custom_field_recalculation_unprocessed: The recalculation of previous changes for this custom field have not been applied yet, please try again in a few minutes. referenced_in_other_fields_html: - one: "%{name} is used in project attribute calculation %{links}." - other: "%{name} is used in project attribute calculations: %{links}." + one: "%{name} bruges i beregningen af projektattributten %{links}." + other: "%{name} bruges i beregningerne af projektattributter: %{links}." custom_fields_project: attributes: project_ids: - blank: Please select a project. + blank: Vælg et projekt. doorkeeper/application: attributes: redirect_uri: - forbidden_uri: is forbidden by the server. - fragment_present: cannot contain a fragment. - invalid_uri: must be a valid URI. - relative_uri: must be an absolute URI. + forbidden_uri: er ikke tilladt af serveren. + fragment_present: må ikke indeholde et fragment. + invalid_uri: skal være en gyldig URI. + relative_uri: skal være en absolut URI. secured_uri: is not providing a "Secure Context". Either use HTTPS or a loopback address, such as localhost. scopes: - not_match_configured: doesn't match available scopes. + not_match_configured: svarer ikke til de tilgængelige omfang. enterprise_token: - already_added: This token has already been added. - only_one_trial: Only one trial token can be active. Please delete the previous trial token before adding another. - unreadable: can't be read. Are you sure it is a support token? + already_added: Tokenet er allerede tilføjet. + only_one_trial: Der kan kun være ét aktivt prøvetoken. Slet det tidligere prøvetoken, før du tilføjer et nyt. + unreadable: kan ikke læses. Er du sikker på, at det er et supporttoken? enterprise_trial: - already_used: was already used to create a trial. - failed_to_create: Trial could not be created (%{status}) - general_consent: Please accept the terms and conditions. + already_used: er allerede brugt til at oprette en prøveperiode. + failed_to_create: Prøveperioden kunne ikke oprettes (%{status}) + general_consent: Acceptér vilkår og betingelser. favorite: - already_favorited: has already been favorited. + already_favorited: er allerede føjet til favoritter. grids/grid: end_before_start: Slutværdien skal være større end startværdien. outside: er uden for gitteret. @@ -679,184 +679,184 @@ da: group: attributes: parent_id: - circular_dependency: would create a circular group hierarchy. - organizational_unit_mismatch: must have the same organizational unit setting as the group. - parent_ldap_managed: is managed by LDAP synchronization and cannot have departments added manually. + circular_dependency: ville skabe et cirkulært gruppehierarki. + organizational_unit_mismatch: skal have samme indstilling for organisatorisk enhed som gruppen. + parent_ldap_managed: styres af LDAP-synkroniseringen, og der kan ikke tilføjes afdelinger manuelt. ical_token_query_assignment: attributes: name: - blank: is mandatory. Please select a name. - not_unique: is already in use. Please select another name. + blank: er påkrævet. Vælg et navn. + not_unique: er allerede i brug. Vælg et andet navn. jira: - invalid_protocol: Please provide a valid protocol (http or https) + invalid_protocol: Angiv en gyldig protokol (http eller https) ldap_auth_source: attributes: tls_certificate_string: format: "%{message}" - invalid_certificate: 'The provided SSL certificate is invalid: %{additional_message}' + invalid_certificate: 'Det angivne SSL-certifikat er ugyldigt: %{additional_message}' meeting: - error_conflict: Unable to save because the meeting was updated by someone else in the meantime. Please reload the page. + error_conflict: Mødet kan ikke gemmes, fordi en anden har opdateret det i mellemtiden. Genindlæs siden. member: attributes: principal: - unassignable: cannot be assigned to a project. + unassignable: kan ikke tilknyttes et projekt. roles: - more_than_one: has more than one role. - ungrantable: has an unassignable role. + more_than_one: har mere end én rolle. + ungrantable: har en rolle, der ikke kan tildeles. principal_blank: Vælg venligst mindst én bruger eller gruppe. - role_blank: need to be assigned. + role_blank: skal tildeles. message: - cannot_move_message_to_forum_of_different_project: A message cannot be moved to a forum of a different project. + cannot_move_message_to_forum_of_different_project: En meddelelse kan ikke flyttes til et forum i et andet projekt. non_working_day: attributes: date: format: "%{message}" - taken: A non-working day already exists for %{value}. + taken: Der findes allerede en arbejdsfri dag den %{value}. notifications: - at_least_one_channel: At least one channel for sending notifications needs to be specified. + at_least_one_channel: Der skal angives mindst én kanal til at sende notifikationer. attributes: mail_reminder_sent: - set_on_creation: cannot be set to true on notification creation. + set_on_creation: kan ikke slås til, når notifikationen oprettes. read_ian: - read_on_creation: cannot be set to true on notification creation. + read_on_creation: kan ikke slås til, når notifikationen oprettes. reason: - no_notification_reason: cannot be blank as IAN is chosen as a channel. + no_notification_reason: må ikke være tom, fordi notifikationer i appen er valgt som kanal. reason_mail_digest: - no_notification_reason: cannot be blank as mail digest is chosen as a channel. + no_notification_reason: må ikke være tom, fordi e-mailsammendrag er valgt som kanal. parse_schema_filter_params_service: attributes: base: - id_filter_required: An 'id' filter is required. - invalid_values: A value is invalid. - unsupported_operator: The operator is not supported. + id_filter_required: Der kræves et 'id'-filter. + invalid_values: En værdi er ugyldig. + unsupported_operator: Operatoren understøttes ikke. project: archived_ancestor: Projektet har en arkiveret forfader. attributes: base: - archive_permission_missing_on_subprojects: You do not have the permissions required to archive all sub-projects. Please contact an administrator. - project_initiation_request_disabled: Project initiation request is disabled. It must be enabled to create the artifact work package. + archive_permission_missing_on_subprojects: Du har ikke de tilladelser, der skal til for at arkivere alle underprojekter. Kontakt en administrator. + project_initiation_request_disabled: Anmodning om projektinitiering er deaktiveret. Den skal være aktiveret, før arbejdspakken til anmodningen kan oprettes. enabled_modules: - dependency_missing: The module '%{dependency}' needs to be enabled as well since the module '%{module}' depends on it. + dependency_missing: Modulet '%{dependency}' skal også være aktiveret, fordi modulet '%{module}' afhænger af det. format: "%{message}" identifier: - must_start_with_letter: must start with a letter - no_special_characters: may only contain uppercase letters, numbers, and underscores + must_start_with_letter: skal begynde med et bogstav + no_special_characters: må kun indeholde store bogstaver, tal og understregningstegn types: - cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project - cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' + cannot_assign_multiple_variants_of_parent: Der kan kun aktiveres én variant af en type i projektet + cannot_assign_variant_and_parent: 'En variant og dens overordnede type kan ikke tildeles samtidig ' cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants - in_use_by_work_packages: 'still in use by work packages: %{types}' - switch_target_blank: Select the variant to switch to - switch_target_identical: The target type must be different from the type the project uses now - switch_target_not_in_family: Can only switch to another type of the same family - cannot_be_assigned_to_artifact_work_package: The chosen user is not allowed to be assigned to work packages. + in_use_by_work_packages: 'bruges stadig af arbejdspakker: %{types}' + switch_target_blank: Vælg den variant, der skal skiftes til + switch_target_identical: Måltypen skal være en anden end den type, projektet bruger nu + switch_target_not_in_family: Der kan kun skiftes til en anden type i samme familie + cannot_be_assigned_to_artifact_work_package: Den valgte bruger må ikke få tildelt arbejdspakker. foreign_wps_reference_version: Arbejdspakker i ikke-efterkommerprojekter refererer til versioner af projektet eller dets efterkommere. project/phase: attributes: finish_date: - must_be_after_start_date: must be after the start date. + must_be_after_start_date: skal ligge efter startdatoen. start_date: - must_be_before_finish_date: must be before the finish date. - non_continuous_dates: can't be earlier than the previous phase's end date. - cannot_be_a_non_working_day: can't be a non-working day. + must_be_before_finish_date: skal ligge før slutdatoen. + non_continuous_dates: kan ikke ligge før den foregående fases slutdato. + cannot_be_a_non_working_day: kan ikke være en arbejdsfri dag. project_custom_field_project_mapping: attributes: project_ids: - blank: Please select a project. + blank: Vælg et projekt. project_type: attributes: variant: - must_be_owned_by_the_project: must not be a variant another project owns. - must_belong_to_the_type: must be a variant of the type the project uses. + must_be_owned_by_the_project: må ikke være en variant, som et andet projekt ejer. + must_belong_to_the_type: skal være en variant af den type, projektet bruger. queries/filters/base: attributes: values: format: "%{message}" - inclusion: filter has invalid values. + inclusion: filteret har ugyldige værdier. queries/principals/filters/internal_mentionable_on_work_package_filter: attributes: values: - single_value_requirement: must be a single work package + single_value_requirement: skal være én arbejdspakke query: attributes: column_names: format: "%{message}" - invalid: 'Invalid query column: %{value}' + invalid: 'Ugyldig kolonne i visningen: %{value}' group_by: format: "%{message}" - invalid: 'Can''t group by: %{value}' + invalid: 'Der kan ikke grupperes efter: %{value}' public: - error_unauthorized: "- The user has no permission to create public views." + error_unauthorized: "- Brugeren har ikke tilladelse til at oprette offentlige visninger." selects: format: "%{message}" - name_not_included: The 'Name' column needs to be included - nonexistent: The column '%{column}' does not exist. + name_not_included: Kolonnen 'Navn' skal være med + nonexistent: Kolonnen '%{column}' findes ikke. sort_criteria: format: "%{message}" - invalid: 'Can''t sort by column: %{value}' + invalid: 'Der kan ikke sorteres efter kolonnen: %{value}' timestamps: - forbidden: 'Timestamps contain forbidden values: %{values}' + forbidden: 'Tidsstemplerne indeholder ikke-tilladte værdier: %{values}' format: "%{message}" - invalid: 'Timestamps contain invalid values: %{values}' - can_only_be_modified_by_owner: The query can only be modified by its owner. + invalid: 'Tidsstemplerne indeholder ugyldige værdier: %{values}' + can_only_be_modified_by_owner: Visningen kan kun ændres af sin ejer. filters: custom_fields: - inexistent: There is no custom field for the filter. - group_by_hierarchies_exclusive: is mutually exclusive with group by '%{group_by}'. You cannot activate both. - need_permission_to_modify_public_query: You cannot modify a public query. + inexistent: Der findes ikke noget brugerdefineret felt til filteret. + group_by_hierarchies_exclusive: kan ikke bruges sammen med gruppering efter '%{group_by}'. Du kan ikke aktivere begge. + need_permission_to_modify_public_query: Du kan ikke ændre en offentlig visning. relation: attributes: base: - error_not_deletable: This relation cannot be deleted because you do not have edit permissions for the selected work package. - error_not_editable: This relation cannot be edited because you do not have edit permissions for the selected work package. + error_not_deletable: Relationen kan ikke slettes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. + error_not_editable: Relationen kan ikke redigeres, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. from_id: - error_not_found: could not be found. - error_not_manageable: cannot be added because you do not have edit permissions for the selected work package. + error_not_found: blev ikke fundet. + error_not_manageable: kan ikke tilføjes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. error_readonly: cannot be changed for existing relations. - format: The selected work package %{message} + format: Den valgte arbejdspakke %{message} to_id: - error_not_found: could not be found. - error_not_manageable: cannot be added because you do not have edit permissions for the selected work package. + error_not_found: blev ikke fundet. + error_not_manageable: kan ikke tilføjes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. error_readonly: cannot be changed for existing relations. - format: The selected work package %{message} + format: Den valgte arbejdspakke %{message} typed_dag: - circular_dependency: The relationship creates a circle of relationships. + circular_dependency: Relationen skaber en cirkel af relationer. repository: - invalid_url: is not a valid repository URL or path. - must_not_be_ssh: must not be an SSH url. - must_not_point_to_openproject_directory: must not point to an OpenProject-managed repository directory. + invalid_url: er ikke en gyldig URL eller sti til et repository. + must_not_be_ssh: må ikke være en SSH-URL. + must_not_point_to_openproject_directory: må ikke pege på en repository-mappe, som OpenProject administrerer. no_directory: er ikke et katalog. not_available: SCM-leverandør utilgængelig not_whitelisted: tillades ikke af opsætningen. role: attributes: permissions: - dependency_missing: need to also include '%{dependency}' as '%{permission}' is selected. + dependency_missing: skal også omfatte '%{dependency}', fordi '%{permission}' er valgt. setting: attributes: base: - durations_are_not_positive_numbers: The durations must be positive numbers. - hours_per_day_are_missing: The number of hours per day must be defined. - hours_per_day_is_out_of_bounds: Hours per day can't be more than 24 - journal_aggregation_time_minutes_is_out_of_bounds: Aggregation period must be between %{min} and %{max} minutes. - password_login_requires_sso_provider: Password login restrictions require at least one available SSO provider. - previous_working_day_changes_unprocessed: The previous changes to the working days configuration have not been applied yet. - working_days_are_missing: At least one day of the week must be defined as a working day. + durations_are_not_positive_numbers: Varighederne skal være positive tal. + hours_per_day_are_missing: Antallet af timer pr. dag skal angives. + hours_per_day_is_out_of_bounds: Timer pr. dag kan ikke være mere end 24 + journal_aggregation_time_minutes_is_out_of_bounds: Sammenlægningsperioden skal være mellem %{min} og %{max} minutter. + password_login_requires_sso_provider: Begrænsninger for login med adgangskode kræver mindst én tilgængelig SSO-udbyder. + previous_working_day_changes_unprocessed: De tidligere ændringer af arbejdsdagene er endnu ikke anvendt. + working_days_are_missing: Mindst én ugedag skal være angivet som arbejdsdag. status: attributes: default_done_ratio: - inclusion: must be between 0 and 100. - readonly_default_exlusive: can not be activated for statuses that are marked default. + inclusion: skal være mellem 0 og 100. + readonly_default_exlusive: kan ikke aktiveres for statusser, der er markeret som standard. time_entry: attributes: hours: - day_limit: is too high as a maximum of 24 hours can be logged per date. + day_limit: er for højt, da der højst kan registreres 24 timer pr. dato. token/named: attributes: token_name: - blank: Please provide a token name + blank: Angiv et tokennavn format: "%{message}" - in_use: This token name is already in use, please select a different one + in_use: Tokennavnet er allerede i brug. Vælg et andet type_variant: attributes: attribute_groups: @@ -867,21 +867,21 @@ da: query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. - is_default_variant: The default configuration of a type cannot be deleted. - project_variants_not_allowed: This type does not allow creation of variants inside projects. + is_default_variant: En types standardkonfiguration kan ikke slettes. + project_variants_not_allowed: Typen tillader ikke, at der oprettes varianter i projekter. restrict_dependent_destroy: - has_many: Cannot be deleted while projects are still using it. + has_many: Kan ikke slettes, så længe projekter stadig bruger den. defaults_source_id: must_be_available_to_the_variant: must be a configuration this project can use. would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: - not_available_to_project_owned_variant: cannot be set on a variant a project owns. - taken: is already set for another configuration of this type. + not_available_to_project_owned_variant: kan ikke angives for en variant, som et projekt ejer. + taken: er allerede angivet for en anden konfiguration af denne type. form_configuration_source_id: must_be_available_to_the_variant: must be a configuration this project can use. would_create_cycle: would link these configurations in a loop. patterns: - invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. + invalid_tokens: En eller flere attributter i feltet er ugyldige. Ret attributterne, før du gemmer. pdf_export_source_id: must_be_available_to_the_variant: must be a configuration this project can use. would_create_cycle: would link these configurations in a loop. @@ -889,60 +889,60 @@ da: must_be_available_to_the_variant: must be a configuration this project can use. would_create_cycle: would link these configurations in a loop. variant: - must_belong_to_the_type: must be a variant of this type. + must_belong_to_the_type: skal være en variant af denne type. workflows_source_id: must_be_available_to_the_variant: must be a configuration this project can use. would_create_cycle: would link these configurations in a loop. user: attributes: base: - one_must_be_active: Admin User cannot be locked/removed. At least one admin must be active. - user_limit_reached: User limit reached. No more accounts can be created on the current plan. + one_must_be_active: Administratoren kan ikke låses eller fjernes. Mindst én administrator skal være aktiv. + user_limit_reached: Grænsen for antal brugere er nået. Der kan ikke oprettes flere konti med den aktuelle plan. password: lowercase: små bogstaver (f.eks. "a") match: confirm: Bekræft ny adgangskode. description: "'Adgangskodebekræftelse' skal matche input fra feltet 'Ny adgangskode'." numeric: tal (fx "1") - requirements_not_met: 'Must include characters of the following types: %{rules}' + requirements_not_met: 'Skal indeholde tegn af følgende typer: %{rules}' reused: one: er blevet benyttet tidligere. Vælg venligst et, der er forskelligt fra dit seneste. other: er blevet benyttet tidligere. Vælg venligst et, der er forskelligt fra dine seneste %{count}. special: Speciel (fx "%") uppercase: store bogstaver (f.eks. "A") password_confirmation: - confirmation: Password confirmation does not match password. + confirmation: Bekræftelsen af adgangskoden svarer ikke til adgangskoden. format: "%{message}" status: - invalid_on_create: is not a valid status for new users. + invalid_on_create: er ikke en gyldig status for nye brugere. user_preference: attributes: daily_reminders: - full_hour: can only be configured to be delivered at a full hour. + full_hour: kan kun sendes på et helt klokkeslæt. notification_settings: - email_alerts_global: The email notification settings can only be set globally. + email_alerts_global: Indstillingerne for notifikationer via e-mail kan kun angives globalt. format: "%{message}" - only_one_global_setting: There must only be one global notification setting. - wrong_date: Wrong value for Start date, Due date, or Overdue. + only_one_global_setting: Der må kun være én global notifikationsindstilling. + wrong_date: Forkert værdi for Startdato, Forfaldsdato eller Overskredet. pause_reminders: - invalid_range: can only be a valid date range. + invalid_range: skal være en gyldig periode. user_working_hours: attributes: days: - no_working_day: At least one day needs to be configured as a working day. + no_working_day: Mindst én dag skal være angivet som arbejdsdag. version: - undeletable_archived_projects: The version cannot be deleted as it has work packages attached to it. - undeletable_work_packages_attached: The version cannot be deleted as it has work packages attached to it. + undeletable_archived_projects: Versionen kan ikke slettes, fordi der er arbejdspakker knyttet til den. + undeletable_work_packages_attached: Versionen kan ikke slettes, fordi der er arbejdspakker knyttet til den. watcher: attributes: user_id: - locked: is locked. - not_allowed_to_view: is not allowed to view this resource. + locked: er låst. + not_allowed_to_view: har ikke tilladelse til at se denne ressource. wiki_page: attributes: slug: undeducible: kan ikke udledes af titlen '%{title}'. - error_conflict: The wiki page has been updated by someone else while you were editing it. + error_conflict: En anden har opdateret wikisiden, mens du redigerede den. work_package: attributes: assigned_to: @@ -951,63 +951,63 @@ da: does_not_exist: Den angivne kategori findes ikke. only_same_project_categories_allowed: Arbejdspakkens kategori skal være tilstede i samme projekt som pakken. done_ratio: - cannot_be_set_when_work_is_zero: cannot be set when Work is 0h - does_not_match_work_and_remaining_work: does not match Work and Remaining work - inclusion: must be between 0 and 100. - must_be_set_when_remaining_work_is_set: required when Remaining work is set. - must_be_set_when_work_and_remaining_work_are_set: required when Work and Remaining work are set. + cannot_be_set_when_work_is_zero: kan ikke angives, når Arbejde er 0 t + does_not_match_work_and_remaining_work: stemmer ikke med Arbejde og Resterende arbejde + inclusion: skal være mellem 0 og 100. + must_be_set_when_remaining_work_is_set: er påkrævet, når Resterende arbejde er angivet. + must_be_set_when_work_and_remaining_work_are_set: er påkrævet, når Arbejde og Resterende arbejde er angivet. due_date: - cannot_be_null: can not be set to null as start date and duration are known. + cannot_be_null: kan ikke være tom, når startdato og varighed er kendt. not_start_date: er ikke på startdato, selvom dette er påkrævet for milepæle. duration: - cannot_be_null: can not be set to null as start date and finish date are known. - larger_than_dates: is larger than the interval between the start and the finish date. - not_an_integer: is not a valid duration. - not_available_for_milestones: is not available for milestone typed work packages. - smaller_than_dates: is smaller than the interval between the start and the finish date. + cannot_be_null: kan ikke være tom, når startdato og slutdato er kendt. + larger_than_dates: er længere end perioden mellem start- og slutdatoen. + not_an_integer: er ikke en gyldig varighed. + not_available_for_milestones: findes ikke for arbejdspakker af typen milepæl. + smaller_than_dates: er kortere end perioden mellem start- og slutdatoen. estimated_hours: - cant_be_inferior_to_remaining_work: cannot be lower than Remaining work. - must_be_set_when_remaining_work_and_percent_complete_are_set: required when Remaining work and % Complete are set. + cant_be_inferior_to_remaining_work: kan ikke være mindre end Resterende arbejde. + must_be_set_when_remaining_work_and_percent_complete_are_set: er påkrævet, når Resterende arbejde og % færdigt er angivet. not_a_number: is not a valid duration. id: blank: ID can't be blank. cannot_add_child_because_of_lack_of_permission: Cannot add child because you don't have permissions to edit the selected work package. format: "%{message}" identifier: - must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' - semantic_identifier_incomplete: and sequence_number must both be set at the same time. + must_not_be_changed: 'må ikke ændres manuelt. Arbejdspakkers id''er tildeles automatisk og slås op via aliastabellen, så hvis de ændres manuelt, går links og id-historikken i stykker. Er ændringen tilsigtet, så gem med `save(context: :%{context})`, og hold tabellen work_package_semantic_aliases konsistent.' + semantic_identifier_incomplete: og sequence_number skal begge angives samtidig. parent: cannot_be_in_another_project: kan ikke være i et andet projekt. cannot_be_milestone: kan ikke være en milepæl. - cannot_be_self_assigned: cannot be assigned to itself. + cannot_be_self_assigned: kan ikke tildeles sig selv. not_a_valid_parent: er ugyldig. priority_id: only_active_priorities_allowed: skal være aktiv. remaining_hours: - cant_exceed_work: cannot be higher than Work. - must_be_empty_when_work_is_empty_and_percent_complete_is_100p: must be empty when Work is empty and % Complete is 100%. - must_be_set_to_zero_hours_when_work_is_set_and_percent_complete_is_100p: ">- must be 0h when Work is set and % Complete is 100%." - must_be_set_when_work_and_percent_complete_are_set: required when Work and % Complete are set. - must_be_set_when_work_is_set: required when Work is set. + cant_exceed_work: kan ikke være større end Arbejde. + must_be_empty_when_work_is_empty_and_percent_complete_is_100p: skal være tomt, når Arbejde er tomt, og % færdigt er 100 %. + must_be_set_to_zero_hours_when_work_is_set_and_percent_complete_is_100p: skal være 0 t, når Arbejde er angivet, og % færdigt er 100 %. + must_be_set_when_work_and_percent_complete_are_set: er påkrævet, når Arbejde og % færdigt er angivet. + must_be_set_when_work_is_set: er påkrævet, når Arbejde er angivet. not_a_number: is not a valid duration. schedule_manually: cannot_be_automatically_scheduled: cannot be set to false (automatically scheduled) as it has no predecessors or children. sequence_number: - must_not_be_changed: 'must not be changed manually. It is allocated automatically together with the identifier. If this change is deliberate, save with `save(context: :%{context})`.' + must_not_be_changed: 'må ikke ændres manuelt. Det tildeles automatisk sammen med id''et. Er ændringen tilsigtet, så gem med `save(context: :%{context})`.' start_date: - cannot_be_null: can not be set to null as finish date and duration are known. - violates_relationships: can only be set to %{soonest_start} or later so as not to violate the work package's relationships. + cannot_be_null: kan ikke være tom, når slutdato og varighed er kendt. + violates_relationships: kan kun angives til %{soonest_start} eller senere for ikke at bryde arbejdspakkens relationer. status: - status_invalid_in_type: is invalid because the current status does not exist in this type. - status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + status_invalid_in_type: er ugyldig, fordi den aktuelle status ikke findes i denne type. + status_transition_invalid: er ugyldig, fordi der ikke findes en gyldig overgang fra den gamle til den nye status for den aktuelle brugers roller. status_id: - status_invalid_in_type: is invalid because the current status does not exist in this type. + status_invalid_in_type: er ugyldig, fordi den aktuelle status ikke findes i denne type. status_transition_invalid: er ugyldig, da der mangler gyldig overførsel fra gammel til ny status for den aktuelle brugers roller. type: - cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. + cannot_be_milestone_due_to_children: kan ikke være en milepæl, fordi arbejdspakken har underordnede. is_not_a_valid_target_for_time_entries: 'Arbejdspakke # %{id} er ikke et gyldig mål for tildeling af tider.' - readonly_status: The work package is in a readonly status so its attributes cannot be changed. - target_versions_only_allow_single_value: Target Versions can only hold a single value. + readonly_status: Arbejdspakken har en skrivebeskyttet status, så dens attributter kan ikke ændres. + target_versions_only_allow_single_value: Målversioner kan kun indeholde én værdi. template: body: 'Kontroller venligst følgende felter:' header: @@ -1015,245 +1015,245 @@ da: other: "%{count} fejl forhindrede, at denne %{model} blev gemt" models: action: - one: Action - other: Actions + one: Handling + other: Handlinger ai/text_transform_action: - one: Text transform action - other: Text transform actions + one: Handling til tekstomskrivning + other: Handlinger til tekstomskrivning ai/text_transform_run: - one: Text transform run - other: Text transform runs + one: Kørsel af tekstomskrivning + other: Kørsler af tekstomskrivning ai/text_transform_run_event: - one: Text transform run event - other: Text transform run events + one: Hændelse i kørsel af tekstomskrivning + other: Hændelser i kørsler af tekstomskrivning announcement: - one: Announcement - other: Announcements + one: Systemmeddelelse + other: Systemmeddelelser anonymous_user: - one: Anonymous user - other: Anonymous users + one: Anonym bruger + other: Anonyme brugere attachment: - one: File - other: Files + one: Fil + other: Filer attribute_help_text: - one: Attribute help text - other: Attribute help texts + one: Hjælpetekst til attribut + other: Hjælpetekster til attributter attribute_help_text/project: - one: Project attribute help text - other: Project attribute help texts + one: Hjælpetekst til projektattribut + other: Hjælpetekster til projektattributter attribute_help_text/user: - one: User attribute help text - other: User attribute help texts + one: Hjælpetekst til brugerattribut + other: Hjælpetekster til brugerattributter attribute_help_text/work_package: - one: Work package attribute help text - other: Work package attribute help texts + one: Hjælpetekst til arbejdspakkeattribut + other: Hjælpetekster til arbejdspakkeattributter auth_provider: - one: Authentication provider - other: Authentication providers + one: Godkendelsesudbyder + other: Godkendelsesudbydere backup: - one: Backup - other: Backups + one: Sikkerhedskopi + other: Sikkerhedskopier capability: - one: Capability - other: Capabilities + one: Adgangsret + other: Adgangsrettigheder category: - one: Category - other: Categories + one: Kategori + other: Kategorier change: - one: File change - other: File changes + one: Filændring + other: Filændringer changeset: - one: Changeset - other: Changesets + one: Ændringssæt + other: Ændringssæt color: - one: Color - other: Colors + one: Farve + other: Farver comment: - one: Comment - other: Comments + one: Kommentar + other: Kommentarer custom_action: one: Custom action other: Custom actions custom_field: - one: Custom field - other: Custom fields + one: Brugerdefineret felt + other: Brugerdefinerede felter custom_field/hierarchy/item: - one: Hierarchy item - other: Hierarchy items + one: Hierarkielement + other: Hierarkielementer custom_field_section: - one: Custom field section - other: Custom field sections + one: Afsnit med brugerdefinerede felter + other: Afsnit med brugerdefinerede felter custom_option: - one: Custom field option - other: Custom field options + one: Valgmulighed for brugerdefineret felt + other: Valgmuligheder for brugerdefinerede felter custom_style: one: Design other: Designs day: - one: Day - other: Days + one: Dag + other: Dage deleted_user: - one: Deleted user - other: Deleted users + one: Slettet bruger + other: Slettede brugere design_color: - one: Design color - other: Design colors + one: Designfarve + other: Designfarver doorkeeper/application: - one: OAuth application - other: OAuth applications + one: OAuth-program + other: OAuth-programmer emoji_reaction: - one: Emoji reaction - other: Emoji reactions + one: Emoji-reaktion + other: Emoji-reaktioner enterprise_token: - one: Enterprise token - other: Enterprise tokens + one: Enterprise-token + other: Enterprise-tokens enterprise_trial: - one: Enterprise trial - other: Enterprise trials + one: Enterprise-prøveperiode + other: Enterprise-prøveperioder enumeration: - one: Enumeration - other: Enumerations + one: Opremsning + other: Opremsninger export: - one: Export - other: Exports + one: Eksport + other: Eksporter export_setting: - one: Export setting - other: Export settings + one: Eksportindstilling + other: Eksportindstillinger forum: one: Forum - other: Forums + other: Fora global_role: - one: Global role - other: Global roles + one: Global rolle + other: Globale roller group: - one: Group - other: Groups + one: Gruppe + other: Grupper group_custom_field: - one: Group custom field - other: Group custom fields + one: Brugerdefineret felt for grupper + other: Brugerdefinerede felter for grupper health_report: - one: Health report - other: Health reports + one: Tilstandsrapport + other: Tilstandsrapporter issue_priority: one: Prioritet - other: Priorities + other: Prioriteter ldap_auth_source: - one: LDAP connection - other: LDAP connections + one: LDAP-forbindelse + other: LDAP-forbindelser mcp_configuration: - one: MCP configuration - other: MCP configurations + one: MCP-konfiguration + other: MCP-konfigurationer member: - one: Member - other: Members + one: Medlem + other: Medlemmer menu_item: - one: Menu item - other: Menu items + one: Menupunkt + other: Menupunkter menu_items/wiki_menu_item: - one: Wiki menu item - other: Wiki menu items + one: Wiki-menupunkt + other: Wiki-menupunkter message: - one: Message - other: Messages + one: Meddelelse + other: Meddelelser news: - one: News - other: News + one: Nyhed + other: Nyheder non_working_day: - one: Non-working day - other: Non-working days + one: Arbejdsfri dag + other: Arbejdsfrie dage notification: - one: Notification - other: Notifications + one: Notifikation + other: Notifikationer notification_setting: - one: Notification setting - other: Notification settings + one: Notifikationsindstilling + other: Notifikationsindstillinger oauth_client: - one: OAuth client - other: OAuth clients + one: OAuth-klient + other: OAuth-klienter oauth_client_token: - one: OAuth client token - other: OAuth client tokens + one: OAuth-klienttoken + other: OAuth-klienttokens persisted_query: - one: Persisted query - other: Persisted queries + one: Gemt forespørgsel + other: Gemte forespørgsler persisted_view: - one: Persisted view - other: Persisted views + one: Gemt visning + other: Gemte visninger placeholder_user: - one: Placeholder user - other: Placeholder users + one: Pladsholder-bruger + other: Pladsholder-brugere plugin_auth_provider: - one: Plugin authentication provider - other: Plugin authentication providers + one: Godkendelsesudbyder fra plugin + other: Godkendelsesudbydere fra plugins principal: - one: Principal - other: Principals + one: Bruger eller gruppe + other: Brugere eller grupper project: - one: Prjoekt + one: Projekt other: Projekter project/phase: - one: Project phase - other: Project phases + one: Projektfase + other: Projektfaser project/phase_definition: - one: Project phase definition - other: Project phase definitions + one: Definition af projektfase + other: Definitioner af projektfaser project_custom_field: - one: Project attribute - other: Project attributes + one: Projektattribut + other: Projektattributter project_custom_field_section: - one: Project attribute section - other: Project attribute sections + one: Afsnit med projektattributter + other: Afsnit med projektattributter project_query: one: Project list other: Project lists project_query_role: - one: Project list role - other: Project list roles + one: Rolle for projektliste + other: Roller for projektlister project_role: - one: Project role - other: Project roles + one: Projektrolle + other: Projektroller query: - one: Custom query - other: Custom queries + one: Brugerdefineret visning + other: Brugerdefinerede visninger relation: one: Relation - other: Relations + other: Relationer reminder: - one: Reminder - other: Reminders + one: Påmindelse + other: Påmindelser remote_identity: - one: Remote identity - other: Remote identities + one: Ekstern identitet + other: Eksterne identiteter repository: one: Repository other: Repositories repository/git: - one: Git repository - other: Git repositories + one: Git-repository + other: Git-repositories repository/subversion: - one: Subversion repository - other: Subversion repositories + one: Subversion-repository + other: Subversion-repositories role: one: Rolle - other: Rollee + other: Roller scim_client: - one: SCIM client - other: SCIM clients + one: SCIM-klient + other: SCIM-klienter service_account: - one: Service account - other: Service accounts + one: Tjenestekonto + other: Tjenestekonti sessions/user_session: one: Session - other: Sessions + other: Sessioner setting: - one: Setting - other: Settings + one: Indstilling + other: Indstillinger status: - one: Work package status - other: Work package statuses + one: Arbejdspakkestatus + other: Arbejdspakkestatusser system_user: - one: System user - other: System users + one: Systembruger + other: Systembrugere token/api: one: Adgangstegn other: Access tokens @@ -1261,68 +1261,68 @@ da: one: Token other: Tokens token/ical: - one: iCalendar token - other: iCalendar tokens + one: iCalendar-token + other: iCalendar-tokens token/rss: - one: RSS token - other: RSS tokens + one: RSS-token + other: RSS-tokens type: one: Type - other: Types + other: Typer type_variant: one: Variant - other: Variants + other: Varianter user: - one: User - other: Users + one: Bruger + other: Brugere user_custom_field: - one: User attribute - other: User attributes + one: Brugerattribut + other: Brugerattributter user_custom_field_section: - one: User attribute section - other: User attribute sections + one: Afsnit med brugerattributter + other: Afsnit med brugerattributter user_non_working_time: - one: Non-working time - other: Non-working times + one: Fraværsperiode + other: Fraværsperioder user_password: - one: Password - other: Passwords + one: Adgangskode + other: Adgangskoder user_preference: - one: User preference - other: User preferences + one: Brugerindstilling + other: Brugerindstillinger user_query: - one: User list - other: User lists + one: Brugerliste + other: Brugerlister user_working_hours: - one: Working hours - other: Working hours + one: Arbejdstid + other: Arbejdstider version: one: Version - other: Versions + other: Versioner version_custom_field: - one: Version custom field - other: Version custom fields + one: Brugerdefineret felt for versioner + other: Brugerdefinerede felter for versioner view: - one: View - other: Views + one: Visning + other: Visninger wiki: one: Wiki - other: Wikis + other: Wikier wiki_page: - one: Wiki page - other: Wiki pages + one: Wikiside + other: Wikisider work_package: - one: Work package - other: Work packages + one: Arbejdspakke + other: Arbejdspakker work_package_custom_field: - one: Work package custom field - other: Work package custom fields + one: Brugerdefineret felt for arbejdspakker + other: Brugerdefinerede felter for arbejdspakker work_package_role: - one: Work package role - other: Work package roles + one: Arbejdspakkerolle + other: Arbejdspakkeroller workflow: - one: Workflow - other: Workflows + one: Arbejdsgang + other: Arbejdsgange activities: index: no_results_title_text: Der har ikke været nogen aktivitet for projektet i tidsperioden. @@ -1355,7 +1355,7 @@ da: unsaved_changes_confirmation_message: Are you sure you want to dismiss your comment? The content that you have written will be lost. activity: filter: - changeset: Pakker af ændringer + changeset: Ændringssæt message: Fora news: Nyheder project_details: Projektdetaljer @@ -1473,157 +1473,157 @@ da: jemalloc_allocator: Jemalloc memory allocator jira: actions: - button_edit: Edit configuration - button_open: Open runs + button_edit: Rediger konfiguration + button_open: Åbn importkørsler banner: - contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. + contribution_callout: 'Hjælp os med at forbedre Jira-migreringen med din feedback og ved at donere private data. Du kan [blive en del af udviklingsfællesskabet](link) bag Jira-migreringen. ' - description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. - title: Beta - Try it out! + description: Jira-migreringen er i beta. Vi understøtter i øjeblikket kun Jira Server/Data Center version 10.x og 11.x. Cloud-installationer understøttes ikke endnu. + title: Beta – prøv det! blank: - description: Configure a Jira host to start importing items from Jira to this OpenProject instance. - title: No Jira hosts configured yet + description: Konfigurer en Jira-vært for at begynde at importere elementer fra Jira til denne OpenProject-installation. + title: Der er endnu ikke konfigureret nogen Jira-værter client: - 401_error: Jira API returned a 401 error. Your authentication token may have expired or lack the required permissions. Please ensure the token belongs to a Jira administrator. - 429_error: Jira API returned a 429 error. It means token owner has been rate limited by the Jira instance. Please disable rate limiting for this user. - api_error: Jira API returned error status %{status} - connection_error: 'Failed to connect to Jira server: %{message}' - connection_timeout: 'Connection to Jira server timed out: %{message}' - parse_error: 'Failed to parse Jira API response: %{message}' - ssl_error: 'SSL error connecting to Jira server: %{message}' - ssrf_block_doc_link: Please see our [documentation](docs_url). - ssrf_blocked: 'Connection blocked: the Jira host resolves to a private IP address. If your Jira instance runs on an internal network, allow its IP via the OPENPROJECT_SSRF__PROTECTION__IP__ALLOWLIST environment variable.' - unsupported_endpoint: Jira API has no endpoint at %{path} (status %{status}) + 401_error: Jiras API returnerede fejl 401. Godkendelsestokenet er måske udløbet eller mangler de nødvendige tilladelser. Sørg for, at tokenet tilhører en Jira-administrator. + 429_error: Jiras API returnerede fejl 429. Det betyder, at Jira-installationen har begrænset, hvor mange forespørgsler tokenets ejer må sende. Slå begrænsningen fra for denne bruger. + api_error: Jiras API returnerede fejlstatus %{status} + connection_error: 'Der kunne ikke oprettes forbindelse til Jira-serveren: %{message}' + connection_timeout: 'Tidsgrænsen for forbindelsen til Jira-serveren blev overskredet: %{message}' + parse_error: 'Svaret fra Jiras API kunne ikke fortolkes: %{message}' + ssl_error: 'SSL-fejl ved forbindelse til Jira-serveren: %{message}' + ssrf_block_doc_link: Se vores [dokumentation](docs_url). + ssrf_blocked: 'Forbindelsen er blokeret: Jira-værten peger på en privat IP-adresse. Hvis din Jira-installation kører på et internt netværk, kan du tillade dens IP-adresse med miljøvariablen OPENPROJECT_SSRF__PROTECTION__IP__ALLOWLIST.' + unsupported_endpoint: Jiras API har intet slutpunkt på %{path} (status %{status}) columns: - added: Added - creator: Creator - label_ago: "%{amount} ago" - last_change: Last change - projects: Projects - server_url: Server URL + added: Tilføjet + creator: Oprettet af + label_ago: For %{amount} siden + last_change: Seneste ændring + projects: Projekter + server_url: Serverens URL configuration: - new: New configuration - title: Jira configuration - description: Use this tool to import data from your Jira instance. You can configure multiple Jira hosts and choose what to import in each import run. + new: Ny konfiguration + title: Jira-konfiguration + description: Brug dette værktøj til at importere data fra din Jira-installation. Du kan konfigurere flere Jira-værter og vælge, hvad der skal importeres i hver importkørsel. errors: - cannot_delete_with_imports: Cannot delete Jira host with existing imports - custom_field_creation_failed: 'Failed to create custom field ''%{name}'': %{message}' + cannot_delete_with_imports: En Jira-vært med eksisterende importer kan ikke slettes + custom_field_creation_failed: 'Det brugerdefinerede felt ''%{name}'' kunne ikke oprettes: %{message}' semantic_identifiers_must_be_enabled: - description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). - title: Project-based semantic identifiers must be enabled. + description: Jira bruger id'er for sager, der består af en projektnøgle og et løbenummer (PRJ-123). OpenProject understøtter det også, men det skal slås til [her](link). + title: Projektbaserede semantiske id'er skal være slået til. form: - button_add: Add configuration - button_delete_token: Delete token - button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_add: Tilføj konfiguration + button_delete_token: Slet token + button_save: Gem konfiguration + delete_token_confirm: Er du sikker på, at du vil slette tokenet? Det deaktiverer forbindelsen til Jira. fields: - name: Name - personal_access_token: Personal Access Token - url: Jira Server/Data Center URL - label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + name: Navn + personal_access_token: Personligt adgangstoken + url: URL til Jira Server/Data Center + label_testing: Tester konfigurationen … + test_configuration_caption: Du kan teste konfigurationen ved at [klikke her](test) run: actions: - button_edit: Edit run - button_open_history: Open run history + button_edit: Rediger importkørsel + button_open_history: Åbn kørselshistorik blank: - description: Create an import run to start importing information from this Jira instance - title: No import runs set up yet - history: History - import_blocked_error: Another Jira import run is currently in progress or awaiting review. Please complete or revert it before starting a new import. + description: Opret en importkørsel for at begynde at importere oplysninger fra denne Jira-installation + title: Der er endnu ikke oprettet nogen importkørsler + history: Historik + import_blocked_error: En anden importkørsel fra Jira er i gang eller venter på gennemsyn. Gør den færdig, eller tilbagefør den, før du starter en ny import. index: - button_edit_configuration: Edit configuration - button_import_run: Import run - description: You can import different sets of data with each import run. It is possible to undo an import run immediately after in review mode but not after finalizing. + button_edit_configuration: Rediger konfiguration + button_import_run: Importkørsel + description: Du kan importere forskellige datasæt i hver importkørsel. En importkørsel kan fortrydes, mens den er i gennemsyns-tilstand, men ikke efter at den er godkendt. jobs: JiraCreateCustomFieldsJob: - title: Create custom fields + title: Opret brugerdefinerede felter JiraCreateProjectJob: - title: Create project '%{jira_project_name}' + title: Opret projektet '%{jira_project_name}' JiraCreateProjectRoleJob: - title: Create 'JiraMember' project role + title: Opret projektrollen 'JiraMember' JiraCreateProjectVersionsJob: - title: Create versions for '%{jira_project_name}' + title: Opret versioner for '%{jira_project_name}' JiraCreateProjectWorkPackageAttachmentsJob: - title: Download work package attachments for '%{jira_project_name}' + title: Hent vedhæftede filer til arbejdspakker for '%{jira_project_name}' JiraCreateProjectWorkPackagesJob: - title: Create work packages for '%{jira_project_name}' + title: Opret arbejdspakker for '%{jira_project_name}' JiraCreateUsersJob: - title: Create users + title: Opret brugere JiraFetchCustomFieldJob: - title: Fetch custom fields + title: Hent brugerdefinerede felter JiraFetchIssueTypesJob: - title: Fetch issue types + title: Hent sagstyper JiraFetchPrioritiesJob: - title: Fetch priorities + title: Hent prioriteter JiraFetchProjectIssuesJob: - title: Fetch issues for project '%{jira_project_name}' + title: Hent sager for projektet '%{jira_project_name}' JiraFetchProjectVersionsJob: - title: Fetch versions for project '%{jira_project_name}' + title: Hent versioner for projektet '%{jira_project_name}' JiraFetchProjectsJob: - title: Fetch projects + title: Hent projekter JiraFetchStatusesJob: - title: Fetch statuses + title: Hent statusser JiraFetchUsersJob: - title: Fetch users + title: Hent brugere JiraInstanceMetaDataJob: - title: Fetching instance meta data + title: Henter installationens metadata JiraProjectsMetaDataJob: - title: Fetching meta data about selected projects + title: Henter metadata om de valgte projekter JiraRevertImportJob: - title: Reverting this Jira import run - project_identifier_taken: 'You are trying to import a project with an already used identifier: %{taken_identifier}. Please update the project identifier in Jira then click on Retry.' - remove_error: A Jira import run cannot be removed while it is running + title: Tilbagefører denne importkørsel fra Jira + project_identifier_taken: 'Du forsøger at importere et projekt med et id, der allerede er i brug: %{taken_identifier}. Ret projektets id i Jira, og klik så på Prøv igen.' + remove_error: En importkørsel fra Jira kan ikke fjernes, mens den kører side_panel: - open_history: Open the run history - run_status: Run status + open_history: Åbn kørselshistorikken + run_status: Kørslens status status: - configuring: Select scope - finalizing: Finalizing - finalizing_done: Completed - finalizing_error: Error during finalizing - import_aborting: Aborting - import_error: Error during import - import_scope: Select scope - imported: Review mode - importing: In progress + configuring: Vælg omfang + finalizing: Godkender + finalizing_done: Fuldført + finalizing_error: Fejl under godkendelse + import_aborting: Afbryder + import_error: Fejl under import + import_scope: Vælg omfang + imported: Gennemsyns-tilstand + importing: I gang initial: Start - instance_meta_done: Meta data fetched - instance_meta_error: Error fetching meta data - instance_meta_fetching: Fetching meta data - projects_meta_done: Data gathered - projects_meta_error: Error fetching project data - projects_meta_fetching: Fetching project data - revert_error: Error during revert - reverted: Reverted - reverting: Reverting - step_not_available: This action is not available for the current state of the import run. - title: Import run + instance_meta_done: Metadata hentet + instance_meta_error: Fejl ved hentning af metadata + instance_meta_fetching: Henter metadata + projects_meta_done: Data indsamlet + projects_meta_error: Fejl ved hentning af projektdata + projects_meta_fetching: Henter projektdata + revert_error: Fejl under tilbageførsel + reverted: Tilbageført + reverting: Tilbagefører + step_not_available: Handlingen er ikke tilgængelig i importkørslens nuværende tilstand. + title: Importkørsel wizard: application_trace: Application trace - button_abort: Abort - button_retry: Retry - copy_application_trace: Copy application trace - copy_full_trace: Copy full trace + button_abort: Afbryd + button_retry: Prøv igen + copy_application_trace: Kopiér application trace + copy_full_trace: Kopiér full trace finalize_dialog: - confirm: I understand that this action cannot be undone - confirm_button: Understood - description: Once approved, this import can no longer be reverted. All imported data will become permanent. - title: Approve this import? + confirm: Jeg forstår, at handlingen ikke kan fortrydes + confirm_button: Forstået + description: Når importen er godkendt, kan den ikke længere tilbageføres. Alle importerede data bliver permanente. + title: Vil du godkende importen? full_trace: Full trace groups: configuration: - title: Configure import + title: Konfigurer import run_and_review: - title: Run and review import + title: Kør og gennemse import import_dialog: - confirm: I understand and have a backup + confirm: Jeg forstår og har en sikkerhedskopi confirm_button: Start import - description: 'Imports change your OpenProject configuration. After the import you will have the opportunity to review the changes. While in review, you have an option to revert or approve the import. After approving the import reverting will no longer be possible. Therefore, please, make sure that you have [a backup of your OpenProject instance](link) before proceeding. + description: 'Importer ændrer din OpenProject-konfiguration. Efter importen kan du gennemse ændringerne. Under gennemsynet kan du tilbageføre eller godkende importen. Når importen er godkendt, kan den ikke længere tilbageføres. Sørg derfor for, at du har [en sikkerhedskopi af din OpenProject-installation](link), før du fortsætter. ' - title: Please make sure you have a backup! + title: Sørg for, at du har en sikkerhedskopi! parts: issues: one: 1 issue @@ -1647,147 +1647,147 @@ da: one: 1 work package other: "%{count} work packages" revert_dialog: - confirm: I understand that this reversion will delete data permanently - description: This will delete all imported objects (including whole projects). - title: Permanently revert this import? + confirm: Jeg forstår, at tilbageførslen sletter data permanent + description: Alle importerede objekter slettes (også hele projekter). + title: Vil du tilbageføre importen permanent? sections: confirm_import: - button_importing: Importing data - button_revert: Revert import + button_importing: Importerer data + button_revert: Tilbagefør import button_start: Start import - caption: Review your import settings and start the import - caption_done: Completed - caption_done_info: All data has been imported - description: You are about to start an import run with the following settings. - info_importing: The import is now in progress. Closing this tab will not stop it, and you can always revisit the status of the import by opening the run. - label_available_data: Data to be imported - label_import_data: Currently importing - label_progress: Import in progress... - label_users_import_explanation: Users that are involved in selected projects (group memberships included) - title: Import data + caption: Gennemse dine importindstillinger, og start importen + caption_done: Fuldført + caption_done_info: Alle data er importeret + description: Du er ved at starte en importkørsel med følgende indstillinger. + info_importing: Importen er nu i gang. Den stopper ikke, hvis du lukker fanen, og du kan altid se importens status igen ved at åbne kørslen. + label_available_data: Data, der importeres + label_import_data: Importeres nu + label_progress: Importen er i gang … + label_users_import_explanation: Brugere, der er involveret i de valgte projekter (inklusive gruppemedlemskaber) + title: Importér data fetch_data: - button_continue: Continue to scope selection - button_fetch: Check available data - caption_done: Completed - caption_done_description: Meta data fetched from %{server_info} - description: Check what data is available for import in the host Jira instance. - label_available_server_data: Available data on %{server_info} - label_progress: Fetching data from Jira... - title: Fetch instance meta data + button_continue: Fortsæt til valg af omfang + button_fetch: Tjek tilgængelige data + caption_done: Fuldført + caption_done_description: Metadata hentet fra %{server_info} + description: Tjek, hvilke data Jira-installationen har til rådighed for import. + label_available_server_data: Tilgængelige data på %{server_info} + label_progress: Henter data fra Jira … + title: Hent installationens metadata groups_and_users: - title: Groups and Users + title: Grupper og brugere import_result: - button_done: Approve import - button_revert: Revert import - caption: Review import run or revert import - info: The imported data is currently in review mode. Click "Approve import" to make the import permanent or "Revert import" to undo all changes made in this import run. - label_finalize_import: Approve import - label_finalizing: Approving import... - label_finalizing_done: Import approved. - label_results: Imported - label_revert: Revert import - label_revert_progress: Reverting import... - label_reverted: Import reverted. + button_done: Godkend import + button_revert: Tilbagefør import + caption: Gennemse importkørslen, eller tilbagefør importen + info: De importerede data er i gennemsyns-tilstand. Klik på "Godkend import" for at gøre importen permanent eller på "Tilbagefør import" for at fortryde alle ændringer fra denne importkørsel. + label_finalize_import: Godkend import + label_finalizing: Godkender importen … + label_finalizing_done: Importen er godkendt. + label_results: Importeret + label_revert: Tilbagefør import + label_revert_progress: Tilbagefører importen … + label_reverted: Importen er tilbageført. stats: other_settings: - label: Other settings - subtitle: Including types and status + label: Andre indstillinger + subtitle: Herunder typer og status projects: - label: Projects - subtitle: Selected as scope - title: Data imported + label: Projekter + subtitle: Valgt som omfang + title: Importerede data users_and_groups: - label: Users & groups - subtitle: 'Involved in imported projects ' + label: Brugere og grupper + subtitle: 'Involveret i importerede projekter ' work_packages: - label: Work packages - subtitle: With attachments - title: Import run results + label: Arbejdspakker + subtitle: Med vedhæftede filer + title: Resultater af importkørslen import_scope: - button_continue: Continue - button_select: Select projects - button_select_projects: Select projects to import - caption: Choose what you want to import into OpenProject - caption_done: Completed + button_continue: Fortsæt + button_select: Vælg projekter + button_select_projects: Vælg projekter, der skal importeres + caption: Vælg, hvad du vil importere til OpenProject + caption_done: Fuldført caption_done_description: one: 1 project selected as scope other: "%{count} projects selected as scope" - description: Select what data you want to import from the available data fetched from the host Jira instance. + description: Vælg, hvilke af de data, der er hentet fra Jira-installationen, du vil importere. elements: - custom_fields: A subset of custom fields - issue_details: Issue description, history, comments and attachments - issue_ids: Issue identifiers - issues: Issues - permissions: Permissions - project_ids: Project identifiers - project_versions: Project versions - projects: Projects - relations: Relations between issues - schemes: Schemas - sprints: Sprint assignments - users: Involved users and groups - workflows: Project-level workflows - label_coming_later: Coming later - label_coming_soon: Coming soon - label_import: Select which projects you would like to import. - label_info: Please note that this import tool is in beta and cannot import all types of data. Here is a summary of what the host Jira instance offers for import and what this tool is able to import right now. - label_progress: Fetching data - label_selected_data: Selected data for import - label_supported_data: Supported data - title: Import scope + custom_fields: Et udvalg af brugerdefinerede felter + issue_details: Sagernes beskrivelse, historik, kommentarer og vedhæftede filer + issue_ids: Id'er for sager + issues: Sager + permissions: Tilladelser + project_ids: Projekt-id'er + project_versions: Projektversioner + projects: Projekter + relations: Relationer mellem sager + schemes: Skemaer + sprints: Tilknytning til sprints + users: Involverede brugere og grupper + workflows: Arbejdsgange på projektniveau + label_coming_later: Kommer senere + label_coming_soon: Kommer snart + label_import: Vælg, hvilke projekter du vil importere. + label_info: Bemærk, at importværktøjet er i beta og ikke kan importere alle typer data. Her er en oversigt over, hvad Jira-installationen har til import, og hvad værktøjet kan importere lige nu. + label_progress: Henter data + label_selected_data: Valgte data til import + label_supported_data: Understøttede data + title: Importens omfang select_projects: - button_select: Select - button_select_all: Select all - button_unselect_all: Unselect all - filter_projects: Filter by text - info: Only projects where the Jira token owner is member are selectable as import scope. - title: Select projects to import - stage_discarded_label: Error - stage_in_progress_label: Progress - stage_job_error: Error - stage_succeeded_label: Completed + button_select: Vælg + button_select_all: Vælg alle + button_unselect_all: Fravælg alle + filter_projects: Filtrér efter tekst + info: Kun projekter, som ejeren af Jira-tokenet er medlem af, kan vælges som omfang for importen. + title: Vælg projekter, der skal importeres + stage_discarded_label: Fejl + stage_in_progress_label: Status + stage_job_error: Fejl + stage_succeeded_label: Fuldført stages: '1': rest_line_text: '' - title: Fetch Jira configuration + title: Hent Jira-konfiguration '2': - rest_line_text: Fetching issues and versions for %{projects_number} more projects - title: Fetch project issues and versions + rest_line_text: Henter sager og versioner for %{projects_number} projekter mere + title: Hent projekternes sager og versioner '3': rest_line_text: '' - title: Fetch users and custom fields + title: Hent brugere og brugerdefinerede felter '4': rest_line_text: '' - title: Create users, groups and memberships + title: Opret brugere, grupper og medlemskaber '5': rest_line_text: '' - title: Create roles and custom fields + title: Opret roller og brugerdefinerede felter '6': - rest_line_text: Creating %{projects_number} more projects - title: Create projects + rest_line_text: Opretter %{projects_number} projekter mere + title: Opret projekter '7': - rest_line_text: Creating versions for %{projects_number} more projects - title: Create project versions + rest_line_text: Opretter versioner for %{projects_number} projekter mere + title: Opret projektversioner '8': - rest_line_text: Creating work packages for %{projects_number} more projects - title: Create work packages + rest_line_text: Opretter arbejdspakker for %{projects_number} projekter mere + title: Opret arbejdspakker '9': - rest_line_text: Downloading attachments for %{projects_number} more projects - title: Download attachments + rest_line_text: Henter vedhæftede filer for %{projects_number} projekter mere + title: Hent vedhæftede filer test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. - connection_error: 'Connection error: %{message}' - error: An unexpected error occurred while testing the connection - failed: 'Connection failed: Unable to retrieve server information' - invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection - parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. - success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. - title: Jira Migrator - token_deleted: Token was successfully deleted. + api_error: Jiras API returnerede fejlstatus %{status}. Kontrollér URL'en til din Jira-installation og API-tokenet. + connection_error: 'Forbindelsesfejl: %{message}' + error: Der opstod en uventet fejl under test af forbindelsen + failed: 'Forbindelsen mislykkedes: Serveroplysningerne kunne ikke hentes' + invalid_url: Angiv en gyldig URL + missing_credentials: Angiv både URL og personligt adgangstoken for at teste forbindelsen + parse_error: Svaret fra serveren kunne ikke fortolkes. Serveren er måske ikke en gyldig Jira-installation. + success: Forbundet til %{server} (version %{version}) + token_error: Ugyldigt API-token. Kontrollér loginoplysningerne i konfigurationen. + title: Jira-migrering + token_deleted: Tokenet er slettet. user: - unknown_name: Unknown + unknown_name: Ukendt journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. @@ -1902,97 +1902,97 @@ da: title: Access token table settings: new_project: - notification_text_default: "

Hello,

A new project has been created: projectValue:name

Thank you

\n" - project_creation: Project creation + notification_text_default: "

Hej

Der er oprettet et nyt projekt: projectValue:name

Tak

\n" + project_creation: Oprettelse af projekter project_custom_field_sections: destroy: - error: The section could not be deleted. + error: Afsnittet kunne ikke slettes. drop: - error: The section could not be reordered. + error: Afsnittets placering kunne ikke ændres. move: - error: The section could not be reordered. + error: Afsnittets placering kunne ikke ændres. user_custom_field_sections: destroy: - error: The section could not be deleted. + error: Afsnittet kunne ikke slettes. drop: - error: The section could not be reordered. + error: Afsnittets placering kunne ikke ændres. move: - error: The section could not be reordered. + error: Afsnittets placering kunne ikke ændres. versions_and_categories: banner: - button_more_information: More information - message: There are important upcoming changes to versions and categories. Please carefully review the following settings. + button_more_information: Flere oplysninger + message: Der kommer vigtige ændringer af versioner og kategorier. Gennemgå følgende indstillinger omhyggeligt. categories: - heading: Categories + heading: Kategorier planned_changes: - heading: Planned changes in a future release - renamed: The “Category” field will be renamed “Categories”. - single_value: This field is currently single-value. It will also be converted to allow multiple values. - upcoming_choice: You will be able to choose to enable multiple values before this automatic conversion happens. + heading: Planlagte ændringer i en kommende version + renamed: Feltet »Kategori« omdøbes til »Kategorier«. + single_value: Feltet kan i dag kun have én værdi. Det bliver også ændret, så det kan have flere værdier. + upcoming_choice: Du vil kunne vælge at slå flere værdier til, før den automatiske ændring sker. dialog: - checkbox_label: I understand that this action is not reversible - confirm_button: Enable - description_html: This will convert the existing single-value Version field to accept multiple values. No data will be lost but this may affect custom integrations. Please refer to the documentation before proceeding. - heading: Enable multiple target versions? - irreversible_notice: Once enabled, it will not be possible to go back to single values. - title: Enable multiple target versions + checkbox_label: Jeg forstår, at handlingen ikke kan fortrydes + confirm_button: Aktivér + description_html: Det eksisterende felt Version, som kun kan have én værdi, ændres, så det kan have flere værdier. Der går ingen data tabt, men det kan påvirke tilpassede integrationer. Læs dokumentationen, før du fortsætter. + heading: Vil du aktivere flere målversioner? + irreversible_notice: Når det er aktiveret, kan du ikke gå tilbage til én værdi. + title: Aktivér flere målversioner target_versions: action_required: - button: Enable multiple values - heading: Action required - manual_conversion_hint: You can choose to manually run the conversion to enable multiple values before this automatic migration happens. - not_writable_hint: These settings are configured via environment variables. If you would like to manually run the conversion to enable multiple values before the automatic migration, update your configuration.yml file. - heading: Target versions + button: Aktivér flere værdier + heading: Handling påkrævet + manual_conversion_hint: Du kan vælge at køre ændringen manuelt og slå flere værdier til, før den automatiske migrering sker. + not_writable_hint: Disse indstillinger er konfigureret med miljøvariabler. Hvis du vil køre ændringen til flere værdier manuelt før den automatiske migrering, skal du opdatere filen configuration.yml. + heading: Målversioner planned_changes: - heading: Planned changes in a future release - renamed: The “Version” field will be renamed “Target versions”. - single_value: This field is currently single-value. It will be converted to allow multiple values. + heading: Planlagte ændringer i en kommende version + renamed: Feltet »Version« omdøbes til »Målversioner«. + single_value: Feltet kan i dag kun have én værdi. Det bliver ændret, så det kan have flere værdier. recent_changes: - documentation_html: For more information on this change and how to update API clients, please refer to our documentation. - heading: Recent changes - multiple_values: The “Target versions” field now allows multiple values. - renamed: The “Version” field has now been renamed “Target versions”. + documentation_html: Du kan læse mere om ændringen, og hvordan API-klienter opdateres, i vores dokumentation. + heading: Seneste ændringer + multiple_values: Feltet »Målversioner« kan nu have flere værdier. + renamed: Feltet »Version« er nu omdøbt til »Målversioner«. work_packages_identifier: autofix_preview: - error_does_not_start_with_letter: Must start with an uppercase letter - error_in_use: Already in use as another project's active handle - error_not_fully_uppercased: Must be uppercase - error_numerical: Cannot be purely numerical - error_reserved_by_system: Reserved as a system keyword - error_special_characters: Special characters not allowed - error_too_long: Has to be 10 characters or fewer - error_unknown: Needs manual review - error_used_in_past: Reserved by another project's handle history + error_does_not_start_with_letter: Skal begynde med et stort bogstav + error_in_use: Er allerede i brug som et andet projekts aktive id + error_not_fully_uppercased: Skal skrives med store bogstaver + error_numerical: Må ikke kun bestå af tal + error_reserved_by_system: Er reserveret som nøgleord i systemet + error_special_characters: Specialtegn er ikke tilladt + error_too_long: Må højst være 10 tegn + error_unknown: Skal gennemses manuelt + error_used_in_past: Er reserveret, fordi et andet projekt tidligere har brugt det remaining_projects: one: "... 1 more project" other: "... %{count} more projects" banner: - existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. + existing_identifiers_notice: 'De eksisterende id''er for %{project_count} projekter opfylder ikke kravene til projektbaserede semantiske id''er. OpenProject kan opdatere dem automatisk, så de bliver gyldige som i eksemplerne nedenfor. Klik på ''Konvertér id''er'' for at opdatere id''erne for alle projekter på denne måde og slå projektbaserede semantiske id''er til. ' box_header: - label_autofixed_suggestion: Future identifier - label_example_work_package_id: Example work package ID - label_previous_identifier: Previous identifier - label_project: Project - table_title: Projects with identifiers to update - button_autofix: Convert identifiers - button_save: Convert identifiers + label_autofixed_suggestion: Fremtidigt id + label_example_work_package_id: Eksempel på arbejdspakke-id + label_previous_identifier: Tidligere id + label_project: Projekt + table_title: Projekter med id'er, der skal opdateres + button_autofix: Konvertér id'er + button_save: Konvertér id'er dialog: - checkbox_label: I understand that this will permanently change all work package IDs - confirm_button: Change identifiers - description: 'This will change IDs for all work packages in all projects in this instance. Previous identifiers and URLs will continue to work. This change will take some time to complete. + checkbox_label: Jeg forstår, at dette permanent ændrer alle arbejdspakkers id'er + confirm_button: Skift id'er + description: 'Id''erne ændres for alle arbejdspakker i alle projekter i denne installation. Tidligere id''er og URL''er virker fortsat. Ændringen tager noget tid. ' - heading: Enable project-based work package IDs? - title: Change work package identifiers + heading: Vil du aktivere projektbaserede id'er for arbejdspakker? + title: Skift arbejdspakkernes id'er in_progress: - footer_message: Background conversion is in progress. You can safely leave this page. - header_classic: Converting to numeric identifiers - header_semantic: Converting to project-based identifiers + footer_message: Konverteringen kører i baggrunden. Du kan roligt forlade siden. + header_classic: Konverterer til numeriske id'er + header_semantic: Konverterer til projektbaserede id'er page_header: - description: Choose between classic numerical work package IDs or semantic project-specific ones that prepend the project identifier to the work package ID. - success_banner: Successfully updated work package identifier format. + description: Vælg mellem klassiske numeriske id'er for arbejdspakker eller semantiske, projektspecifikke id'er, hvor projektets id sættes foran arbejdspakkens id. + success_banner: Formatet for arbejdspakkers id'er er opdateret. text_transform_actions: delete_dialog_component: description: Users will no longer be able to run this action in the rich text editor. @@ -2089,28 +2089,28 @@ da: deprecated: 'Deprecated: this single-valued field is being replaced by `targetVersions`. Read and write `targetVersions` instead. While multiple versions is not enabled, `targetVersions` accepts at most one value and must not be written together with `version` in the same request.' errors: bad_request: - emoji_reactions_activity_type_not_supported: This activity type does not support emoji reactions. - invalid_link: The link under key '%{key}' is not valid. - links_not_an_object: _links must be a JSON object. - code_400: 'Bad request: %{message}' + emoji_reactions_activity_type_not_supported: Denne aktivitetstype understøtter ikke emoji-reaktioner. + invalid_link: Linket under nøglen '%{key}' er ugyldigt. + links_not_an_object: _links skal være et JSON-objekt. + code_400: 'Ugyldig forespørgsel: %{message}' code_401: Du skal være logget ind for at få adgang til denne ressource. code_401_wrong_credentials: Du har ikke givet korrekte loginoplysninger. code_403: Du har ikke tilladelse til at få adgang til denne ressource. code_404: Den forespurgte ressource kunne ikke findes. - code_409: Could not update the resource because of conflicting modifications. - code_429: Too many requests. Please try again later. + code_409: Ressourcen kunne ikke opdateres på grund af modstridende ændringer. + code_429: For mange forespørgsler. Prøv igen senere. code_500: En intern fejl opstod. code_500_missing_enterprise_token: The request can not be handled due to invalid or missing Enterprise token. - code_500_outbound_request_failure: An outbound request to another resource has failed with status code %{status_code}. + code_500_outbound_request_failure: En udgående forespørgsel til en anden ressource mislykkedes med statuskoden %{status_code}. conflict: - multiple_reminders_not_allowed: You can only set one reminder at a time for a work package. Please delete or update the existing reminder. + multiple_reminders_not_allowed: Du kan kun have én påmindelse ad gangen for en arbejdspakke. Slet eller opdater den eksisterende påmindelse. eprops: - invalid_gzip: 'is invalid gzip: %{message}' - invalid_json: 'is invalid json: %{message}' + invalid_gzip: 'er ugyldig gzip: %{message}' + invalid_json: 'er ugyldig JSON: %{message}' expected: - date: YYYY-MM-DD (ISO 8601 date only) - datetime: YYYY-MM-DDThh:mm:ss[.lll][+hh:mm] (any compatible ISO 8601 datetime) - duration: ISO 8601 duration + date: ÅÅÅÅ-MM-DD (kun ISO 8601-dato) + datetime: ÅÅÅÅ-MM-DDThh:mm:ss[.lll][+hh:mm] (et kompatibelt ISO 8601-tidspunkt) + duration: ISO 8601-varighed invalid_content_type: Forventet CONTENT-TYPE skal være '%{content_type}' men fik '%{actual}'. invalid_format: 'Ugyldigt format for egenskaben ''%{property}'': forventede format som ''%{expected_format}'', men fik ''%{actual}''.' invalid_json: Forespørgslen kunne ikke fortolkes som JSON. @@ -2121,24 +2121,24 @@ da: select: Det ønskede valg af %{invalid} understøttes ikke. Understøttede vælger er %{supported}. invalid_user_status_transition: Den aktuelle bruger konto status tillader ikke denne handling. missing_content_type: ikke angivet - missing_or_malformed_parameter: The query parameter '%{parameter}' is missing or malformed. - missing_property: Missing property '%{property}'. + missing_or_malformed_parameter: Forespørgselsparameteren '%{parameter}' mangler eller er forkert udformet. + missing_property: Egenskaben '%{property}' mangler. missing_request_body: Der var ikke noget indhold i forespørgslen. multipart_body_error: Forespørgslen indeholdt ikke de forventede opdelte oplysninger. multiple_errors: Flere begrænsninger for feltet er overtrådt. not_found: - reminder: The reminder you are looking for cannot be found or has been deleted. - work_package: The work package you are looking for cannot be found or has been deleted. + reminder: Påmindelsen, som du leder efter, findes ikke eller er slettet. + work_package: Arbejdspakken, som du leder efter, findes ikke eller er slettet. render: context_not_parsable: Den anviste sammenhæng er ikke et link til en ressource. context_object_not_found: Kan ikke finde ressourcen, der ar angivet som sammenhæng. unsupported_context: Den givne ressource understøttes ikke som korrekt sammenhæng. - unable_to_create_attachment: The attachment could not be created - unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions + unable_to_create_attachment: Den vedhæftede fil kunne ikke oprettes + unable_to_create_attachment_permissions: Den vedhæftede fil kunne ikke gemmes, fordi der mangler tilladelser i filsystemet user: - name_readonly: The name attribute is read-only. Changes can be written through the attributes firstname and lastname. + name_readonly: Attributten name er skrivebeskyttet. Ændringer kan skrives via attributterne firstname og lastname. validation: - due_date: Finish date cannot be set on parent work packages. + due_date: Slutdato kan ikke angives for overordnede arbejdspakker. invalid_user_assigned_to_work_package: Den valgte bruger er ikke tilladt at være '%{property}' for denne arbejdspakke. start_date: Startdato kan ikke angives for overordnede arbejdspakker. resources: @@ -2181,7 +2181,7 @@ da: custom_values: Selvvalgte felter customized: Customized date: Dato - dates_interval: Datointerval + dates_interval: Periode default_columns: Forudvalgte kolonner derived_due_date: Derived finish date derived_estimated_hours: Total work @@ -2222,7 +2222,7 @@ da: password: Adgangskode principal: User or group priority: Prioritet - project: Prjoekt + project: Projekt project_ids: Project IDs project_phase: Project phase project_phase_definition: Project phase @@ -2232,7 +2232,7 @@ da: required: Påkrævet responsible: Accountable role: Rolle - roles: Rollee + roles: Roller search: Søg slug: Slug sprint: Sprint @@ -2834,151 +2834,151 @@ da: status: Pre-authorization ee: features: - baseline_comparison: Baseline Comparisons - board_view: Advanced Boards - calculated_values: Calculated values - capture_external_links: Capture External Links - custom_actions: Custom Actions - custom_field_hierarchies: Hierarchies - customize_life_cycle: Customize Life Cycle - define_custom_style: Custom theme and logo - edit_attribute_groups: Edit Attribute Groups - gantt_pdf_export: Gantt PDF Export - internal_comments: Internal Comments - ldap_groups: LDAP users and group sync + baseline_comparison: Baseline-sammenligninger + board_view: Avancerede tavler + calculated_values: Beregnede værdier + capture_external_links: Opfang eksterne links + custom_actions: Brugerdefinerede handlinger + custom_field_hierarchies: Hierarkier + customize_life_cycle: Tilpas livscyklus + define_custom_style: Eget tema og logo + edit_attribute_groups: Rediger attributgrupper + gantt_pdf_export: PDF-eksport af Gantt-diagrammer + internal_comments: Interne kommentarer + ldap_groups: Synkronisering af LDAP-brugere og -grupper mcp_server: Model Context Protocol (MCP) - meeting_templates: Reusable meeting templates - nextcloud_sso: Single Sign-On for Nextcloud Storage - one_drive_sharepoint_file_storage: OneDrive/SharePoint File Storage - placeholder_users: Placeholder Users - portfolio_management: Portfolio management - project_creation_wizard: Project initiation request - project_list_sharing: Project List Sharing - readonly_work_packages: Readonly Work Packages - scim_api: SCIM server API - sso_auth_providers: Single Sign-On - team_planner_view: Team Planner View - virus_scanning: Antivirus Scanning - weighted_item_lists: Weighted item lists - work_package_query_relation_columns: Work Package Query Relation Columns - work_package_sharing: Share work packages with external users - work_package_subject_generation: Work Package Subject Generation + meeting_templates: Genbrugelige skabeloner til møder + nextcloud_sso: Single sign-on til Nextcloud-lager + one_drive_sharepoint_file_storage: OneDrive/SharePoint-fillager + placeholder_users: Pladsholder-brugere + portfolio_management: Porteføljestyring + project_creation_wizard: Anmodning om projektinitiering + project_list_sharing: Deling af projektlister + readonly_work_packages: Skrivebeskyttede arbejdspakker + scim_api: SCIM-server-API + sso_auth_providers: Single sign-on + team_planner_view: Teamplanlægger + virus_scanning: Antivirusscanning + weighted_item_lists: Vægtede lister + work_package_query_relation_columns: Relationskolonner i visninger af arbejdspakker + work_package_sharing: Del arbejdspakker med eksterne brugere + work_package_subject_generation: Automatisk dannede emner for arbejdspakker teaser: - description_html: You have access to all %{trial_plan} features. + description_html: Du har adgang til alle funktioner i %{trial_plan}. title: one: One day left of %{trial_plan} trial token other: "%{count} days left of %{trial_plan} trial token" trial: - already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. + already_retrieved: 'Dit Enterprise-prøvetoken er allerede hentet. Se efter tokenet i dine e-mails, hvor det er vedhæftet. Kontakt vores supportteam, hvis du har brug for et nyt. ' - confirmation_info: 'We sent you an email on %{date} to %{email} with all the information to start the free trial of OpenProject Enterprise. Please check your inbox and click the confirmation link provided to start your 14-day free trial. + confirmation_info: 'Vi sendte dig en e-mail den %{date} til %{email} med alle oplysninger om at starte den gratis prøveperiode for OpenProject Enterprise. Tjek din indbakke, og klik på bekræftelseslinket for at starte din gratis prøveperiode på 14 dage. ' - confirmation_subline: 'Please, check your inbox and follow the steps to start your 14-day free trial. + confirmation_subline: 'Tjek din indbakke, og følg trinene for at starte din gratis prøveperiode på 14 dage. ' - consent: I agree with the [terms of service](tos_url) and the [privacy policy](privacy_url). - domain_caption: The token will be valid for your currently configured host name. - not_found: You have requested a trial token, but that request is no longer available. Please try again. - receive_newsletter: I want to receive the OpenProject [newsletter](newsletter_url). - request_again: Request again - resend_action: Resend confirmation email - successfully_saved: Your trial enterprise token has been successfully retrieved. - token_sent: Trial token requested - wait_for_confirmation: We sent you an email to confirm your address in order to retrieve a trial token. - welcome_description: Get a quick overview of project management and team collaboration with OpenProject Enterprise edition. - welcome_title: Quick feature overview + consent: Jeg accepterer [servicevilkårene](tos_url) og [privatlivspolitikken](privacy_url). + domain_caption: Tokenet gælder for det værtsnavn, der er konfigureret nu. + not_found: Du har anmodet om et prøvetoken, men anmodningen findes ikke længere. Prøv igen. + receive_newsletter: Jeg vil gerne modtage OpenProjects [nyhedsbrev](newsletter_url). + request_again: Anmod igen + resend_action: Send e-mailen med bekræftelse igen + successfully_saved: Dit Enterprise-prøvetoken er hentet. + token_sent: Prøvetoken anmodet om + wait_for_confirmation: Vi har sendt dig en e-mail, så du kan bekræfte din adresse og hente et prøvetoken. + welcome_description: Få et hurtigt overblik over projektstyring og samarbejde i teams med OpenProject Enterprise-udgaven. + welcome_title: Hurtigt overblik over funktionerne upsell: - already_have_token: 'Already have a token? Add it using the button below to upgrade to the booked Enterprise plan. + already_have_token: 'Har du allerede et token? Tilføj det med knappen nedenfor for at opgradere til den bestilte Enterprise-plan. ' baseline_comparison: - description: Highlight changes made to this list since any point in the past. + description: Fremhæv ændringer i listen siden et vilkårligt tidspunkt tilbage i tiden. benefits: - description: What are the benefits of the Enterprise on-premises edition? - high_security: Sikkerheds funktioner - high_security_text: Single sign on (SAML, OpenID Connect, CAS), LDAP groups. - installation: Installations support - installation_text: Erfarne software ingeniører guide dig gennem den komplette installation og setup proces i din egen infrastruktur. - premium_features: Enterprise add-ons - premium_features_text: Agile tavler, brugerdefineret tema og logo, grafer, intelligente arbejdsgange med brugerdefinerede handlinger, fuld tekst søgning efter vedhæftede filer arbejde og multi-valgs brugerdefinerede felter. + description: Hvad er fordelene ved Enterprise-udgaven til egen drift? + high_security: Sikkerhedsfunktioner + high_security_text: Single sign-on (SAML, OpenID Connect, CAS), LDAP-grupper. + installation: Installationssupport + installation_text: Erfarne udviklere guider dig gennem hele installationen og opsætningen i din egen infrastruktur. + premium_features: Enterprise-tilføjelser + premium_features_text: Agile tavler, eget tema og logo, grafer, intelligente arbejdsgange med brugerdefinerede handlinger, fuldtekstsøgning i vedhæftede filer til arbejdspakker og brugerdefinerede felter med flere valg. professional_support: Professionel support - professional_support_text: Få pålidelig, høj-touch support fra senior support ingeniører med ekspert viden om at køre OpenProject i forretningskritiske miljøer. - buy_now_button: Buy now + professional_support_text: Få pålidelig og personlig support fra erfarne supportmedarbejdere med ekspertviden om drift af OpenProject i forretningskritiske miljøer. + buy_now_button: Køb nu calculated_values: - description: Calculated values allow you to create a mathematical formula based attribute using numeric values and other project attributes and custom fields. + description: Med beregnede værdier kan du oprette en attribut ud fra en matematisk formel med talværdier og andre projektattributter og brugerdefinerede felter. capture_external_links: - description: Prevent social engineering attacks by capturing and warning about external links before users visit them. + description: Forebyg social engineering-angreb ved at opfange eksterne links og advare om dem, før brugerne åbner dem. custom_actions: - description: Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project. + description: Brugerdefinerede handlinger er genveje, der med ét klik udfører en række foruddefinerede handlinger. Du kan gøre dem tilgængelige på bestemte arbejdspakker ud fra status, rolle, type eller projekt. title: Brugerdefinerede handlinger custom_field_hierarchies: - description: Hierarchy custom fields allow organizing hierarchical structures in work packages and projects by making use of multi-level select lists. + description: Brugerdefinerede felter af typen hierarki gør det muligt at ordne hierarkiske strukturer i arbejdspakker og projekter med valglister i flere niveauer. customize_life_cycle: - description: Create and organize different project phases than the ones provided by PM2 project cycle planning. + description: Opret og organiser andre projektfaser end dem, som PM²-projektmodellen giver. define_custom_style: - description: Customize your OpenProject installation with your own logo and colors. - more_info: 'Note: the used logo will be publicly accessible.' - title: Custom color theme and logo + description: Tilpas din OpenProject-installation med dit eget logo og dine egne farver. + more_info: 'Bemærk: Logoet bliver offentligt tilgængeligt.' + title: Eget farvetema og logo edit_attribute_groups: - description: 'Customize the form with these additional add-ons:' + description: 'Tilpas formularen med disse ekstra tilføjelser:' features: - groups: Add new attribute sections - related: Add a table of related work packages - rename: Rename attribute sections - hide_banner: Hide this banner - homescreen_description: 'Enterprise plans extend the Community edition of OpenProject with additional [Enterprise add-ons](enterprise_url) and professional support, ideal for organizations running OpenProject in a mission-critical environment. + groups: Tilføj nye attributafsnit + related: Tilføj en tabel med relaterede arbejdspakker + rename: Omdøb attributafsnit + hide_banner: Skjul banneret + homescreen_description: 'Enterprise-planerne udvider OpenProjects Community-udgave med ekstra [Enterprise-tilføjelser](enterprise_url) og professionel support – ideelt for organisationer, der bruger OpenProject i et forretningskritisk miljø. ' - homescreen_subline: By upgrading, you will also be supporting an open source project. + homescreen_subline: Når du opgraderer, støtter du også et open source-projekt. internal_comments: - description: Internal comments allow an internal team to communicate amongst themselves privately. These are only visible to certain project roles and will never be visible publicly. - title: Internal comments + description: Med interne kommentarer kan et internt team kommunikere privat. De er kun synlige for bestemte projektroller og bliver aldrig offentligt synlige. + title: Interne kommentarer internal_comments_inline: description: " " - title: Write internal comments only a small group can see + title: Skriv interne kommentarer, som kun en lille gruppe kan se mcp_server: - description: Bring OpenProject into your AI workflows with a secure MCP server. + description: Få OpenProject med i dine AI-arbejdsgange med en sikker MCP-server. meeting_templates: - description: Define meeting templates with a set agenda structure and save time by reusing them when creating new meetings. + description: Definer mødeskabeloner med en fast dagsordensstruktur, og spar tid ved at genbruge dem, når du opretter nye møder. nextcloud_sso: - description: Enable seamless and secure authentication for your Nextcloud storage with Single Sign-On. Simplify access management and enhance user convenience. - title: Single Sign-On for Nextcloud Storage + description: Gør godkendelsen til dit Nextcloud-lager nem og sikker med single sign-on. Gør adgangsstyringen enklere og brugerne mere tilfredse. + title: Single sign-on til Nextcloud-lager placeholder_users: - description: 'Placeholder users are a way to assign work packages to users who are not part of your project. They can be useful in a range of scenarios; for example, if you need to track tasks for a resource that is not yet named or available, or if you don’t want to give that person access to OpenProject but still want to track tasks assigned to them. + description: 'Med pladsholder-brugere kan du tildele arbejdspakker til personer, der ikke er med i dit projekt. De er nyttige i mange situationer, fx hvis du skal følge opgaver for en ressource, der endnu ikke har et navn eller ikke er tilgængelig, eller hvis du ikke vil give personen adgang til OpenProject, men stadig vil følge de opgaver, der er tildelt vedkommende. ' - title: Pladsholder brugere - plan_name: "%{plan} enterprise plan" - plan_text_html: Available starting with the %{plan_name}. - plan_title: Enterprise %{plan} add-on - plans_title: Enterprise plans + title: Pladsholder-brugere + plan_name: Enterprise-planen %{plan} + plan_text_html: Tilgængelig fra og med %{plan_name}. + plan_title: Enterprise-tilføjelse i %{plan} + plans_title: Enterprise-planer portfolio_management: - description: Align your projects to your strategic goals by organizing them into portfolios and programs. + description: Bring dine projekter i overensstemmelse med dine strategiske mål ved at samle dem i porteføljer og programmer. project_creation_wizard: - description: Generate a step-by-step wizard to help project managers fill out a project initiation request. + description: Dan en trinvis guide, der hjælper projektledere med at udfylde en anmodning om projektinitiering. project_list_sharing: - description: Share project lists with individual users. + description: Del projektlister med enkelte brugere. readonly_work_packages: - description: Mark work packages as read-only for specific statuses. + description: Markér arbejdspakker som skrivebeskyttede ved bestemte statusser. scim_api: - description: Automate user management in OpenProject by seamlessly integrating external identity services like Microsoft Entra or Keycloak through our SCIM Server API. Available starting with the Enterprise corporate plan. - title: SCIM clients + description: Automatiser brugeradministrationen i OpenProject ved at integrere eksterne identitetstjenester som Microsoft Entra eller Keycloak via vores SCIM-server-API. Tilgængelig fra og med Enterprise-planen corporate. + title: SCIM-klienter sso_auth_providers: - description: Enable users to log in via external SSO providers using SAML or OpenID Connect for seamless access and integration with existing identity systems. - title: Single Sign-On (SSO) - title: Enterprise add-on - trial_text: This feature is included in your active Enterprise trial. + description: Lad brugerne logge ind via eksterne SSO-udbydere med SAML eller OpenID Connect, så de får nem adgang, og løsningen spiller sammen med eksisterende identitetssystemer. + title: Single sign-on (SSO) + title: Enterprise-tilføjelse + trial_text: Funktionen er med i din aktive Enterprise-prøveperiode. unlimited: Ubegrænset virus_scanning: - description: Ensure uploaded files in OpenProject are scanned for viruses before being accessible by other users. + description: Sørg for, at filer, der overføres til OpenProject, scannes for virus, før andre brugere får adgang til dem. weighted_item_lists: - description: Weighted item lists allow you to create a list with underlying numeric values associated. + description: Med vægtede lister kan du oprette en liste, hvor hvert element har en tilknyttet talværdi. work_package_sharing: - description: Share work packages with users who are not members of the project. + description: Del arbejdspakker med brugere, der ikke er medlemmer af projektet. work_package_subject_generation: - description: Create automatically generated subjects using referenced attributes and text. + description: Opret automatisk dannede emner med refererede attributter og tekst. email_calendar_updates: button: disabled: Enable @@ -3425,7 +3425,7 @@ da: label_activate_user: Aktivér bruger label_active: Aktiv label_active_in_new_projects: Aktiv i nye projekter - label_activity: Aktivivtet + label_activity: Aktivitet label_add_another_file: Tilføj en anden fil label_add_column: Tilføj kolonne label_add_columns: Tilføj valgte kolonner @@ -3506,7 +3506,7 @@ da: label_change_view_all: Se alle ændringer label_changes_details: Detaljer for alle ændringer label_changeset_id: Changeset-id - label_changeset_plural: Pakker af ændringer + label_changeset_plural: Ændringssæt label_changeset_versions: Changeset-versioner label_check_uncheck_all_in_column: Markér/Afmarkér alle i kolonnen label_check_uncheck_all_in_row: Markér/Afmarkér alle i rækken @@ -3644,7 +3644,7 @@ da: label_example: Eksempel label_expand: Udvid label_expanded_click_to_collapse: Foldet ud. Klik for at folde sammen - label_experimental: Eksperimental + label_experimental: Eksperimentelt label_export_plural: Eksporter label_export_to: 'Også til rådighed i:' label_external_links: Eksterne links @@ -3837,7 +3837,7 @@ da: label_nobody: ingen label_non_working_days: Tilgængelighedskalender label_non_working_days_summary: Oversigt - label_non_working_days_with_count: Ikke-arbejdsdage (%{count}) + label_non_working_days_with_count: Arbejdsfrie dage (%{count}) label_non_working_times_summary: Oversigt %{year} label_non_working_times_with_count: Fravær %{year} (%{count}) label_none: ingen @@ -3910,7 +3910,7 @@ da: label_program: Program label_program_new: Nyt program label_progress_tracking: Opfølgning på fremdrift - label_project: Prjoekt + label_project: Projekt label_project_activity: Projektaktivitet label_project_attribute_manage_link: Administrer projektattributter label_project_attribute_plural: Projektattributter @@ -3987,7 +3987,7 @@ da: label_role_grantable: Rolle, der kan tildeles label_role_missing_permissions: "%{role} (mangler påkrævede tilladelser)" label_role_new: Ny rolle - label_role_plural: Rollee + label_role_plural: Roller label_role_search: Tildel rolle til nye medlemmer label_role_type: Type label_schedule_and_availability: Arbejdstid og tilgængelighed @@ -4063,8 +4063,8 @@ da: label_topic_plural: Emner label_total: Total  label_total_days_off: Fridage i alt - label_total_global_non_working_days: Globale ikke-arbejdsdage - label_total_user_non_working_times: Personlige ikke-arbejdsdage + label_total_global_non_working_days: Globale arbejdsfrie dage + label_total_user_non_working_times: Personlige arbejdsfrie dage label_type_new: Ny type label_type_plural: Typer label_ui: Brugergrænseflade @@ -4544,143 +4544,143 @@ da: title: Confirm your password to continue my_account: access_tokens: - access_tokens: Access tokens - description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + access_tokens: Adgangstokens + description: Udbydertokens udstedes af OpenProject og giver andre programmer adgang til OpenProject. Klienttokens udstedes af andre programmer og giver OpenProject adgang til dem. headers: action: Handling expiration: Udløber ical: - blank_description: To add an iCalendar token, subscribe to a new or existing calendar from within the Calendar module of a project. You must have the necessary permissions. - blank_title: No iCalendar token - disabled_text: iCalendar subscriptions are not enabled by the administrator. Please contact your administrator to use this feature. - table_title: iCalendar tokens - text_hint_link: iCalendar tokens allow users to [subscribe to OpenProject calendars](docs_url) and view up-to-date work package information from external clients. + blank_description: Du tilføjer et iCalendar-token ved at abonnere på en ny eller eksisterende kalender fra et projekts kalendermodul. Du skal have de nødvendige tilladelser. + blank_title: Intet iCalendar-token + disabled_text: iCalendar-abonnementer er ikke aktiveret af administratoren. Kontakt din administrator for at bruge funktionen. + table_title: iCalendar-tokens + text_hint_link: Med iCalendar-tokens kan brugerne [abonnere på OpenProject-kalendere](docs_url) og se aktuelle oplysninger om arbejdspakker i eksterne programmer. title: iCalendar indefinite_expiration: Aldrig no_results: description: De er alle blevet deaktiveret. De kan genaktiveres i administrationsmenuen. title: Ingen adgangstegn til at vise oauth_application: - active_tokens: Active tokens - blank_description: There is no third-party application access configured and active for you. - blank_title: No OAuth application token - last_refreshed_at: Last refreshed at - table_title: OAuth application tokens - text_hint: OAuth application tokens allow third-party applications to connect with this OpenProject instance. + active_tokens: Aktive tokens + blank_description: Der er ikke konfigureret og aktiveret adgang for tredjepartsprogrammer for dig. + blank_title: Intet token til OAuth-program + last_refreshed_at: Senest fornyet + table_title: Tokens til OAuth-programmer + text_hint: Med tokens til OAuth-programmer kan tredjepartsprogrammer oprette forbindelse til denne OpenProject-installation. title: OAuth oauth_client: - blank_description: There are no OAuth client tokens yet. - blank_title: No OAuth client tokens - failed: An error occurred and the token couldn't be removed. Please try again later. - integration_type: Integration type - remove_token: Do you really want to remove this token? You will need to login again on %{integration}. - removed: OAuth client token successfully removed - table_title: OAuth client tokens - text_hint: OAuth client tokens allow this OpenProject instance to connect with external applications, such as file storages. + blank_description: Der er endnu ingen OAuth-klienttokens. + blank_title: Ingen OAuth-klienttokens + failed: Der opstod en fejl, og tokenet kunne ikke fjernes. Prøv igen senere. + integration_type: Integrationstype + remove_token: Vil du virkelig fjerne tokenet? Du skal logge ind igen på %{integration}. + removed: OAuth-klienttokenet er fjernet + table_title: OAuth-klienttokens + text_hint: Med OAuth-klienttokens kan denne OpenProject-installation oprette forbindelse til eksterne programmer, fx fillagre. title: OAuth - unknown_integration: Unknown - simple_revoke_confirmation: Are you sure you want to revoke this token? + unknown_integration: Ukendt + simple_revoke_confirmation: Er du sikker på, at du vil tilbagekalde tokenet? storages: - unknown_storage: Unknown storage + unknown_storage: Ukendt lager tabs: client: - title: Client tokens + title: Klienttokens provider: - title: Provider tokens + title: Udbydertokens token/api: - add_button: API token - blank_description: There is no API token yet. You can create one using the button below. - blank_title: No API token - disabled_text: API tokens are not enabled by the administrator. Please contact your administrator to use this feature. - static_token_name: API token - table_title: API tokens - text_hint: API tokens allow third-party applications to communicate with this OpenProject instance via REST APIs. + add_button: API-token + blank_description: Der er endnu intet API-token. Du kan oprette et med knappen nedenfor. + blank_title: Intet API-token + disabled_text: API-tokens er ikke aktiveret af administratoren. Kontakt din administrator for at bruge funktionen. + static_token_name: API-token + table_title: API-tokens + text_hint: Med API-tokens kan tredjepartsprogrammer kommunikere med denne OpenProject-installation via REST-API'er. title: API token/rss: - add_button: RSS token - blank_description: There is no RSS token yet. You can create one using the button below. - blank_title: No RSS token - disabled_text: RSS tokens are not enabled by the administrator. Please contact your administrator to use this feature. - static_token_name: RSS token - table_title: RSS tokens - text_hint: RSS tokens allow users to keep up with the latest changes in this OpenProject instance via an external RSS reader. + add_button: RSS-token + blank_description: Der er endnu intet RSS-token. Du kan oprette et med knappen nedenfor. + blank_title: Intet RSS-token + disabled_text: RSS-tokens er ikke aktiveret af administratoren. Kontakt din administrator for at bruge funktionen. + static_token_name: RSS-token + table_title: RSS-tokens + text_hint: Med RSS-tokens kan brugerne følge med i de seneste ændringer i denne OpenProject-installation via en ekstern RSS-læser. title: RSS email_reminders: daily_reminders: - add_time: Add time - description: You will receive these reminders only for unread notifications and only at hours you specify. Until you configure a time zone for your account, the times will be interpreted to be in UTC. - enabled: Enable daily email reminders - remove_time: Remove time - time_slot_label: Reminder time (UTC) - title: Send me daily email reminders for unread notifications + add_time: Tilføj tidspunkt + description: Du får kun disse påmindelser om ulæste notifikationer og kun på de tidspunkter, som du angiver. Indtil du har angivet en tidszone for din konto, regnes tidspunkterne i UTC. + enabled: Aktivér daglige påmindelser via e-mail + remove_time: Fjern tidspunkt + time_slot_label: Tidspunkt for påmindelse (UTC) + title: Send mig daglige påmindelser via e-mail om ulæste notifikationer email_alerts: - description: Notifications today are limited to work packages. You can choose to continue receiving email alerts for these events until they are included in notifications. - document_added: Document added - forum_messages: Forum message posted - membership_added: Membership added - membership_updated: Membership updated - news_added: News added - news_commented: Comment on a news item - submit_button: Update alerts - title: Email alerts for other items that are not work packages - wiki_page_added: Wiki page added - wiki_page_updated: Wiki page updated + description: Notifikationer gælder i dag kun arbejdspakker. Du kan vælge fortsat at få e-mailbeskeder om disse hændelser, indtil de kommer med i notifikationerne. + document_added: Dokument tilføjet + forum_messages: Meddelelse i forum + membership_added: Medlemskab tilføjet + membership_updated: Medlemskab opdateret + news_added: Nyhed tilføjet + news_commented: Kommentar til en nyhed + submit_button: Opdater beskeder + title: E-mailbeskeder om andet end arbejdspakker + wiki_page_added: Wikiside tilføjet + wiki_page_updated: Wikiside opdateret immediate_reminders: - mentioned: Notify me when I am mentioned - personal_reminder: Notify me for personal reminders - title: Send me an email reminder + mentioned: Giv mig besked, når jeg bliver omtalt + personal_reminder: Giv mig besked om personlige påmindelser + title: Send mig en påmindelse via e-mail pause_reminders: - date_range: Pause period - enabled: Temporarily pause daily email reminders - title: Pause email notifications + date_range: Pauseperiode + enabled: Sæt daglige påmindelser via e-mail på pause midlertidigt + title: Sæt notifikationer via e-mail på pause workdays: - submit_button: Update reminder days - title: Receive email reminders on these days + submit_button: Opdater påmindelsesdage + title: Få påmindelser via e-mail på disse dage notifications: date_alerts: - description: You can configure date alerts for work packages where you are assignee, accountable and/or watcher to be automatically notified a few days prior to approaching or overdue deadlines. - due_date: Finish date - overdue: Overdue - start_date: Start date - submit_button: Update date alerts + description: Du kan indstille datobeskeder for arbejdspakker, hvor du er tildelt, ansvarlig og/eller tilsynsførende, så du automatisk får besked nogle dage før en frist eller efter, at den er overskredet. + due_date: Slutdato + overdue: Overskredet + start_date: Startdato + submit_button: Opdater datobeskeder times: - one_day_after: 1 day after - one_day_before: 1 day before - same_day: On the same day - seven_days_after: 7 days after - seven_days_before: 7 days before - three_days_after: 3 days after - three_days_before: 3 days before - title: Date alerts + one_day_after: 1 dag efter + one_day_before: 1 dag før + same_day: Samme dag + seven_days_after: 7 dage efter + seven_days_before: 7 dage før + three_days_after: 3 dage efter + three_days_before: 3 dage før + title: Datobeskeder non_participating: - description: You can additionally choose to be notified of any of the following activities for all projects. - submit_button: Update preferences - title: Non-participating - work_package_commented: All new comments - work_package_created: New work packages - work_package_prioritized: All priority changes - work_package_processed: All status changes - work_package_scheduled: All date changes + description: Du kan også vælge at få besked om følgende aktiviteter i alle projekter. + submit_button: Opdater præferencer + title: Ikke involveret + work_package_commented: Alle nye kommentarer + work_package_created: Nye arbejdspakker + work_package_prioritized: Alle ændringer af prioritet + work_package_processed: Alle ændringer af status + work_package_scheduled: Alle ændringer af datoer participating: - assignee: Assignee - description: You will always receive a notification whenever you are mentioned, and for changes to work packages you are watching. These cannot be disabled. However, you can choose to enable or disable receiving notifications for changes to work packages that concern you (where you are assignee, accountable or are shared with you). - mentioned: Mentioned - responsible: Accountable - shared: Shared with me - submit_button: Update preferences - title: Participating - watched: Watching + assignee: Tildelt + description: Du får altid en notifikation, når du bliver omtalt, og ved ændringer i arbejdspakker, som du er tilsynsførende for. Det kan ikke slås fra. Du kan dog selv vælge, om du vil have notifikationer om ændringer i arbejdspakker, der vedrører dig (hvor du er tildelt eller ansvarlig, eller som er delt med dig). + mentioned: Omtalt + responsible: Ansvarlig + shared: Delt med mig + submit_button: Opdater præferencer + title: Involveret + watched: Tilsynsførende project_specific_settings: - add_button: Add project-specific notifications - description: You can fine-tune your notification settings to only be notified of certain events in specific projects. Add a project below and choose which events should trigger a notification for you. These project-specific settings override default settings above. - dialog_title: Add project-specific notifications - list_header: Projects with specific notifications - title: Project-specific notifications + add_button: Tilføj projektspecifikke notifikationer + description: Du kan finjustere dine notifikationsindstillinger, så du kun får besked om bestemte hændelser i bestemte projekter. Tilføj et projekt nedenfor, og vælg, hvilke hændelser der skal give dig en notifikation. De projektspecifikke indstillinger tilsidesætter standardindstillingerne ovenfor. + dialog_title: Tilføj projektspecifikke notifikationer + list_header: Projekter med særlige notifikationer + title: Projektspecifikke notifikationer notifications_and_email: tabs: - email_reminders: Email reminders - notifications: Notification settings - title: Notification and email + email_reminders: Påmindelser via e-mail + notifications: Notifikationsindstillinger + title: Notifikationer og e-mail news: index: no_results_content_text: Add a news item @@ -4934,53 +4934,53 @@ da: welcome: Welcome to %{app_title} op_dry_validation: errors: - array?: must be an array. - decimal?: must be a decimal. - defined: must not be defined. - eql?: must be equal to %{left}. - filled?: must be filled. + array?: skal være et array. + decimal?: skal være et decimaltal. + defined: må ikke være defineret. + eql?: skal være lig med %{left}. + filled?: skal udfyldes. format?: is in invalid format. - greater_or_equal_zero: must be greater or equal to 0. - gteq?: must be greater than or equal to %{num}. - hash?: must be a hash. + greater_or_equal_zero: skal være større end eller lig med 0. + gteq?: skal være større end eller lig med %{num}. + hash?: skal være en hash. included_in?: arg: - default: 'must be one of: %{list}.' - range: 'must be one of: %{list_left} - %{list_right}.' - int?: must be an integer. - key?: is missing. - not_found: not found. - respond_to?: does not implement required method. + default: 'skal være en af: %{list}.' + range: 'skal være en af: %{list_left} - %{list_right}.' + int?: skal være et heltal. + key?: mangler. + not_found: blev ikke fundet. + respond_to?: implementerer ikke den påkrævede metode. rules: copy_workflow_from: workflow_missing: has no own workflow. custom_field: - format_not_supported: format '%{field_format}' is unsupported. + format_not_supported: formatet '%{field_format}' understøttes ikke. item: - not_persisted: must be an already existing item. - root_item: cannot be a root item. + not_persisted: skal være et eksisterende element. + root_item: kan ikke være et rodelement. label: - not_unique: must be unique within the same hierarchy level. + not_unique: skal være entydig på samme niveau i hierarkiet. parent: - not_descendant: must be a descendant of the hierarchy root. + not_descendant: skal ligge under hierarkiets rod. short: - not_unique: must be unique within the same hierarchy level. - str?: must be a string. + not_unique: skal være entydig på samme niveau i hierarkiet. + str?: skal være en streng. time?: must be a time. - type?: must be %{type}. + type?: skal være %{type}. unexpected_key: is not allowed. uri?: is not a valid URI. or: eller rules: - blueprint: Pattern blueprint + blueprint: Skabelon for mønster copy_workflow_from: Type for workflow copy - depth: Depth - enabled: Enabled - item: Item - label: Label + depth: Dybde + enabled: Aktiveret + item: Element + label: Betegnelse parent: Overordnet - short: Short name - weight: Weight + short: Kort navn + weight: Vægt open_link_in_a_new_tab: Open link in a new tab open_project: common: @@ -5053,128 +5053,128 @@ da: template_contract: caption: Work package details formatted to the standard German contract form. label: Contract - permission_add_internal_comments: Write internal comments + permission_add_internal_comments: Skriv interne kommentarer permission_add_messages: Send beskeder - permission_add_portfolios: Create portfolios - permission_add_programs: Create programs + permission_add_portfolios: Opret porteføljer + permission_add_programs: Opret programmer permission_add_project: Create projects permission_add_subprojects: Opret underprojekter - permission_add_work_package_attachments: Add attachments - permission_add_work_package_attachments_explanation: Allows adding attachments without Edit work packages permission - permission_add_work_package_comments: Add comments + permission_add_work_package_attachments: Tilføj vedhæftede filer + permission_add_work_package_attachments_explanation: Giver mulighed for at tilføje vedhæftede filer uden tilladelsen Rediger arbejdspakker + permission_add_work_package_comments: Tilføj kommentarer permission_add_work_package_watchers: Tilføj tilsynsførende permission_add_work_packages: Tilføj arbejdspakker - permission_archive_project: Archive project - permission_assign_versions: Assign versions - permission_browse_repository: Read-only access to repository (browse and checkout) - permission_change_work_package_status: Change work package status - permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission + permission_archive_project: Arkivér projekt + permission_assign_versions: Tildel versioner + permission_browse_repository: Skrivebeskyttet adgang til repository (gennemse og checkout) + permission_change_work_package_status: Skift arbejdspakkens status + permission_change_work_package_status_explanation: Giver mulighed for at skifte status uden tilladelsen Rediger arbejdspakker permission_comment_news: Kommenter nyheder - permission_commit_access: Read/write access to repository (commit) + permission_commit_access: Læse- og skriveadgang til repository (commit) permission_copy_projects: Kopiér projekter - permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. + permission_copy_projects_explanation: 'I skabelonprojekter har tilladelsen en ekstra funktion: Den giver mulighed for at oprette nye projekter ud fra skabelonen.' permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups - permission_create_user: Create users + permission_create_user: Opret brugere permission_delete_messages: Slet meddelelser permission_delete_own_messages: Slet egne meddelelser permission_delete_reportings: Slet rapporteringer permission_delete_timelines: Slet tidslinjer permission_delete_work_package_watchers: Slet tilsynsførende permission_delete_work_packages: Slet arbejdspakker - permission_edit_attribute_help_texts: Edit attribute help texts + permission_edit_attribute_help_texts: Rediger hjælpetekster til attributter permission_edit_messages: Rediger meddelelser - permission_edit_others_internal_comments: Moderate internal comments - permission_edit_others_internal_comments_explanation: 'Caution: Users with this permission are able to edit other users'' internal comments.' - permission_edit_own_internal_comments: Edit own internal comments + permission_edit_others_internal_comments: Moderer interne kommentarer + permission_edit_others_internal_comments_explanation: 'Advarsel: Brugere med denne tilladelse kan redigere andre brugeres interne kommentarer.' + permission_edit_own_internal_comments: Rediger egne interne kommentarer permission_edit_own_messages: Rediger egne meddelelser permission_edit_own_time_entries: Rediger egne tidsregistringer - permission_edit_own_work_package_comments: Edit own comments + permission_edit_own_work_package_comments: Rediger egne kommentarer permission_edit_project: Rediger projekt - permission_edit_project_attributes: Edit project attributes - permission_edit_project_phases: Edit project phases - permission_edit_project_query: Edit project query + permission_edit_project_attributes: Rediger projektattributter + permission_edit_project_phases: Rediger projektfaser + permission_edit_project_query: Rediger projektlister permission_edit_reportings: Rediger rapporteringer permission_edit_time_entries: Edit time logs for other users permission_edit_timelines: Rediger tidslinjer permission_edit_wiki_pages: Rediger wiki-sider - permission_edit_work_package_comments: Moderate comments - permission_edit_work_package_comments_explanation: 'Caution: Users with this permission are able to edit anyone''s comment.' + permission_edit_work_package_comments: Moderer kommentarer + permission_edit_work_package_comments_explanation: 'Advarsel: Brugere med denne tilladelse kan redigere alles kommentarer.' permission_edit_work_packages: Rediger arbejdspakker - permission_export_projects: Export projects + permission_export_projects: Eksportér projekter permission_export_work_packages: Eksportér arbejdspakker permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts - permission_invite_members_by_email: Invite members by email - permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members + permission_invite_members_by_email: Inviter medlemmer via e-mail + permission_invite_members_by_email_explanation: 'Giver brugerne mulighed for at invitere nye medlemmer via e-mail. Inviterede brugere får en e-mail med et link, hvor de kan angive deres adgangskode og aktivere deres konto. Kræver tilladelsen til at administrere medlemmer ' permission_log_own_time: Log own time permission_log_time: Log time for other users permission_manage_categories: Administrer kategorier for arbejdspakker - permission_manage_dashboards: Manage dashboards + permission_manage_dashboards: Administrer dashboards permission_manage_forums: Administrer fora permission_manage_members: Administrer medlemmer permission_manage_news: Administrer nyheder - permission_manage_own_reminders: Create own reminders - permission_manage_own_working_times: Manage own working times - permission_manage_own_working_times_explanation: 'Allows users to manage their own working times, and personal non-working days. + permission_manage_own_reminders: Opret egne påmindelser + permission_manage_own_working_times: Administrer egen arbejdstid + permission_manage_own_working_times_explanation: 'Giver brugerne mulighed for at administrere deres egen arbejdstid og personlige arbejdsfrie dage. ' permission_manage_placeholder_user: Opret, rediger og slet brugere af pladsholdere permission_manage_project_activities: Administrer projektets aktiviteter - permission_manage_project_variants: Manage the project's own type variants - permission_manage_public_bcf_queries: Manage public BCF queries - permission_manage_public_project_queries: Manage public project lists - permission_manage_public_queries: Manage public views + permission_manage_project_variants: Administrer projektets egne typevarianter + permission_manage_public_bcf_queries: Administrer offentlige BCF-visninger + permission_manage_public_project_queries: Administrer offentlige projektlister + permission_manage_public_queries: Administrer offentlige visninger permission_manage_repository: Administrer projektarkiv - permission_manage_subtasks: Manage work package hierarchies + permission_manage_subtasks: Administrer hierarkier af arbejdspakker permission_manage_types: Vælg typer - permission_manage_user: Edit users + permission_manage_user: Rediger brugere permission_manage_versions: Administrer versioner permission_manage_wiki: Administrer wiki permission_manage_work_package_relations: Administrer forbindelser for arbejdspakker - permission_manage_working_times: Manage working times for all users - permission_manage_working_times_explanation: 'Allows users to manage working times for all users, including personal non-working days. + permission_manage_working_times: Administrer arbejdstid for alle brugere + permission_manage_working_times_explanation: 'Giver brugerne mulighed for at administrere arbejdstiden for alle brugere, også personlige arbejdsfrie dage. ' permission_move_work_packages: Flyt arbejdspakker - permission_project_identifier_visibility_caution: 'Caution: users with this permission can find out whether a project identifier is already taken, even by projects they cannot see. [Learn more](project_identifier_visibility_url)' - permission_save_bcf_queries: Save BCF queries - permission_save_queries: Save views - permission_search_project: Search project + permission_project_identifier_visibility_caution: 'Advarsel: Brugere med denne tilladelse kan finde ud af, om et projekt-id allerede er i brug, også af projekter, som de ikke kan se. [Få mere at vide](project_identifier_visibility_url)' + permission_save_bcf_queries: Gem BCF-visninger + permission_save_queries: Gem visninger + permission_search_project: Søg i projekt permission_select_custom_fields: Select custom fields - permission_select_project_custom_fields: Select project attributes + permission_select_project_custom_fields: Vælg projektattributter permission_select_project_modules: Vælg projektmoduler - permission_select_project_phases: Select project phases - permission_select_project_phases_explanation: Activate/Deactivate the phases in a project. Enables the user to select the life cycle appropriate for the project as inactive phases will not be visible in the project overview page nor the project list. - permission_share_work_packages: Share work packages - permission_view_all_principals: View all users and groups - permission_view_all_principals_explanation: 'Allows users to see all users and groups in the system, even if they are not members of any joined projects or groups. + permission_select_project_phases: Vælg projektfaser + permission_select_project_phases_explanation: Aktivér eller deaktiver faserne i et projekt. Gør det muligt for brugeren at vælge den livscyklus, der passer til projektet, da inaktive faser hverken vises på projektets oversigtsside eller i projektlisten. + permission_share_work_packages: Del arbejdspakker + permission_view_all_principals: Vis alle brugere og grupper + permission_view_all_principals_explanation: 'Giver brugerne mulighed for at se alle brugere og grupper i systemet, også selvom de ikke er medlem af de samme projekter eller grupper. ' - permission_view_changesets: View repository revisions in OpenProject + permission_view_changesets: Vis revisioner i repositoryet i OpenProject permission_view_commit_author_statistics: Vis statistik for tilknyttet forfatter - permission_view_dashboards: View dashboards - permission_view_internal_comments: View internal comments + permission_view_dashboards: Vis dashboards + permission_view_internal_comments: Vis interne kommentarer permission_view_members: Vis medlemmer permission_view_messages: Vis meddelelser - permission_view_news: View news - permission_view_project: View projects - permission_view_project_activity: View project activity - permission_view_project_attributes: View project attributes - permission_view_project_phases: View project phases - permission_view_project_query: View project query + permission_view_news: Vis nyheder + permission_view_project: Vis projekter + permission_view_project_activity: Vis projektaktivitet + permission_view_project_attributes: Vis projektattributter + permission_view_project_phases: Vis projektfaser + permission_view_project_query: Vis projektlister permission_view_reportings: Vis rapporteringer - permission_view_shared_work_packages: View work package shares + permission_view_shared_work_packages: Vis delinger af arbejdspakker permission_view_time_entries: Vis anvendt tid permission_view_timelines: Vis tidslinjer - permission_view_user_email: View users' mail addresses + permission_view_user_email: Vis brugernes e-mailadresser permission_view_wiki_edits: Vis wiki-historik permission_view_wiki_pages: Vis wiki permission_view_work_package_watchers: Se liste over tilsynsførende - permission_view_work_packages: View work packages - permission_work_package_assigned: Become assignee/responsible - permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project + permission_view_work_packages: Vis arbejdspakker + permission_work_package_assigned: Kan være tildelt/ansvarlig + permission_work_package_assigned_explanation: Arbejdspakker kan tildeles brugere og grupper, der har denne rolle i det pågældende projekt placeholder_users: delete_tooltip: Delete placeholder user deletion_info: @@ -5268,7 +5268,7 @@ da: make_template: Set as template remove_from_templates: Remove from templates use_template: Use template - project_module_activity: Aktivivtet + project_module_activity: Aktivitet project_module_forums: Fora project_module_news: Nyheder project_module_repository: Projektarkiv @@ -5317,40 +5317,40 @@ da: shared: Shared project lists settings: actions: - label_disable_all: Disable all - label_enable_all: Enable all + label_disable_all: Deaktiver alle + label_enable_all: Aktivér alle activities: no_results_title_text: Der er i øjeblikket ingen aktiviteter. - button_update_details: Update details - button_update_parent_project: Update parent project - button_update_status_description: Update status description + button_update_details: Opdater detaljer + button_update_parent_project: Opdater overordnet projekt + button_update_status_description: Opdater statusbeskrivelse categories: no_results_content_text: Opret en ny arbejdspakke kategori no_results_title_text: Der er i øjeblikket ingen arbejdspakke kategorier. - change_identifier: Change identifier - change_identifier_dialog_title: Change project identifier - change_identifier_format_hint_legacy: Only lowercase letters (a–z), numbers, dashes or underscores. - change_identifier_format_hint_semantic: Only uppercase letters (A–Z), numbers or underscores. Max 10 characters. Must start with a letter. - change_identifier_warning: 'This will permanently change identifiers and URLs of all work packages in this project. The previous identifiers and URLs will nevertheless continue to work. + change_identifier: Skift id + change_identifier_dialog_title: Skift projekt-id + change_identifier_format_hint_legacy: Kun små bogstaver (a–z), tal, bindestreger eller understregningstegn. + change_identifier_format_hint_semantic: Kun store bogstaver (A–Z), tal eller understregningstegn. Højst 10 tegn. Skal begynde med et bogstav. + change_identifier_warning: 'Dette ændrer permanent id''er og URL''er for alle arbejdspakker i projektet. De tidligere id''er og URL''er virker dog fortsat. ' creation_wizard: - enabled_because_required_html: This project attribute cannot be disabled for this project initiation request since it is defined as required. This can be changed in the administration settings by the administrator of the instance. + enabled_because_required_html: Projektattributten kan ikke deaktiveres for denne anmodning om projektinitiering, fordi den er defineret som påkrævet. Installationens administrator kan ændre det i indstillingerne under administration. errors: - no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. - no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. + no_status_when_submitted: Anmodning om projektinitiering kunne ikke aktiveres, fordi arbejdspakketypen %{type} skal have mindst én tilknyttet status. Aktivér mindst én statusarbejdsgang for arbejdspakketypen. + no_work_package_type: Anmodning om projektinitiering kunne ikke aktiveres, fordi den kræver mindst én aktiv arbejdspakketype, og projektet har ingen. Føj mindst én arbejdspakketype til projektet. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. - description_file_storage_selection: Select which of the configured external file storages should be used. - external_file_storage: External file storage - label_artifact_export: Artefact export - label_attachment_export: Save as work package file attachment - label_file_link_export: Upload file to external file storage and add file link to work package - pdf_file_storage: PDF file storage - unavailable: unavailable - label_request_submission: Request submission - project_attributes_description: 'Select which project attributes should be included in the project initiation request. This list only includes [project attributes](project_attributes_url) enabled for for this project. + description_attachment_export: Det dannede dokument gemmes som en vedhæftet PDF på arbejdspakken til dokumentet. + description_file_link_export: Arbejdspakken til dokumentet får et fillink til en PDF i et eksternt fillager. Det kræver et fungerende fillager med automatisk administrerede projektmapper til dette projekt. I øjeblikket understøttes kun Nextcloud-fillagre. + description_file_storage_selection: Vælg, hvilket af de konfigurerede eksterne fillagre der skal bruges. + external_file_storage: Eksternt fillager + label_artifact_export: Eksport af dokumentet + label_attachment_export: Gem som vedhæftet fil på arbejdspakken + label_file_link_export: Overfør filen til eksternt fillager, og tilføj et fillink til arbejdspakken + pdf_file_storage: Fillager til PDF + unavailable: ikke tilgængelig + label_request_submission: Indsendelse af anmodningen + project_attributes_description: 'Vælg, hvilke projektattributter der skal med i anmodningen om projektinitiering. Listen indeholder kun [projektattributter](project_attributes_url), der er aktiveret for dette projekt. ' custom_fields: @@ -5358,122 +5358,122 @@ da: forums: no_results_content_text: Opret et nyt forum no_results_title_text: Der er i øjeblikket ingen fora for projektet. - header_details: Basic details - header_identifier: Identifier - header_relations: Project relations + header_details: Grundlæggende oplysninger + header_identifier: Id + header_relations: Projektrelationer header_status: Status - identifier_visibility_warning: Project identifiers aren't private. If your project is confidential, choose a nondescript identifier. + identifier_visibility_warning: Projekt-id'er er ikke private. Hvis dit projekt er fortroligt, så vælg et id, der ikke afslører noget. life_cycle: filter: - label: Search project phase + label: Søg efter projektfase header: - description_html: The active project phases define this project's life cycle and are defined in the administration settings. Enabled phases will be displayed in your project overview. - title: Project life cycle - non_defined: No phases are currently defined. - section_header: Phases + description_html: De aktive projektfaser udgør projektets livscyklus og defineres i indstillingerne under administration. Aktiverede faser vises i projektoversigten. + title: Projektets livscyklus + non_defined: Der er ikke defineret nogen faser. + section_header: Faser step: - use_in_project: Use %{step} in this project + use_in_project: Brug %{step} i dette projekt private_confirmation: - checkbox: I understand that this will make the previously public content private. - description: 'The project will only be visible to project members depending on their role and associated permissions. Sub-projects are not affected and have their own settings. + checkbox: Jeg forstår, at det hidtil offentlige indhold bliver privat. + description: 'Projektet bliver kun synligt for projektets medlemmer afhængigt af deres rolle og tilknyttede tilladelser. Underprojekter påvirkes ikke og har deres egne indstillinger. ' - title: Make this project private? + title: Vil du gøre projektet privat? project_custom_fields: actions: - label_disable_single: Inactive in this project, click to enable - label_enable_single: Active in this project, click to disable - remove_from_project: Remove from project - enabled_via_assignee_when_submitted_html: This project attribute cannot be disabled since it is set as assignee when submitted for project initiation requests. + label_disable_single: Inaktiv i dette projekt – klik for at aktivere + label_enable_single: Aktiv i dette projekt – klik for at deaktivere + remove_from_project: Fjern fra projekt + enabled_via_assignee_when_submitted_html: Projektattributten kan ikke deaktiveres, fordi den er angivet som tildelt ved indsendelse for anmodninger om projektinitiering. filter: - label: Search project attribute + label: Søg efter projektattribut header: - description_html: 'These project attributes will be displayed in your project overview page under their respective sections. You can enable or disable individual attributes. Project attributes and sections are defined in the administration settings by the administrator of the instance. ' - title: Project attributes + description_html: 'Projektattributterne vises på projektets oversigtsside under deres respektive afsnit. Du kan aktivere eller deaktivere de enkelte attributter. Projektattributter og afsnit defineres af installationens administrator i indstillingerne under administration. ' + title: Projektattributter is_for_all_blank_slate: - description: This project attribute is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects + description: Projektattributten er aktiveret i alle projekter, fordi indstillingen "For alle projekter" er markeret. Den kan ikke deaktiveres for enkelte projekter. + heading: For alle projekter public_confirmation: - checkbox: I understand that this will make the previously private content public - description: 'Anyone who has access to this instance will be able to view and interact with this project depending on their role and authentication settings. Sub-projects are not affected and have their own settings. + checkbox: Jeg forstår, at det hidtil private indhold bliver offentligt + description: 'Alle med adgang til denne installation kan se og arbejde med projektet afhængigt af deres rolle og godkendelsesindstillinger. Underprojekter påvirkes ikke og har deres egne indstillinger. ' - title: Make this project public? - public_warning: 'This project is public. Anyone who has access to this instance will be able to view and interact with this project depending on their role and associated permissions. Sub-projects are not affected and have their own settings. + title: Vil du gøre projektet offentligt? + public_warning: 'Projektet er offentligt. Alle med adgang til denne installation kan se og arbejde med projektet afhængigt af deres rolle og tilknyttede tilladelser. Underprojekter påvirkes ikke og har deres egne indstillinger. ' storage: - no_results_title_text: There is no additional recorded disk space consumed by this project. + no_results_title_text: Projektet har ikke brugt yderligere registreret diskplads. subitems: - no_template: No predefined template - program_template_caption: Select a template program to be used as the default for new subitems of this type. - program_template_label: Template for programs - project_template_caption: Select a template project to be used as the default for new subitems of this type. - project_template_label: Template for projects - template_section: 'Select templates to be used when creating new subitems. + no_template: Ingen foruddefineret skabelon + program_template_caption: Vælg et skabelonprogram, der skal bruges som standard for nye underelementer af denne type. + program_template_label: Skabelon for programmer + project_template_caption: Vælg et skabelonprojekt, der skal bruges som standard for nye underelementer af denne type. + project_template_label: Skabelon for projekter + template_section: 'Vælg de skabeloner, der skal bruges, når der oprettes nye underelementer. ' template: - enable_failed: Failed to enable template mode. + enable_failed: Skabelontilstanden kunne ikke aktiveres. members: - excluded_roles_caption: 'When creating a new project from this template, the roles selected above will be omitted. This allows you to select which members will be excluded based on their project roles. Users can then access the template for viewing purposes without being granted access to new projects created from it. + excluded_roles_caption: 'Når der oprettes et nyt projekt ud fra skabelonen, udelades de roller, der er valgt ovenfor. Du kan dermed vælge, hvilke medlemmer der udelades ud fra deres projektroller. Brugerne kan så se skabelonen uden at få adgang til nye projekter, der oprettes ud fra den. ' - excluded_roles_label: Roles to exclude when template is applied - menu_title: Template - title: Template settings + excluded_roles_label: Roller, der udelades, når skabelonen anvendes + menu_title: Skabelon + title: Skabelonindstillinger types: add_dialog: - description: The project uses one member of each type family. Pick the type or the variant this project should use. - none_addable: All available types are already active in this project. - submit: Add - title: Add type + description: Projektet bruger ét medlem af hver typefamilie. Vælg den type eller variant, som projektet skal bruge. + none_addable: Alle tilgængelige typer er allerede aktive i projektet. + submit: Tilføj + title: Tilføj type type_label: Type - type_placeholder: Select a type - add_type: Add type - add_variant: Add a project-specific variant - base_type_in_use: Base type used in this project + type_placeholder: Vælg en type + add_type: Tilføj type + add_variant: Tilføj en projektspecifik variant + base_type_in_use: Grundtype, der bruges i projektet empty_state: - description: Add a type to let people create work packages of that type in this project. - title: No types are active in this project + description: Tilføj en type, så man kan oprette arbejdspakker af den type i projektet. + title: Ingen typer er aktive i projektet form: enable_type_in_project: Aktivér typen "%{type}" no_results_title_text: Der er i øjeblikket ingen tilgængelige typer. - project_specific_variant: Project-specific variant - remove_from_project: Remove from project + project_specific_variant: Projektspecifik variant + remove_from_project: Fjern fra projekt switch: - apply: Apply + apply: Anvend impact: - hidden_heading: Fields that will no longer be shown - missing_statuses_description: The workflow you are switching to has no transition out of these statuses, so nobody will be able to move these work packages on. - missing_statuses_heading: Work packages that get stuck - new_heading: Fields that become available - nothing_affected: No fields or statuses are affected. + hidden_heading: Felter, der ikke længere vises + missing_statuses_description: Den arbejdsgang, som du skifter til, har ingen overgange ud af disse statusser, så ingen kan flytte arbejdspakkerne videre. + missing_statuses_heading: Arbejdspakker, der går i stå + new_heading: Felter, der bliver tilgængelige + nothing_affected: Ingen felter eller statusser påvirkes. status_count: one: 1 work package other: "%{count} work packages" - table_suffix: "(table)" + table_suffix: "(tabel)" value_count: one: 1 work package has a value other: "%{count} work packages have a value" work_packages: one: 1 work package will use the new configuration other: "%{count} work packages will use the new configuration" - success: The project now uses %{type}. + success: Projektet bruger nu %{type}. target_label: Variant - title: "%{type}: Switch variant" - type_not_found: The selected type could not be found. - use_in_project: Use in this project - variant_in_use: Variant in this project + title: "%{type}: Skift variant" + type_not_found: Den valgte type blev ikke fundet. + use_in_project: Brug i dette projekt + variant_in_use: Variant i dette projekt variant_label: Variant - variants_not_allowed: This type does not allow creation of variants inside projects. + variants_not_allowed: Typen tillader ikke, at der oprettes varianter i projekter. versions: - no_results_content_text: Create a new version + no_results_content_text: Opret en ny version no_results_title_text: Der er i øjeblikket ingen versioner til projektet. - show_work_packages: Show work packages - work_packages_graph: Work packages graph + show_work_packages: Vis arbejdspakker + work_packages_graph: Graf over arbejdspakker work_package_priorities: - new_label: New priority + new_label: Ny prioritet status: button_edit: Edit status wizard: @@ -5654,58 +5654,58 @@ da: search_input_placeholder: Søg ... setting_accessibility_mode_for_anonymous: Aktivér tilgængelighedstilstand for anonyme brugere setting_activity_days_default: Dage, der vises under projektaktivitet - setting_after_first_login_redirect_url: First login redirect - setting_after_first_login_redirect_url_text_html: 'Set a path to redirect users after their first login. If empty, redirects to the home page for the onboarding tour.
Example: /my/page + setting_after_first_login_redirect_url: Omdirigering efter første login + setting_after_first_login_redirect_url_text_html: 'Angiv en sti, som brugerne omdirigeres til efter deres første login. Er den tom, omdirigeres de til startsiden med introduktionsrundvisningen.
Eksempel: /my/page ' - setting_after_login_default_redirect_url: After login redirect - setting_after_login_default_redirect_url_example_html: 'Set a default path to redirect users after login, if no back link was provided. Redirects to home page if not set.
Example: %{example_code} + setting_after_login_default_redirect_url: Omdirigering efter login + setting_after_login_default_redirect_url_example_html: 'Angiv en standardsti, som brugerne omdirigeres til efter login, hvis der ikke er angivet et link tilbage. Er den ikke angivet, omdirigeres de til startsiden.
Eksempel: %{example_code} ' - setting_ai_text_transform_actions_enabled: Enable text transform actions - setting_allowed_link_protocols: Allowed link protocols - setting_allowed_link_protocols_text_html: Allow these protocols to be rendered as links in work package descriptions, long text fields and comments. For example, %{tel_code} or %{element_code}. Enter one protocol per line.
Protocols %{http_code}, %{https_code}, and %{mailto_code} are always allowed. - setting_antivirus_scan_action: Infected file action - setting_antivirus_scan_mode: Scan mode - setting_api_tokens_enabled: Enable API tokens - setting_api_tokens_enabled_caption: 'Decide whether users can create personal API tokens in their account settings. These tokens can be used to access the different APIs of OpenProject, such as APIv3 and MCP. + setting_ai_text_transform_actions_enabled: Aktivér handlinger til tekstomskrivning + setting_allowed_link_protocols: Tilladte linkprotokoller + setting_allowed_link_protocols_text_html: Tillad, at disse protokoller vises som links i arbejdspakkers beskrivelser, lange tekstfelter og kommentarer. Fx %{tel_code} eller %{element_code}. Angiv én protokol pr. linje.
Protokollerne %{http_code}, %{https_code} og %{mailto_code} er altid tilladt. + setting_antivirus_scan_action: Handling ved inficeret fil + setting_antivirus_scan_mode: Scanningstilstand + setting_api_tokens_enabled: Aktivér API-tokens + setting_api_tokens_enabled_caption: 'Bestem, om brugerne kan oprette personlige API-tokens i deres kontoindstillinger. Tokens kan bruges til at få adgang til OpenProjects forskellige API''er, fx APIv3 og MCP. ' - setting_apiv3_cors_enabled: Enable CORS - setting_apiv3_cors_origins: API V3 Cross-Origin Resource Sharing (CORS) allowed origins - setting_apiv3_cors_origins_instructions_html: 'If CORS is enabled, these are the origins that are allowed to access OpenProject API.
Please check the [Documentation on the Origin header](docs_url) on how to specify the expected values. + setting_apiv3_cors_enabled: Aktivér CORS + setting_apiv3_cors_origins: Tilladte oprindelser for Cross-Origin Resource Sharing (CORS) i API V3 + setting_apiv3_cors_origins_instructions_html: 'Hvis CORS er aktiveret, er det disse oprindelser, der må få adgang til OpenProjects API.
Se [dokumentationen om Origin-headeren](docs_url) for, hvordan de forventede værdier angives. ' setting_apiv3_cors_title: Cross-Origin Resource Sharing (CORS) - setting_apiv3_docs: Documentation - setting_apiv3_docs_enabled: Enable docs page - setting_apiv3_docs_enabled_instructions_html: 'If the docs page is enabled you can get an interactive view of the APIv3 documentation under %{link}. + setting_apiv3_docs: Dokumentation + setting_apiv3_docs_enabled: Aktivér dokumentationssiden + setting_apiv3_docs_enabled_instructions_html: 'Hvis dokumentationssiden er aktiveret, kan du se en interaktiv udgave af APIv3-dokumentationen på %{link}. ' - setting_apiv3_docs_enabled_instructions_warning: 'Please be aware that enabling the API docs on a production system may expose sensitive information or result in accidental loss of data when not being careful. We recommend to only enable this setting for development purposes. + setting_apiv3_docs_enabled_instructions_warning: 'Vær opmærksom på, at hvis API-dokumentationen aktiveres på et produktionssystem, kan det afsløre følsomme oplysninger eller føre til utilsigtet datatab, hvis man ikke er forsigtig. Vi anbefaler kun at aktivere indstillingen til udviklingsformål. ' - setting_apiv3_max_page_size: Maximum API page size - setting_apiv3_max_page_size_instructions: 'Set the maximum page size the API will respond with. It will not be possible to perform API requests that return more values on a single page. + setting_apiv3_max_page_size: Største sidestørrelse i API'et + setting_apiv3_max_page_size_instructions: 'Angiv den største sidestørrelse, API''et svarer med. Det vil ikke være muligt at sende API-forespørgsler, der returnerer flere værdier på én side. ' - setting_apiv3_max_page_size_warning: 'Please only change this value if you are sure why you need it. Setting to a high value will result in significant performance impacts, while a value lower than the per page options will cause errors in paginated views. + setting_apiv3_max_page_size_warning: 'Værdien bør kun ændres, hvis du ved, hvorfor det er nødvendigt. En høj værdi går mærkbart ud over ydeevnen, mens en værdi, der er lavere end valgmulighederne for objekter pr. side, giver fejl i visninger med sideinddeling. ' - setting_apiv3_write_readonly_attributes: Write access to read-only attributes - setting_apiv3_write_readonly_attributes_additional_html: 'For more information on attributes and supported resources, please see the [API documentation](api_documentation_link). + setting_apiv3_write_readonly_attributes: Skriveadgang til skrivebeskyttede attributter + setting_apiv3_write_readonly_attributes_additional_html: 'Se [API-dokumentationen](api_documentation_link) for flere oplysninger om attributter og understøttede ressourcer. ' - setting_apiv3_write_readonly_attributes_instructions: 'If enabled, the API will allow administrators to write static read-only attributes during creation, such as createdAt and author. + setting_apiv3_write_readonly_attributes_instructions: 'Hvis indstillingen er slået til, tillader API''et administratorer at skrive statiske, skrivebeskyttede attributter ved oprettelse, fx createdAt og author. ' - setting_apiv3_write_readonly_attributes_warning: 'This setting has a use-case for e.g., importing data, but allows administrators to impersonate the creation of items as other users. All creation requests are being logged however with the true author. + setting_apiv3_write_readonly_attributes_warning: 'Indstillingen er nyttig fx ved import af data, men giver administratorer mulighed for at oprette elementer i andre brugeres navn. Alle forespørgsler om oprettelse logges dog med den egentlige forfatter. ' setting_app_subtitle: Appens undertitel setting_app_title: Appens titel setting_attachment_max_size: Maksimal størrelse for vedhæftning - setting_attachment_whitelist: Attachment upload whitelist + setting_attachment_whitelist: Tilladte filtyper ved overførsel af vedhæftede filer setting_autofetch_changesets: Autohent repositorie-ændringer setting_autologin: Autologin setting_available_languages: Tilgængelige sprog @@ -5713,104 +5713,104 @@ da: setting_brute_force_block_after_failed_logins: Blokér bruger efter dette antal mislykkede forsøg på login setting_brute_force_block_minutes: Periode, brugeren vil være blokeret setting_cache_formatted_text: Gem tekstformat i cache - setting_capture_external_links: Capture external links - setting_capture_external_links_require_login: Require users to be logged in - setting_capture_external_links_require_login_text: 'When enabled, users wanting to click on external links need to be logged in before being able to continue. + setting_capture_external_links: Opfang eksterne links + setting_capture_external_links_require_login: Kræv, at brugerne er logget ind + setting_capture_external_links_require_login_text: 'Når indstillingen er slået til, skal brugere, der klikker på eksterne links, være logget ind, før de kan fortsætte. ' - setting_capture_external_links_text: 'When enabled, all external links in formatted text will redirect through a warning page before leaving the application. This helps protect users from potentially malicious external websites. + setting_capture_external_links_text: 'Når indstillingen er slået til, sendes alle eksterne links i formateret tekst gennem en advarselsside, før man forlader programmet. Det hjælper med at beskytte brugerne mod potentielt skadelige eksterne websteder. ' - setting_collaborative_editing_hocuspocus_secret: Hocuspocus server secret - setting_collaborative_editing_hocuspocus_url: Hocuspocus server URL - setting_column_options: Default work package lists columns + setting_collaborative_editing_hocuspocus_secret: Hemmelighed til Hocuspocus-serveren + setting_collaborative_editing_hocuspocus_url: URL til Hocuspocus-serveren + setting_column_options: Standardkolonner i lister over arbejdspakker setting_commit_fix_keywords: Tilpasser nøgleord setting_commit_logs_encoding: Udfør kodning af meddelelser setting_commit_logtime_activity_id: Aktivitet til tidsregistrering setting_commit_logtime_enabled: Aktivér tidsregistrering setting_commit_ref_keywords: Fastslår forbindelser mellem nøgleord - setting_consent_decline_mail: Consent contact mail address - setting_consent_info: Consent information text - setting_consent_required: Consent required - setting_consent_time: Consent time + setting_consent_decline_mail: Kontaktadresse vedrørende samtykke + setting_consent_info: Informationstekst om samtykke + setting_consent_required: Samtykke påkrævet + setting_consent_time: Tidspunkt for samtykke setting_cross_project_work_package_relations: Tillad forbindelser mellem arbejdspakker på tværs af projekter - setting_csv_escape_formulas: Escape formulas in CSV exports - setting_csv_escape_formulas_text: 'Escape spreadsheet formulas in CSV exports by prefixing cells that begin with characters such as =, +, -, or @ with a single quote. This mitigates CSV formula injection when exported files are opened in spreadsheet applications such as Excel. This comes at the downside of modifying the string values inside the CSV, so you may want to disable this if downstream tools require the exact, unescaped cell values. + setting_csv_escape_formulas: Neutraliser formler i CSV-eksporter + setting_csv_escape_formulas_text: 'Neutraliser regnearksformler i CSV-eksporter ved at sætte et enkelt anførselstegn foran celler, der begynder med tegn som =, +, - eller @. Det mindsker risikoen for CSV-formelinjektion, når eksporterede filer åbnes i regnearksprogrammer som Excel. Ulempen er, at strengværdierne i CSV-filen ændres, så du kan slå det fra, hvis efterfølgende værktøjer har brug for de præcise, uændrede celleværdier. ' setting_date_format: Dato setting_default_language: Forhåndsvalgt sprog setting_default_projects_modules: Forhåndsvalgt aktive moduler for nye projekter setting_default_projects_public: Nye projekter er på forhånd sat som offentlige - setting_default_projects_wiki: Enable wiki functionality for new projects by default + setting_default_projects_wiki: Aktivér som standard wiki-funktionen for nye projekter setting_diff_max_lines_displayed: Højeste antal viste linjer for afvigelser - setting_disable_password_login: Disable password authentication + setting_disable_password_login: Deaktiver godkendelse med adgangskode setting_display_subprojects_work_packages: Vælg altid at vise underprojekters arbejdspakker ved hovedprojektet - setting_duration_format: Duration format - setting_duration_format_days_and_hours: Days and hours - setting_duration_format_hours_only: Hours only - setting_duration_format_instructions: This defines how Work, Remaining work, and Time spent durations are displayed. - setting_email_delivery_method: Email delivery method - setting_email_login: Use email as login + setting_duration_format: Format for varighed + setting_duration_format_days_and_hours: Dage og timer + setting_duration_format_hours_only: Kun timer + setting_duration_format_instructions: Bestemmer, hvordan varighederne Arbejde, Resterende arbejde og Anvendt tid vises. + setting_email_delivery_method: Leveringsmetode for e-mail + setting_email_login: Brug e-mail som login setting_emails_footer: Mailsignatur setting_emails_header: Mailhoved - setting_emails_salutation: Address user in emails with - setting_enabled_projects_columns: Columns in a projects list displayed by default + setting_emails_salutation: Tiltal brugeren i e-mails med + setting_enabled_projects_columns: Kolonner, der som standard vises i en projektliste setting_enabled_scm: Aktiver SCM setting_feeds_enabled: Aktiver feeds setting_feeds_limit: Grænse for indhold af feeds setting_file_max_size_displayed: Maksimal størrelse af tekstfiler, der vises inline setting_first_week_of_year: Første uge i året indeholder setting_host_name: Værtsnavn - setting_hours_per_day: Hours per day - setting_hours_per_day_explanation: This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). - setting_ical_enabled: Enable iCalendar subscriptions - setting_invitation_expiration_days: Activation email expires after - setting_invitation_expiration_days_caption: Number of days after which the activation email expires. - setting_journal_aggregation_time_minutes: Aggregation period + setting_hours_per_day: Timer pr. dag + setting_hours_per_day_explanation: Bestemmer, hvad der regnes for en "dag", når varighed vises i dage og timer (hvis en dag fx er 8 timer, er 32 timer 4 dage). + setting_ical_enabled: Aktivér iCalendar-abonnementer + setting_invitation_expiration_days: E-mailen med aktiveringslink udløber efter + setting_invitation_expiration_days_caption: Antal dage, hvorefter e-mailen med aktiveringslink udløber. + setting_journal_aggregation_time_minutes: Sammenlægningsperiode setting_log_requesting_user: Log bruger-login, navn og mail-adresse ved hver forespørgsel setting_login_required: Godkendelse påkrævet - setting_login_required_caption: When checked, all requests to the application have to be authenticated. - setting_lost_password: Enable password reset - setting_lost_password_caption: When checked, allow users to reset their own passwords. + setting_login_required_caption: Når feltet er markeret, skal alle forespørgsler til programmet være godkendt. + setting_lost_password: Aktivér nulstilling af adgangskode + setting_lost_password_caption: Når feltet er markeret, kan brugerne selv nulstille deres adgangskode. setting_mail_from: Mailadresse for udsendelse setting_mail_handler_api_key: API-nøgle - setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex + setting_mail_handler_body_delimiter_regex: Afkort e-mails, der matcher dette regulære udtryk setting_mail_handler_body_delimiters: Afkort mails efter en af disse linier - setting_mail_handler_ignore_filenames: Ignored mail attachments - setting_new_project_notification_text: Notification text - setting_new_project_send_confirmation_email: Send notification to author when creating a new project + setting_mail_handler_ignore_filenames: Ignorerede vedhæftede filer i e-mails + setting_new_project_notification_text: Notifikationstekst + setting_new_project_send_confirmation_email: Send en notifikation til forfatteren, når et nyt projekt oprettes setting_new_project_user_role_id: Rolle givet til bruger der opretter projekt uden at være administrator - setting_new_project_user_role_id_caption: 'Only roles that include the permissions to edit project attributes and to manage members are listed, so that the creator can complete the project setup. + setting_new_project_user_role_id_caption: 'Kun roller med tilladelse til at redigere projektattributter og administrere medlemmer vises, så den, der opretter projektet, kan gøre opsætningen færdig. ' - setting_oauth_allow_remapping_of_existing_users: Allow remapping of existing users - setting_omniauth_direct_login_provider: Direct login SSO provider - setting_organization_name: Organization name - setting_password_active_rules: Password requirements + setting_oauth_allow_remapping_of_existing_users: Tillad gentilknytning af eksisterende brugere + setting_omniauth_direct_login_provider: SSO-udbyder til direkte login + setting_organization_name: Organisationens navn + setting_password_active_rules: Krav til adgangskoder setting_password_count_former_banned: Antal af senest anvendte adgangskoder, der ikke må genbruges setting_password_days_valid: Antal dage, inden tvungen ændring af adgangskode - setting_password_login: Password login - setting_password_login_all: Allow for everyone - setting_password_login_all_caption: Anyone with an internal password can sign in with it, including users linked to an identity provider. - setting_password_login_bypass_principal_ids: Users and groups who may still use a password - setting_password_login_except_sso: Disallow for SSO users - setting_password_login_except_sso_caption: Users linked to an identity provider cannot sign in with their internal password. Other users can continue using it. - setting_password_login_none: Disallow for everyone - setting_password_login_none_caption_html: The password form is hidden. Only users and groups listed below can sign in with a password via %{internal_login_link}. + setting_password_login: Login med adgangskode + setting_password_login_all: Tillad for alle + setting_password_login_all_caption: Alle med en intern adgangskode kan logge ind med den, også brugere, der er knyttet til en identitetsudbyder. + setting_password_login_bypass_principal_ids: Brugere og grupper, der stadig må bruge adgangskode + setting_password_login_except_sso: Tillad ikke for SSO-brugere + setting_password_login_except_sso_caption: Brugere, der er knyttet til en identitetsudbyder, kan ikke logge ind med deres interne adgangskode. Andre brugere kan fortsat bruge den. + setting_password_login_none: Tillad ikke for nogen + setting_password_login_none_caption_html: Formularen til adgangskode er skjult. Kun de brugere og grupper, der står nedenfor, kan logge ind med adgangskode via %{internal_login_link}. setting_password_min_length: Mindste længde setting_per_page_options: Mulige objekter per side - setting_percent_complete_on_status_closed: "% Complete when status is closed" - setting_percent_complete_on_status_closed_no_change: No change - setting_percent_complete_on_status_closed_no_change_caption_html: The value of % Complete will not change even when a work package is closed. - setting_percent_complete_on_status_closed_set_100p: Automatically set to 100% - setting_percent_complete_on_status_closed_set_100p_caption: A closed work package is considered complete. + setting_percent_complete_on_status_closed: "% færdigt, når status er lukket" + setting_percent_complete_on_status_closed_no_change: Ingen ændring + setting_percent_complete_on_status_closed_no_change_caption_html: Værdien af % færdigt ændres ikke, selv når en arbejdspakke lukkes. + setting_percent_complete_on_status_closed_set_100p: Sæt automatisk til 100 % + setting_percent_complete_on_status_closed_set_100p_caption: En lukket arbejdspakke regnes for færdig. setting_plain_text_mail: Simpel tekst mails (ingen HTML) - 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: Gantt-visning for projektporteføljen + setting_project_gantt_query_text: Du kan ændre den visning, der bruges til at vise Gantt-diagrammet fra projektoversigten. setting_protocol: Protokol - setting_registration_footer: Registration footer - setting_registration_footer_caption: This text is displayed in the footer of the registration page. Use the HTML editor to format the text for each selected language. + setting_registration_footer: Sidefod ved registrering + setting_registration_footer_caption: Teksten vises i sidefoden på registreringssiden. Brug HTML-editoren til at formatere teksten for hvert valgt sprog. setting_repositories_automatic_managed_vendor: Automatisk repositorie-leverandørtype setting_repositories_encodings: Kodning af projektarkiv setting_repository_checkout_base_url: Standard Checkout-URL @@ -5818,310 +5818,310 @@ da: setting_repository_checkout_text: Checkout-instruktionstekst setting_repository_log_display_limit: Højeste antal ændringer vist i fil-log setting_repository_storage_cache_minutes: Repositorie diskstørrelsescache - setting_repository_truncate_at: Maximum number of files displayed in the repository browser - setting_security_badge_displayed: Display security badge + setting_repository_truncate_at: Største antal filer, der vises i repository-browseren + setting_security_badge_displayed: Vis sikkerhedsmærke setting_self_registration: Selvregistrering - setting_self_registration_activation_by_email: Account activation by email - setting_self_registration_activation_by_email_caption: 'Users can register on their own and activate their account after confirming their email address. Administrators have no moderation control over the activation process. + setting_self_registration_activation_by_email: Kontoaktivering via e-mail + setting_self_registration_activation_by_email_caption: 'Brugerne kan selv registrere sig og aktivere deres konto, når de har bekræftet deres e-mailadresse. Administratorerne kan ikke styre aktiveringen. ' - setting_self_registration_automatic_activation: Automatic account activation - setting_self_registration_automatic_activation_caption: 'Users can register on their own. Their accounts are immediately active without further action. Administrators have no moderation control over the activation process. + setting_self_registration_automatic_activation: Automatisk kontoaktivering + setting_self_registration_automatic_activation_caption: 'Brugerne kan selv registrere sig. Deres konti er aktive med det samme uden yderligere handling. Administratorerne kan ikke styre aktiveringen. ' - setting_self_registration_caption: 'Choose the self-registration mechanism for users. Be careful with the setting you choose, as some options allow users to activate their own accounts to this instance. + setting_self_registration_caption: 'Vælg, hvordan brugerne selv kan registrere sig. Vær forsigtig med valget, da nogle muligheder lader brugerne aktivere deres egne konti på denne installation. ' - setting_self_registration_disabled: Disabled - setting_self_registration_disabled_caption: 'No accounts can be registered on their own. Only administrators and users with the global permission to create new users are able to create new accounts. + setting_self_registration_disabled: Deaktiveret + setting_self_registration_disabled_caption: 'Ingen kan selv registrere en konto. Kun administratorer og brugere med den globale tilladelse til at oprette brugere kan oprette nye konti. ' - setting_self_registration_manual_activation: Manual account activation - setting_self_registration_manual_activation_caption: 'Users can register on their own. Their accounts are in a pending state until an administrator or user with the global permission to create or manage users activates them. + setting_self_registration_manual_activation: Manuel kontoaktivering + setting_self_registration_manual_activation_caption: 'Brugerne kan selv registrere sig. Deres konti afventer, indtil en administrator eller en bruger med den globale tilladelse til at oprette eller administrere brugere aktiverer dem. ' - setting_self_registration_warning: 'The user will be able to activate their own accounts. Please note that this will give them access to all public projects and their content. Please make sure that no sensitive or private data is exposed in public projects. + setting_self_registration_warning: 'Brugerne kan aktivere deres egne konti. Bemærk, at de dermed får adgang til alle offentlige projekter og deres indhold. Sørg for, at der ikke ligger følsomme eller private data i offentlige projekter. ' - setting_sendmail_arguments: Arguments for sendmail - setting_sendmail_location: Location of the sendmail executable - setting_session_ttl: Session expiration time after inactivity + setting_sendmail_arguments: Argumenter til sendmail + setting_sendmail_location: Placering af programmet sendmail + setting_session_ttl: Sessionen udløber efter inaktivitet setting_session_ttl_enabled: Session udløber setting_session_ttl_hint: Værdi under 5 fungerer som deaktiveret - setting_show_work_package_attachments: Show attachments in the files tab by default - setting_smtp_address: SMTP server - setting_smtp_authentication: SMTP authentication - setting_smtp_domain: SMTP HELO domain - setting_smtp_enable_starttls_auto: Automatically use STARTTLS if available - setting_smtp_password: SMTP password - setting_smtp_port: SMTP port - setting_smtp_ssl: Use SSL connection - setting_smtp_user_name: SMTP username - setting_start_of_week: Week starts on + setting_show_work_package_attachments: Vis som standard vedhæftede filer på fanen Filer + setting_smtp_address: SMTP-server + setting_smtp_authentication: SMTP-godkendelse + setting_smtp_domain: SMTP HELO-domæne + setting_smtp_enable_starttls_auto: Brug automatisk STARTTLS, hvis det er tilgængeligt + setting_smtp_password: SMTP-adgangskode + setting_smtp_port: SMTP-port + setting_smtp_ssl: Brug SSL-forbindelse + setting_smtp_user_name: SMTP-brugernavn + setting_start_of_week: Ugen begynder setting_sys_api_description: Repositorieadministration-webtjenesten sørger for integration og brugertilladelse for adgang til repositorier. setting_sys_api_enabled: Aktiver repositorieadministrations-webtjeneste setting_time_format: Tidspunkt - setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals - setting_total_percent_complete_mode_simple_average: Simple average - setting_total_percent_complete_mode_simple_average_caption_html: "Work is ignored and the total % Complete will be a simple average of % Complete values of work packages in the hierarchy." - setting_total_percent_complete_mode_work_weighted_average: Weighted by work - setting_total_percent_complete_mode_work_weighted_average_caption_html: The total % Complete will be weighted against the Work of each work package in the hierarchy. Work packages without Work will be ignored. - setting_use_wysiwyg_description: Select to enable CKEditor5 WYSIWYG editor for all users by default. CKEditor has limited functionality for GFM Markdown. - setting_user_can_change_email: Users allowed to change their email address - setting_user_default_timezone: Users default time zone - setting_user_format: Users name format + setting_total_percent_complete_mode: Beregning af samlet % færdigt i hierarkier + setting_total_percent_complete_mode_simple_average: Simpelt gennemsnit + setting_total_percent_complete_mode_simple_average_caption_html: "Arbejde ignoreres, og samlet % færdigt bliver et simpelt gennemsnit af værdierne for % færdigt for arbejdspakkerne i hierarkiet." + setting_total_percent_complete_mode_work_weighted_average: Vægtet efter arbejde + setting_total_percent_complete_mode_work_weighted_average_caption_html: "Samlet % færdigt vægtes efter Arbejde for hver arbejdspakke i hierarkiet. Arbejdspakker uden Arbejde ignoreres." + setting_use_wysiwyg_description: Vælg for som standard at aktivere WYSIWYG-editoren CKEditor5 for alle brugere. CKEditor har begrænset understøttelse af GFM Markdown. + setting_user_can_change_email: Brugerne må ændre deres e-mailadresse + setting_user_default_timezone: Standardtidszone for brugere + setting_user_format: Format for brugernavne setting_users_deletable_by_admins: Brugerens konti kan slettes af administratorer setting_users_deletable_by_self: Brugererne kan selv slette deres konti setting_welcome_on_homescreen: Vis velkomstblok på hjemmeskærm setting_welcome_text: Velkomstblok-tekst setting_welcome_title: Velkomstblok-titel - setting_work_package_done_ratio: Progress calculation mode - setting_work_package_done_ratio_explanation_html: 'In work-based mode, % Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived. In status-based mode, each status has a % Complete value associated with it. Changing status will change % Complete. + setting_work_package_done_ratio: Beregning af fremdrift + setting_work_package_done_ratio_explanation_html: 'I den arbejdsbaserede tilstand kan % færdigt sættes frit til en hvilken som helst værdi. Angiver du også en værdi for Arbejde, beregnes Resterende arbejde automatisk. I den statusbaserede tilstand hører der en værdi for % færdigt til hver status. Skifter du status, ændres % færdigt. ' - setting_work_package_done_ratio_field: Work-based - setting_work_package_done_ratio_field_caption_html: "% Complete can be freely set to any value. If you optionally enter a value for Work, Remaining work will automatically be derived." - setting_work_package_done_ratio_status: Status-based - setting_work_package_done_ratio_status_caption_html: Each status has a % Complete value associated with it. Changing status will change % Complete. - setting_work_package_list_default_highlighted_attributes: Default inline highlighted attributes - setting_work_package_list_default_highlighting_mode: Default highlighting mode - setting_work_package_multiple_versions: Multiple target versions + setting_work_package_done_ratio_field: Arbejdsbaseret + setting_work_package_done_ratio_field_caption_html: "% færdigt kan sættes frit til en hvilken som helst værdi. Angiver du også en værdi for Arbejde, beregnes Resterende arbejde automatisk." + setting_work_package_done_ratio_status: Statusbaseret + setting_work_package_done_ratio_status_caption_html: Til hver status hører en værdi for % færdigt. Skifter du status, ændres % færdigt. + setting_work_package_list_default_highlighted_attributes: Attributter, der som standard fremhæves i linjen + setting_work_package_list_default_highlighting_mode: Standardtilstand for fremhævning + setting_work_package_multiple_versions: Flere målversioner setting_work_package_properties: Egenskaber for arbejdspakke setting_work_package_startdate_is_adddate: Brug dags dato som start for nye arbejdspakker - setting_work_packages_identifier_classic: Instance-wide numerical sequence (default) - setting_work_packages_identifier_classic_caption: 'Every work package gets a sequential number starting with 1 (for example, #1234). The numbers are unique within the instance and remain the same even if work packages are moved between projects.' - setting_work_packages_identifier_semantic: Project-based semantic identifiers - setting_work_packages_identifier_semantic_caption: Every project has a unique project identifier prefixed to a number (for example, PROJ-11). The numbering of each project starts at 1. If a work package is moved to another project, a new identifier is generated but the old one will continue to function. - setting_work_packages_projects_export_limit: Work packages / Projects export limit - setting_work_packages_projects_export_limit_text: 'Maximum number of work packages or projects that can be included in a single export. Larger exports are truncated to this limit. + setting_work_packages_identifier_classic: Løbenummer for hele installationen (standard) + setting_work_packages_identifier_classic_caption: 'Hver arbejdspakke får et løbenummer, der begynder med 1 (fx #1234). Numrene er entydige i hele installationen og forbliver de samme, selv hvis arbejdspakker flyttes mellem projekter.' + setting_work_packages_identifier_semantic: Projektbaserede semantiske id'er + setting_work_packages_identifier_semantic_caption: Hvert projekt har et entydigt projekt-id, der sættes foran et nummer (fx PROJ-11). Nummereringen begynder ved 1 i hvert projekt. Flyttes en arbejdspakke til et andet projekt, dannes et nyt id, men det gamle virker fortsat. + setting_work_packages_projects_export_limit: Eksportgrænse for arbejdspakker/projekter + setting_work_packages_projects_export_limit_text: 'Det største antal arbejdspakker eller projekter, der kan være med i én eksport. Større eksporter afkortes til denne grænse. ' - setting_working_days: Working days + setting_working_days: Arbejdsdage settings: antivirus: actions: - delete: Delete the file - instructions_html: 'Select the action to perform for files on which a virus has been detected:
+ delete: Slet filen + instructions_html: 'Vælg, hvad der skal ske med filer, hvor der er fundet virus:
' - quarantine: Quarantine the file - clamav_ping_failed: Failed to connect the the ClamAV daemon. Double-check the configuration and try again. + quarantine: Sæt filen i karantæne + clamav_ping_failed: Der kunne ikke oprettes forbindelse til ClamAV-daemonen. Kontrollér konfigurationen, og prøv igen. modes: - clamav_host_html: Enter the hostname and port to the clamd daemon separated by colon. e.g., %{example} - clamav_socket_html: Enter the socket to the clamd daemon, e.g., %{example} - description_html: 'Select the mode in which the antivirus scanner integration should operate.
+ clamav_host_html: Angiv værtsnavn og port til clamd-daemonen adskilt af kolon, fx %{example} + clamav_socket_html: Angiv socket til clamd-daemonen, fx %{example} + description_html: 'Vælg, hvordan integrationen med antivirusscanneren skal fungere.
' remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' - remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. + remaining_rescanned_files: 'Virusscanning er aktiveret. Der er %{file_count}, som er overført tidligere og endnu skal scannes. Scanningen er planlagt til at køre i baggrunden. Filerne er tilgængelige, mens scanningen kører. ' - remaining_scan_complete_html: 'Remaining files have been scanned. There are %{file_count} in quarantine. You are being redirected to the quarantine page. Use this page to delete or override quarantined files. + remaining_scan_complete_html: 'De resterende filer er scannet. Der er %{file_count} i karantæne. Du sendes videre til karantænesiden. Brug siden til at slette filer i karantæne eller tilsidesætte karantænen. ' - title: Virus scanning + title: Virusscanning attachments: - show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. + show_work_package_attachments: 'Deaktiverer du denne indstilling, skjules listen over vedhæftede filer på arbejdspakkernes fane Filer i nye projekter. Filer, der er vedhæftet i en arbejdspakkes beskrivelse, overføres stadig til det interne lager for vedhæftede filer. ' - whitelist_text_html: 'Define a list of valid file extensions and/or mime types for uploaded files.
Enter file extensions (e.g., %{ext_example}) or mime types (e.g., %{mime_example}).
Leave empty to allow any file type to be uploaded. Multiple values allowed (one line for each value). + whitelist_text_html: 'Angiv en liste over gyldige filtypenavne og/eller MIME-typer for overførte filer.
Angiv filtypenavne (fx %{ext_example}) eller MIME-typer (fx %{mime_example}).
Lad feltet stå tomt for at tillade alle filtyper. Flere værdier er tilladt (én linje pr. værdi). ' authentication: login: Login - omniauth_direct_login_hint_html: 'If this option is active, login requests will redirect to the configured omniauth provider. The login dropdown and sign-in page will be disabled.
Note: Unless you also disable password logins, with this option enabled, users can still log in internally by visiting the %{internal_path} login page. + omniauth_direct_login_hint_html: 'Hvis indstillingen er aktiv, omdirigeres loginforespørgsler til den konfigurerede OmniAuth-udbyder. Login-rullemenuen og loginsiden deaktiveres.
Bemærk: Medmindre du også deaktiverer login med adgangskode, kan brugerne stadig logge ind internt via loginsiden %{internal_path}, når denne indstilling er slået til. ' - password_login_bypass_principal_ids_hint: 'Even when password login in disabled, these users and groups will be able to use their password to sign in. This is useful, for example, if the identity provider becomes unavailable. If you include a group, access will be extended to all users in that group. + password_login_bypass_principal_ids_hint: 'Selv når login med adgangskode er deaktiveret, kan disse brugere og grupper logge ind med deres adgangskode. Det er fx nyttigt, hvis identitetsudbyderen ikke er tilgængelig. Tilføjer du en gruppe, gælder adgangen alle brugere i gruppen. ' - password_login_configured_by_environment: 'The following settings are configured through the environment and cannot be edited here: + password_login_configured_by_environment: 'Følgende indstillinger er konfigureret i miljøet og kan ikke redigeres her: ' - password_login_requires_sso_provider: 'Password login restrictions are unavailable because no SSO provider is currently enabled. Configure and enable an SSO provider before changing these settings. + password_login_requires_sso_provider: 'Begrænsninger for login med adgangskode er ikke tilgængelige, fordi der ikke er aktiveret nogen SSO-udbyder. Konfigurer og aktivér en SSO-udbyder, før du ændrer disse indstillinger. ' - registration: Registration - remapping_existing_users_hint: 'If enabled, allows any configured identity provider to login existing users based on their username, even if the user never signed in through that provider before. This can be useful when migrating the OpenProject instance to a new SSO provider, but is not recommended when using a provider that is not trusted by all users of your instance. + registration: Registrering + remapping_existing_users_hint: 'Hvis indstillingen er slået til, kan enhver konfigureret identitetsudbyder logge eksisterende brugere ind ud fra deres brugernavn, også selvom brugeren aldrig har logget ind via den udbyder før. Det kan være nyttigt, når OpenProject-installationen flyttes til en ny SSO-udbyder, men det anbefales ikke, hvis udbyderen ikke er betroet af alle brugere af installationen. ' - sso: Single Sign-On (SSO) + sso: Single sign-on (SSO) brute_force_prevention: Automatiseret brugerblokering date_format: - first_date_of_week_and_year_set: 'If either options "%{day_of_week_setting_name}" or "%{first_week_setting_name}" are set, the other has to be set as well to avoid inconsistencies in the frontend. + first_date_of_week_and_year_set: 'Hvis enten "%{day_of_week_setting_name}" eller "%{first_week_setting_name}" er angivet, skal den anden også angives for at undgå uoverensstemmelser i brugerfladen. ' - first_week_of_year_text_html: 'Select the date of January that is contained in the first week of the year. This value together with first day of the week determines the total number of weeks in a year. For more information, please see our documentation on this topic. + first_week_of_year_text_html: 'Vælg den dato i januar, der ligger i årets første uge. Sammen med ugens første dag bestemmer værdien, hvor mange uger der er i et år. Du kan læse mere i vores dokumentation om emnet. ' errors: - failed_to_update: 'Setting ''%{name}'' could not be updated: %{message}' - not_writable: The setting is not writable and can only be changed by a sysadmin. + failed_to_update: 'Indstillingen ''%{name}'' kunne ikke opdateres: %{message}' + not_writable: Indstillingen er skrivebeskyttet og kan kun ændres af en systemadministrator. experimental: - feature_flags: Feature flags - save_confirmation: Caution! Risk of data loss! Only activate experimental features if you do not mind breaking your OpenProject installation and losing all of its data. - warning_toast: Feature flags are settings that activate features that are still under development. They shall only be used for testing purposes. They shall never be activated on OpenProject installations holding important data. These features will very likely corrupt your data. Use them at your own risk. + feature_flags: Eksperimentelle funktioner + save_confirmation: Advarsel! Risiko for datatab! Aktivér kun eksperimentelle funktioner, hvis det ikke gør noget, at din OpenProject-installation går i stykker og mister alle sine data. + warning_toast: Eksperimentelle funktioner er funktioner, der stadig er under udvikling. De må kun bruges til test og må aldrig aktiveres på OpenProject-installationer med vigtige data. Funktionerne vil med stor sandsynlighed ødelægge dine data. Brug dem på eget ansvar. general: Generelle highlighting: mode_long: - inline: Highlight attribute(s) inline - none: No highlighting - priority: Entire row by Priority - status: Entire row by Status - type: Entire row by Type + inline: Fremhæv attribut(ter) i linjen + none: Ingen fremhævning + priority: Hele rækken efter prioritet + status: Hele rækken efter status + type: Hele rækken efter type icalendar: - enable_subscriptions_text_html: Allows users with the necessary permissions to subscribe to OpenProject calendars and access work package information via an external calendar client. Note: Please read about iCalendar subscriptions to understand potential security risks before enabling this. - language_name_being_default: "%{language_name} (default)" + enable_subscriptions_text_html: Giver brugere med de nødvendige tilladelser mulighed for at abonnere på OpenProject-kalendere og se oplysninger om arbejdspakker i et eksternt kalenderprogram. Bemærk: Læs om iCalendar-abonnementer for at forstå de mulige sikkerhedsrisici, før du aktiverer funktionen. + language_name_being_default: "%{language_name} (standard)" notifications: - delay_minutes_explanation: Email sending can be delayed to allow users with configured in app notification to confirm the notification within the application before a mail is sent out. Users who read a notification within the application will not receive an email for the already read notification. - events_explanation: Governs for which event an email is sent out. Work packages are excluded from this list as the notifications for them can be configured specifically for every user. + delay_minutes_explanation: Afsendelse af e-mail kan forsinkes, så brugere med notifikationer i appen kan nå at bekræfte notifikationen i programmet, før der sendes en e-mail. Brugere, der læser en notifikation i programmet, får ikke en e-mail om den allerede læste notifikation. + events_explanation: Bestemmer, hvilke hændelser der sendes en e-mail om. Arbejdspakker er ikke med på listen, fordi notifikationer om dem kan indstilles for hver enkelt bruger. other: Andet passwords: Adgangskoder project_attributes: edit: - description: Changes to this project attribute will be reflected in all projects where it is enabled. Required attributes cannot be disabled on a per-project basis. - heading: Project attributes - heading_description: These project attributes appear in the overview page of each project. You can add new attributes, group them into sections and re-order them as you please. These attributes can be enabled or disabled but not re-ordered at a project level. - label_add_attribute: Add a project attribute - label_edit_section: Edit title - label_for_all_projects: All projects - label_new_attribute: Project attribute - label_new_section: Section - label_no_project_custom_fields: No project attributes defined in this section - label_project_custom_field_actions: Project attribute actions - label_section_actions: Section actions + description: Ændringer af projektattributten slår igennem i alle projekter, hvor den er aktiveret. Påkrævede attributter kan ikke deaktiveres i de enkelte projekter. + heading: Projektattributter + heading_description: Projektattributterne vises på hvert projekts oversigtsside. Du kan tilføje nye attributter, samle dem i afsnit og ordne dem, som du vil. Attributterne kan aktiveres eller deaktiveres, men ikke ordnes på projektniveau. + label_add_attribute: Tilføj en projektattribut + label_edit_section: Rediger titel + label_for_all_projects: Alle projekter + label_new_attribute: Projektattribut + label_new_section: Afsnit + label_no_project_custom_fields: Der er ikke defineret nogen projektattributter i dette afsnit + label_project_custom_field_actions: Handlinger for projektattribut + label_section_actions: Handlinger for afsnit new: - description: Changes to this project attribute will be reflected in all projects where it is enabled. Required attributes cannot be disabled on a per-project basis. - heading: New attribute + description: Ændringer af projektattributten slår igennem i alle projekter, hvor den er aktiveret. Påkrævede attributter kan ikke deaktiveres i de enkelte projekter. + heading: Ny attribut sections: display_representation: overview: - label: 'Project attribute shown in:' + label: 'Projektattributten vises i:' main_area: - description: Add all the project attributes as individual widgets in the main section of the project overview. - label: Main area + description: Tilføj alle projektattributterne som separate widgets i projektoversigtens hovedområde. + label: Hovedområde side_panel: - description: Add all the project attributes in a section inside the right side panel in the project overview. - label: Side panel + description: Tilføj alle projektattributterne i et afsnit i sidepanelet til højre i projektoversigten. + label: Sidepanel project_initiation_request: blankslate: - description: OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and what to do with the output document. Enable it here to start configuring the wizard. - title: Initiation request not enabled + description: OpenProject kan danne en trinvis guide, der hjælper projektledere med at udfylde en anmodning om projektinitiering. Du kan vælge, hvilke projektattributter der skal med, og hvad der skal ske med det færdige dokument. Aktivér funktionen her for at begynde at konfigurere guiden. + title: Anmodning om projektinitiering er ikke aktiveret disable_dialog: - checkbox_message: I understand that this action is not reversible - confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. - heading: Disable this project initiation request? - title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + checkbox_message: Jeg forstår, at handlingen ikke kan fortrydes + confirmation_message: Guiden til anmodning om projektinitiering vil ikke længere være tilgængelig for nye projekter, der bygger på denne skabelon. Projektledere og projektejere skal selv konfigurere og udfylde de relevante oplysninger i projektoversigten. + heading: Vil du deaktivere denne anmodning om projektinitiering? + title: Deaktiver anmodning om projektinitiering + header_description: 'OpenProject kan danne en trinvis guide, der hjælper projektledere med at udfylde en anmodning om projektinitiering. Du kan vælge, hvilke projektattributter der skal med, og få dannet en PDF som resultat. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Dokumentets navn + artifact_name_caption: Vælg det navn for dokumentet, som jeres projektmodel anbefaler. options: - project_creation_wizard: Project creation wizard - project_initiation_request: Project initiation request - project_mandate: Project mandate + project_creation_wizard: Guide til oprettelse af projekt + project_initiation_request: Anmodning om projektinitiering + project_mandate: Projektkommissorium status: - not_completed: "%{wizard_name} not yet completed" - not_completed_description: Provide the necessary information by filling the attributes and get the project started. - submitted: "%{wizard_name} has been submitted" - submitted_button: Open submission request - submitted_description: Click the button below to go to the work package for the submission process. + not_completed: "%{wizard_name} er endnu ikke fuldført" + not_completed_description: Udfyld attributterne med de nødvendige oplysninger, og kom i gang med projektet. + submitted: "%{wizard_name} er indsendt" + submitted_button: Åbn indsendt anmodning + submitted_description: Klik på knappen nedenfor for at gå til arbejdspakken for indsendelsen. submission: - assignee: Assignee when submitted - assignee_caption_html: The user or group assigned to this project attribute will also become the assignee of the new work package. This list includes active project attributes of type User only. + assignee: Tildelt ved indsendelse + assignee_caption_html: Den bruger eller gruppe, der er tildelt denne projektattribut, bliver også tildelt den nye arbejdspakke. Listen indeholder kun aktive projektattributter af typen Bruger. confirmation_email_default: |- - Hello, - - You submitted a project initiation request for **%{project_name}**. It is now awaiting review. - Click the link below to access the work package with your request. - confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" - send_confirmation_email: Send confirmation email to the user who submitted the project initiation request - status_when_submitted: Status when submitted - status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. - work_package_comment: Work package comment - work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. - work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. - work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + Hej + + Du har indsendt en anmodning om projektinitiering for **%{project_name}**. Den afventer nu gennemsyn. + Klik på linket nedenfor for at gå til arbejdspakken med din anmodning. + confirmation_email_text: Tekst i e-mailen med bekræftelse + description: Når en bruger indsender en anmodning om projektinitiering, oprettes en ny arbejdspakke med anmodningen vedhæftet som PDF-fil. Indstillingerne nedenfor bestemmer type, status og tildelt for den nye arbejdspakke. + description_template: "**Arbejdspakken blev oprettet automatisk, da arbejdsgangen %{wizard_name} blev fuldført.** Der er dannet en PDF med alle indsendte oplysninger, og den er vedhæftet arbejdspakken til reference og revision. Hvis du har brug for at opdatere eller gennemgå initieringstrinene igen, kan du altid åbne guiden igen via linket nedenfor:\n" + send_confirmation_email: Send en e-mail med bekræftelse til den bruger, der indsendte anmodningen om projektinitiering + status_when_submitted: Status ved indsendelse + status_when_submitted_caption: Den status, som den dannede arbejdspakke skifter til, når anmodningen er indsendt. + work_package_comment: Kommentar til arbejdspakken + work_package_comment_caption: Den tildelte, der er valgt ovenfor, bliver automatisk @omtalt i kommentaren. + work_package_comment_default: En anmodning om projektinitiering for **%{project_name}** er indsendt og afventer gennemsyn. + work_package_type: Arbejdspakketype + work_package_type_caption: Den arbejdspakketype, der skal bruges til at gemme det færdige dokument. wizard_status_button: - project_creation_wizard: Open project creation wizard - project_initiation_request: Open project initiation request - project_mandate: Open project mandate + project_creation_wizard: Åbn guiden til oprettelse af projekt + project_initiation_request: Åbn anmodning om projektinitiering + project_mandate: Åbn projektkommissorium project_phase_definitions: - both_gate: Start and finish gate + both_gate: Fase-gate ved start og afslutning filter: - label: Search project phase - finish_gate: Finish gate - finish_gate_caption: Add a gate with the end date of the phase - heading: Project life cycle - heading_description: Project life cycle defines the project phases that can be used for your project planning and will appear in the overview page of each project. These attributes can be enabled or disabled but not re-ordered at a project level. + label: Søg efter projektfase + finish_gate: Fase-gate ved afslutning + finish_gate_caption: Tilføj en fase-gate på fasens slutdato + heading: Projektets livscyklus + heading_description: Projektets livscyklus definerer de projektfaser, der kan bruges i projektplanlægningen, og som vises på hvert projekts oversigtsside. Faserne kan aktiveres eller deaktiveres, men ikke ordnes på projektniveau. label_add: Tilføj - label_add_description: Add project phase definition + label_add_description: Tilføj definition af projektfase new: - description: Changes to this project phase will be reflected in all projects where it is enabled. - heading: New phase - no_gate: No gate - non_defined: No phases are currently defined. - phase_gates: Phase gates - section_header: Phases - start_gate: Start gate - start_gate_caption: Add a gate with the start date of the phase + description: Ændringer af projektfasen slår igennem i alle projekter, hvor den er aktiveret. + heading: Ny fase + no_gate: Ingen fase-gate + non_defined: Der er ikke defineret nogen faser. + phase_gates: Fase-gates + section_header: Faser + start_gate: Fase-gate ved start + start_gate_caption: Tilføj en fase-gate på fasens startdato projects: - missing_dependencies: Project module %{module} was checked which depends on %{dependencies}. You need to check these dependencies as well. - section_new_projects: Settings for new projects - section_project_overview: Settings for project lists + missing_dependencies: Projektmodulet %{module} er markeret, men afhænger af %{dependencies}. Du skal også markere dem. + section_new_projects: Indstillinger for nye projekter + section_project_overview: Indstillinger for projektlister session: Session user: - account: Account - default_preferences: Default preferences - deletion: Deletion - display_format: Display format + account: Konto + default_preferences: Standardpræferencer + deletion: Sletning + display_format: Visningsformat user_custom_field_sections: built_in_attribute_row_component: - label_built_in: Built-in - label_built_in_attribute_actions: Built-in attribute actions + label_built_in: Indbygget + label_built_in_attribute_actions: Handlinger for indbygget attribut custom_field_row_component: - label_user_custom_field_actions: User attribute actions + label_user_custom_field_actions: Handlinger for brugerattribut show_component: - label_add_attribute: Add a user attribute - label_edit_section: Edit title - label_no_user_custom_fields: No user attributes defined in this section - label_section_actions: Section actions + label_add_attribute: Tilføj en brugerattribut + label_edit_section: Rediger titel + label_no_user_custom_fields: Der er ikke defineret nogen brugerattributter i dette afsnit + label_section_actions: Handlinger for afsnit user_custom_fields: header_component: attribute_filter: - label: Filter by attribute name… - heading_description: These user attributes appear on user profiles and information cards. You can add new attributes, group them into sections and re-order them. - heading: User attributes - label_default_section: User attributes - label_new_attribute: User attribute - label_new_section: Section + label: Filtrér efter attributnavn … + heading_description: Brugerattributterne vises på brugerprofiler og informationskort. Du kan tilføje nye attributter, samle dem i afsnit og ændre deres rækkefølge. + heading: Brugerattributter + label_default_section: Brugerattributter + label_new_attribute: Brugerattribut + label_new_section: Afsnit new: - heading: New attribute + heading: Ny attribut semantic_keys: - description: Some attributes can do more than store information — the app uses them to power specific features. Choose which attribute to use for each purpose below. Each attribute can be used for only one purpose, and each purpose for only one attribute. + description: Nogle attributter kan mere end at gemme oplysninger – programmet bruger dem til bestemte funktioner. Vælg nedenfor, hvilken attribut der skal bruges til hvert formål. Hver attribut kan kun bruges til ét formål, og hvert formål kun til én attribut. descriptions: - job_title: Choose the attribute that holds each user's job title. It appears next to their name in several places, such as user cards. + job_title: Vælg den attribut, der indeholder brugernes stillingsbetegnelse. Den vises ved siden af navnet flere steder, fx på brugerkort. tabs: - attributes: Attributes - semantic_keys: Mapped attributes + attributes: Attributter + semantic_keys: Tilknyttede attributter work_packages: activities: - enable_internal_comments: Enable internal comments - helper_text_html: 'Internal comments allow an internal team to communicate amongst themselves privately. These are only visible to selected roles that have the necessary permissions and will not be visible publicly. [Click here to learn more](docs_url) + enable_internal_comments: Aktivér interne kommentarer + helper_text_html: 'Med interne kommentarer kan et internt team kommunikere privat. De er kun synlige for udvalgte roller med de nødvendige tilladelser og bliver ikke offentligt synlige. [Klik her for at få mere at vide](docs_url) ' - not_allowed_text: You do not have the necessary permissions to view this page. - work_package_identifier: Work package identifiers + not_allowed_text: Du har ikke de nødvendige tilladelser til at se denne side. + work_package_identifier: Id'er for arbejdspakker working_days: - section_holidays_and_closures: Holidays and closures - section_work_week: Work week + section_holidays_and_closures: Helligdage og lukkedage + section_work_week: Arbejdsuge sharing: count: one: 1 user @@ -6359,7 +6359,7 @@ da: text_setup_mail_configuration: Konfigurer din e-mailudbyder text_status_changed_by_changeset: Indføjet i pakken af ændringer, %{value}. text_table_difference_description: Tabellen viser de enkelte %{entries}. Du kan se forskellen mellem to vilkårlige poster ved først at markere de tilhørende afkrydsningsfelter i tabellen. Når du klikker på knappen under tabellen, vises forskellene. - text_time_logged_by_changeset: Indføjet i pakken af ændringer, %{value}. + text_time_logged_by_changeset: Anvendt i ændringssæt %{value}. text_tip_work_package_begin_day: arbejdspakker, der begynder denne dag text_tip_work_package_begin_end_day: arbejdspakker, der begynder eller slutter denne dag text_tip_work_package_end_day: arbejdspakker, der slutter denne dag @@ -6452,155 +6452,155 @@ da: breadcrumb_variant: 'Variant: %{name}' defaults: automatically_generated_subjects: - caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. - label: Automatically generated subjects + caption: Definer et mønster med refererede attributter og tekst, så arbejdspakkernes emner dannes automatisk. Brugerne kan ikke redigere emnerne manuelt. + label: Automatisk dannede emner description: caption: Add the text that will be added to the description field of all new work packages with this type. label: Default description text manually_editable_subjects: - caption: Users can manually enter and edit work package subjects without restrictions. - label: Manually editable subjects + caption: Brugerne kan frit skrive og redigere arbejdspakkernes emner manuelt. + label: Manuelt redigerbare emner pattern: - caption: Create patterns by adding text, or type "/" to search for [supported attributes](attributes_url). - insert_as_text: 'No attributes found. Add as text: "%{word}"' - label: Subject pattern - tab: Defaults + caption: Opret mønstre ved at tilføje tekst, eller skriv "/" for at søge efter [understøttede attributter](attributes_url). + insert_as_text: 'Der blev ikke fundet nogen attributter. Tilføj som tekst: "%{word}"' + label: Mønster for emne + tab: Standardværdier token: context: - parent: Parent - project: Project - work_package: Work package + parent: Overordnet + project: Projekt + work_package: Arbejdspakke label_with_context: "%{attribute_context}: %{attribute_label}" details: - allow_project_variants_caption: For project administrators with the permission to manage variants, this type can be extended or modified within a project. - inherited_from_type_html: Inherited from type %{type}. - tab: Details - type_color_text: The selected color distinguishes different types in Gantt charts or work packages tables. It is therefore recommended to use a strong color. - variant_name_caption_html: This is an internal name only visible to administrators. Variants replace the original parent type, so if this variant is used in a project, it will appear as %{type} to all members. + allow_project_variants_caption: Projektadministratorer med tilladelse til at administrere varianter kan udvide eller ændre denne type i et projekt. + inherited_from_type_html: Nedarvet fra typen %{type}. + tab: Detaljer + type_color_text: Den valgte farve adskiller typerne fra hinanden i Gantt-diagrammer og tabeller over arbejdspakker. Vælg derfor en kraftig farve. + variant_name_caption_html: Det er et internt navn, som kun administratorer kan se. Varianter erstatter den oprindelige overordnede type, så hvis varianten bruges i et projekt, vises den som %{type} for alle medlemmer. export_configuration: artefact_export: attachment: - caption: The generated PDF is saved as a file attachment on the work package. - label: Save as work package file attachment + caption: Den dannede PDF gemmes som vedhæftet fil på arbejdspakken. + label: Gem som vedhæftet fil på arbejdspakken file_link: - caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. - label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + caption: Den dannede PDF overføres til projektets automatisk administrerede Nextcloud-lager og linkes fra arbejdspakken. Arbejdspakker i projekter uden et sådant lager springes over. + label: Overfør filen til eksternt fillager, og tilføj et fillink til arbejdspakken + intro: Dan automatisk en PDF af arbejdspakker af denne type, hver gang deres status ændres. + invalid_mode: Ugyldig tilstand for automatisk PDF-eksport. + label: Automatisk PDF-eksport off_mode: - caption: No PDF is generated automatically. - label: 'Off' - section_title: Automatic artefact export - unavailable: unavailable, no automatically-managed Nextcloud storage is configured + caption: Der dannes ingen PDF automatisk. + label: Fra + section_title: Automatisk PDF-eksport + unavailable: ikke tilgængelig, fordi der ikke er konfigureret noget automatisk administreret Nextcloud-lager intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: - label_disable_all: Disable all - label_enable_all: Enable all - label_toggle_template: Toggle %{template} - label: PDF Export templates - tab: Generate PDF + label_disable_all: Deaktiver alle + label_enable_all: Aktivér alle + label_toggle_template: Slå %{template} til eller fra + label: Skabeloner til PDF-eksport + tab: Generér PDF templates: - readonly_error: Cannot be changed while linked to a source type. - section_title: PDF export templates + readonly_error: Kan ikke ændres, så længe den er knyttet til en kildetype. + section_title: Skabeloner til PDF-eksport settings: - edit_link: Edit settings - reset_to_default: Reset to default - title: 'Settings: %{template}' + edit_link: Rediger indstillinger + reset_to_default: Nulstil til standard + title: 'Indstillinger: %{template}' form_configuration: - add_attribute_group: Section - add_query_group: Related work packages table - blankslate_description: Add groups using the button above or drag attributes from the left panel. - blankslate_title: No groups yet - confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. - confirm_reset: Are you sure you want to reset the form? - custom_field: Custom field - delete_group: Delete section - drag_to_activate: Drag fields from here to activate them - drag_to_reorder: Drag to reorder - edit_query: Edit query - empty_group_hint: Drag attributes here + add_attribute_group: Afsnit + add_query_group: Tabel med relaterede arbejdspakker + blankslate_description: Tilføj grupper med knappen ovenfor, eller træk attributter ind fra panelet til venstre. + blankslate_title: Ingen grupper endnu + confirm_delete_group: Er du sikker på, at du vil slette afsnittet? Handlingen kan ikke fortrydes automatisk. + confirm_reset: Er du sikker på, at du vil nulstille formularen? + custom_field: Brugerdefineret felt + delete_group: Slet afsnit + drag_to_activate: Træk felter herfra for at aktivere dem + drag_to_reorder: Træk for at ændre rækkefølgen + edit_query: Rediger forespørgsel + empty_group_hint: Træk attributter hertil exclusions: - attribute_label: Inherit %{attribute} - excluded: Hidden - section_label: Inherit section %{section} - filter_inactive: Filter attributes - group_actions: Section actions - group_name_label: Section name - inactive_attributes_heading: Inactive attributes - invalid_attribute_groups: The form payload is invalid. - invalid_query: The embedded query configuration is invalid. - label_group: Section - no_inactive_attributes: No inactive attributes - not_found: The requested form item could not be found. - query_group_label: Related work packages table - remove_attribute: Remove from section - rename_group: Rename section - reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. + attribute_label: Nedarv %{attribute} + excluded: Skjult + section_label: Nedarv afsnittet %{section} + filter_inactive: Filtrér attributter + group_actions: Handlinger for afsnit + group_name_label: Afsnittets navn + inactive_attributes_heading: Inaktive attributter + invalid_attribute_groups: Formularens data er ugyldige. + invalid_query: Konfigurationen af den indlejrede forespørgsel er ugyldig. + label_group: Afsnit + no_inactive_attributes: Ingen inaktive attributter + not_found: Det ønskede formularelement blev ikke fundet. + query_group_label: Tabel med relaterede arbejdspakker + remove_attribute: Fjern fra afsnit + rename_group: Omdøb afsnit + reset_description: 'Attributterne sættes tilbage til deres standardgruppe, og ALLE brugerdefinerede felter deaktiveres. ' - reset_title: Reset form - reset_to_defaults: Reset form - row_actions: Row actions - tab: Form - untitled_group: Untitled group + reset_title: Nulstil formular + reset_to_defaults: Nulstil formular + row_actions: Handlinger for rækken + tab: Formular + untitled_group: Unavngiven gruppe overview: - configuration_mode: Configuration mode + configuration_mode: Konfigurationstilstand dependents: Dependent types and variants mode: - always_manual: Always manual + always_manual: Altid manuel inheriting_from_html: Inheriting from %{source_name} - manual: Manually configured - settings: Settings - tab: Overview + manual: Manuelt konfigureret + settings: Indstillinger + tab: Oversigt project_attributes: actions: - label_disable_all: Disable all - label_enable_all: Enable all + label_disable_all: Deaktiver alle + label_enable_all: Aktivér alle blankslate: inherited: - description: This type does not have any project attributes associated with it. - title: No project attributes configured + description: Der er ikke knyttet nogen projektattributter til denne type. + title: Ingen projektattributter konfigureret manual: - description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. - title: No project attributes available + description: Når du [opretter projektattributter](administration_url), vises de her og kan føjes til en type. + title: Ingen tilgængelige projektattributter description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. - disabled: Disabled + disabled: Deaktiveret exclusions: - attribute_label: Inherit %{attribute} - filter: Search by section or name - tab: Project attributes + attribute_label: Nedarv %{attribute} + filter: Søg efter afsnit eller navn + tab: Projektattributter projects: actions: - confirm_remove: Remove the type %{type} from %{project}? - remove_from_project: Remove from project - switch_variant: Change variant + confirm_remove: Vil du fjerne typen %{type} fra %{project}? + remove_from_project: Fjern fra projekt + switch_variant: Skift variant add_dialog: - no_projects_selected: Please select at least one project. - search_placeholder: Search projects - disable_all: Disable for all projects + no_projects_selected: Vælg mindst ét projekt. + search_placeholder: Søg efter projekter + disable_all: Deaktiver for alle projekter empty_state: - description: Add a project to use this configuration there. - no_results: No matching projects. - enable_all: Enable for all projects - select_projects: Select projects - select_projects_description: Select the projects in which you would like to use this type. + description: Tilføj et projekt for at bruge konfigurationen dér. + no_results: Ingen projekter matcher. + enable_all: Aktivér for alle projekter + select_projects: Vælg projekter + select_projects_description: Vælg de projekter, hvor du vil bruge typen. tab: Projekter reuse_mode: copy: confirm_dialog: - check_box: I understand that this will override the current settings - description_html: By copying data from %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - title: Copy configuration? + check_box: Jeg forstår, at dette overskriver de aktuelle indstillinger + description_html: Når du kopierer data fra %{source_name}, overskriver du de aktuelle indstillinger og kan påvirke eksisterende oplysninger i arbejdspakker af denne type. + title: Vil du kopiere konfigurationen? dialog: - description: Copy the configuration from a source type and use it as a one-time base. The configuration stays manual and does not inherit later changes of the source. - source_label: Source type - source_placeholder: Select a type or variant - submit: Save and copy - title: Copy configuration - invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. - success: The configuration was copied. + description: Kopiér konfigurationen fra en kildetype, og brug den som udgangspunkt én gang. Konfigurationen forbliver manuel og nedarver ikke senere ændringer i kilden. + source_label: Kildetype + source_placeholder: Vælg en type eller variant + submit: Gem og kopiér + title: Kopiér konfiguration + invalid_source: Konfigurationen kan ikke kopieres fra den valgte type. Vælg en anden kildetype. + success: Konfigurationen er kopieret. dependents: blank: description: No other type or variant inherits from this configuration @@ -6621,76 +6621,76 @@ da: other: "%{count} dependent types" view: View dependent types exclusions: - not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. - unknown_aspect: Unknown configuration section "%{aspect}". + not_inherited: Konfigurationen er ikke nedarvet, så der er intet at udelade. Rediger i stedet konfigurationen direkte. + unknown_aspect: Ukendt konfigurationsafsnit "%{aspect}". inherited: change_source: Change source type - configure_manually: Configure manually + configure_manually: Konfigurer manuelt confirm_dialog: change_source: description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. heading: Change source type? title: Change source type - check_box: I understand that this will override the current settings + check_box: Jeg forstår, at dette overskriver de aktuelle indstillinger from_manual: - description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. - heading: Switch configuration mode? - title: Switch configuration mode + description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. + heading: Vil du skifte konfigurationstilstand? + title: Skift konfigurationstilstand description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: - description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. - source_label: Source type - source_placeholder: Select a type or variant - submit: Switch - title: Inherit from another type - invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. - success: The configuration mode was switched. - title: Inherited configuration + description: Nedarv konfigurationen fra en kildetype. Ny konfiguration, der føjes til kilden, gælder også her. + source_label: Kildetype + source_placeholder: Vælg en type eller variant + submit: Skift + title: Nedarv fra en anden type + invalid_source: Konfigurationen kan ikke nedarves fra den valgte type. Vælg en anden kildetype. + success: Konfigurationstilstanden er skiftet. + title: Nedarvet konfiguration manual: confirm_dialog: - check_box: I understand that this will override the current settings - description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. - heading: Switch configuration mode? - title: Switch configuration mode + check_box: Jeg forstår, at dette overskriver de aktuelle indstillinger + description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. + heading: Vil du skifte konfigurationstilstand? + title: Skift konfigurationstilstand copy_from_type: Copy from another type - description: No settings are inherited. You can still copy the settings from another type one time. + description: Ingen indstillinger nedarves. Du kan stadig kopiere indstillingerne fra en anden type én gang. dialog: - submit: Switch - title: Configure manually + submit: Skift + title: Konfigurer manuelt inherit_from_type: Inherit from another type - invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + invalid_mode: Den valgte tilstand er ikke tilgængelig for denne konfiguration. Vælg en anden tilstand. modes: copy: - caption: Start with a one-time copy of the settings that this configuration inherits now. - label: Copy inherited settings + caption: Start med en kopi af de indstillinger, som konfigurationen nedarver nu. Kopien tages én gang. + label: Kopiér nedarvede indstillinger default: - caption: Use the default settings for new types. - label: Default settings + caption: Brug standardindstillingerne for nye typer. + label: Standardindstillinger empty: - caption: Set everything up from scratch, beginning from a blank configuration. - label: Empty - success: The configuration mode was switched. - title: Manual configuration - parent_suffix: " (parent)" + caption: Opsæt det hele fra bunden med en tom konfiguration. + label: Tom + success: Konfigurationstilstanden er skiftet. + title: Manuel konfiguration + parent_suffix: " (overordnet)" variants: blankslate: - description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. + description_html: 'Du kan oprette varianter for at tilbyde forskellige udgaver af typen til forskellige projekter.
Hver variant kan nedarve, kopiere eller have sin egen konfiguration af standardskabelon, brugerdefinerede felter, arbejdsgange og præferencer. ' - title: No variants exist for this type - created_in_html: Created in %{project} + title: Der findes ingen varianter af denne type + created_in_html: Oprettet i %{project} delete: - description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. - title: Delete %{name} - filter: Filter by text - filter_no_results: No variants match this filter + description: Projekter, der bruger varianten, skiftes til den variant, som du vælger nedenfor, før varianten slettes. + title: Slet %{name} + filter: Filtrér efter tekst + filter_no_results: Ingen varianter matcher filteret global_section: - description: These variants are available across all projects. + description: Disse varianter er tilgængelige i alle projekter. title: Variants project_specific_section: - description: These variants are only available within the projects in which they were created. - title: Project-specific variants + description: Disse varianter er kun tilgængelige i de projekter, hvor de blev oprettet. + title: Projektspecifikke varianter workflow: tab: Workflows index: @@ -6787,7 +6787,7 @@ da: placeholder: Vælg venligst en pladsholder user: Vælg venligst en bruger project: - label: Prjoekt + label: Projekt next_button: Næste no_invite_rights: Du har ikke tilladelse til at invitere medlemmer til dette projekt no_results: Ingen projekter blev fundet @@ -7225,14 +7225,14 @@ da: source_role_id: label: Source role target_role_ids: - label: Target roles + label: Målroller target_variant_ids: label: Target types from_roles: create: notice: - one: Successfully copied workflow to '%{role_name}' role. - other: Successfully copied workflow to %{count} roles. + one: Arbejdsgangen er kopieret til rollen '%{role_name}'. + other: Arbejdsgangen er kopieret til %{count} roller. from_variants: create: notice: @@ -7241,20 +7241,20 @@ da: new: title: Copy workflow of "%{source_type}" form: - matrix_caption: Workflow matrix - matrix_caption_assignee: Workflow matrix for assignee - matrix_caption_author: Workflow matrix for author - matrix_check_all_label: Allow all transitions - matrix_check_uncheck_all_in_col_label_html: Toggle transitions from all old statuses to %{new_status} - matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses - matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} - matrix_uncheck_all_label: Disallow all transitions + matrix_caption: Matrix for arbejdsgang + matrix_caption_assignee: Matrix for arbejdsgang for tildelte + matrix_caption_author: Matrix for arbejdsgang for forfatteren + matrix_check_all_label: Tillad alle overgange + matrix_check_uncheck_all_in_col_label_html: Slå overgange fra alle gamle statusser til %{new_status} til eller fra + matrix_check_uncheck_all_in_row_label_html: Slå overgange fra %{old_status} til alle nye statusser til eller fra + matrix_checkbox_label: Tillad overgang fra %{old_status} til %{new_status} + matrix_uncheck_all_label: Tillad ingen overgange index: type_filter: - label: Filter by type name… + label: Filtrér efter typenavn … page_headers: index_component: - description: Configure status transitions for each work package type. + description: Konfigurer statusovergange for hver arbejdspakketype. working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index f2d939f2f353..efa587378aba 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -29,11 +29,11 @@ da: warning_progress_calculation_mode_change_from_field_to_status_html: Hvis du skifter beregningen af fremdrift fra arbejdsbaseret til statusbaseret, går alle eksisterende værdier for % færdigt tabt og erstattes af de værdier, der er knyttet til hver status. Eksisterende værdier for Resterende arbejde kan også blive genberegnet, så de afspejler ændringen. Handlingen kan ikke fortrydes. warning_progress_calculation_mode_change_from_status_to_field_html: Hvis du skifter beregningen af fremdrift fra statusbaseret til arbejdsbaseret, kan feltet % færdigt redigeres frit. Hvis du vælger at angive værdier for Arbejde eller Resterende arbejde, bliver de også knyttet til % færdigt. Ændrer du Resterende arbejde, kan det derefter opdatere % færdigt. working_days: - add_non_working_day: Ikke-arbejdsdag - already_added_error: Der findes allerede en ikke-arbejdsdag på denne dato. Der kan kun oprettes én ikke-arbejdsdag pr. dato. + add_non_working_day: Arbejdsfri dag + already_added_error: Der findes allerede en arbejdsfri dag på denne dato. Der kan kun oprettes én arbejdsfri dag pr. dato. calendar: - empty_state_description: Der er ikke defineret nogen særlige ikke-arbejdsdage i år. Klik på "+ Ikke-arbejdsdag" nedenfor for at tilføje en dato. - empty_state_header: Ikke-arbejdsdage + empty_state_description: Der er ikke defineret nogen særlige arbejdsfrie dage i år. Klik på "+ Arbejdsfri dag" nedenfor for at tilføje en dato. + empty_state_header: Arbejdsfrie dage new_date: "(ny)" ajax: hide: Gem @@ -532,7 +532,7 @@ da: label_please_wait: Vent et øjeblik label_press_enter_to_save: Tryk på Enter for at gemme. label_previous: Foregående - label_project: Prjoekt + label_project: Projekt label_project_plural: Projekter label_public_query: Offentlig label_quote_comment: Citér denne kommentar @@ -1005,13 +1005,13 @@ da: percentCompleteAlternative: Fremdrift percentageDone: Procentdel udført priority: Prioritet - projectName: Prjoekt + projectName: Projekt remainingTime: Resterende arbejde remainingWork: Resterende arbejde remainingWorkAlternative: Resterende timer responsible: Ansvarlig spentTime: Anvendt tid - startDate: Start dato + startDate: Startdato status: Status subject: Emne subproject: Underprojekt @@ -1108,7 +1108,7 @@ da: manually: Manuelt warning: Du mister din tidligere sortering, når du slår automatisk sortering til. tabs: - activity: Aktivivtet + activity: Aktivitet files: Filer overview: Overblik project_attributes: Projektattributter From c0072eeab2a4b6fb07bd57ca619e3adc769461f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Thu, 22 Oct 2026 16:24:40 +0200 Subject: [PATCH 2/7] Bump nodejs to 24.22.1 Addresses the october CVEs: nodejs.org/en/blog/vulnerability/october-2026-security-releases --- .github/workflows/eslint-core.yml | 2 +- .github/workflows/hocuspocus-test.yml | 2 +- .github/workflows/npm-audit.yml | 2 +- .github/workflows/openapi.yaml | 2 +- .github/workflows/test-frontend-unit.yml | 2 +- AGENTS.md | 4 ++-- docker/ci/Dockerfile | 2 +- docker/dev/frontend/Dockerfile | 2 +- docker/prod/Dockerfile | 4 ++-- docs/development/development-environment/linux/README.md | 8 ++++---- docs/development/development-environment/macos/README.md | 8 ++++---- .../installation/manual/README.md | 6 +++--- extensions/op-blocknote-hocuspocus/package-lock.json | 2 +- extensions/op-blocknote-hocuspocus/package.json | 2 +- frontend/AGENTS.md | 2 +- package-lock.json | 2 +- package.json | 2 +- 17 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.github/workflows/eslint-core.yml b/.github/workflows/eslint-core.yml index 08092c3afdf5..75cdb285b03f 100644 --- a/.github/workflows/eslint-core.yml +++ b/.github/workflows/eslint-core.yml @@ -26,7 +26,7 @@ jobs: - name: Set up Node uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false cache: npm cache-dependency-path: frontend/package-lock.json diff --git a/.github/workflows/hocuspocus-test.yml b/.github/workflows/hocuspocus-test.yml index 9b0dc06aa658..b52feae91c0d 100644 --- a/.github/workflows/hocuspocus-test.yml +++ b/.github/workflows/hocuspocus-test.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false cache: npm cache-dependency-path: extensions/op-blocknote-hocuspocus/package-lock.json diff --git a/.github/workflows/npm-audit.yml b/.github/workflows/npm-audit.yml index e89d25cd8215..5d7f96a81636 100644 --- a/.github/workflows/npm-audit.yml +++ b/.github/workflows/npm-audit.yml @@ -37,7 +37,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false - name: Required git config diff --git a/.github/workflows/openapi.yaml b/.github/workflows/openapi.yaml index 4aebed17525f..baf36a31c839 100644 --- a/.github/workflows/openapi.yaml +++ b/.github/workflows/openapi.yaml @@ -28,6 +28,6 @@ jobs: bundler-cache: false - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: "24.18.0" + node-version: "24.22.1" package-manager-cache: false - run: ./script/api/validate_spec diff --git a/.github/workflows/test-frontend-unit.yml b/.github/workflows/test-frontend-unit.yml index d2861cfedc2f..2baa4f4443b2 100644 --- a/.github/workflows/test-frontend-unit.yml +++ b/.github/workflows/test-frontend-unit.yml @@ -65,7 +65,7 @@ jobs: - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false - name: Install Dependencies diff --git a/AGENTS.md b/AGENTS.md index a7e57b40cc01..c3bd7d1c9f9f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ - **Size**: Large monorepo (~840MB, ~1M+ lines of code) - **Backend**: Ruby 3.4.7, Rails ~8.0.3 -- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript +- **Frontend**: Node.js 24.x (>= 24.22.1), npm 11.x, TypeScript - **Database**: PostgreSQL (required) - **Architecture**: Server-rendered HTML with Hotwire (Turbo + Stimulus). Legacy Angular components exist and are being migrated to custom elements. Uses GitHub's Primer Design System via ViewComponent. - **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`) @@ -17,7 +17,7 @@ **ALWAYS verify versions before building:** - Ruby: `3.4.7` (see `.ruby-version`) -- Node: `^24.15.0` (see `package.json` engines) +- Node: `^24.22.1` (see `package.json` engines) - Bundler: Latest 2.x ### Local Development Setup diff --git a/docker/ci/Dockerfile b/docker/ci/Dockerfile index 543ea62f37d3..dd07327b202e 100644 --- a/docker/ci/Dockerfile +++ b/docker/ci/Dockerfile @@ -2,7 +2,7 @@ ARG RUBY_VERSION FROM ruby:${RUBY_VERSION}-trixie -ENV NODE_VERSION="24.18.0" +ENV NODE_VERSION="24.22.1" ENV DEBIAN_FRONTEND=noninteractive ENV BUNDLE_WITHOUT="development:production:docker" diff --git a/docker/dev/frontend/Dockerfile b/docker/dev/frontend/Dockerfile index fb5a2056f878..5063a975eae4 100644 --- a/docker/dev/frontend/Dockerfile +++ b/docker/dev/frontend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24.18.0 +FROM node:24.22.1 LABEL org.opencontainers.image.authors="operations@openproject.com" ARG DEV_UID=1000 diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index 0c20a52b4328..a2d89870c809 100755 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -6,7 +6,7 @@ ARG BUILDKIT_SBOM_SCAN_STAGE=true FROM ruby:${RUBY_VERSION}-slim-trixie AS runtime-base LABEL maintainer="operations@openproject.com" -ARG NODE_VERSION="24.19.0" +ARG NODE_VERSION="24.22.1" # npm bundled with node lags behind on patches for its vendored deps (e.g. tar) ARG NPM_VERSION="11.19.0" ARG BIM_SUPPORT=true @@ -63,7 +63,7 @@ COPY ./docker/prod/setup/preinstall-common.sh ./docker/prod/setup/preinstall-com RUN ./docker/prod/setup/preinstall-common.sh FROM runtime-base AS build-base -ARG NODE_VERSION="24.19.0" +ARG NODE_VERSION="24.22.1" ARG NPM_VERSION="11.19.0" # build-only dependencies diff --git a/docs/development/development-environment/linux/README.md b/docs/development/development-environment/linux/README.md index 43f1d278099d..65d9112e8be8 100644 --- a/docs/development/development-environment/linux/README.md +++ b/docs/development/development-environment/linux/README.md @@ -161,11 +161,11 @@ git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-b You can find the latest LTS version here: [nodejs.org/en/download/](https://nodejs.org/en/download/) -At the time of writing this is v24.18.0 Install and activate it with: +At the time of writing this is v24.22.1 Install and activate it with: ```shell -nodenv install 24.18.0 -nodenv global 24.18.0 +nodenv install 24.22.1 +nodenv global 24.22.1 nodenv rehash ``` @@ -187,7 +187,7 @@ bundler --version 4.0.16 node --version -v24.18.0 +v24.22.1 npm --version 11.16.0 diff --git a/docs/development/development-environment/macos/README.md b/docs/development/development-environment/macos/README.md index 7727dfcb36d4..09a5ef330f1e 100644 --- a/docs/development/development-environment/macos/README.md +++ b/docs/development/development-environment/macos/README.md @@ -115,11 +115,11 @@ nodenv init You can find the latest LTS version here: [nodejs.org/en/download](https://nodejs.org/en/download/) -At the time of writing this is v24.18.0. Install and activate it with: +At the time of writing this is v24.22.1. Install and activate it with: ```shell -nodenv install 24.18.0 -nodenv global 24.18.0 +nodenv install 24.22.1 +nodenv global 24.22.1 ``` #### Update NPM to the latest version @@ -140,7 +140,7 @@ $ bundler --version 4.0.16 node --version -v24.18.0 +v24.22.1 npm --version 11.16.0 diff --git a/docs/installation-and-operations/installation/manual/README.md b/docs/installation-and-operations/installation/manual/README.md index e6f696eb1b93..bc00d237d097 100644 --- a/docs/installation-and-operations/installation/manual/README.md +++ b/docs/installation-and-operations/installation/manual/README.md @@ -137,15 +137,15 @@ time to finish. [openproject@host] source ~/.profile [openproject@host] git clone https://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build -[openproject@host] nodenv install 24.18.0 +[openproject@host] nodenv install 24.22.1 [openproject@host] nodenv rehash -[openproject@host] nodenv global 24.18.0 +[openproject@host] nodenv global 24.22.1 ``` To check our Node installation we run `node --version`. It should output something very similar to: ```text -v24.18.0 +v24.22.1 ``` ## Installation of OpenProject diff --git a/extensions/op-blocknote-hocuspocus/package-lock.json b/extensions/op-blocknote-hocuspocus/package-lock.json index 47dfa5a82cfd..5210ee60eb4a 100644 --- a/extensions/op-blocknote-hocuspocus/package-lock.json +++ b/extensions/op-blocknote-hocuspocus/package-lock.json @@ -32,7 +32,7 @@ "vitest": "^4.1.11" }, "engines": { - "node": "^24.15.0" + "node": "^24.22.1" } }, "node_modules/@asamuzakjp/css-color": { diff --git a/extensions/op-blocknote-hocuspocus/package.json b/extensions/op-blocknote-hocuspocus/package.json index 106a126007fe..c6f3c940dc24 100644 --- a/extensions/op-blocknote-hocuspocus/package.json +++ b/extensions/op-blocknote-hocuspocus/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/opf/openproject/tree/dev/extensions/op-blocknote-hocuspocus#readme", "engines": { - "node": "^24.15.0" + "node": "^24.22.1" }, "dependencies": { "@blocknote/server-util": "^0.51.3", diff --git a/frontend/AGENTS.md b/frontend/AGENTS.md index 6fccc2fec73c..e0a2f531c9aa 100644 --- a/frontend/AGENTS.md +++ b/frontend/AGENTS.md @@ -15,7 +15,7 @@ ## Version Requirements -- Node: `^24.15.0` (see `package.json` engines) +- Node: `^24.22.1` (see `package.json` engines) ## Setup diff --git a/package-lock.json b/package-lock.json index a69a650e5f2c..a24a7c955fdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@redocly/cli": "^2.37.0" }, "engines": { - "node": "^24.15.0", + "node": "^24.22.1", "npm": "^11.0.0" } }, diff --git a/package.json b/package.json index f7315074109a..ccecbbc51adb 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "private": true, "engines": { - "node": "^24.15.0", + "node": "^24.22.1", "npm": "^11.0.0" }, "devDependencies": { From ad198af287e628f31751785a1a7b580927cf3543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Fri, 23 Oct 2026 07:41:38 +0200 Subject: [PATCH 3/7] Use buildpack 375 to include nodejs version --- .buildpacks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildpacks b/.buildpacks index 8aa71836654e..d4742df394a7 100644 --- a/.buildpacks +++ b/.buildpacks @@ -1,2 +1,2 @@ -https://github.com/heroku/heroku-buildpack-nodejs.git#v356 +https://github.com/heroku/heroku-buildpack-nodejs.git#v375 https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1 From 682ebec040ff1ec4d919a0975d1c3717a4dd447a Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 24 Oct 2026 03:24:37 +0000 Subject: [PATCH 4/7] update locales from crowdin [ci skip] --- config/locales/crowdin/da.seeders.yml | 396 +- config/locales/crowdin/da.yml | 3580 ++++++++--------- config/locales/crowdin/fr.yml | 2 +- config/locales/crowdin/js-da.yml | 250 +- modules/avatars/config/locales/crowdin/da.yml | 22 +- .../backlogs/config/locales/crowdin/da.yml | 266 +- modules/bim/config/locales/crowdin/da.yml | 70 +- modules/boards/config/locales/crowdin/da.yml | 16 +- .../boards/config/locales/crowdin/js-da.yml | 2 +- modules/budgets/config/locales/crowdin/da.yml | 56 +- modules/costs/config/locales/crowdin/da.yml | 148 +- .../costs/config/locales/crowdin/js-da.yml | 2 +- .../documents/config/locales/crowdin/da.yml | 46 +- .../config/locales/crowdin/da.yml | 32 +- .../config/locales/crowdin/da.yml | 68 +- .../config/locales/crowdin/js-da.yml | 20 +- modules/grids/config/locales/crowdin/da.yml | 20 +- .../grids/config/locales/crowdin/js-da.yml | 70 +- .../job_status/config/locales/crowdin/da.yml | 34 +- .../config/locales/crowdin/da.seeders.yml | 24 +- modules/meeting/config/locales/crowdin/da.yml | 936 ++--- modules/my_page/config/locales/crowdin/da.yml | 4 +- .../overviews/config/locales/crowdin/da.yml | 4 +- .../recaptcha/config/locales/crowdin/da.yml | 20 +- .../reporting/config/locales/crowdin/da.yml | 8 +- .../config/locales/crowdin/da.seeders.yml | 12 +- .../storages/config/locales/crowdin/da.yml | 850 ++-- .../storages/config/locales/crowdin/js-da.yml | 120 +- .../config/locales/crowdin/js-da.yml | 40 +- .../config/locales/crowdin/da.yml | 266 +- modules/wikis/config/locales/crowdin/da.yml | 314 +- .../wikis/config/locales/crowdin/js-da.yml | 6 +- .../xls_export/config/locales/crowdin/da.yml | 14 +- 33 files changed, 3858 insertions(+), 3860 deletions(-) diff --git a/config/locales/crowdin/da.seeders.yml b/config/locales/crowdin/da.seeders.yml index a450a966dd5e..069249dcc01b 100644 --- a/config/locales/crowdin/da.seeders.yml +++ b/config/locales/crowdin/da.seeders.yml @@ -38,61 +38,61 @@ da: item_0: name: PM2 Orange item_1: - name: PM2 Red + name: PM2 Rød item_2: name: PM2 Magenta item_3: - name: PM2 Green Yellow + name: PM2 Gulgrøn project_query_roles: item_0: - name: Project query viewer + name: Læser af projektliste item_1: - name: Project query editor + name: Redaktør af projektliste work_package_roles: item_0: - name: Work package editor + name: Redaktør af arbejdspakker item_1: - name: Work package commenter + name: Kommentator af arbejdspakker item_2: - name: Work package viewer + name: Læser af arbejdspakker project_roles: item_0: name: Ikke medlem item_1: - name: Anonymt + name: Anonym item_2: name: Medlem item_3: name: Læser item_4: - name: Projektadmin + name: Projektadministrator global_roles: item_0: - name: Staff and projects manager + name: Personale- og projektadministrator item_1: - name: Standard global role + name: Global standardrolle ai_text_transform_actions: item_0: - label: Fix grammar + label: Ret grammatik item_1: - label: Make concise + label: Gør kortere item_2: - label: Translate to English + label: Oversæt til engelsk item_3: - label: Sort into template + label: Sortér efter skabelon standard: project_phases: item_0: - name: Initiating + name: Igangsættelse item_1: - name: Planlæg - start_gate: Ready for Planning + name: Planlægning + start_gate: Klar til planlægning item_2: - name: Executing - start_gate: Ready for Executing + name: Udførelse + start_gate: Klar til udførelse item_3: - name: Closing - start_gate: Ready for Closing + name: Afslutning + start_gate: Klar til afslutning priorities: item_0: name: Lav @@ -104,31 +104,31 @@ da: name: Straks departments: item_0: - name: Marketing & Communications + name: Marketing og kommunikation item_1: - name: Public Relations + name: PR item_2: - name: Design & Content + name: Design og indhold item_3: - name: Events & Operations + name: Events og drift item_4: - name: Web & IT + name: Web og IT item_5: - name: Finance & Administration + name: Økonomi og administration item_6: - name: Quality Assurance + name: Kvalitetssikring projects: demo-project: - name: Demo project - status_explanation: Alle opgaver følger tidsplanen. De involverede kender deres opgaver. Systemet er fuldt opsat. - description: This is a short summary of the goals of this demo project. + name: Demoprojekt + status_explanation: Alle opgaver følger tidsplanen. De involverede kender deres opgaver. Systemet er sat helt op. + description: Dette er en kort opsummering af målene for dette demoprojekt. news: item_0: - title: Velkommen til demo-projektet + title: Velkommen til dit demoprojekt summary: | Vi er glade for deltagelsen. I dette modul kan man kommunikere projektnyheder til sine teammedlemmer. - description: De faktiske nyheder + description: Selve nyheden categories: item_0: Kategori 1 (skal ændres i Projektindstillinger) queries: @@ -142,20 +142,20 @@ da: name: Teamplanlægger boards: kanban: - name: Kanban board + name: Kanban-tavle basic: - name: Basic board + name: Grundlæggende tavle lists: item_0: - name: Wish list + name: Ønskeliste item_1: - name: Short list + name: Kortliste item_2: - name: Priority list for today + name: Prioriteret liste for i dag item_3: name: Aldrig parent_child: - name: Work breakdown structure + name: Arbejdsnedbrydningsstruktur project-overview: widgets: item_0: @@ -163,23 +163,23 @@ da: name: Velkommen item_1: options: - name: At komme gang + name: Kom godt i gang text: | - We are glad you joined! We suggest to try a few things to get started in OpenProject. + Vi er glade for, at du er med! Vi foreslår, at du prøver et par ting for at komme i gang med OpenProject. - Discover the most important features with our [Guided Tour]({{opSetting:base_url}}/projects/demo-project/work_packages/?start_onboarding_tour=true). + Lær de vigtigste funktioner at kende med vores [rundvisning]({{opSetting:base_url}}/projects/demo-project/work_packages/?start_onboarding_tour=true). - _Try the following steps:_ + _Prøv følgende trin:_ - 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/demo-project/members) in the project navigation. - 2. *View the work in your project*: → Go to [Work packages]({{opSetting:base_url}}/projects/demo-project/work_packages) in the project navigation. - 3. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/demo-project/work_packages/new). - 4. *Create and update a project plan*: → Go to [Project plan]({{opSetting:base_url}}/projects/demo-project/work_packages?query_id=##query.id:demo_project__query__project_plan) in the project navigation. - 5. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/demo-project/settings/modules). - 6. *Complete your tasks in the project*: → Go to [Work packages → Tasks]({{opSetting:base_url}}/projects/demo-project/work_packages/details/##wp.id:set_date_and_location_of_conference/overview?query_id=##query.id:demo_project__query__tasks). + 1. *Invitér nye medlemmer til dit projekt*: → Gå til [Medlemmer]({{opSetting:base_url}}/projects/demo-project/members) i projektnavigationen. + 2. *Se arbejdet i dit projekt*: → Gå til [Arbejdspakker]({{opSetting:base_url}}/projects/demo-project/work_packages) i projektnavigationen. + 3. *Opret en ny arbejdspakke*: → Gå til [Arbejdspakker → Opret]({{opSetting:base_url}}/projects/demo-project/work_packages/new). + 4. *Opret og opdater en projektplan*: → Gå til [Projektplan]({{opSetting:base_url}}/projects/demo-project/work_packages?query_id=##query.id:demo_project__query__project_plan) i projektnavigationen. + 5. *Aktivér flere moduler*: → Gå til [Projektindstillinger → Moduler]({{opSetting:base_url}}/projects/demo-project/settings/modules). + 6. *Udfør dine opgaver i projektet*: → Gå til [Arbejdspakker → Opgaver]({{opSetting:base_url}}/projects/demo-project/work_packages/details/##wp.id:set_date_and_location_of_conference/overview?query_id=##query.id:demo_project__query__tasks). - Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). - Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). + Her finder du vores [brugervejledninger](https://www.openproject.org/docs/user-guide/). + Sig til, hvis du har spørgsmål eller brug for hjælp. Kontakt os: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Arbejdspakker @@ -188,63 +188,63 @@ da: name: Milepæle work_packages: item_0: - subject: Start of project + subject: Projektstart item_1: - subject: Organize open source conference + subject: Arrangér open source-konference children: item_0: - subject: Set date and location of conference + subject: Fastlæg dato og sted for konferencen children: item_0: - subject: Send invitation to speakers + subject: Send invitation til talere item_1: - subject: Contact sponsoring partners + subject: Kontakt sponsorer item_2: - subject: Create sponsorship brochure and hand-outs + subject: Lav sponsorbrochure og uddelingsmateriale item_1: - subject: Invite attendees to conference + subject: Invitér deltagere til konferencen item_2: - subject: Setup conference website + subject: Opret konferencens websted item_2: - subject: Test and quality-check the conference website + subject: Test og kvalitetssikr konferencens websted item_3: - subject: Conference + subject: Konference item_4: - subject: Follow-up tasks + subject: Opfølgende opgaver children: item_0: - subject: Upload presentations to website + subject: Læg præsentationer på webstedet item_1: - subject: Party for conference supporters :-) + subject: Fest for konferencens støtter :-) description: |- - * [ ] Beer + * [ ] Øl * [ ] Snacks - * [ ] Music - * [ ] Even more beer + * [ ] Musik + * [ ] Endnu mere øl item_5: - subject: End of project + subject: Projektafslutning wiki: | - _In this wiki you can collaboratively create and edit pages and sub-pages to create a project wiki._ + _I denne wiki kan I sammen oprette og redigere sider og undersider til en projektwiki._ - **You can:** + **Du kan:** - * Insert text and images, also with copy and paste from other documents - * Create a page hierarchy with parent pages - * Include wiki pages to the project menu - * Use macros to include, e.g. table of contents, work package lists, or Gantt charts - * Include wiki pages in other text fields, e.g. project overview page - * Include links to other documents - * View the change history - * View as Markdown + * Indsætte tekst og billeder, også ved at kopiere og indsætte fra andre dokumenter + * Oprette et sidehierarki med overordnede sider + * Føje wikisider til projektmenuen + * Bruge makroer til at indsætte fx indholdsfortegnelser, lister over arbejdspakker eller Gantt-diagrammer + * Indsætte wikisider i andre tekstfelter, fx på projektets oversigtsside + * Indsætte links til andre dokumenter + * Se ændringshistorikken + * Vise siden som Markdown - More information: [https://www.openproject.org/docs/user-guide/wiki/](https://www.openproject.org/docs/user-guide/wiki/) + Flere oplysninger: [https://www.openproject.org/docs/user-guide/wiki/](https://www.openproject.org/docs/user-guide/wiki/) scrum-project: - name: Scrum project - status_explanation: Alle opgaver følger tidsplanen. De involverede kender deres opgaver. Systemet er fuldt opsat. - description: This is a short summary of the goals of this demo Scrum project. + name: Scrum-projekt + status_explanation: Alle opgaver følger tidsplanen. De involverede kender deres opgaver. Systemet er sat helt op. + description: Dette er en kort opsummering af målene for dette Scrum-demoprojekt. news: item_0: - title: Welcome to your Scrum demo project + title: Velkommen til dit Scrum-demoprojekt summary: | Vi er glade for deltagelsen. I dette modul kan man kommunikere projektnyheder til sine teammedlemmer. @@ -258,51 +258,51 @@ da: wiki: title: Sprint 1 content: | - ### Sprint planning meeting + ### Sprintplanlægningsmøde - _Please document here topics to the Sprint planning meeting_ + _Dokumentér emnerne til sprintplanlægningsmødet her_ - * Time boxed (8 h) + * Tidsafgrænset (8 t) * Input: Product Backlog * Output: Sprint Backlog - * Divided into two additional time boxes of 4 h: + * Opdelt i to yderligere tidsrum på 4 t: - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). + * Product Owner præsenterer [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) og prioriteterne for teamet og forklarer sprintmålet, som teamet skal være enigt i. Sammen prioriterer de de emner fra Product Backlog, som teamet tager sig af i den næste sprint. Teamet forpligter sig til den aftalte levering. + * Teamet planlægger selvstændigt (uden Product Owner) i detaljer og nedbryder opgaverne fra de aftalte krav til en samlet [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - ### Daily Scrum meeting + ### Daily Scrum-møde - _Please document here topics to the Daily Scrum meeting_ + _Dokumentér emnerne til Daily Scrum-mødet her_ - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + * Kort, dagligt statusmøde i teamet. + * Tidsafgrænset (højst 15 min). + * Stand-up-møde, hvor følgende emner fra [opgavetavlen](##sprint:scrum_project__version__sprint_1) drøftes. + * Hvad planlægger jeg at gøre inden næste Daily Scrum? + * Hvad har blokeret mit arbejde (forhindringer)? + * Scrum Master leder mødet og noterer [forhindringer i sprinten](##sprint:scrum_project__version__sprint_1). + * Product Owner kan deltage for at holde sig orienteret. - ### Sprint Review meeting + ### Sprint Review-møde - _Please document here topics to the Sprint Review meeting_ + _Dokumentér emnerne til Sprint Review-mødet her_ - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. + * Tidsafgrænset (4 t). + * Højst en times forberedelse pr. person. + * Teamet viser Product Owner og andre interesserede, hvad der er nået i denne sprint. + * Vigtigt: ingen attrapper og ingen PowerPoint! Kun færdig produktfunktionalitet (increments) skal demonstreres. + * Feedback fra Product Owner, interessenter og andre er ønsket og indgår i det videre arbejde. + * Ud fra de demonstrerede funktioner beslutter Product Owner, om dette increment skal i drift eller udvikles videre. Det giver mulighed for et tidligt ROI. ### Sprint Retrospective - _Please document here topics to the Sprint Retrospective meeting_ + _Dokumentér emnerne til Sprint Retrospective-mødet her_ - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. + * Tidsafgrænset (3 t). + * Efter Sprint Review, ledes af Scrum Master. + * Teamet drøfter sprinten: hvad gik godt, og hvad skal forbedres for at være mere produktive i næste sprint eller have det endnu sjovere. item_3: name: Sprint 2 categories: @@ -318,16 +318,16 @@ da: name: Opgaver boards: kanban: - name: Kanban board + name: Kanban-tavle basic: - name: Opgaveoversigt + name: Opgavetavle lists: item_0: - name: Wish list + name: Ønskeliste item_1: - name: Short list + name: Kortliste item_2: - name: Priority list for today + name: Prioriteret liste for i dag item_3: name: Aldrig project-overview: @@ -337,22 +337,22 @@ da: name: Velkommen item_1: options: - name: At komme gang + name: Kom godt i gang text: | - We are glad you joined! We suggest to try a few things to get started in OpenProject. + Vi er glade for, at du er med! Vi foreslår, at du prøver et par ting for at komme i gang med OpenProject. - _Try the following steps:_ + _Prøv følgende trin:_ - 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. - 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. - 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Invitér nye medlemmer til dit projekt*: → Gå til [Medlemmer]({{opSetting:base_url}}/projects/your-scrum-project/members) i projektnavigationen. + 2. *Se din Product Backlog og dine Sprint Backlogs*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i projektnavigationen. + 3. *Se din opgavetavle*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klik på højrepilen ved en sprint → Vælg [Opgavetavle](##sprint:scrum_project__version__sprint_1). + 4. *Opret en ny arbejdspakke*: → Gå til [Arbejdspakker → Opret]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 5. *Opret og opdater en projektplan*: → Gå til [Projektplan](##query:scrum_project__query__project_plan) i projektnavigationen. + 6. *Opret en sprintwiki*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs), og åbn sprintwikien fra rullemenuen til højre i en sprint. Du kan tilpasse [wikiskabelonen]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) efter behov. + 7. *Aktivér flere moduler*: → Gå til [Projektindstillinger → Moduler]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). - Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). + Her finder du vores [brugervejledninger](https://www.openproject.org/docs/user-guide/). + Sig til, hvis du har spørgsmål eller brug for hjælp. Kontakt os: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Arbejdspakker @@ -361,101 +361,101 @@ da: name: Projektplan work_packages: item_0: - subject: New login screen + subject: Ny loginskærm item_1: - subject: Password reset does not send email + subject: Nulstilling af adgangskode sender ikke e-mail item_2: - subject: New website + subject: Nyt websted children: item_0: - subject: Newsletter registration form + subject: Tilmeldingsformular til nyhedsbrev item_1: - subject: Implement product tour + subject: Implementér produktrundvisning item_2: - subject: New landing page + subject: Ny landingsside children: item_0: - subject: Create wireframes for new landing page + subject: Lav wireframes til ny landingsside item_3: - subject: Contact form + subject: Kontaktformular item_4: - subject: Feature carousel + subject: Funktionskarrusel children: item_0: - subject: Make screenshots for feature tour + subject: Tag skærmbilleder til funktionsrundvisning item_5: - subject: Wrong hover color + subject: Forkert farve ved hover item_6: - subject: SSL certificate + subject: SSL-certifikat item_7: - subject: Set-up Staging environment + subject: Opsæt testmiljø (staging) item_8: - subject: Choose a content management system + subject: Vælg et CMS item_9: - subject: Website navigation structure + subject: Webstedets navigationsstruktur children: item_0: - subject: Set up navigation concept for website. + subject: Udarbejd navigationskoncept til webstedet. item_10: - subject: Internal link structure + subject: Intern linkstruktur item_11: - subject: Develop v1.0 + subject: Udvikl v1.0 item_12: subject: Release v1.0 item_13: - subject: Develop v1.1 + subject: Udvikl v1.1 item_14: subject: Release v1.1 item_15: - subject: Develop v2.0 + subject: Udvikl v2.0 item_16: subject: Release v2.0 wiki: | - ### Sprint planning meeting + ### Sprintplanlægningsmøde - _Please document here topics to the Sprint planning meeting_ + _Dokumentér emnerne til sprintplanlægningsmødet her_ - * Time boxed (8 h) + * Tidsafgrænset (8 t) * Input: Product Backlog * Output: Sprint Backlog - * Divided into two additional time boxes of 4 h: + * Opdelt i to yderligere tidsrum på 4 t: - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). + * Product Owner præsenterer [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) og prioriteterne for teamet og forklarer sprintmålet, som teamet skal være enigt i. Sammen prioriterer de de emner fra Product Backlog, som teamet tager sig af i den næste sprint. Teamet forpligter sig til den aftalte levering. + * Teamet planlægger selvstændigt (uden Product Owner) i detaljer og nedbryder opgaverne fra de aftalte krav til en samlet [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - ### Daily Scrum meeting + ### Daily Scrum-møde - _Please document here topics to the Daily Scrum meeting_ + _Dokumentér emnerne til Daily Scrum-mødet her_ - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the Task board. - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down Sprint Impediments. - * Product Owner may participate may participate in order to stay informed. + * Kort, dagligt statusmøde i teamet. + * Tidsafgrænset (højst 15 min). + * Stand-up-møde, hvor følgende emner fra opgavetavlen drøftes. + * Hvad planlægger jeg at gøre inden næste Daily Scrum? + * Hvad har blokeret mit arbejde (forhindringer)? + * Scrum Master leder mødet og noterer forhindringer i sprinten. + * Product Owner kan deltage for at holde sig orienteret. - ### Sprint Review meeting + ### Sprint Review-møde - _Please document here topics to the Sprint Review meeting_ + _Dokumentér emnerne til Sprint Review-mødet her_ - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. + * Tidsafgrænset (4 t). + * Højst en times forberedelse pr. person. + * Teamet viser Product Owner og andre interesserede, hvad der er nået i denne sprint. + * Vigtigt: ingen attrapper og ingen PowerPoint! Kun færdig produktfunktionalitet (increments) skal demonstreres. + * Feedback fra Product Owner, interessenter og andre er ønsket og indgår i det videre arbejde. + * Ud fra de demonstrerede funktioner beslutter Product Owner, om dette increment skal i drift eller udvikles videre. Det giver mulighed for et tidligt ROI. ### Sprint Retrospective - _Please document here topics to the Sprint Retrospective meeting_ + _Dokumentér emnerne til Sprint Retrospective-mødet her_ - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. + * Tidsafgrænset (3 t). + * Efter Sprint Review, ledes af Scrum Master. + * Teamet drøfter sprinten: hvad gik godt, og hvad skal forbedres for at være mere produktive i næste sprint eller have det endnu sjovere. statuses: item_0: name: Ny @@ -466,11 +466,11 @@ da: item_3: name: Bekræftet item_4: - name: Skal skemalægges + name: Skal planlægges item_5: name: Planlagt item_6: - name: Igangværende + name: I gang item_7: name: Udviklet item_8: @@ -487,13 +487,13 @@ da: name: Afvist time_entry_activities: item_0: - name: Håndtering + name: Ledelse item_1: name: Specifikation item_2: name: Udvikling item_3: - name: Afprøver + name: Test item_4: name: Support item_5: @@ -504,44 +504,44 @@ da: item_1: name: Milepæl item_2: - name: Summary task + name: Sammenfattende opgave item_3: name: Funktion item_4: - name: Episk + name: Epic item_5: - name: Brugerhistorik + name: User story item_6: name: Fejl global_queries: item_0: - name: 'Epic children: User stories and bugs' + name: 'Underordnede af epic: user stories og fejl' item_1: - name: 'User story children: Tasks' + name: 'Underordnede af user story: opgaver' type_configuration: item_0: form_configuration: item_0: - group_name: User stories and bugs + group_name: User stories og fejl item_1: form_configuration: item_0: - group_name: Tasks + group_name: Opgaver welcome: - title: Welcome to OpenProject! + title: Velkommen til OpenProject! text: | - OpenProject is the leading open source project management software. It supports classic, agile as well as hybrid project management and gives you full control over your data. + OpenProject er det førende open source-program til projektstyring. Det understøtter klassisk, agil og hybrid projektstyring og giver dig fuld kontrol over dine data. - Core features and use cases: + Kernefunktioner og anvendelser: - * [Project Portfolio Management](https://www.openproject.org/collaboration-software-features/project-portfolio-management/) - * [Project Planning and Scheduling](https://www.openproject.org/collaboration-software-features/project-planning-scheduling/) - * [Task Management and Issue Tracking](https://www.openproject.org/collaboration-software-features/task-management/) - * [Agile Boards (Scrum and Kanban)](https://www.openproject.org/collaboration-software-features/agile-project-management/) - * [Requirements Management and Release Planning](https://www.openproject.org/collaboration-software-features/product-development/) - * [Time and Cost Tracking, Budgets](https://www.openproject.org/collaboration-software-features/time-tracking/) - * [Team Collaboration and Documentation](https://www.openproject.org/collaboration-software-features/team-collaboration/) + * [Styring af projektporteføljer](https://www.openproject.org/collaboration-software-features/project-portfolio-management/) + * [Projektplanlægning og tidsplaner](https://www.openproject.org/collaboration-software-features/project-planning-scheduling/) + * [Opgavestyring og sagsopfølgning](https://www.openproject.org/collaboration-software-features/task-management/) + * [Agile tavler (Scrum og Kanban)](https://www.openproject.org/collaboration-software-features/agile-project-management/) + * [Kravstyring og release-planlægning](https://www.openproject.org/collaboration-software-features/product-development/) + * [Tids- og omkostningsregistrering, budgetter](https://www.openproject.org/collaboration-software-features/time-tracking/) + * [Samarbejde og dokumentation i teams](https://www.openproject.org/collaboration-software-features/team-collaboration/) - Welcome to the future of project management. + Velkommen til fremtidens projektstyring. - For Admins: You can change this welcome text [here]({{opSetting:base_url}}/admin/settings/general). + Til administratorer: Du kan ændre denne velkomsttekst [her]({{opSetting:base_url}}/admin/settings/general). diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 8cec496b6222..55496ad2566d 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -25,34 +25,34 @@ da: macro: aria_label_with_name: "%{name}: %{description}" resource_links: - attachment: A dynamic link to an attachment placed using a macro. - commit: A dynamic link to a commit placed using a macro. - document: A dynamic link to a document placed using a macro. - export: A dynamic link to a source file export placed using a macro. - group: A dynamic link to a group placed using a macro. - meeting: A dynamic link to a meeting placed using a macro. - message: A dynamic link to a message placed using a macro. - project: A dynamic link to a project placed using a macro. - revision: A dynamic link to a revision placed using a macro. - source: A dynamic link to a source file placed using a macro. - user: A dynamic link to a user placed using a macro. - version: A dynamic link to a version placed using a macro. - view: A dynamic link to a view placed using a macro. - work_package: A dynamic link to a work package placed using a macro. + attachment: Et dynamisk link til en vedhæftet fil, der er indsat med en makro. + commit: Et dynamisk link til et commit, der er indsat med en makro. + document: Et dynamisk link til et dokument, der er indsat med en makro. + export: Et dynamisk link til en eksport af en kildefil, der er indsat med en makro. + group: Et dynamisk link til en gruppe, der er indsat med en makro. + meeting: Et dynamisk link til et møde, der er indsat med en makro. + message: Et dynamisk link til et indlæg, der er indsat med en makro. + project: Et dynamisk link til et projekt, der er indsat med en makro. + revision: Et dynamisk link til en revision, der er indsat med en makro. + source: Et dynamisk link til en kildefil, der er indsat med en makro. + user: Et dynamisk link til en bruger, der er indsat med en makro. + version: Et dynamisk link til en version, der er indsat med en makro. + view: Et dynamisk link til en visning, der er indsat med en makro. + work_package: Et dynamisk link til en arbejdspakke, der er indsat med en makro. account: - auth_source_login_html: Please login as %{login} to activate your account. + auth_source_login_html: Log ind som %{login} for at aktivere din konto. delete: Slet konto delete_confirmation: Er du sikker på, du vil slette denne konto? deletion_info: data_consequences: - other: All user-specific data will be deleted. The user's activity in shared views such as work packages and meetings will not be deleted but instead be associated with a generic 'Deleted user' that cannot be linked to the original account. - self: All user-specific data will be deleted. Your activity in shared views such as work packages and meetings will not be deleted but instead be associated with a generic 'Deleted user' that cannot be linked to your original account. - heading: Delete %{name}'s account? + other: Alle brugerspecifikke data slettes. Brugerens aktivitet i fælles visninger som arbejdspakker og møder slettes ikke, men knyttes i stedet til en generel 'Slettet bruger', som ikke kan forbindes med den oprindelige konto. + self: Alle brugerspecifikke data slettes. Din aktivitet i fælles visninger som arbejdspakker og møder slettes ikke, men knyttes i stedet til en generel 'Slettet bruger', som ikke kan forbindes med din oprindelige konto. + heading: Vil du slette kontoen for %{name}? login_consequences: - other: This account will immediately be removed from the system and the user will no longer be able to log in with their credentials. - self: Your account will immediately be removed from the system and you will no longer be able to log in using your credentials. - title: Delete %{name}'s account - deletion_pending: Account has been scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted. + other: Kontoen fjernes straks fra systemet, og brugeren kan ikke længere logge ind med sine loginoplysninger. + self: Din konto fjernes straks fra systemet, og du kan ikke længere logge ind med dine loginoplysninger. + title: Slet kontoen for %{name} + deletion_pending: Kontoen er planlagt til sletning. Bemærk, at det sker i baggrunden. Der kan gå et øjeblik, før brugeren er helt slettet. error_inactive_activation_by_mail: 'Din konto er endnu ikke blevet aktiveret. For at aktivere din konto, klik på det link, der blev sendt til dig. ' @@ -62,15 +62,15 @@ da: error_self_registration_disabled: 'Brugerregistrering er deaktiveret på dette system. Vær venlig at bede en administrator oprette en konto til dig. ' - error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. + error_self_registration_limited_provider: 'Brugerregistrering er begrænset for single sign-on-udbyderen ''%{name}''. Bed en administrator om at aktivere kontoen for dig eller ændre grænsen for selvregistrering for udbyderen. ' login_with_auth_provider: eller log på med din eksisterende konto - omniauth_direct_login_continue: Continue to sign in - omniauth_direct_login_redirecting: Redirecting you to your identity provider… + omniauth_direct_login_continue: Fortsæt til login + omniauth_direct_login_redirecting: Du sendes videre til din identitetsudbyder … omniauth_login: Log venligst ind for at aktivere din konto. - signup_title: Create an account in %{app_title} - signup_with_external_account: Sign up with an external account + signup_title: Opret en konto på %{app_title} + signup_with_external_account: Tilmeld dig med en ekstern konto actionview_instancetag_blank_option: Vælg venligst activemodel: attributes: @@ -116,7 +116,7 @@ da: caption: Undertekst help_text: Hjælpetekst auth_provider: - additional_form_action_urls: Additional allowed login redirect URLs + additional_form_action_urls: Ekstra tilladte URL'er til omdirigering ved login scim_clients: SCIM-klienter calculated_value_error: customized_id: Objektets id @@ -193,9 +193,9 @@ da: organizational_unit: Organisatorisk enhed parent: Overordnet gruppe import/jira: - name: Jira instance name - personal_access_token: Personal access token - url: Jira instance URL + name: Navn på Jira-installation + personal_access_token: Personligt adgangstoken + url: URL til Jira-installation import/jira_open_project_reference: jira: Jira jira_import: Jira-migrering @@ -218,9 +218,9 @@ da: port: Port tls_certificate_string: LDAP-serverens SSL-certifikat mcp_configuration: - description: Description - enabled: Enabled - title: Title + description: Beskrivelse + enabled: Aktiveret + title: Titel member: blocked: Blokeret roles: Rollee @@ -277,7 +277,7 @@ da: not_started: Ikke startet off_track: Afviger fra planen on_track: Følger planen - status_explanation: Status description + status_explanation: Beskrivelse af status template: Skabelon templated: Skabelonprojekt templated_value: @@ -384,19 +384,19 @@ da: type_variant: attribute_groups: Formular default_work_package_description: Standardtekst til beskrivelsen - defaults_source: Defaults source + defaults_source: Kilde til standardværdier enabled_in_new_projects: Aktiv i nye projekter - form_configuration_source: Form source + form_configuration_source: Kilde til formular patterns: Mønstre - pdf_export_source: PDF export source - project_attributes_source: Project attributes source + pdf_export_source: Kilde til PDF-eksport + project_attributes_source: Kilde til projektattributter project_types: Projekter, der bruger varianten variant: Variant variant_name: Navn - workflows_source: Workflows source + workflows_source: Kilde til arbejdsgange user: admin: Administrator - auth_source: Authentication source + auth_source: Godkendelseskilde consented_at: Samtykke givet current_password: Nuværende adgangskode department: Afdeling @@ -417,8 +417,8 @@ da: end_date: Slutdato start_date: Startdato user_preference: - auto_hide_popups: Automatically hide success banners - auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + auto_hide_popups: Skjul meddelelser om gennemførte handlinger automatisk + auto_hide_popups_caption: Når indstillingen er slået til, forsvinder de grønne meddelelser om gennemførte handlinger automatisk efter 5 sekunder. button_update_alerts: Opdater advarsler button_update_look_and_feel: Opdater udseende button_update_user_information: Opdater profil @@ -436,8 +436,8 @@ da: increase_contrast: Øg kontrasten increase_contrast_caption: Slår høj kontrast til for den valgte farvetilstand. increase_theme_contrast: Øg temaets kontrast - mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. - theme: Color mode + mode_guideline: Nogle tilstande overskriver tilpassede temafarver af hensyn til tilgængelighed og læsbarhed. Vælg Lys tilstand for fuld understøttelse af tilpassede temaer. + theme: Farvetilstand time_zone: Tidszone warn_on_leaving_unsaved: Advar mig, når jeg forlader en arbejdspakke med ændringer, der ikke er gemt workdays: Arbejdsdage @@ -477,9 +477,9 @@ da: begin_deletion: Start på sletning begin_insertion: Start på indsættelse children: Underelementer - derived_done_ratio: Total % complete - derived_remaining_hours: Total remaining work - derived_remaining_time: Total remaining work + derived_done_ratio: Samlet % færdigt + derived_remaining_hours: Samlet resterende arbejde + derived_remaining_time: Samlet resterende arbejde done_ratio: "% færdigt" duration: Varighed end_deletion: Slut på sletning @@ -604,8 +604,8 @@ da: unknown_property: er ikke en kendt egenskab. unknown_property_nested: har den ukendte sti '%{path}'. unremovable: kan ikke fjernes. - url_list_invalid: Lines %{invalid_lines} are not valid HTTP or HTTPS URLs. - url_not_secure_context: 'is not providing a "Secure Context". Either use HTTPS or a loopback address, such as localhost. + url_list_invalid: Linjerne %{invalid_lines} er ikke gyldige HTTP- eller HTTPS-URL'er. + url_not_secure_context: 'giver ikke en "Secure Context". Brug enten HTTPS eller en loopback-adresse som localhost. ' user_already_in_department: Brugeren %{user_id} er allerede medlem af afdelingen %{department_id}. @@ -617,7 +617,7 @@ da: content_type: blank: Filens indholdstype må ikke være tom. format: "%{message}" - not_allowlisted: The file was rejected by an automatic filter. '%{value}' is not allowed for upload. + not_allowlisted: Filen blev afvist af et automatisk filter. '%{value}' må ikke overføres. capability: context: global: Global @@ -644,7 +644,7 @@ da: not_allowed_custom_fields_referenced: 'Attributten %{custom_fields} kan ikke bruges, fordi den fører til en cirkulær reference: Den ene attribut afhænger af den anden.' required: cannot_be_true: kan ikke slås til. - previous_custom_field_recalculation_unprocessed: The recalculation of previous changes for this custom field have not been applied yet, please try again in a few minutes. + previous_custom_field_recalculation_unprocessed: Genberegningen af tidligere ændringer i dette brugerdefinerede felt er endnu ikke anvendt. Prøv igen om et par minutter. referenced_in_other_fields_html: one: "%{name} bruges i beregningen af projektattributten %{links}." other: "%{name} bruges i beregningerne af projektattributter: %{links}." @@ -659,7 +659,7 @@ da: fragment_present: må ikke indeholde et fragment. invalid_uri: skal være en gyldig URI. relative_uri: skal være en absolut URI. - secured_uri: is not providing a "Secure Context". Either use HTTPS or a loopback address, such as localhost. + secured_uri: giver ikke en "Secure Context". Brug enten HTTPS eller en loopback-adresse som localhost. scopes: not_match_configured: svarer ikke til de tilgængelige omfang. enterprise_token: @@ -675,7 +675,7 @@ da: grids/grid: end_before_start: Slutværdien skal være større end startværdien. outside: er uden for gitteret. - overlaps: overlap. + overlaps: overlapper. group: attributes: parent_id: @@ -744,7 +744,7 @@ da: types: cannot_assign_multiple_variants_of_parent: Der kan kun aktiveres én variant af en type i projektet cannot_assign_variant_and_parent: 'En variant og dens overordnede type kan ikke tildeles samtidig ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants + cannot_assign_variants_yet: Varianter kan endnu ikke aktiveres i et projekt. Aktivér den eksperimentelle funktion for at prøve varianter in_use_by_work_packages: 'bruges stadig af arbejdspakker: %{types}' switch_target_blank: Vælg den variant, der skal skiftes til switch_target_identical: Måltypen skal være en anden end den type, projektet bruger nu @@ -812,12 +812,12 @@ da: from_id: error_not_found: blev ikke fundet. error_not_manageable: kan ikke tilføjes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. - error_readonly: cannot be changed for existing relations. + error_readonly: kan ikke ændres for eksisterende relationer. format: Den valgte arbejdspakke %{message} to_id: error_not_found: blev ikke fundet. error_not_manageable: kan ikke tilføjes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. - error_readonly: cannot be changed for existing relations. + error_readonly: kan ikke ændres for eksisterende relationer. format: Den valgte arbejdspakke %{message} typed_dag: circular_dependency: Relationen skaber en cirkel af relationer. @@ -860,39 +860,39 @@ da: type_variant: attributes: attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + attribute_unknown: Der er brugt en ugyldig arbejdspakkeattribut. + attribute_unknown_name: 'Der er brugt en ugyldig arbejdspakkeattribut: %{attribute}' + duplicate_group: Gruppenavnet '%{group}' er brugt mere end én gang. Gruppenavne skal være entydige. + group_without_name: Gruppenavnet må ikke være tomt. + query_invalid: 'Den indlejrede forespørgsel ''%{group}'' er ugyldig: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. + borrowed_by_variants: Kan ikke slettes, så længe konfigurationen genbruges af %{names}. is_default_variant: En types standardkonfiguration kan ikke slettes. project_variants_not_allowed: Typen tillader ikke, at der oprettes varianter i projekter. restrict_dependent_destroy: has_many: Kan ikke slettes, så længe projekter stadig bruger den. defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. + would_create_cycle: ville forbinde konfigurationerne i en løkke. enabled_in_new_projects: not_available_to_project_owned_variant: kan ikke angives for en variant, som et projekt ejer. taken: er allerede angivet for en anden konfiguration af denne type. form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. + would_create_cycle: ville forbinde konfigurationerne i en løkke. patterns: invalid_tokens: En eller flere attributter i feltet er ugyldige. Ret attributterne, før du gemmer. pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. + would_create_cycle: ville forbinde konfigurationerne i en løkke. project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. + would_create_cycle: ville forbinde konfigurationerne i en løkke. variant: must_belong_to_the_type: skal være en variant af denne type. workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. + would_create_cycle: ville forbinde konfigurationerne i en løkke. user: attributes: base: @@ -968,10 +968,10 @@ da: estimated_hours: cant_be_inferior_to_remaining_work: kan ikke være mindre end Resterende arbejde. must_be_set_when_remaining_work_and_percent_complete_are_set: er påkrævet, når Resterende arbejde og % færdigt er angivet. - not_a_number: is not a valid duration. + not_a_number: er ikke en gyldig varighed. id: - blank: ID can't be blank. - cannot_add_child_because_of_lack_of_permission: Cannot add child because you don't have permissions to edit the selected work package. + blank: Id må ikke være tomt. + cannot_add_child_because_of_lack_of_permission: Den underordnede kan ikke tilføjes, fordi du ikke har tilladelse til at redigere den valgte arbejdspakke. format: "%{message}" identifier: must_not_be_changed: 'må ikke ændres manuelt. Arbejdspakkers id''er tildeles automatisk og slås op via aliastabellen, så hvis de ændres manuelt, går links og id-historikken i stykker. Er ændringen tilsigtet, så gem med `save(context: :%{context})`, og hold tabellen work_package_semantic_aliases konsistent.' @@ -989,9 +989,9 @@ da: must_be_set_to_zero_hours_when_work_is_set_and_percent_complete_is_100p: skal være 0 t, når Arbejde er angivet, og % færdigt er 100 %. must_be_set_when_work_and_percent_complete_are_set: er påkrævet, når Arbejde og % færdigt er angivet. must_be_set_when_work_is_set: er påkrævet, når Arbejde er angivet. - not_a_number: is not a valid duration. + not_a_number: er ikke en gyldig varighed. schedule_manually: - cannot_be_automatically_scheduled: cannot be set to false (automatically scheduled) as it has no predecessors or children. + cannot_be_automatically_scheduled: kan ikke slås fra (automatisk planlægning), fordi arbejdspakken ikke har nogen forgængere eller underordnede. sequence_number: must_not_be_changed: 'må ikke ændres manuelt. Det tildeles automatisk sammen med id''et. Er ændringen tilsigtet, så gem med `save(context: :%{context})`.' start_date: @@ -1072,8 +1072,8 @@ da: one: Kommentar other: Kommentarer custom_action: - one: Custom action - other: Custom actions + one: Brugerdefineret handling + other: Brugerdefinerede handlinger custom_field: one: Brugerdefineret felt other: Brugerdefinerede felter @@ -1204,8 +1204,8 @@ da: one: Afsnit med projektattributter other: Afsnit med projektattributter project_query: - one: Project list - other: Project lists + one: Projektliste + other: Projektlister project_query_role: one: Rolle for projektliste other: Roller for projektlister @@ -1255,8 +1255,8 @@ da: one: Systembruger other: Systembrugere token/api: - one: Adgangstegn - other: Access tokens + one: Adgangstoken + other: Adgangstokens token/base: one: Token other: Tokens @@ -1328,149 +1328,149 @@ da: no_results_title_text: Der har ikke været nogen aktivitet for projektet i tidsperioden. work_packages: activity_tab: - changed: changed - changed_on: changed on - commented: commented - created: created - created_on: created this on - internal_comment: Internal comment + changed: ændrede + changed_on: ændrede den + commented: kommenterede + created: oprettede + created_on: oprettede dette den + internal_comment: Intern kommentar internal_comment_confirmation: - confirm_button_text: Make public - description: Your comment will be visible to anyone who can access this work package. Are you sure you want to do this? - heading: Make this comment public? - title: Make this comment public? - internal_journal: Internal comments are visible to a limited group of members. - label_activity_hide_meetings: Hide meetings updates - label_activity_show_all: Show everything - label_activity_show_only_changes: Show changes only - label_activity_show_only_comments: Show comments only - label_dismiss_comment: Dismiss - label_sort_asc: Newest at the bottom - label_sort_desc: Newest on top - label_submit_comment: Submit comment - label_type_to_comment: Add a comment. Type @ to notify people. - label_who: Who? - no_results_description_text: Choose "Show everything" to show all activity and comments - no_results_title_text: No activity to display - unsaved_changes_confirmation_message: Are you sure you want to dismiss your comment? The content that you have written will be lost. + confirm_button_text: Gør offentlig + description: Din kommentar bliver synlig for alle, der har adgang til arbejdspakken. Er du sikker på, at du vil gøre det? + heading: Vil du gøre kommentaren offentlig? + title: Vil du gøre kommentaren offentlig? + internal_journal: Interne kommentarer er synlige for en begrænset gruppe medlemmer. + label_activity_hide_meetings: Skjul opdateringer fra møder + label_activity_show_all: Vis alt + label_activity_show_only_changes: Vis kun ændringer + label_activity_show_only_comments: Vis kun kommentarer + label_dismiss_comment: Kassér + label_sort_asc: Nyeste nederst + label_sort_desc: Nyeste øverst + label_submit_comment: Send kommentar + label_type_to_comment: Tilføj en kommentar. Skriv @ for at give andre besked. + label_who: Hvem? + no_results_description_text: Vælg "Vis alt" for at se al aktivitet og alle kommentarer + no_results_title_text: Ingen aktivitet at vise + unsaved_changes_confirmation_message: Er du sikker på, at du vil kassere din kommentar? Det, som du har skrevet, går tabt. activity: filter: changeset: Ændringssæt message: Fora news: Nyheder project_details: Projektdetaljer - subproject: Include subprojects + subproject: Medtag underprojekter time_entry: Anvendt tid wiki_edit: Wiki work_package: Arbejdspakker item: - added_by_on: added by %{user} on %{datetime} - added_on: added on %{datetime} - created_by_on: created by %{user} on %{datetime} - created_by_on_time_entry: time logged by %{user} on %{datetime} - created_on: created on %{datetime} - created_on_time_entry: time logged on %{datetime} - deleted_by_on: deleted by %{user} on %{datetime} - deleted_on: deleted on %{datetime} - parent_no_longer: No longer subproject of + added_by_on: tilføjet af %{user} den %{datetime} + added_on: tilføjet den %{datetime} + created_by_on: oprettet af %{user} den %{datetime} + created_by_on_time_entry: tid registreret af %{user} den %{datetime} + created_on: oprettet den %{datetime} + created_on_time_entry: tid registreret den %{datetime} + deleted_by_on: slettet af %{user} den %{datetime} + deleted_on: slettet den %{datetime} + parent_no_longer: Ikke længere underprojekt af parent_without_of: Underprojekt - removed_by_on: removed by %{user} on %{datetime} - removed_on: removed on %{datetime} + removed_by_on: fjernet af %{user} den %{datetime} + removed_on: fjernet den %{datetime} time_entry: hour: - one: "%{count} hour" + one: "%{count} time" other: "%{count} timer" hour_html: - one: "%{count} hour" - other: "%{count} hours" - logged_for: Logged for - updated: changed from %{old_value} to %{value} - updated_by_on: updated by %{user} on %{datetime} - updated_by_on_time_entry: logged time updated by %{user} on %{datetime} - updated_on: updated on %{datetime} - updated_on_time_entry: logged time updated on %{datetime} + one: "%{count} time" + other: "%{count} timer" + logged_for: Registreret for + updated: ændret fra %{old_value} til %{value} + updated_by_on: opdateret af %{user} den %{datetime} + updated_by_on_time_entry: registreret tid opdateret af %{user} den %{datetime} + updated_on: opdateret den %{datetime} + updated_on_time_entry: registreret tid opdateret den %{datetime} project_phase: - activated: activated - added_date: set to %{date} - changed_date: changed from %{from} to %{to} - deactivated: deactivated - deleted_project_phase: Deleted project phase - phase_and_both_gates: "%{phase_message}. %{start_gate_message}, and %{finish_gate_message}" + activated: aktiveret + added_date: sat til %{date} + changed_date: ændret fra %{from} til %{to} + deactivated: deaktiveret + deleted_project_phase: Slettet projektfase + phase_and_both_gates: "%{phase_message}. %{start_gate_message} og %{finish_gate_message}" phase_and_one_gate: "%{phase_message}. %{gate_message}" - removed_date: date deleted %{date} + removed_date: dato slettet %{date} admin: banners: - environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + environment_configured_readonly: Værdierne er konfigureret med miljøvariabler og kan ikke redigeres her. custom_styles: color_groups: - base_colors: Base colors - main_menu: Main lateral menu - top_header_colors: Top header colors + base_colors: Grundfarver + main_menu: Hovedmenu i siden + top_header_colors: Farver i sidehovedet color_theme: Farvetema - color_theme_caption: Use one of the default OpenProject themes or create your own theme with your colors by selecting Custom theme. + color_theme_caption: Brug et af OpenProjects standardtemaer, eller opret dit eget tema med dine farver ved at vælge Tilpasset tema. color_theme_custom: "(Tilpas)" colors: - accent-color: Accent + accent-color: Fremhævningsfarve header-bg-color: Overskriftsbaggrund main-menu-bg-color: Hovedmenu baggrund main-menu-bg-selected-background: Hovedmenu når valgt - primary-button-color: Primary button + primary-button-color: Primær knap custom_colors: Brugerdefinerede farver default_colors: - description: Define a palette of colors to use elsewhere in the application. These will be available, for example, when choosing a color to represent a status or a type. - edit_color: Edit %{color} + description: Definer en farvepalet, der kan bruges andre steder i programmet. Farverne er fx tilgængelige, når du vælger en farve til en status eller en type. + edit_color: Rediger %{color} fonts: - file_is_invalid: is not a valid TTF font file. - file_too_large: is too large (maximum size is %{count} MB). + file_is_invalid: er ikke en gyldig TTF-skrifttypefil. + file_too_large: er for stor (højst %{count} MB). instructions: - accent-color: Color for links and other decently highlighted elements. - header-bg-color: Default background color of the app header. + accent-color: Farve til links og andre diskret fremhævede elementer. + header-bg-color: Standardbaggrundsfarve i programmets sidehoved. main-menu-bg-color: Baggrundsfarve på venstre sidemenu. - main-menu-bg-selected-background: Background color of menu items when selected. - primary-button-color: Strong accent color, used for the most important button on a screen. + main-menu-bg-selected-background: Baggrundsfarve på menupunkter, når de er valgt. + primary-button-color: Kraftig fremhævningsfarve, der bruges til den vigtigste knap på en side. manage_colors: Redigér egenskaber for farvevalg tab_branding: Branding - tab_default_colors: Default colors - tab_interface: Interface - tab_pdf_export_font: PDF export font - tab_pdf_export_styles: PDF export styles + tab_default_colors: Standardfarver + tab_interface: Brugerflade + tab_pdf_export_font: Skrifttype til PDF-eksport + tab_pdf_export_styles: Typografier til PDF-eksport theme_warning: Ændring af temaet vil overskrive din brugerdefinerede stil. Designet vil derefter gå tabt. Er du sikker på du vil fortsætte? enterprise: - add_token: Upload an Enterprise edition support token + add_token: Overfør et supporttoken til Enterprise-udgaven book_now: Bestil nu buttons: contact: Kontakt os for en demo - upgrade: Upgrade now + upgrade: Opgrader nu create_dialog: - title: Add Enterprise token - token_caption: To learn more about how to activate Enterprise edition check our [documentation](docs_url). - token_placeholder: Paste your Enterprise edition support token here - type_token_text: Your Enterprise token text + title: Tilføj Enterprise-token + token_caption: Læs mere om aktivering af Enterprise-udgaven i vores [dokumentation](docs_url). + token_placeholder: Indsæt dit supporttoken til Enterprise-udgaven her + type_token_text: Teksten i dit Enterprise-token delete_dialog: - confirmation: Are you sure you want to delete this Enterprise edition support token? - heading: Delete this enterprise token? - title: Delete enterprise token + confirmation: Er du sikker på, at du vil slette dette supporttoken til Enterprise-udgaven? + heading: Vil du slette Enterprise-tokenet? + title: Slet Enterprise-token enterprise_link: For yderliger information, klik her. get_quote: Få et tilbud - order: Order Enterprise on-premises edition - paste: Paste your Enterprise edition support token + order: Bestil Enterprise-udgaven til egen drift + paste: Indsæt dit supporttoken til Enterprise-udgaven replace_token: Erstat din nuværende support-token - required_for_feature: This add-on is only available with an active Enterprise edition support token. + required_for_feature: Tilføjelsen er kun tilgængelig med et aktivt supporttoken til Enterprise-udgaven. start_trial: Start gratis prøveperiode status: - expired: Expired - expiring_soon: Expiring soon - in_grace_period: In grace period - invalid_domain: Invalid domain - not_active: Not active - trial: Trial + expired: Udløbet + expiring_soon: Udløber snart + in_grace_period: I henstandsperiode + invalid_domain: Ugyldigt domæne + not_active: Ikke aktiv + trial: Prøveperiode import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Fra og med OpenProject 16.0 kræver OpenProject PostgreSQL 16. Din installation fungerer fortsat med din nuværende database, men du skal regne med, at den ikke er kompatibel med kommende versioner.
Vi har lavet [opgraderingsvejledninger for alle installationsmetoder](upgrade_guide). Du kan når som helst opgradere før næste version ved at følge vejledningerne. ' - jemalloc_allocator: Jemalloc memory allocator + jemalloc_allocator: Hukommelsesallokatoren Jemalloc jira: actions: button_edit: Rediger konfiguration @@ -1626,26 +1626,26 @@ da: title: Sørg for, at du har en sikkerhedskopi! parts: issues: - one: 1 issue - other: "%{count} issues" + one: 1 sag + other: "%{count} sager" jobs: one: 1 job - other: "%{count} jobs" + other: "%{count} job" projects: - one: 1 project - other: "%{count} projects" + one: 1 projekt + other: "%{count} projekter" statuses: one: 1 status - other: "%{count} statuses" + other: "%{count} statusser" types: one: 1 type - other: "%{count} types" + other: "%{count} typer" users: - one: 1 user - other: "%{count} users" + one: 1 bruger + other: "%{count} brugere" work_packages: - one: 1 work package - other: "%{count} work packages" + one: 1 arbejdspakke + other: "%{count} arbejdspakker" revert_dialog: confirm: Jeg forstår, at tilbageførslen sletter data permanent description: Alle importerede objekter slettes (også hele projekter). @@ -1710,8 +1710,8 @@ da: caption: Vælg, hvad du vil importere til OpenProject caption_done: Fuldført caption_done_description: - one: 1 project selected as scope - other: "%{count} projects selected as scope" + one: 1 projekt valgt som omfang + other: "%{count} projekter valgt som omfang" description: Vælg, hvilke af de data, der er hentet fra Jira-installationen, du vil importere. elements: custom_fields: Et udvalg af brugerdefinerede felter @@ -1789,117 +1789,117 @@ da: user: unknown_name: Ukendt journal_aggregation: - caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. + caption_with_maximum: 'Brugerhandlinger på en arbejdspakke (ændring af beskrivelse, status eller værdier eller skrivning af kommentarer) samles, hvis de udføres inden for denne periode. Det styrer også forsinkelsen af notifikationer og [webhooks](webhook_link). Højst %{max} minutter. ' mcp_configurations: index: - description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. - resources_description: OpenProject implements the following resources. Each can be enabled, renamed and described as you want. For more information, please refer to the [documentation on MCP resources](docs_url). - resources_heading: Resources - resources_submit: Update resources - tools_description: OpenProject implements the following tools. Each can be enabled, renamed and described as you want. For more information, please refer to the [documentation on MCP tools](docs_url). - tools_heading: Tools - tools_submit: Update tools + description: Model Context Protocol lader AI-agenter give deres brugere adgang til værktøjer og ressourcer, som denne OpenProject-installation stiller til rådighed. Funktionen er stadig i beta. + resources_description: OpenProject implementerer følgende ressourcer. Hver af dem kan aktiveres, omdøbes og beskrives, som du vil. Se [dokumentationen om MCP-ressourcer](docs_url) for flere oplysninger. + resources_heading: Ressourcer + resources_submit: Opdater ressourcer + tools_description: OpenProject implementerer følgende værktøjer. Hvert af dem kan aktiveres, omdøbes og beskrives, som du vil. Se [dokumentationen om MCP-værktøjer](docs_url) for flere oplysninger. + tools_heading: Værktøjer + tools_submit: Opdater værktøjer multi_update: - success: MCP configurations were updated successfully. + success: MCP-konfigurationerne er opdateret. server_form: - description_caption: How the MCP server will be described to other applications who connect to it. - title_caption: A short title shown to applications that connect to the MCP server. - tool_response_format: Tool response format - tool_response_format_content_only_caption: 'Choose this if MCP clients connecting to this instance do not support structured content. Tool responses will only contain plain text content and leave out the structured version. + description_caption: Sådan beskrives MCP-serveren for andre programmer, der forbinder til den. + title_caption: En kort titel, der vises for programmer, der forbinder til MCP-serveren. + tool_response_format: Svarformat for værktøjer + tool_response_format_content_only_caption: 'Vælg dette, hvis MCP-klienter, der forbinder til installationen, ikke understøtter struktureret indhold. Værktøjernes svar indeholder kun almindelig tekst og udelader den strukturerede udgave. ' - tool_response_format_content_only_label: Content only - tool_response_format_full_caption: 'The most compatible option. Tool responses will include both regular and structured content, allowing MCP clients to choose which format they want to read. This may increase the number of tokens that the language model has to process, potentially increasing cost and decreasing performance. + tool_response_format_content_only_label: Kun indhold + tool_response_format_full_caption: 'Den mest kompatible mulighed. Værktøjernes svar indeholder både almindeligt og struktureret indhold, så MCP-klienterne selv kan vælge, hvilket format de vil læse. Det kan øge antallet af tokens, sprogmodellen skal behandle, og dermed øge omkostningerne og sænke ydeevnen. ' - tool_response_format_full_label: Full - tool_response_format_structured_only_caption: 'Choose this if you are certain that MCP clients connecting to this instance support structured content. Tool responses will only include structured content and leave out its text representation. + tool_response_format_full_label: Fuldt + tool_response_format_structured_only_caption: 'Vælg dette, hvis du er sikker på, at MCP-klienter, der forbinder til installationen, understøtter struktureret indhold. Værktøjernes svar indeholder kun struktureret indhold og udelader tekstudgaven. ' - tool_response_format_structured_only_label: Structured content only + tool_response_format_structured_only_label: Kun struktureret indhold update: - failure: MCP configuration could not be updated. - success: MCP configuration was updated successfully. + failure: MCP-konfigurationen kunne ikke opdateres. + success: MCP-konfigurationen er opdateret. plugins: - no_results_content_text: See our integrations and plugins page for more information. - no_results_title_text: There are currently no plugins installed. + no_results_content_text: Se vores side om integrationer og plugins for at få flere oplysninger. + no_results_title_text: Der er i øjeblikket ikke installeret nogen plugins. reserved_identifiers: - btn_release: Unreserve - col_identifier: Identifier - col_project: Project - col_reserved: Reserved + btn_release: Frigiv + col_identifier: Id + col_project: Projekt + col_reserved: Reserveret dialog: - checkbox_label: I understand that this cannot be undone. - confirm_button: Unreserve identifier - description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + checkbox_label: Jeg forstår, at det ikke kan fortrydes. + confirm_button: Frigiv id + description: Frigivelse af projekt-id'et kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. - other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. - heading: Unreserve "%{identifier}"? - title: Unreserve identifier - empty_body: When a project's identifier changes, the previous one will appear here so you can unreserve it once it's safe to do so. - empty_heading: No reserved identifiers - filter_label: Search identifiers - identifier_not_found: The reserved identifier could not be found. It may have already been unreserved or the project may have been deleted. Please refresh the page. - lede_html: When a project's identifier is renamed, the previous identifier is kept reserved so that existing links and integrations keep working.
Here you can unreserve identifiers so that they may be used by other projects. - released_notice: Identifier "%{identifier}" has been unreserved. - reserved_ago: "%{time} ago" - title: Reserved project identifiers + one: Frigivelse af projekt-id'et (og dets ene arbejdspakke-id) kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. + other: Frigivelse af projekt-id'et (og dets %{count} arbejdspakke-id'er) kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. + heading: Vil du frigive "%{identifier}"? + title: Frigiv id + empty_body: Når et projekts id ændres, vises det tidligere id her, så du kan frigive det, når det er sikkert. + empty_heading: Ingen reserverede id'er + filter_label: Søg efter id'er + identifier_not_found: Det reserverede id blev ikke fundet. Det er måske allerede frigivet, eller projektet er slettet. Opdater siden. + lede_html: Når et projekts id omdøbes, holdes det tidligere id reserveret, så eksisterende links og integrationer fortsat virker.
Her kan du frigive id'er, så andre projekter kan bruge dem. + released_notice: Id'et "%{identifier}" er frigivet. + reserved_ago: for %{time} siden + title: Reserverede projekt-id'er scim_clients: authentication_methods: - oauth2_client: OAuth 2.0 client credentials - oauth2_token: Static access token - sso: JWT from identity provider + oauth2_client: OAuth 2.0 Client Credentials + oauth2_token: Statisk adgangstoken + sso: JWT fra identitetsudbyder created_client_credentials_dialog_component: - heading: Client credentials have been generated - one_time_hint: This is the only time you will see the client secret. Make sure to copy it now. - title: Client credentials created + heading: Klientlegitimationen er dannet + one_time_hint: Det er eneste gang, at du kan se klienthemmeligheden. Sørg for at kopiere den nu. + title: Klientlegitimation oprettet created_token_dialog_component: - heading: A token has been generated + heading: Der er dannet et token label_token: Token - one_time_hint: This is the only time you will see this token. Make sure to copy it now. - title: Token created + one_time_hint: Det er eneste gang, at du kan se tokenet. Sørg for at kopiere det nu. + title: Token oprettet delete_scim_client_dialog_component: - description: Users managed by this SCIM client can no longer be updated by it. - heading: Are you sure you want to delete this SCIM client? - title: Delete SCIM client + description: Brugere, der administreres af SCIM-klienten, kan ikke længere opdateres af den. + heading: Er du sikker på, at du vil slette SCIM-klienten? + title: Slet SCIM-klient edit: - label_delete_scim_client: Delete SCIM client + label_delete_scim_client: Slet SCIM-klient form: - auth_provider_description: This is the service that users added by the SCIM provider will use to authenticate in OpenProject. - authentication_method_description_html: This is how the SCIM client authenticates at OpenProject. Please ensure that OAuth tokens include the scim_v2 scope. - description: Please refer to our [documentation on configuring SCIM clients](docs_url) for more information on these configuration options. - jwt_sub_description: For example, for Keycloak, this is the UUID of the service account associated with the SCIM client. Consult [our documentation](docs_url) to learn how to find the subject claim for your use case. - name_description: Choose a name that will help other admins better understand why this client was configured. + auth_provider_description: Det er den tjeneste, som brugere tilføjet af SCIM-udbyderen bruger til at logge ind i OpenProject. + authentication_method_description_html: Sådan godkender SCIM-klienten sig over for OpenProject. Sørg for, at OAuth-tokens indeholder omfanget scim_v2. + description: Se vores [dokumentation om konfiguration af SCIM-klienter](docs_url) for at få flere oplysninger om disse indstillinger. + jwt_sub_description: For Keycloak er det fx UUID'en for den tjenestekonto, der er knyttet til SCIM-klienten. Se [vores dokumentation](docs_url) for at finde ud af, hvordan du finder subject-claim i dit tilfælde. + name_description: Vælg et navn, der hjælper andre administratorer med at forstå, hvorfor klienten blev konfigureret. index: - description: SCIM clients configured here are able to interact with OpenProject SCIM server API to provision, update, and deprovision user accounts and groups. - label_create_button: Add SCIM client + description: SCIM-klienter, der konfigureres her, kan bruge OpenProjects SCIM-server-API til at oprette, opdatere og fjerne brugerkonti og grupper. + label_create_button: Tilføj SCIM-klient new: - title: New SCIM client + title: Ny SCIM-klient revoke_static_token_dialog_component: - confirm_button: Revoke - description: The SCIM client that uses this token will no longer be able to access OpenProject's SCIM server API. - heading: Are you sure you want to revoke this token? - title: Revoke static token + confirm_button: Tilbagekald + description: Den SCIM-klient, der bruger tokenet, får ikke længere adgang til OpenProjects SCIM-server-API. + heading: Er du sikker på, at du vil tilbagekalde tokenet? + title: Tilbagekald statisk token table_component: blank_slate: - description: Add clients to see them here - title: No SCIM clients configured yet + description: Tilføj klienter for at se dem her + title: Der er endnu ikke konfigureret nogen SCIM-klienter user_count: Brugere token_list_component: - description: The tokens you generate here can be passed by a SCIM client to access the OpenProject SCIM API. + description: De tokens, som du danner her, kan sendes af en SCIM-klient for at få adgang til OpenProjects SCIM-API. heading: Tokens label_add_token: Token - label_aria_add_token: Add token + label_aria_add_token: Tilføj token token_table_component: blank_slate: - description: You can create one now - title: No tokens have been created yet - expired: Expired on %{date} - revoked: Revoked on %{date} - title: Access token table + description: Du kan oprette et nu + title: Der er endnu ikke oprettet nogen tokens + expired: Udløb den %{date} + revoked: Tilbagekaldt den %{date} + title: Tabel over adgangstokens settings: new_project: notification_text_default: "

Hej

Der er oprettet et nyt projekt: projectValue:name

Tak

\n" @@ -1964,8 +1964,8 @@ da: error_unknown: Skal gennemses manuelt error_used_in_past: Er reserveret, fordi et andet projekt tidligere har brugt det remaining_projects: - one: "... 1 more project" - other: "... %{count} more projects" + one: "… 1 projekt mere" + other: "… %{count} projekter mere" banner: existing_identifiers_notice: 'De eksisterende id''er for %{project_count} projekter opfylder ikke kravene til projektbaserede semantiske id''er. OpenProject kan opdatere dem automatisk, så de bliver gyldige som i eksemplerne nedenfor. Klik på ''Konvertér id''er'' for at opdatere id''erne for alle projekter på denne måde og slå projektbaserede semantiske id''er til. @@ -1995,98 +1995,98 @@ da: success_banner: Formatet for arbejdspakkers id'er er opdateret. text_transform_actions: delete_dialog_component: - description: Users will no longer be able to run this action in the rich text editor. - heading: Are you sure you want to delete the action "%{label}"? - title: Delete text transform action + description: Brugerne kan ikke længere køre handlingen i editoren til formateret tekst. + heading: Er du sikker på, at du vil slette handlingen "%{label}"? + title: Slet handling til tekstomskrivning form: - injects_type_template_caption: If checked, the description template of the work package type is automatically added to the prompt. The prompt should contain instructions on what to do with the template. - label_caption: This is the name that will be visible to users in the editor. - select_types: Select types - types_caption: Add work package types for which this action should be available. All available variants will automatically be included. - usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' + injects_type_template_caption: Når feltet er markeret, føjes arbejdspakketypens skabelon for beskrivelsen automatisk til prompten. Prompten bør indeholde instruktioner om, hvad der skal ske med skabelonen. + label_caption: Det er det navn, som brugerne ser i editoren. + select_types: Vælg typer + types_caption: Tilføj de arbejdspakketyper, som handlingen skal være tilgængelig for. Alle tilgængelige varianter medtages automatisk. + usage_scope_caption: 'Du kan begrænse, hvor handlingen er synlig: overalt (også i kommentarer, wikier og brugerdefinerede felter), for alle arbejdspakketyper eller for bestemte arbejdspakketyper.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. - label_add_action: Action - label_aria_add_action: Add text transform action + description: Handlinger til tekstomskrivning giver brugerne LLM-baserede handlinger til at skrive, ordne og gennemse tekst overalt, hvor editoren til formateret tekst bruges, fx i beskrivelser af arbejdspakker, kommentarer og wikisider. Du opretter nye handlinger med dine egne prompts og instruktioner. + label_add_action: Handling + label_aria_add_action: Tilføj handling til tekstomskrivning index_component: blank_slate: - description: Add an action to see it here - title: No text transform actions configured yet - disabled_warning: Text transform actions are disabled. The following actions will not be available anywhere. - label_disable_all: Disable all - label_enable_all: Enable all - title: Actions + description: Tilføj en handling for at se den her + title: Der er endnu ikke konfigureret nogen handlinger til tekstomskrivning + disabled_warning: Handlinger til tekstomskrivning er deaktiveret. Følgende handlinger er ikke tilgængelige nogen steder. + label_disable_all: Deaktiver alle + label_enable_all: Aktivér alle + title: Handlinger new: - title: New text transform action + title: Ny handling til tekstomskrivning row_component: - label_actions: Action menu - label_toggle: Toggle %{label} + label_actions: Handlingsmenu + label_toggle: Slå %{label} til eller fra scope_specific_work_package_types: - one: "%{count} work package type" - other: "%{count} work package types" + one: "%{count} arbejdspakketype" + other: "%{count} arbejdspakketyper" usage_scopes: - all_work_package_types: All work package types - everywhere: Everywhere - specific_work_package_types: Specific work package types + all_work_package_types: Alle arbejdspakketyper + everywhere: Overalt + specific_work_package_types: Bestemte arbejdspakketyper workflows: blankslate: - description: Add statuses to start configuring workflows for this role - linked_description: This type reuses the workflows of its linked source type, which has no status transitions configured - title: No status transitions configured + description: Tilføj statusser for at begynde at konfigurere arbejdsgange for rollen + linked_description: Typen genbruger arbejdsgangene fra sin tilknyttede kildetype, som ikke har nogen statusovergange konfigureret + title: Ingen statusovergange konfigureret leave_confirmation: - description: You are about to leave this page but you have unsaved changes. Would you like to save them before continuing? - ignore: Ignore changes - save: Save changes and continue - title: Save changes before continuing? + description: Du er ved at forlade siden, men du har ændringer, der ikke er gemt. Vil du gemme dem, før du fortsætter? + ignore: Ignorer ændringer + save: Gem ændringer, og fortsæt + title: Vil du gemme ændringerne, før du fortsætter? role_selector: - label: 'Role: %{role}' - no_role: Select role + label: 'Rolle: %{role}' + no_role: Vælg rolle roles: - one: One role selected - other: "%{count} roles selected" - title: Select roles + one: Én rolle valgt + other: "%{count} roller valgt" + title: Vælg roller status_button: Status statuses_dialog: - caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. - label: Statuses enabled for this type - title: Statuses + caption: Tilføj eller fjern de statusser, som du vil knytte til typen. Hvis du fjerner en status, slettes også den tilknyttede arbejdsgang. + label: Statusser aktiveret for typen + title: Statusser statuses_removal_dialog: - confirm: Remove - description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? + confirm: Fjern + description: Hvis du fjerner disse statusser, er de ikke længere tilgængelige for typen, og eksisterende arbejdsgange slettes. Er du sikker på, at du vil fortsætte? heading: - one: Remove 1 status? - other: Remove %{count} statuses? - title: Remove statuses + one: Vil du fjerne 1 status? + other: Vil du fjerne %{count} statusser? + title: Fjern statusser tabs: - always: Default transitions - aria_label: Workflow transitions - assignee: User is assignee - author: User is author + always: Standardovergange + aria_label: Overgange i arbejdsgangen + assignee: Brugeren er tildelt + author: Brugeren er forfatter descriptions: - always: Transitions available to the selected role(s) in all cases. - assignee: Additional transitions available to the work package's assignee. - author: Additional transitions available to the work package's author. - menu_label: Transitions shown + always: Overgange, der altid er tilgængelige for de valgte roller. + assignee: Ekstra overgange, der er tilgængelige for den, der er tildelt arbejdspakken. + author: Ekstra overgange, der er tilgængelige for arbejdspakkens forfatter. + menu_label: Viste overgange announcements: is_active: vises i øjeblikket is_inactive: vises ikke i øjeblikket show_until: Vis indtil antivirus_scan: - deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. - deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. - not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + deleted_by_admin: Filen '%{filename}' i karantæne er slettet af en administrator. + deleted_message: Der blev fundet virus i filen '%{filename}'. Filen er slettet. + not_processed_yet_message: Hentning er blokeret, fordi filen endnu ikke er scannet for virus. Prøv igen senere. + overridden_by_admin: Karantænen for filen '%{filename}' er ophævet af %{user}. Der er nu adgang til filen. quarantined_attachments: container: Container - delete: Delete the quarantined file - error_cannot_act_self: Cannot perform actions on your own uploaded files. - title: Quarantined attachments - quarantined_message: A virus was detected in file '%{filename}'. It has been quarantined and is not available for download. + delete: Slet filen i karantæne + error_cannot_act_self: Du kan ikke udføre handlinger på filer, som du selv har overført. + title: Vedhæftede filer i karantæne + quarantined_message: Der blev fundet virus i filen '%{filename}'. Den er sat i karantæne og kan ikke hentes. api_v3: attributes: - property: Property + property: Egenskab version: - deprecated: 'Deprecated: this single-valued field is being replaced by `targetVersions`. Read and write `targetVersions` instead. While multiple versions is not enabled, `targetVersions` accepts at most one value and must not be written together with `version` in the same request.' + deprecated: 'Forældet: Dette felt med én værdi erstattes af `targetVersions`. Læs og skriv `targetVersions` i stedet. Så længe flere versioner ikke er aktiveret, tager `targetVersions` højst én værdi og må ikke skrives sammen med `version` i samme forespørgsel.' errors: bad_request: emoji_reactions_activity_type_not_supported: Denne aktivitetstype understøtter ikke emoji-reaktioner. @@ -2100,7 +2100,7 @@ da: code_409: Ressourcen kunne ikke opdateres på grund af modstridende ændringer. code_429: For mange forespørgsler. Prøv igen senere. code_500: En intern fejl opstod. - code_500_missing_enterprise_token: The request can not be handled due to invalid or missing Enterprise token. + code_500_missing_enterprise_token: Forespørgslen kan ikke behandles, fordi Enterprise-tokenet er ugyldigt eller mangler. code_500_outbound_request_failure: En udgående forespørgsel til en anden ressource mislykkedes med statuskoden %{status_code}. conflict: multiple_reminders_not_allowed: Du kan kun have én påmindelse ad gangen for en arbejdspakke. Slet eller opdater den eksisterende påmindelse. @@ -2144,23 +2144,23 @@ da: resources: schema: Skema undisclosed: - ancestor: Undisclosed - The ancestor is invisible because of lacking permissions. - definingProject: Undisclosed - The project is invisible because of lacking permissions. - definingWorkspace: Undisclosed - The workspace is invisible because of lacking permissions. - parent: Undisclosed - The parent is invisible because of lacking permissions. - project: Undisclosed - The project is invisible because of lacking permissions. - workPackage: Undisclosed - The work package is invisible because of lacking permissions. + ancestor: Skjult – det overordnede element er ikke synlig på grund af manglende tilladelser. + definingProject: Skjult – projektet er ikke synlig på grund af manglende tilladelser. + definingWorkspace: Skjult – arbejdsområdet er ikke synlig på grund af manglende tilladelser. + parent: Skjult – det overordnede element er ikke synlig på grund af manglende tilladelser. + project: Skjult – projektet er ikke synlig på grund af manglende tilladelser. + workPackage: Skjult – arbejdspakken er ikke synlig på grund af manglende tilladelser. attribute_help_texts: add_new: Tilføj hjælpetekst - caption: This short version will be displayed as caption of the attribute. - edit_field_name: Edit help text for %{attribute_field_name} - note_public: Any text and images you add to this field are publicly visible to all logged in users. + caption: Den korte udgave vises som undertekst til attributten. + edit_field_name: Rediger hjælpeteksten til %{attribute_field_name} + note_public: Al tekst og alle billeder, som du føjer til feltet, er offentligt synlige for alle brugere, der er logget ind. show_preview: Forhåndsvis tekst text_overview: I denne visning kan du oprette tilpassede hjælpetekster til attributvisning. Når disse tekster er defineret, kan de vises ved at klikke på hjælpeikonet ved siden af dets tilhørende attribut. attributes: action: Handling active: Aktiv - actor: Actor + actor: Udført af api_key: API-nøgle assigned_to: Tildelt assignee: Tildelt @@ -2168,129 +2168,129 @@ da: author: Forfatter avatar: Avatar base: 'Generel fejl:' - body: Body + body: Brødtekst category: Kategori color: Farve comment: Kommentér - comments: Kommentér + comments: Kommentar content: Indhold created_at: Oprettet den - creator: Creator - custom_field: Selvvalgt felt + creator: Oprettet af + custom_field: Brugerdefineret felt custom_options: Mulige værdier custom_values: Selvvalgte felter - customized: Customized + customized: Tilpasset objekt date: Dato dates_interval: Periode default_columns: Forudvalgte kolonner - derived_due_date: Derived finish date - derived_estimated_hours: Total work - derived_start_date: Derived start date + derived_due_date: Afledt slutdato + derived_estimated_hours: Arbejde i alt + derived_start_date: Afledt startdato description: Beskrivelse - direction: Direction + direction: Retning display_sums: Vis totaler domain: Domæne - due_date: Finish date + due_date: Slutdato email: E-mail - entity_type: Entity - estimated_hours: Work - estimated_time: Work - exact_match: Exact match - expires_at: Expires on + entity_type: Entitet + estimated_hours: Arbejde + estimated_time: Arbejde + exact_match: Præcist match + expires_at: Udløber den filter: Filter firstname: Fornavn group: Gruppe groups: Grupper - hexcode: Hex kode + hexcode: Hexkode id: Id is_default: Forhåndsvalgt værdi is_for_all: For alle projekter issue: Arbejdspakke jira: Jira journal: Journal - journal_notes: Kommentér + journal_notes: Kommentar lastname: Efternavn - lock_version: Lock version - login: Username + lock_version: Låseversion + login: Brugernavn mail: E-mail name: Navn note: Note notes: Kommentarer - number: Number + number: Nummer operator: Operator - options: Muligheder + options: Valgmuligheder password: Adgangskode - principal: User or group + principal: Bruger eller gruppe priority: Prioritet project: Projekt - project_ids: Project IDs - project_phase: Project phase - project_phase_definition: Project phase + project_ids: Projekt-id'er + project_phase: Projektfase + project_phase_definition: Projektfase public: Offentlig - reason: Reason - recipient: Recipient + reason: Årsag + recipient: Modtager required: Påkrævet - responsible: Accountable + responsible: Ansvarlig role: Rolle roles: Roller search: Søg - slug: Slug + slug: URL-navn sprint: Sprint start_date: Start dato - state: State + state: Tilstand status: Status status_id: Status subject: Emne summary: Opsummering - template: Template + template: Skabelon text: Tekst time_zone: Tidszone title: Titel type: Type - typeahead: Autocomplete - uid: Unique identifier + typeahead: Autofuldførelse + uid: Entydigt id unit: Enhed updated_at: Opdateret den updated_on: Opdateret den - uploader: Uploader + uploader: Overført af user: Bruger - username: Username + username: Brugernavn value: Værdi - values: Values + values: Værdier version: Version visible: Synlig work_package: Arbejdspakke work_package_id: Arbejdspakke authentication: instructions: - additional_form_action_urls: 'Use this only if the login fails because the identity provider redirects the browser to other servers. Enter one URL per line, for example the address that the browser console shows as blocked. During the login, OpenProject allows redirects to the hosts of these URLs. + additional_form_action_urls: 'Brug kun dette, hvis login mislykkes, fordi identitetsudbyderen sender browseren videre til andre servere. Angiv én URL pr. linje, fx den adresse, browserkonsollen viser som blokeret. Under login tillader OpenProject omdirigering til værterne i disse URL''er. ' - login_and_registration: Login and registration + login_and_registration: Login og registrering background_jobs: status: - cancelled_due_to: 'Job was cancelled due to error: %{message}' - error_requeue: 'Job experienced an error but is retrying. The error was: %{message}' + cancelled_due_to: 'Jobbet blev annulleret på grund af en fejl: %{message}' + error_requeue: 'Jobbet fik en fejl, men forsøger igen. Fejlen var: %{message}' backup: error: - backup_pending: There is already a backup pending. + backup_pending: Der er allerede en sikkerhedskopiering i gang. invalid_token: Ugyldigt eller manglende sikkerhedskopi token - limit_reached: You can only do %{limit} backups per day. + limit_reached: Du kan højst tage %{limit} sikkerhedskopier pr. dag. token_cooldown: Sikkerhedskopi token vil være gyldig om %{hours} timer. - failed: Backup failed + failed: Sikkerhedskopieringen mislykkedes label_backup_token: Sikkerhedskopiér token label_create_token: Opret sikkerhedskopi token label_delete_token: Slet sikkerhedskopi token label_reset_token: Nulstil sikkerhedskopi token label_token_users: Følgende brugere har aktive sikkerhedskopi tokens - missing_attachments_notice_html: '
%{file_count} could not be read and were excluded from this backup. The archive was renamed with an "-incomplete" suffix to indicate it is missing some attachments. + missing_attachments_notice_html: '
%{file_count} kunne ikke læses og er udeladt af sikkerhedskopien. Arkivet har fået endelsen "-incomplete" i navnet for at vise, at der mangler nogle vedhæftede filer. ' reset_token: action_create: Opret action_reset: Nulstil - checkbox_confirmation_create: I understand that the backup token grants access to download all data in this installation - checkbox_confirmation_reset: I understand that the existing backup token will be invalidated + checkbox_confirmation_create: Jeg forstår, at tokenet til sikkerhedskopiering giver adgang til at hente alle data i installationen + checkbox_confirmation_reset: Jeg forstår, at det eksisterende token til sikkerhedskopiering bliver ugyldigt heading_create: Opret sikkerhedskopi token heading_reset: Nulstil sikkerhedskopi token implications: 'Aktivering af sikkerhedskopier vil tillade enhver bruger med de nødvendige tilladelser og denne sikkerhedskopi token til at downloade en sikkerhedskopi, der indeholder alle data fra denne OpenProject installation. Dette omfatter data fra alle andre brugere. @@ -2299,7 +2299,7 @@ da: info: 'Du bliver nødt til at generere en backup token for at kunne oprette en backup. Hver gang du ønsker at anmode om en sikkerhedskopi, bliver du nødt til at give denne token. Du kan slette sikkerhedskopi token for at deaktivere sikkerhedskopier for denne bruger. ' - verification_html: 'Enter %{word} to confirm you want to %{action} the backup token. + verification_html: 'Skriv %{word} for at bekræfte, at du vil %{action} tokenet til sikkerhedskopiering. ' verification_word_create: opret @@ -2318,7 +2318,7 @@ da: button_add_non_working_time: Fravær button_add_sub_item: Tilføj underelement button_add_watcher: Tilføj tilsynsførende - button_all_filters: All filters + button_all_filters: Alle filtre button_annotate: Anmærke button_apply: Benyt button_apply_changes: Anvend ændringer @@ -2352,7 +2352,7 @@ da: button_disable: Deaktiver button_download: Hent button_duplicate: Lav dublet - button_duplicate_and_follow: Duplicate and follow + button_duplicate_and_follow: Dupliker, og gå til kopien button_edit: Rediger button_edit_associated_wikipage: 'Rediger tilknyttet wikiside: %{page_title}' button_edit_non_working_time: Rediger fravær @@ -2411,15 +2411,15 @@ da: button_watch: Før tilsyn calculated_values: error_dialog: - title: Error with Calculated value + title: Fejl i beregnet værdi errors: - disabled_value: The attribute "%{custom_field_name}" is required by this Calculated value, but is disabled for the project. - mathematical: The mathematical formula leads to an error. Please review the project calculation attribute and try again. - missing_value: The attribute "%{custom_field_name}" is required by this Calculated value, but is empty. - unknown: An unknown error occurred. Please review the formula for this Calculated value. + disabled_value: Attributten "%{custom_field_name}" er påkrævet af den beregnede værdi, men er deaktiveret for projektet. + mathematical: Den matematiske formel giver en fejl. Gennemse projektets beregningsattribut, og prøv igen. + missing_value: Attributten "%{custom_field_name}" er påkrævet af den beregnede værdi, men er tom. + unknown: Der opstod en ukendt fejl. Gennemse formlen for den beregnede værdi. colors: edit: - label_edit_color: Edit Color + label_edit_color: Rediger farve form: label_edit_color: Rediger farve label_new_color: Ny farve @@ -2433,60 +2433,60 @@ da: ' new: - label_new_color: New Color + label_new_color: Ny farve concatenation: single: eller consent: - checkbox_label: I have noted and do consent to the above. - contact_mail_instructions: Define the mail address that users can reach a data controller to perform data change or removal requests. - contact_this_mail_address: Please contact %{mail_address} if you want to have your account deleted. - contact_your_administrator: Please contact your administrator if you want to have your account deleted. - decline_warning_message: You have declined to consent and have been logged out. - failure_message: Consent failed, cannot proceed. - not_yet_consented: The user has not yet given their consent to your [configured consent information text](consent_settings). They will be reminded the next time they log in. - text_update_consent_time: Check this box to force users to consent again. Enable when you have changed the legal aspect of the consent information above. - title: User Consent - update_consent_last_time: 'Last update of consent: %{update_time}' - user_has_consented: The user gave their consent to your [configured consent information text](consent_settings). + checkbox_label: Jeg har læst ovenstående og giver mit samtykke. + contact_mail_instructions: Angiv den e-mailadresse, hvor brugerne kan kontakte en dataansvarlig for at få data ændret eller slettet. + contact_this_mail_address: Kontakt %{mail_address}, hvis du vil have din konto slettet. + contact_your_administrator: Kontakt din administrator, hvis du vil have din konto slettet. + decline_warning_message: Du har afvist at give samtykke og er blevet logget ud. + failure_message: Samtykket mislykkedes. Der kan ikke fortsættes. + not_yet_consented: Brugeren har endnu ikke givet samtykke til din [konfigurerede tekst om samtykke](consent_settings). Brugeren bliver mindet om det ved næste login. + text_update_consent_time: Markér feltet for at kræve, at brugerne giver samtykke igen. Brug det, når du har ændret de juridiske forhold i teksten om samtykke ovenfor. + title: Brugerens samtykke + update_consent_last_time: 'Seneste opdatering af samtykke: %{update_time}' + user_has_consented: Brugeren har givet samtykke til din [konfigurerede tekst om samtykke](consent_settings). copy_project: copy_options: - dependencies_label: Copy from project + dependencies_label: Kopiér fra projekt errors: Fejl failed: Kan ikke kopiere projektet %{source_project_name} - failed_internal: Copying failed due to an internal error. - project_custom_fields: Custom fields on project - source_project_label: Project copied - started: Started to copy project "%{source_project_name}" to "%{target_project_name}". You will be informed by mail as soon as "%{target_project_name}" is available. + failed_internal: Kopieringen mislykkedes på grund af en intern fejl. + project_custom_fields: Brugerdefinerede felter i projektet + source_project_label: Kopieret projekt + started: Kopieringen af projektet "%{source_project_name}" til "%{target_project_name}" er startet. Du får besked via e-mail, så snart "%{target_project_name}" er klar. succeeded: Oprettet projektet %{target_project_name} text: failed: Kunne ikke kopiere projektet "%{source_project_name}" til projektet "%{target_project_name}". succeeded: Kopierede projektet "%{source_project_name}" til "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Kopiér projektet "%{source_project_name}" x_objects_of_this_type: one: Et objekt af denne type other: "%{count} objekter af denne type" zero: Ingen objekter af denne type create_portfolio: blank_template: - description: Start from scratch. Manually add portfolio attributes, members and modules. - label: Blank portfolio - template_heading: Select a portfolio template to work with the most common project management methods, or create a portfolio from scratch. + description: Begynd fra bunden. Tilføj selv porteføljeattributter, medlemmer og moduler. + label: Tom portefølje + template_heading: Vælg en porteføljeskabelon for at arbejde med de mest udbredte projektmodeller, eller opret en portefølje fra bunden. create_program: blank_template: - description: Start from scratch. Manually add program attributes, members and modules. - label: Blank program - template_heading: Select a program template to work with the most common project management methods, or create a program from scratch. + description: Begynd fra bunden. Tilføj selv programattributter, medlemmer og moduler. + label: Tomt program + template_heading: Vælg en programskabelon for at arbejde med de mest udbredte projektmodeller, eller opret et program fra bunden. create_project: - attributes_heading: Fill in this mandatory information to work on your projects. - blank_description: No description provided. + attributes_heading: Udfyld disse påkrævede oplysninger for at arbejde med dine projekter. + blank_description: Der er ikke angivet nogen beskrivelse. blank_template: - description: Start from scratch. Manually add project attributes, members and modules. - label: Blank project + description: Begynd fra bunden. Tilføj selv projektattributter, medlemmer og moduler. + label: Tomt projekt copy_options: - dependencies_label: Copy from template - template_heading: Select a project template to work with the most common project management methods, or create a project from scratch. - template_label: Use template - create_wiki_page: Create new wiki page + dependencies_label: Kopiér fra skabelon + template_heading: Vælg en projektskabelon for at arbejde med de mest udbredte projektmodeller, eller opret et projekt fra bunden. + template_label: Brug skabelon + create_wiki_page: Opret ny wikiside create_wiki_page_button: Wiki-side custom_actions: actions: @@ -2503,103 +2503,103 @@ da: admin: custom_field_projects: is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. + description: Det brugerdefinerede felt er aktiveret i alle projekter, fordi indstillingen "For alle projekter" er markeret. Det kan ikke deaktiveres for enkelte projekter. heading: For alle projekter hierarchy: subitems: - one: 1 sub-item - other: "%{count} sub-items" - zero: no sub-items + one: 1 underelement + other: "%{count} underelementer" + zero: ingen underelementer items: - actions: Item actions + actions: Handlinger for element blankslate: item: - description: Add items to this list to create sub-items inside another one - title: This item doesn't have any hierarchy level below + description: Tilføj elementer til listen for at oprette underelementer i et andet element + title: Elementet har ikke noget hierarkiniveau under sig root: - description: Start by adding items to the custom field of type hierarchy. Each item can be used to create a hierarchy bellow it. To navigate and create sub-items inside a hierarchy click on the created item. - title: Your list of items is empty + description: Begynd med at tilføje elementer til hierarkiet. Hvert element kan have sine egne underelementer. Klik på et element for at åbne det og tilføje underelementer. + title: Din liste over elementer er tom delete_dialog: - description: This action will irreversibly remove the item and all its sub-items. Any assigned values will be permanently deleted. If this field is required, removing items may cause existing work packages to become invalid. - heading: Delete custom field item? - title: Delete custom field item + description: Handlingen fjerner elementet og alle dets underelementer, og det kan ikke fortrydes. Alle tildelte værdier slettes permanent. Hvis feltet er påkrævet, kan det gøre eksisterende arbejdspakker ugyldige at fjerne elementer. + heading: Vil du slette elementet i det brugerdefinerede felt? + title: Slet element i brugerdefineret felt placeholder: - label: Item label - short: Short name - weight: Weight + label: Elementets betegnelse + short: Kort navn + weight: Vægt notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Husk at angive elementer og projekter for det brugerdefinerede felt på de respektive faner. role_assignment: - description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + description: Du kan automatisk give en bestemt projektrolle til alle brugere, der er tildelt denne projektattribut, uanset hvilken rolle brugeren oprindelig har i projektet. dialog: - change: Change + change: Ændring changes: - gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ - gain_role: Will gain role ‘%{new_role}’ - lose_role: Will lose role ‘%{old_role}’ - new_member: Will be added as a member - no_change: No changes - remove_member: Will be removed as a member - title: Overview of users and permissions - review_button: Review users and permissions - review_hint: 'There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + gain_and_lose_role: Mister rollen ‘%{old_role}’ og får rollen ‘%{new_role}’ + gain_role: Får rollen ‘%{new_role}’ + lose_role: Mister rollen ‘%{old_role}’ + new_member: Tilføjes som medlem + no_change: Ingen ændringer + remove_member: Fjernes som medlem + title: Oversigt over brugere og tilladelser + review_button: Gennemse brugere og tilladelser + review_hint: 'Der er %{user_count}, som allerede er tildelt denne projektattribut i forskellige projekter. De kan få flere tilladelser og blive føjet til projekter, som de ikke havde adgang til før. ' - role_field_caption: This project role will automatically be granted to any user assigned to this project attribute - role_field_label: Project Role - title: Role Assignment - warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. - calculated_field_not_editable: Non-editable attribute. This value is calculated automatically. + role_field_caption: Projektrollen gives automatisk til alle brugere, der er tildelt denne projektattribut + role_field_label: Projektrolle + title: Rolletildeling + warning: Afhængigt af den rolle, der vælges nedenfor, kan den bruger, der er tildelt denne projektattribut, få væsentligt flere tilladelser end før, herunder mulighed for at tilføje nye medlemmer og give sig selv en højere rolle. + calculated_field_not_editable: Attributten kan ikke redigeres. Værdien beregnes automatisk. confirm_destroy_option: Sletning af en indstilling vil slette alle dens forekomster (f.eks. i arbejdspakker). Er du sikker på, at du vil slette den? contained_in_type: Indeholdt i type enabled_in_project: Aktiveret i projektet instructions: admin_only: - all: Check to make this custom field only visible to administrators. Users without admin rights will not be able to view or edit it. - project: Check to make this attribute only visible to administrators. Users without admin rights will not be able to view or edit it. + all: Markér feltet for kun at vise det brugerdefinerede felt for administratorer. Brugere uden administratorrettigheder kan hverken se eller redigere det. + project: Markér feltet for kun at vise attributten for administratorer. Brugere uden administratorrettigheder kan hverken se eller redigere den. editable: - all: Allow the field to be editable by users themselves. + all: Lad brugerne selv redigere feltet. formula: - project: Add numeric values or type / to search for an attribute, operator, function or other token. + project: Tilføj talværdier, eller skriv / for at søge efter en attribut, operator, funktion eller et andet element. has_comment: - project: Allows the user to add a comment related to the project attribute when selecting the value in the project overview. + project: Lader brugeren tilføje en kommentar til projektattributten, når værdien vælges i projektoversigten. is_filter: - all: 'Allow the custom field to be used in a filter in work package views. Note that only with ''For all projects'' selected, the custom field will show up in global views. + all: 'Lad det brugerdefinerede felt bruges i et filter i visninger af arbejdspakker. Bemærk, at det brugerdefinerede felt kun vises i globale visninger, når ''For alle projekter'' er valgt. ' is_for_all: - all: Mark the custom field as available in all existing and new projects. - project: Mark the attribute as available in all existing and new projects. + all: Markér det brugerdefinerede felt som tilgængeligt i alle eksisterende og nye projekter. + project: Markér attributten som tilgængelig i alle eksisterende og nye projekter. is_required: - all: Mark the custom field as required. This will make it mandatory to fill in the field when creating new resources. Existing resources will not require a value when being updated. - project: Required attributes need to be filled out by the user on project creation if the field is active ('For all projects' set or copying from a project/template in which the field is active). Existing projects will not require a value when being updated. + all: Markér det brugerdefinerede felt som påkrævet. Så skal feltet udfyldes, når der oprettes nye ressourcer. Eksisterende ressourcer kræver ikke en værdi, når de opdateres. + project: Påkrævede attributter skal udfyldes af brugeren, når der oprettes et projekt, hvis feltet er aktivt ('For alle projekter' er valgt, eller der kopieres fra et projekt eller en skabelon, hvor feltet er aktivt). Eksisterende projekter kræver ikke en værdi, når de opdateres. min_max: - all: 0 means no restriction - project: 0 means no restriction + all: 0 betyder ingen begrænsning + project: 0 betyder ingen begrænsning min_max_value: - all: Leave blank for no restriction - project: Leave blank for no restriction + all: Lad feltet stå tomt for ingen begrænsning + project: Lad feltet stå tomt for ingen begrænsning multi_select: - all: Allows the user to assign multiple values to this custom field. - project: Allows the user to assign multiple values to this attribute. + all: Lader brugeren angive flere værdier i det brugerdefinerede felt. + project: Lader brugeren angive flere værdier i attributten. regexp: - all: eg. ^[A-Z0-9]+$ - project: eg. ^[A-Z0-9]+$ + all: fx ^[A-Z0-9]+$ + project: fx ^[A-Z0-9]+$ searchable: - all: Include the field values when using the global search functionality. - project: Check to make this attribute available as a filter in project lists. + all: Medtag feltets værdier, når der søges med den globale søgning. + project: Markér feltet for at gøre attributten tilgængelig som filter i projektlister. visible_on_user_card: - all: When checked, this field's value is shown in the user information card when hovering over a user across the application. + all: Når feltet er markeret, vises værdien på brugerens informationskort, når man holder musen over en bruger i programmet. is_enabled_globally: Er aktiveret globalt multi_value_more: - other: and %{count} more - no_role_assigment: No role assignment - placeholder_version_select: Work package or project selection is required first - reorder_alphabetical: Reorder values alphabetically - reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' + other: og %{count} mere + no_role_assigment: Ingen rolletildeling + placeholder_version_select: Der skal først vælges en arbejdspakke eller et projekt + reorder_alphabetical: Sortér værdierne alfabetisk + reorder_confirmation: 'Advarsel: Den nuværende rækkefølge af de tilgængelige værdier og alle værdier, der ikke er gemt, går tabt. Er du sikker på, at du vil fortsætte?' semantic_keys: - job_title: Job title - none: None + job_title: Stillingsbetegnelse + none: Ingen tab: no_results_content_text: Oprette en ny brugerdefineret felt no_results_title_text: Der er i øjeblikket ingen brugerdefinerede felter. @@ -2607,8 +2607,8 @@ da: ' danger_dialog: - confirmation_live_message_checked: The button to proceed is now active. - confirmation_live_message_unchecked: The button to proceed is now inactive. You need to tick the checkbox to continue. + confirmation_live_message_checked: Knappen til at fortsætte er nu aktiv. + confirmation_live_message_unchecked: Knappen til at fortsætte er nu inaktiv. Du skal markere afkrydsningsfeltet for at fortsætte. date: abbr_day_names: - Søn @@ -2632,7 +2632,7 @@ da: - Okt - Nov - Dec - abbr_week: Wk + abbr_week: Uge day_names: - Søndag - Mandag @@ -2694,14 +2694,14 @@ da: one: 1 time other: "%{count} timer" x_hours_abbreviated: - one: 1 hr - other: "%{count} hrs" + one: 1 t + other: "%{count} t" x_minutes: one: 1 minut other: "%{count} minutte" x_minutes_abbreviated: one: 1 min - other: "%{count} mins" + other: "%{count} min" x_months: one: 1 måned other: "%{count} måneder" @@ -2712,57 +2712,57 @@ da: one: 1 s other: "%{count} s" x_weeks: - one: 1 week - other: "%{count} weeks" + one: 1 uge + other: "%{count} uger" x_years: - one: 1 year - other: "%{count} years" + one: 1 år + other: "%{count} år" units: day: - one: day + one: dag other: dage hour: one: time other: timer minute_abbreviated: one: min - other: mins + other: min departments: - add_department: Add department + add_department: Tilføj afdeling add_department_form: - name_label: Department name - name_placeholder: Enter department name - add_user: Add user + name_label: Afdelingens navn + name_placeholder: Angiv afdelingens navn + add_user: Tilføj bruger blankslate: - add_button: Add - description: 'Start by adding departments or users to the organization. Each department can be used to create a hierarchy below it, to navigate and create sub-department inside a hierarchy click on the created item. + add_button: Tilføj + description: 'Begynd med at tilføje afdelinger eller brugere til organisationen. Hver afdeling kan have sine egne underafdelinger. Klik på en afdeling for at åbne den og tilføje underafdelinger. ' - heading: Your organization has no departments + heading: Din organisation har ingen afdelinger context_menu: - add_sub_department: Add sub-department - add_user: Add user + add_sub_department: Tilføj underafdeling + add_user: Tilføj bruger detail_blankslate: - add_button: Add - description: Add departments or users to create sub-items inside another one. - heading: This department doesn’t have any hierarchy level below - managed_description: Its sub-departments and members are kept in sync with LDAP and cannot be added manually. - managed_heading: This department is managed by LDAP synchronization - edit: Edit department + add_button: Tilføj + description: Tilføj afdelinger eller brugere for at oprette underelementer i afdelingen. + heading: Afdelingen har ikke noget hierarkiniveau under sig + managed_description: Underafdelinger og medlemmer synkroniseres med LDAP og kan ikke tilføjes manuelt. + managed_heading: Afdelingen styres af LDAP-synkroniseringen + edit: Rediger afdeling errors: - move_user_failed: Failed to move user between departments. + move_user_failed: Brugeren kunne ikke flyttes mellem afdelingerne. flash: - department_created: Department was successfully created. - user_added: User was successfully added to the department. - user_removed: User was successfully removed from the department. + department_created: Afdelingen er oprettet. + user_added: Brugeren er føjet til afdelingen. + user_removed: Brugeren er fjernet fra afdelingen. move_user_dialog: - confirm: Move user - description: "%{user} is currently a member of %{from_department}. Moving them will remove them from that department." - heading: Move user to this department? - managed_description: "%{user} belongs to %{from_department}, which is managed by LDAP synchronization. Their department membership is controlled by LDAP and cannot be changed here." - managed_heading: This user cannot be moved - managed_title: User managed by LDAP - title: User already in a department + confirm: Flyt bruger + description: "%{user} er i øjeblikket medlem af %{from_department}. Hvis brugeren flyttes, fjernes vedkommende fra den afdeling." + heading: Vil du flytte brugeren til denne afdeling? + managed_description: "%{user} hører til %{from_department}, som styres af LDAP-synkroniseringen. Brugerens afdeling styres af LDAP og kan ikke ændres her." + managed_heading: Brugeren kan ikke flyttes + managed_title: Bruger styret af LDAP + title: Brugeren er allerede i en afdeling description_active: Aktiv? description_attachment_toggle: Vis/Skjul vedhæftede description_autocomplete: 'Dette felt anvender autofuldførelse. Når du indtaster titel på en arbejdspakke vil du blive foreslået en række muligheder. Vælg en ved at bruge piletasterne for op og ned, og vælg det med Tab eller Enter. Alternativt kan du taste arbejdspakkens nummer direkte. @@ -2771,13 +2771,13 @@ da: description_available_columns: Tilgængelige kolonner description_category_reassign: Vælg kategori description_choose_project: Projekter - description_compare_changeset_from: Compare from changeset - description_compare_changeset_to: Compare to changeset - description_compare_specific_version_from: Compare from version %{version} - description_compare_specific_version_to: Compare to version %{version} - description_compare_version_from: Compare from version - description_compare_version_to: Compare to version - description_current_position: 'You are here: ' + description_compare_changeset_from: Sammenlign fra ændringssæt + description_compare_changeset_to: Sammenlign med ændringssæt + description_compare_specific_version_from: Sammenlign fra version %{version} + description_compare_specific_version_to: Sammenlign med version %{version} + description_compare_version_from: Sammenlign fra version + description_compare_version_to: Sammenlign med version + description_current_position: 'Du er her: ' description_date_from: Indtast startdato description_date_to: Indtast slutdato description_enter_number: Indtast nummer @@ -2799,39 +2799,39 @@ da: description_wiki_subpages_reassign: Vælg ny overordnet side direction: Fra venstre mod højre doorkeeper: - access_token_url: Access token URL - auth_url: Auth URL + access_token_url: URL til adgangstoken + auth_url: Godkendelses-URL errors: messages: - access_denied: The resource owner or authorization server denied the request. - admin_authenticator_not_configured: Access to admin panel is forbidden due to Doorkeeper.configure.admin_authenticator being unconfigured. - credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. + access_denied: Ressourcens ejer eller godkendelsesserveren afviste forespørgslen. + admin_authenticator_not_configured: Adgang til administrationspanelet er ikke tilladt, fordi Doorkeeper.configure.admin_authenticator ikke er konfigureret. + credential_flow_not_configured: Flowet Resource Owner Password Credentials mislykkedes, fordi Doorkeeper.configure.resource_owner_from_credentials ikke er konfigureret. forbidden_token: - missing_scope: Access to this resource requires scope "%{oauth_scopes}". - invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. - invalid_code_challenge_method: The code challenge method must be plain or S256. - invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. - invalid_redirect_uri: The requested redirect uri is malformed or doesn't match client redirect URI. + missing_scope: Adgang til ressourcen kræver omfanget "%{oauth_scopes}". + invalid_client: Klientgodkendelsen mislykkedes, fordi klienten er ukendt, der ikke er medtaget klientgodkendelse, eller godkendelsesmetoden ikke understøttes. + invalid_code_challenge_method: Metoden til code challenge skal være plain eller S256. + invalid_grant: Den angivne godkendelse er ugyldig, udløbet eller tilbagekaldt, svarer ikke til den omdirigerings-URI, der blev brugt i godkendelsesforespørgslen, eller er udstedt til en anden klient. + invalid_redirect_uri: Den ønskede omdirigerings-URI er forkert udformet eller svarer ikke til klientens omdirigerings-URI. invalid_request: - missing_param: 'Missing required parameter: %{value}.' - request_not_authorized: Request need to be authorized. Required parameter for authorizing request is missing or invalid. - unknown: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. - invalid_scope: The requested scope is invalid, unknown, or malformed. + missing_param: 'Påkrævet parameter mangler: %{value}.' + request_not_authorized: Forespørgslen skal godkendes. En påkrævet parameter til godkendelse af forespørgslen mangler eller er ugyldig. + unknown: Forespørgslen mangler en påkrævet parameter, indeholder en parameterværdi, der ikke understøttes, eller er på anden måde forkert udformet. + invalid_scope: Det ønskede omfang er ugyldigt, ukendt eller forkert udformet. invalid_token: - expired: The access token expired - revoked: The access token was revoked - unknown: The access token is invalid - resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfigured. + expired: Adgangstokenet er udløbet + revoked: Adgangstokenet er tilbagekaldt + unknown: Adgangstokenet er ugyldigt + resource_owner_authenticator_not_configured: Ressourcens ejer kunne ikke findes, fordi Doorkeeper.configure.resource_owner_authenticator ikke er konfigureret. revoke: - unauthorized: You are not authorized to revoke this token. - server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request. - temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. - unauthorized_client: The client is not authorized to perform this request using this method. - unsupported_grant_type: The authorization grant type is not supported by the authorization server. - unsupported_response_mode: The authorization server does not support this response mode. - unsupported_response_type: The authorization server does not support this response type. + unauthorized: Du har ikke tilladelse til at tilbagekalde tokenet. + server_error: Godkendelsesserveren stødte på en uventet tilstand, der forhindrede den i at gennemføre forespørgslen. + temporarily_unavailable: Godkendelsesserveren kan ikke behandle forespørgslen lige nu på grund af midlertidig overbelastning eller vedligeholdelse af serveren. + unauthorized_client: Klienten har ikke tilladelse til at udføre forespørgslen med denne metode. + unsupported_grant_type: Godkendelsesserveren understøtter ikke denne type godkendelse. + unsupported_response_mode: Godkendelsesserveren understøtter ikke denne svartilstand. + unsupported_response_type: Godkendelsesserveren understøtter ikke denne svartype. pre_authorization: - status: Pre-authorization + status: Forhåndsgodkendelse ee: features: baseline_comparison: Baseline-sammenligninger @@ -2866,13 +2866,13 @@ da: teaser: description_html: Du har adgang til alle funktioner i %{trial_plan}. title: - one: One day left of %{trial_plan} trial token - other: "%{count} days left of %{trial_plan} trial token" + one: Én dag tilbage af prøvetokenet til %{trial_plan} + other: "%{count} dage tilbage af prøvetokenet til %{trial_plan}" trial: already_retrieved: 'Dit Enterprise-prøvetoken er allerede hentet. Se efter tokenet i dine e-mails, hvor det er vedhæftet. Kontakt vores supportteam, hvis du har brug for et nyt. ' - confirmation_info: 'Vi sendte dig en e-mail den %{date} til %{email} med alle oplysninger om at starte den gratis prøveperiode for OpenProject Enterprise. Tjek din indbakke, og klik på bekræftelseslinket for at starte din gratis prøveperiode på 14 dage. + confirmation_info: 'Vi sendte dig en e-mail den %{date} til %{email} med alle oplysninger om at starte den gratis prøveperiode for OpenProject Enterprise. Tjek din indbakke, og klik på bekræftelses-linket for at starte din gratis prøveperiode på 14 dage. ' confirmation_subline: 'Tjek din indbakke, og følg trinene for at starte din gratis prøveperiode på 14 dage. @@ -2981,21 +2981,21 @@ da: description: Opret automatisk dannede emner med refererede attributter og tekst. email_calendar_updates: button: - disabled: Enable - enabled: Disable + disabled: Aktivér + enabled: Deaktiver state: - disabled: Disabled. - enabled: Enabled. + disabled: Deaktiveret. + enabled: Aktiveret. enterprise_plans: - legacy_enterprise: Enterprise Plan + legacy_enterprise: Enterprise-plan enterprise_trials: dialog_component: - title: Enterprise Trial - enumeration_activities: Time tracking activities - enumeration_caption_order_changed: Order successfully changed. - enumeration_could_not_be_moved: Enumeration could not be moved. - enumeration_default_value_caption: Making this %{model} the default will override the previous default %{model}. - enumeration_reported_project_statuses: Reported status + title: Enterprise-prøveperiode + enumeration_activities: Aktiviteter til tidsregistrering + enumeration_caption_order_changed: Rækkefølgen er ændret. + enumeration_could_not_be_moved: Opremsningen kunne ikke flyttes. + enumeration_default_value_caption: Hvis denne %{model} gøres til standard, tilsidesættes den tidligere standard-%{model}. + enumeration_reported_project_statuses: Rapporteret status enumeration_work_package_priorities: Prioritering af arbejdspakker error_attribute_not_highlightable: 'Attributter, der ikke kan fremhæves: %{attributes}' error_auth_source_sso_failed: Single sign-on (SSO) for brugeren '%{value}' mislykkedes @@ -3006,7 +3006,7 @@ da: error_can_not_delete_in_use_archived_undisclosed: Der er også arbejdspakker i arkiverede projekter. Bed en administrator om at foretage sletningen; administratoren kan se, hvilke projekter der er berørt. error_can_not_delete_in_use_archived_work_packages: 'Der er også arbejdspakker i arkiverede projekter. Du skal først genaktivere følgende projekter, før du kan ændre attributten for de pågældende arbejdspakker: %{archived_projects_urls}' error_can_not_delete_type: - explanation: This type contains work packages and cannot be deleted. You can see all affected work packages in this view. + explanation: Typen indeholder arbejdspakker og kan ikke slettes. Du kan se alle berørte arbejdspakker i denne visning. error_can_not_find_all_resources: Ikke alle ressourcer, der hører til forespørgslen, blev fundet. error_can_not_invite_user: Invitationen kunne ikke sendes til brugeren. error_can_not_remove_role: Denne rolle er i brug og kan ikke slettes. @@ -3020,7 +3020,7 @@ da: error_custom_option_not_found: Valgmuligheden findes ikke. error_enterprise_activation_user_limit: Din konto kunne ikke aktiveres (grænsen for antal brugere er nået). Kontakt din administrator for at få adgang. error_enterprise_plan_needed: Du skal have Enterprise-planen %{plan} for at udføre denne handling. - 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-udgaven er ikke aktiv. Domænet i dit Enterprise-token (%{actual}) svarer ikke til systemets værtsnavn (%{expected}). error_external_authentication_failed_message: 'Der opstod en fejl under ekstern godkendelse: %{message}' error_failed_to_delete_entry: Posten kunne ikke slettes. error_in_dependent: 'Fejl ved ændring af afhængigt objekt: %{dependent_class} #%{related_id} - %{related_subject}: %{error}' @@ -3061,49 +3061,49 @@ da: error_workflow_copy_target: Vælg venligst type(r) og rolle(r) for mål errors: field_erroneous_label: |- - This field is invalid: %{full_errors} - Please enter a valid value. + Feltet er ugyldigt: %{full_errors} + Angiv en gyldig værdi. header_additional_invalid_fields: - one: 'Additionally, there was a problem with the following field:' - other: 'Additionally, there were problems with the following fields:' + one: 'Der var desuden et problem med følgende felt:' + other: 'Der var desuden problemer med følgende felter:' header_invalid_fields: - one: 'There was a problem with the following field:' - other: 'Der var problemer med disse felter:' + one: 'Der var et problem med følgende felt:' + other: 'Der var problemer med følgende felter:' messages: - invalid_child_for_parent: is not allowed as a parent for this view type. - invalid_input: The input is invalid. - must_be_template: must be template - storage_error: There was an error with the storage connection. - unsupported_storage_type: is not a supported storage type. + invalid_child_for_parent: er ikke tilladt som overordnet for denne type visning. + invalid_input: Inputtet er ugyldigt. + must_be_template: skal være en skabelon + storage_error: Der opstod en fejl i forbindelsen til lageret. + unsupported_storage_type: er ikke en understøttet lagertype. events: changeset: Pakke af ændringer er redigeret message: Meddelelse er redigeret news: Nyheder project: Projekt er redigeret - project_details: Project details edited + project_details: Projektdetaljer redigeret projects: Projekt er redigeret reply: Besvaret time_entry: Tidsregistreringer ændret title: - project_html: 'Project: %{name}' - subproject_html: 'Subproject: %{name}' + project_html: 'Projekt: %{name}' + subproject_html: 'Underprojekt: %{name}' wiki_page: Wiki-side redigeret work_package_closed: Arbejdspakke lukket work_package_edit: Arbejdspakke redigeret work_package_note: Note tilføjet arbejdspakke export: demo: - button_text: Generate Demo PDF - footer: Generated by OpenProject - heading: Demo PDF + button_text: Generér demo-PDF + footer: Genereret af OpenProject + heading: Demo-PDF dialog: columns: - input_caption_report: By default all attributes added as columns in the work package list are selected. Long text fields are not available in the attribute table, but can be displayed below it. - input_caption_required: It is not possible to export the view without any column. Please add at least one column. - input_caption_table: By default all attributes added as columns in the work package list are selected. Long text fields are not available in table based exports. - input_label_report: Add columns to attribute table + input_caption_report: Som standard er alle attributter, der er tilføjet som kolonner i listen over arbejdspakker, valgt. Lange tekstfelter kan ikke stå i attributtabellen, men kan vises under den. + input_caption_required: Visningen kan ikke eksporteres uden kolonner. Tilføj mindst én kolonne. + input_caption_table: Som standard er alle attributter, der er tilføjet som kolonner i listen over arbejdspakker, valgt. Lange tekstfelter er ikke tilgængelige i tabelbaserede eksporter. + input_label_report: Tilføj kolonner til attributtabellen format: - label: File format + label: Filformat options: csv: label: CSV @@ -3113,99 +3113,99 @@ da: label: XLS pdf: column_width: - label: Table column width + label: Kolonnebredde i tabellen options: - medium: Medium - narrow: Narrow - very_wide: Very wide - wide: Wide + medium: Mellem + narrow: Smal + very_wide: Meget bred + wide: Bred export_type: - label: PDF export type + label: Type af PDF-eksport options: gantt: - caption: Export the work packages list in a Gantt diagram view. - label: Gantt chart + caption: Eksportér listen over arbejdspakker som et Gantt-diagram. + label: Gantt-diagram report: - caption: Export the work package on a detailed report of all work packages in the list. + caption: Eksportér en detaljeret rapport over alle arbejdspakker på listen. label: Rapport table: - caption: Export the work packages list in a table with the desired columns. - label: Table + caption: Eksportér listen over arbejdspakker som en tabel med de ønskede kolonner. + label: Tabel gantt_zoom_levels: - caption: Select what is the zoom level for dates displayed in the chart. - label: Zoom levels + caption: Vælg zoomniveauet for de datoer, der vises i diagrammet. + label: Zoomniveauer options: days: Dage months: Måneder quarters: Kvartaler weeks: Uger include_images: - caption: Exclude images to reduce the size of the PDF export. - label: Include images + caption: Udelad billeder for at gøre PDF-eksporten mindre. + label: Medtag billeder long_text_fields: - drag_area_label: Manage long text fields - input_caption: By default all long text fields are selected. - input_label: Add long text fields - input_placeholder: Search for long text fields + drag_area_label: Administrer lange tekstfelter + input_caption: Som standard er alle lange tekstfelter valgt. + input_label: Tilføj lange tekstfelter + input_placeholder: Søg efter lange tekstfelter paper_size: - caption: Depending on the chart size more than one page might be exported. - label: Paper size + caption: Afhængigt af diagrammets størrelse kan der blive eksporteret mere end én side. + label: Papirstørrelse save_export_settings: - label: Save settings + label: Gem indstillinger submit: Eksportér title: Eksportér xls: include_descriptions: - caption: This option will add a description column in raw format. - label: Include descriptions + caption: Tilføjer en kolonne med beskrivelsen i råformat. + label: Medtag beskrivelser include_relations: - caption: This option will create a duplicate of each work package for every relation this has with another work package. - label: Include relations + caption: Opretter en kopi af hver arbejdspakke for hver relation, som den har til en anden arbejdspakke. + label: Medtag relationer errors: - embedded_table_with_too_many_columns: This embedded work package table could not fit on the page, please reduce the number of columns. - failed: 'An error has occurred while trying to export the work packages: %{message}' + embedded_table_with_too_many_columns: Den indlejrede tabel med arbejdspakker kunne ikke være på siden. Reducer antallet af kolonner. + failed: 'Der opstod en fejl under eksport af arbejdspakkerne: %{message}' format: atom: Atom csv: CSV pdf: PDF - pdf_gantt: PDF Gantt - pdf_overview_table: PDF Table - pdf_report: PDF Report - pdf_report_with_images: PDF Report with images + pdf_gantt: PDF Gantt-diagram + pdf_overview_table: PDF-tabel + pdf_report: PDF-rapport + pdf_report_with_images: PDF-rapport med billeder image: - omitted: Image not exported. + omitted: Billedet er ikke eksporteret. macro: - attribute_not_found: 'attribute not found: %{attribute}' - error: Macro error, %{message} - model_not_found: 'invalid attribute model: %{model}' - nested_rich_text_unsupported: Nested rich text embedding currently not supported in export - resource_not_found: 'resource not found: %{resource}' - succeeded: Export completed + attribute_not_found: 'attributten blev ikke fundet: %{attribute}' + error: Makrofejl, %{message} + model_not_found: 'ugyldig attributmodel: %{model}' + nested_rich_text_unsupported: Indlejret formateret tekst i formateret tekst understøttes endnu ikke ved eksport + resource_not_found: 'ressourcen blev ikke fundet: %{resource}' + succeeded: Eksporten er færdig units: days: d - hours: h - your_projects_export: Projects are being exported - your_work_packages_export: Work packages are being exported + hours: t + your_projects_export: Projekterne eksporteres + your_work_packages_export: Arbejdspakkerne eksporteres external_link_warning: - continue_button: Continue to external website - continue_message: Are you sure you want to proceed to the following external link? - title: Leaving OpenProject - warning_message: You are about to leave OpenProject and visit an external website. Please be aware that external websites are not under our control and may have different privacy and security policies. + continue_button: Fortsæt til det eksterne websted + continue_message: Er du sikker på, at du vil fortsætte til følgende eksterne link? + title: Du forlader OpenProject + warning_message: Du er ved at forlade OpenProject og besøge et eksternt websted. Vær opmærksom på, at eksterne websteder ikke er under vores kontrol og kan have andre regler for privatliv og sikkerhed. extraction: available: - catdoc: Catdoc available (optional) - catppt: Catppt available (optional) - pdftotext: Pdftotext available (optional) - tesseract: Tesseract available (optional) - unrtf: Unrtf available (optional) - xls2csv: Xls2csv available (optional) + catdoc: Catdoc tilgængelig (valgfrit) + catppt: Catppt tilgængelig (valgfrit) + pdftotext: Pdftotext tilgængelig (valgfrit) + tesseract: Tesseract tilgængelig (valgfrit) + unrtf: Unrtf tilgængelig (valgfrit) + xls2csv: Xls2csv tilgængelig (valgfrit) filterable_tree_view: filter_mode: all: Alle - label: Filter mode - selected: Selected - include_sub_items: Include sub-items - no_results_text: No results + label: Filtertilstand + selected: Valgte + include_sub_items: Medtag underelementer + no_results_text: Ingen resultater forums: show: no_results_title_text: Der er i øjeblikket ingen indlæg til forummet. @@ -3218,207 +3218,207 @@ da: general_text_Yes: Ja general_text_false: forkert general_text_no: nej - general_text_true: 'true' + general_text_true: sand general_text_yes: ja global_search: overwritten_tabs: all: Alle messages: Forum wiki_pages: Wiki - placeholder: Search in %{app_title} + placeholder: Søg i %{app_title} title: - all_projects: Search for "%{search_term}" in all projects - current_project: Search for "%{search_term}" in %{project_name} - project_and_subprojects: Search for "%{search_term}" in %{project_name} and all subprojects + all_projects: Søg efter "%{search_term}" i alle projekter + current_project: Søg efter "%{search_term}" i %{project_name} + project_and_subprojects: Søg efter "%{search_term}" i %{project_name} og alle underprojekter groups: edit: - synchronized_groups: Synchronized groups + synchronized_groups: Synkroniserede grupper index: - description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. + description: Når du samler brugere i grupper, kan du føje dem til de samme projekter som medlemmer eller give dem de samme globale roller. memberships: no_results_title_text: Der er i øjeblikket ingen projekter i denne gruppe. synchronized_groups: blankslate: - action: Authentication settings - description: When this group is automatically synced with groups in external identity providers like OpenID, they will appear here. You can set this up in your Authentication settings. - title: No synchronized groups yet + action: Indstillinger for godkendelse + description: Når gruppen synkroniseres automatisk med grupper hos eksterne identitetsudbydere som OpenID, vises de her. Det sætter du op i indstillingerne for godkendelse. + title: Ingen synkroniserede grupper endnu table_component: blank_slate: - description: You can define named groups of users with specific permissions. - title: No groups set up yet - user_count: User count + description: Du kan definere navngivne grupper af brugere med bestemte tilladelser. + title: Der er endnu ikke oprettet nogen grupper + user_count: Antal brugere users: no_results_title_text: Der er i øjeblikket ingen brugere i denne gruppe. gui_validation_error: 1 fejl gui_validation_error_plural: "%{count} fejl" header: project_select_component: - all_projects: All projects - favorites: Favorites - leave_project: Leave project - no_favorite_projects: You have no favorite projects. - title: Projects + all_projects: Alle projekter + favorites: Favoritter + leave_project: Forlad projektet + no_favorite_projects: Du har ingen favoritprojekter. + title: Projekter health_reports: common: checks: failures: - one: "%{count} check failed" - other: "%{count} checks failed" - success: All checks passed + one: "%{count} kontrol mislykkedes" + other: "%{count} kontroller mislykkedes" + success: Alle kontroller bestået warnings: - one: "%{count} check returned a warning" - other: "%{count} checks returned a warning" + one: "%{count} kontrol gav en advarsel" + other: "%{count} kontroller gav en advarsel" summary: - failure: Some checks failed and the system does not work as expected. - success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + failure: Nogle kontroller mislykkedes, og systemet fungerer ikke som forventet. + success: Alle forbindelser og systemer fungerer som forventet. + warning: Nogle kontroller gav en advarsel. Det kan føre til uventet adfærd. result_component: status: - failed: Failed - passed: Passed - skipped: Skipped - warning: Warning + failed: Mislykkedes + passed: Bestået + skipped: Sprunget over + warning: Advarsel help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. - project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" - public: 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. + favoured: Markér visningen som favorit, og føj den til panelet med gemte visninger til venstre. + project: "%{plural} hører altid til et projekt. Du kan kun vælge projekter, hvor modulet %{plural} er aktivt. Når du har oprettet en %{singular}, kan du tilføje arbejdspakker fra andre projekter.\n" + public: Offentliggør visningen, så andre brugere kan få adgang til den. Brugere med tilladelsen 'Administrer offentlige visninger' kan ændre eller fjerne offentlige visninger. Det påvirker ikke, hvilke arbejdspakker der kan ses i visningen, og afhængigt af deres tilladelser kan brugerne se forskellige resultater. homescreen: additional: favorite_projects: - no_results: You have no favorite projects - no_results_subtext: Add one or multiple projects as favorite through their overview or in a project list. - no_visible_projects: There are no visible projects in this instance. + no_results: Du har ingen favoritprojekter + no_results_subtext: Føj et eller flere projekter til favoritter fra deres oversigt eller fra en projektliste. + no_visible_projects: Der er ingen synlige projekter i denne installation. projects: Nyeste synlige projekter i denne omgang. users: Nyeste registrerede brugere i denne omgang. blocks: - community: OpenProject community + community: OpenProject-fællesskabet new_features: '17_9': new_features_list: - line_0: Create work packages directly in Documents. - line_1: Search and filter work packages in Backlogs. - line_2: Choose whether to keep descendants when deleting a work package. - line_3: Use the MCP Server to track time, search work packages by their display ID, and more (Professional plan). - line_4: Enter planned labor in hours, days, weeks, or months. - line_5: See the import progress when using the Jira Migrator. - line_6: Use Date alerts in the Community Edition. - new_features_title: 'The release contains various new features and improvements, such as: + line_0: Opret arbejdspakker direkte i Dokumenter. + line_1: Søg efter og filtrér arbejdspakker i Backlogs. + line_2: Vælg, om underliggende arbejdspakker skal beholdes, når en arbejdspakke slettes. + line_3: Brug MCP-serveren til at registrere tid, søge efter arbejdspakker ud fra deres viste id og meget mere (Professional-planen). + line_4: Angiv planlagt arbejde i timer, dage, uger eller måneder. + line_5: Se importens fremdrift, når du bruger Jira-migreringen. + line_6: Brug datobeskeder i Community-udgaven. + new_features_title: 'Versionen indeholder en række nye funktioner og forbedringer, fx: ' - header: Read about new features and product updates. - learn_about: Learn more about all new features - missing: There are no highlighted features yet. + header: Læs om nye funktioner og produktopdateringer. + learn_about: Læs mere om alle de nye funktioner + missing: Der er endnu ingen fremhævede funktioner. upsell: - title: Upgrade to Enterprise edition + title: Opgrader til Enterprise-udgaven links: - blog: OpenProject blog + blog: OpenProjects blog faq: Spørgsmål & Svar - forums: Community forum + forums: Fællesskabets forum glossary: Ordliste - impressum: Legal notice - newsletter: Newsletter - postgres_migration: Migrating your installation to PostgreSQL - security_alerts: Security alerts + impressum: Juridiske oplysninger + newsletter: Nyhedsbrev + postgres_migration: Migrering af din installation til PostgreSQL + security_alerts: Sikkerhedsadvarsler shortcuts: Genveje  - upgrade_enterprise_edition: Upgrade to Enterprise edition + upgrade_enterprise_edition: Opgrader til Enterprise-udgaven user_guides: Brugervejledninger http: request: - failed_authorization: The server side request failed authorizing itself. - missing_authorization: The server side request failed due to missing authorization information. + failed_authorization: Forespørgslen fra serveren kunne ikke godkende sig selv. + missing_authorization: Forespørgslen fra serveren mislykkedes, fordi der manglede godkendelsesoplysninger. response: - unexpected: Unexpected response received. + unexpected: Der blev modtaget et uventet svar. image_conversion: - imagemagick: Imagemagick + imagemagick: ImageMagick incoming_mails: ignore_filenames: 'Angiv en liste over navne der skal ignoreres ved behandling af vedhæftede filer for indgående breve (f.eks. signaturer eller ikoner). Indtast et filnavn pr. linje. ' - instructions_after_error_link: You can try to sign in again by clicking [here](signin_url). If the error persists, ask your admin for help. - instructions_after_logout_link: You can sign in again by clicking [here](signin_url). - instructions_after_registration_link: You can sign in as soon as your account has been activated by clicking [here](signin_url). + instructions_after_error_link: Du kan prøve at logge ind igen ved at klikke [her](signin_url). Hvis fejlen fortsætter, så bed din administrator om hjælp. + instructions_after_logout_link: Du kan logge ind igen ved at klikke [her](signin_url). + instructions_after_registration_link: Du kan logge ind ved at klikke [her](signin_url), så snart din konto er aktiveret. journals: cause_descriptions: - budget_deleted: Budget has been deleted + budget_deleted: Budgettet er slettet import: - changed_with_diff: "%{field} changed (%{link})" - deleted_with_diff: "%{field} deleted (%{link})" - field_changed: "%{field} changed from %{old_value} to %{new_value}" - field_removed: "%{field} removed" - field_set: "%{field} set to %{value}" - field_updated: "%{field} updated" - header: changes by %{author} - migrated: from Jira - set_with_diff: "%{field} set (%{link})" - meeting_cancelled: "(cancelled)" - meeting_deleted: "(deleted)" - meeting_series_backlog_html: backlog for meeting series %{link} - meeting_series_template_html: template for meeting series %{link} - meeting_template_html: meeting template %{link} - progress_mode_changed_to_status_based: Progress calculation mode set to status-based - status_excluded_from_totals_set_to_false_message: now included in hierarchy totals - status_excluded_from_totals_set_to_true_message: now excluded from hierarchy totals - status_percent_complete_changed: "% Complete changed from %{old_value}% to %{new_value}%" + changed_with_diff: "%{field} ændret (%{link})" + deleted_with_diff: "%{field} slettet (%{link})" + field_changed: "%{field} ændret fra %{old_value} til %{new_value}" + field_removed: "%{field} fjernet" + field_set: "%{field} sat til %{value}" + field_updated: "%{field} opdateret" + header: ændringer af %{author} + migrated: fra Jira + set_with_diff: "%{field} angivet (%{link})" + meeting_cancelled: "(aflyst)" + meeting_deleted: "(slettet)" + meeting_series_backlog_html: backlog for mødeserien %{link} + meeting_series_template_html: skabelon for mødeserien %{link} + meeting_template_html: mødeskabelonen %{link} + progress_mode_changed_to_status_based: Beregning af fremdrift sat til statusbaseret + status_excluded_from_totals_set_to_false_message: indgår nu i hierarkiets totaler + status_excluded_from_totals_set_to_true_message: indgår nu ikke i hierarkiets totaler + status_percent_complete_changed: "% færdigt ændret fra %{old_value} % til %{new_value} %" system_update: - file_links_journal: 'From now on, activity related to file links (files stored in external storages) will appear here in the Activity tab. The following represent activity concerning links that already existed: + file_links_journal: 'Fra nu af vises aktivitet om fil-links (filer i eksterne lagre) her på fanen Aktivitet. Følgende er aktivitet om links, der fandtes i forvejen: ' - progress_calculation_adjusted: Progress calculation automatically adjusted with version update. - progress_calculation_adjusted_from_disabled_mode: Progress calculation automatically set to work-based mode and adjusted with version update. - scheduling_mode_adjusted: Scheduling mode automatically adjusted with version update. - sprint_migration: Version '%{version_name}' has been copied as a sprint. - stale_target_versions_removed: Outdated target version automatically removed. It had been incorrectly re-added when multiple target versions were enabled. - target_versions_repaired: Target versions automatically synchronized with the Version field before enabling multiple target versions. - totals_removed_from_childless_work_packages: Work and progress totals automatically removed for non-parent work packages with version update. This is a maintenance task and can be safely ignored. - total_percent_complete_mode_changed_to_simple_average: Work values of child work packages are ignored. - total_percent_complete_mode_changed_to_work_weighted_average: Child work packages without Work are ignored. - unaccessable_work_package_changed: by changes to a related work package - work_package_children_changed_times: by changes to child %{link} - work_package_duplicate_closed: The status was automatically updated by the duplicated work package %{link} - work_package_parent_changed_times: by changes to parent %{link} - work_package_parent_deleted: because the parent work package was deleted - work_package_predecessor_changed_times: by changes to predecessor %{link} - work_package_related_changed_times: by changes to related %{link} + progress_calculation_adjusted: Beregningen af fremdrift er automatisk tilpasset ved opdateringen til en ny version. + progress_calculation_adjusted_from_disabled_mode: Beregningen af fremdrift er automatisk sat til arbejdsbaseret tilstand og tilpasset ved opdateringen til en ny version. + scheduling_mode_adjusted: Planlægningstilstanden er automatisk tilpasset ved opdateringen til en ny version. + sprint_migration: Versionen '%{version_name}' er kopieret som en sprint. + stale_target_versions_removed: En forældet målversion er fjernet automatisk. Den var ved en fejl blevet tilføjet igen, da flere målversioner blev aktiveret. + target_versions_repaired: Målversionerne er automatisk synkroniseret med feltet Version, før flere målversioner blev aktiveret. + totals_removed_from_childless_work_packages: Totaler for arbejde og fremdrift er automatisk fjernet fra arbejdspakker uden underordnede ved opdateringen til en ny version. Det er en vedligeholdelsesopgave, som du roligt kan se bort fra. + total_percent_complete_mode_changed_to_simple_average: Værdien Arbejde for underordnede arbejdspakker ignoreres. + total_percent_complete_mode_changed_to_work_weighted_average: Underordnede arbejdspakker uden Arbejde ignoreres. + unaccessable_work_package_changed: på grund af ændringer i en relateret arbejdspakke + work_package_children_changed_times: på grund af ændringer i den underordnede %{link} + work_package_duplicate_closed: Status blev opdateret automatisk af den dublerede arbejdspakke %{link} + work_package_parent_changed_times: på grund af ændringer i den overordnede %{link} + work_package_parent_deleted: fordi den overordnede arbejdspakke blev slettet + work_package_predecessor_changed_times: på grund af ændringer i forgængeren %{link} + work_package_related_changed_times: på grund af ændringer i den relaterede %{link} working_days_changed: - changed: by changes to working days (%{changes}) + changed: på grund af ændringer i arbejdsdagene (%{changes}) dates: - non_working: "%{date} is now non-working" - working: "%{date} is now working" + non_working: "%{date} er nu en arbejdsfri dag" + working: "%{date} er nu en arbejdsdag" days: - non_working: "%{day} is now non-working" - working: "%{day} is now working" + non_working: "%{day} er nu en arbejdsfri dag" + working: "%{day} er nu en arbejdsdag" caused_changes: - budget_deleted: Budget has been deleted - dates_changed: Dates changed - default_attribute_written: Read-only attributes written - import: Imported - meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" - meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" - meeting_agenda_item_discussed_html: "Discussed in meeting %{meeting_title_information}" - meeting_agenda_item_moved_html: "Moved to meeting %{meeting_title_information}" - meeting_agenda_item_moved_template_html: "Moved to %{meeting_title_information}" - meeting_agenda_item_removed_html: "Removed from meeting %{meeting_title_information}" - meeting_agenda_item_removed_template_html: "Removed from %{meeting_title_information}" - meeting_outcome_recorded_html: "Added as outcome in meeting %{meeting_title_information}" - progress_mode_changed_to_status_based: Progress calculation updated + budget_deleted: Budgettet er slettet + dates_changed: Datoer ændret + default_attribute_written: Skrivebeskyttede attributter skrevet + import: Importeret + meeting_agenda_item_added_html: "Tilføjet til mødet %{meeting_title_information}" + meeting_agenda_item_added_template_html: "Tilføjet til %{meeting_title_information}" + meeting_agenda_item_discussed_html: "Drøftet på mødet %{meeting_title_information}" + meeting_agenda_item_moved_html: "Flyttet til mødet %{meeting_title_information}" + meeting_agenda_item_moved_template_html: "Flyttet til %{meeting_title_information}" + meeting_agenda_item_removed_html: "Fjernet fra mødet %{meeting_title_information}" + meeting_agenda_item_removed_template_html: "Fjernet fra %{meeting_title_information}" + meeting_outcome_recorded_html: "Tilføjet som resultat på mødet %{meeting_title_information}" + progress_mode_changed_to_status_based: Beregning af fremdrift opdateret status_changed: Status '%{status_name}' - system_update: 'OpenProject system update:' - total_percent_complete_mode_changed_to_simple_average: Calculation of % Complete totals now based on a simple average of only % Complete values. - total_percent_complete_mode_changed_to_work_weighted_average: Calculation of % Complete totals now weighted by Work. - work_package_duplicate_closed: 'Duplicate work package updated:' - work_package_parent_deleted: Parent removed + system_update: 'Systemopdatering af OpenProject:' + total_percent_complete_mode_changed_to_simple_average: Beregningen af samlet % færdigt bygger nu på et simpelt gennemsnit af værdierne for % færdigt alene. + total_percent_complete_mode_changed_to_work_weighted_average: Beregningen af samlet % færdigt vægtes nu efter Arbejde. + work_package_duplicate_closed: 'Dubleret arbejdspakke opdateret:' + work_package_parent_deleted: Overordnet fjernet changes_retracted: Ændringerne blev trukket tilbage. non_visible: - budget: a non-visible budget - category: a non-visible category - default: a non-visible record - issue_priority: a non-visible priority - project: a non-visible project - sprint: a non-visible sprint - time_entry_activity: a non-visible activity - version: a non-visible version - work_package: a non-visible work package + budget: et budget, der ikke er synligt + category: en kategori, der ikke er synlig + default: en post, der ikke er synlig + issue_priority: en prioritet, der ikke er synlig + project: et projekt, der ikke er synligt + sprint: en sprint, der ikke er synlig + time_entry_activity: en aktivitet, der ikke er synlig + version: en version, der ikke er synlig + work_package: en arbejdspakke, der ikke er synlig label_accessibility: Tilgængelighed label_account: Konto label_actions: Handlinger @@ -3455,7 +3455,7 @@ da: label_api_access_key_created_on: API adgangsnøgle oprettet for %{value} siden label_api_access_key_type: API label_api_doc: API-dokumentation - label_app_modules: "%{app_title} modules" + label_app_modules: Moduler i %{app_title} label_applied_status: Tildelt status label_archive_project: Arkivér projekt label_ascending: Stigende @@ -3544,7 +3544,7 @@ da: label_copy_target: Mål label_copy_workflow_from: Kopier arbejdsgang fra label_copy_workflow_from_role: Kopiér til andre roller - label_copy_workflow_from_type: Copy to another type + label_copy_workflow_from_type: Kopiér til en anden type label_core_build: Kerne-build label_core_version: Kerneversion label_created_by: Oprettet af %{user} @@ -3571,8 +3571,8 @@ da: label_custom_field_default_type: Tom typebetegnelse label_custom_field_new: Nyt selvvalgt felt label_custom_field_plural: Selvvalgte felter - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile + label_custom_logo: Eget logo til computer + label_custom_logo_mobile: Eget logo til mobil label_custom_pdf_export_settings: Brugerdefinerede indstillinger for PDF-eksport label_custom_style: Design label_custom_style_description: Vælg, hvordan OpenProject skal se ud for dig med temaer, vælg de standardfarver, der skal bruges i programmet, og hvordan eksporter skal se ud. @@ -3631,7 +3631,7 @@ da: label_end_to_start: fra slutning til begyndelse label_enterprise: Enterprise label_enterprise_active_users: "%{current}/%{limit} købte aktive brugere" - label_enterprise_edition: Enterprise edition + label_enterprise_edition: Enterprise-udgave label_enterprise_support: Enterprise-support label_enumeration_new: Ny værdi til opremsning label_enumeration_value: Optællingsværdi @@ -3718,7 +3718,7 @@ da: label_index_by_title: Indhold efter titel label_information: Information label_information_plural: Information - label_installation_guides: Installation guides + label_installation_guides: Installationsvejledninger label_integer: Heltal label_integrations: Integrationer label_interface: Brugerflade @@ -3781,9 +3781,9 @@ da: label_membership_updated: Medlem opdateret label_menu: Menu label_menu_badge: - alpha: alpha + alpha: alfa beta: beta - pre_alpha: pre-alpha + pre_alpha: præ-alfa label_menu_item_name: Navn på menupunkt label_message: Besked label_message_last: Seneste meddelelse @@ -3879,7 +3879,7 @@ da: label_password_rule_numeric: Tal label_password_rule_special: Specialtegn label_password_rule_uppercase: Store bogstaver - label_past: Past + label_past: Tidligere label_path_encoding: Indkod sti for arkivering label_people: Personer label_per_page: 'Per side:' @@ -3947,7 +3947,7 @@ da: label_register_with_developer: Registrer dig som udvikler label_registered_on: Registreret den label_related_work_packages: Forbundne arbejdspakker - label_relates: Forbundet til + label_relates: relateret til label_relates_to: Forbundet til label_relation_actions: Relationshandlinger label_relation_delete: Slet forbindelse @@ -4043,7 +4043,7 @@ da: label_table_of_contents: Indholdsfortegnelse label_tag: Etiket label_team_planner: Teamplanlægger - label_template: Template + label_template: Skabelon label_templates: Skabeloner label_text: Lang tekst label_this_month: denne måned @@ -4068,7 +4068,7 @@ da: label_type_new: Ny type label_type_plural: Typer label_ui: Brugergrænseflade - label_upcoming: Upcoming + label_upcoming: Kommende label_updated_time: Opdateret %{value} siden label_updated_time_at: "%{author} %{age}" label_updated_time_by: Opdateret af %{author} %{age} siden @@ -4148,43 +4148,43 @@ da: label_x_closed_work_packages_abbr: one: 1 lukket other: "%{count} lukkede" - zero: 0 closed + zero: 0 lukkede label_x_comments: one: 1 kommentar other: "%{count} kommentarer" - zero: no comments + zero: ingen kommentarer label_x_days: - one: 1 day - other: "%{count} days" + one: 1 dag + other: "%{count} dage" label_x_files: - one: 1 file - other: "%{count} files" - zero: no files + one: 1 fil + other: "%{count} filer" + zero: ingen filer label_x_items: - one: 1 item - other: "%{count} items" - zero: no items + one: 1 element + other: "%{count} elementer" + zero: ingen elementer label_x_items_selected: - one: One item selected - other: "%{count} items selected" + one: Ét element valgt + other: "%{count} elementer valgt" label_x_open_work_packages_abbr: one: 1 åben other: "%{count} åbne" - zero: 0 open + zero: 0 åbne label_x_projects: one: 1 projekt other: "%{count} projekter" - zero: no projects + zero: ingen projekter label_x_work_packages: - one: 1 work package - other: "%{count} work packages" - zero: No work packages + one: 1 arbejdspakke + other: "%{count} arbejdspakker" + zero: Ingen arbejdspakker label_x_working_days: - one: 1 working day - other: "%{count} working days" + one: 1 arbejdsdag + other: "%{count} arbejdsdage" label_x_working_days_time_off: - one: 'Time off: 1 working day' - other: 'Time off: %{count} working days' + one: 'Fravær: 1 arbejdsdag' + other: 'Fravær: %{count} arbejdsdage' label_yesterday: I går label_zen_mode: Zen-tilstand ldap_auth_sources: @@ -4195,11 +4195,11 @@ da: OpenProject vil kun filtrere for angivne brugernavne i dette undertræ. Eksempel: 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. + Tilføj et valgfrit RFC4515-filter, der anvendes på de resultater, der returneres for brugere filtreret i LDAP. + Det kan bruges til at begrænse, hvilke brugere OpenProject finder til godkendelse og gruppesynkronisering. 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 filtrerer altid efter den loginattribut, som brugeren har angivet, for at finde posten. Hvis du angiver et filter her, + kombineres det med et AND. Som standard bruges et filter, der fanger alt (objectClass=*). generic_map: Attributten i LDAP, der er knyttet til attributten OpenProject `%{attribute}` host: LDAP værtsnavn eller IP-adresse login_map: Attributnøglen i LDAP, der bruges til at identificere det unikke bruger-login. Normalt vil dette være 'uid' eller 'samAccountName'. @@ -4208,38 +4208,38 @@ da: Hvis du markerer dette felt, vil OpenProject automatisk oprette nye brugere fra deres LDAP-poster, når de først autentificerer med OpenProject. Undlad at markere dette for kun at tillade eksisterende konti i OpenProject at godkende via LDAP! system_user_dn_html: | - Enter the DN of the system user used for read-only access. + Angiv DN for den systembruger, der bruges til skrivebeskyttet adgang.
- Example: uid=openproject,ou=system,dc=example,dc=com + Eksempel: uid=openproject,ou=system,dc=example,dc=com system_user_password: Indtast bind kodeordet for systembrugeren - back_to_index: Click here to go back to the list of connection. + back_to_index: Klik her for at gå tilbage til listen over forbindelser. connection_encryption: Forbindelseskryptering - encryption_details: LDAPS / STARTTLS options + encryption_details: Indstillinger for LDAPS/STARTTLS ldap_auth_failed: Kunne ikke godkendes på LDAP-serveren. ldap_details: LDAP detaljer ldap_error: 'LDAP-fejl: %{error_message}' - sync_failed: 'Failed to synchronize from LDAP: %{message}.' + sync_failed: 'Synkroniseringen fra LDAP mislykkedes: %{message}.' system_account: System konto system_account_legend: | OpenProject kræver skrivebeskyttet adgang gennem en systemkonto for at slå brugere og grupper op i dit LDAP-træ. Angiv venligst de bind legitimationsoplysninger for denne systembruger i følgende afsnit. technical_warning: | - This LDAP form requires technical knowledge of your LDAP / Active Directory setup. - [Please visit our documentation for detailed instructions](docs_url). + Formularen til LDAP kræver teknisk kendskab til din opsætning af LDAP/Active Directory. + [Se vores dokumentation for en detaljeret vejledning](docs_url). tls_mode: plain: ingen - plain_description: Opens an unencrypted connection to the LDAP server. Not recommended for production. + plain_description: Åbner en ukrypteret forbindelse til LDAP-serveren. Anbefales ikke i produktion. section_more_info_link_html: 'Dette afsnit vedrører forbindelsessikkerheden for denne LDAP-godkendelseskilde. For mere information kan du besøge Net::LDAP dokumentationen. ' simple_tls: LDAPS - simple_tls_description: Use LDAPS. Requires a separate port on the LDAP server. This mode is often deprecated, we recommend using STARTTLS whenever possible. + simple_tls_description: Brug LDAPS. Kræver en separat port på LDAP-serveren. Tilstanden er ofte forældet; vi anbefaler at bruge STARTTLS, når det er muligt. start_tls: STARTTLS - start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. + start_tls_description: Sender en STARTTLS-kommando efter forbindelse til standardporten for LDAP. Anbefales til krypterede forbindelser. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. - verify_peer: Verify SSL certificate - verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. + tls_certificate_description: Hvis LDAP-serverens certifikat ikke er blandt systemets betroede kilder, kan du tilføje det manuelt her. Angiv et PEM X509-certifikat som tekst. + verify_peer: Kontrollér SSL-certifikat + verify_peer_description_html: 'Aktiverer streng SSL-kontrol af certifikatkæden.
Advarsel: Hvis feltet ikke er markeret, deaktiveres SSL-kontrollen af LDAP-serverens certifikat. Det gør forbindelsen sårbar over for man-in-the-middle-angreb. ' user_settings: Attribut kortlægning @@ -4248,151 +4248,151 @@ da: ' link: link links: - configuration_guide: Configuration guide + configuration_guide: Konfigurationsvejledning get_in_touch: Har du spørgsmål? Kom i kontakt med os. lists: - can_be_saved: 'List modified:' - can_be_saved_as: 'The modifications can only be saved in a new list:' + can_be_saved: 'Listen er ændret:' + can_be_saved_as: 'Ændringerne kan kun gemmes i en ny liste:' create: - failure: 'The modified list cannot be saved: %{errors}' - success: The modified list has been saved as a new list + failure: 'Den ændrede liste kan ikke gemmes: %{errors}' + success: Den ændrede liste er gemt som en ny liste publish: - failure: 'The list cannot be made public: %{errors}' - success: The list has been made public + failure: 'Listen kan ikke gøres offentlig: %{errors}' + success: Listen er gjort offentlig unpublish: - failure: 'The list cannot be made private: %{errors}' - success: The list has been made private + failure: 'Listen kan ikke gøres privat: %{errors}' + success: Listen er gjort privat update: - failure: 'The modified list cannot be saved: %{errors}' - success: The modified list has been saved + failure: 'Den ændrede liste kan ikke gemmes: %{errors}' + success: Den ændrede liste er gemt macro_execution_error: Fejl ved udførelse af makroen %{macro_name} macro_unavailable: Makro %{macro_name} kan ikke vises. - macro_unknown: Unknown or unsupported macro. + macro_unknown: Ukendt makro, eller makroen understøttes ikke. macros: create_work_package_link: errors: - invalid_type: No type found with name '%{type}' in project '%{project}'. - no_project_context: Calling create_work_package_link macro from outside project context. + invalid_type: Der blev ikke fundet nogen type med navnet '%{type}' i projektet '%{project}'. + no_project_context: Makroen create_work_package_link kaldes uden for et projekt. link_name: Ny arbejdspakke errors: - missing_or_invalid_parameter: Missing or invalid macro parameter. + missing_or_invalid_parameter: Makroparameter mangler eller er ugyldig. include_wiki_page: - removed: The macro does no longer exist. + removed: Makroen findes ikke længere. legacy_warning: - timeline: This legacy timeline macro has been removed and is no longer available. You can replace the functionality with an embedded table macro. - placeholder: "[Placeholder] Macro %{macro_name}" + timeline: Den gamle makro til tidslinjer er fjernet og findes ikke længere. Du kan erstatte funktionen med en makro til en indlejret tabel. + placeholder: "[Pladsholder] Makro %{macro_name}" wiki_child_pages: errors: - page_not_found: Cannot find the wiki page '%{name}'. + page_not_found: Wikisiden '%{name}' blev ikke fundet. mail: actions: Handlinger digests: - including_mention_plural: including %{number_mentioned} mentions - including_mention_singular: including a mention - unread_notification_plural: "%{number_unread} unread notifications" - unread_notification_singular: 1 unread notification - you_have: You have + including_mention_plural: herunder %{number_mentioned} omtaler + including_mention_singular: herunder én omtale + unread_notification_plural: "%{number_unread} ulæste notifikationer" + unread_notification_singular: 1 ulæst notifikation + you_have: Du har logo_alt_text: Logo mention: - subject: "%{user_name} mentioned you in %{id} - %{subject}" + subject: "%{user_name} omtalte dig i %{id} - %{subject}" notification: - center: To notification center - see_in_center: See comment in notification center - settings: Change email settings + center: Til notifikationscentret + see_in_center: Se kommentaren i notifikationscentret + settings: Skift indstillinger for e-mail reminder_notifications: - heading: You have a new reminder + heading: Du har en ny påmindelse note: 'Note: “%{note}”' - subject: 'Reminder: %{note}' - salutation: Hello %{user}, - salutation_full_name: Full name + subject: 'Påmindelse: %{note}' + salutation: Hej %{user} + salutation_full_name: Fulde navn sharing: work_packages: - allowed_actions_html: 'You have the following permissions on this work package: %{allowed_actions}. This can change depending on your project role and permissions.' - create_account: To access this work package, you will need to create and activate an account on %{instance}. - enterprise_text: Share work packages with users who are not members of the project. - open_work_package: Open work package - subject: Work package %{id} was shared with you + allowed_actions_html: 'Du har følgende tilladelser til arbejdspakken: %{allowed_actions}. Det kan ændre sig afhængigt af din projektrolle og dine tilladelser.' + create_account: Du skal oprette og aktivere en konto på %{instance} for at få adgang til arbejdspakken. + enterprise_text: Del arbejdspakker med brugere, der ikke er medlemmer af projektet. + open_work_package: Åbn arbejdspakken + subject: Arbejdspakke %{id} er delt med dig summary: - group: "%{user} shared a work package with the group %{group} you are a member of" - user: "%{user} shared a work package with you with %{role_rights} rights" + group: "%{user} har delt en arbejdspakke med gruppen %{group}, som du er medlem af" + user: "%{user} har delt en arbejdspakke med dig med rettighederne %{role_rights}" storages: health: - email_notification_settings: Storage email notification settings + email_notification_settings: Indstillinger for notifikationer om lager via e-mail healthy: - solved_at: solved at - subject: Storage "%{name}" is now healthy! - summary: The problem with your %{storage_name} storage integration is now solved + solved_at: løst + subject: Lageret "%{name}" fungerer igen! + summary: Problemet med din lagerintegration %{storage_name} er nu løst plaintext: healthy: - details: For more details or to make any necessary amendments, you can visit your storage configuration - error-solved-on: Solved On - recommendation: We will continue monitoring the system to ensure it remains in good health. In case of any discrepancies, we will notify you. - summary: Good news! The status of your storage, %{storage_name}, is currently displaying as "Healthy". - storage: Storage + details: Du kan se flere detaljer eller foretage nødvendige ændringer i konfigurationen af dit lager + error-solved-on: Løst + recommendation: Vi fortsætter med at overvåge systemet for at sikre, at det fortsat fungerer. Giver noget anledning til bekymring, får du besked. + summary: Godt nyt! Status for dit lager %{storage_name} vises nu som "I orden". + storage: Lager unhealthy: - error-details: Error Details - error-message: Error Message - error-occurred-on: Occurred On - recommendation: We recommend heading over to the storage configuration page to address this issue - summary: The status of your storage, %{storage_name}, is currently displaying as "Error". We've detected an issue that might require your attention. - unsubscribe: If you would no longer like to receive these notifications, you can unsubscribe at any time. To unsubscribe, please follow the instructions on this page - see_storage_settings: See storage settings + error-details: Fejldetaljer + error-message: Fejlmeddelelse + error-occurred-on: Opstod + recommendation: Vi anbefaler, at du går til siden med lagerets konfiguration for at løse problemet + summary: Status for dit lager %{storage_name} vises nu som "Fejl". Vi har fundet et problem, som du måske skal se på. + unsubscribe: Hvis du ikke længere vil have disse notifikationer, kan du til enhver tid afmelde dem. Følg vejledningen på denne side for at afmelde + see_storage_settings: Se indstillingerne for lageret unhealthy: - since: since - subject: Storage "%{name}" is unhealthy! - summary: There is a problem with your %{storage_name} storage integration + since: siden + subject: Der er problemer med lageret "%{name}"! + summary: Der er et problem med din lagerintegration %{storage_name} troubleshooting: - link_text: troubleshooting documentation - text: For more information, check file storages + link_text: dokumentationen om fejlfinding + text: Se fillagre for at få flere oplysninger work_packages: - created_at: 'Created at %{timestamp} by %{user} ' - login_to_see_all: Log in to see all notifications. - mentioned: You have been mentioned in a comment - mentioned_by: "%{user} mentioned you in a comment" + created_at: 'Oprettet %{timestamp} af %{user} ' + login_to_see_all: Log ind for at se alle notifikationer. + mentioned: Du er blevet omtalt i en kommentar + mentioned_by: "%{user} omtalte dig i en kommentar" more_to_see: - one: There is 1 more work package with notifications. - other: There are %{count} more work packages with notifications. - open_in_browser: Open in browser + one: Der er 1 arbejdspakke mere med notifikationer. + other: Der er %{count} arbejdspakker mere med notifikationer. + open_in_browser: Åbn i browser reason: - assigned: Assigned - date_alert_due_date: Date alert - date_alert_start_date: Date alert - mentioned: Mentioned - prefix: 'Received because of the notification setting: %{reason}' - reminder: Reminder - responsible: Accountable - shared: Shared + assigned: Tildelt + date_alert_due_date: Datobesked + date_alert_start_date: Datobesked + mentioned: Omtalt + prefix: 'Modtaget på grund af notifikationsindstillingen: %{reason}' + reminder: Påmindelse + responsible: Ansvarlig + shared: Delt subscribed: alle - watched: Watched - see_all: See all - updated_at: Updated at %{timestamp} by %{user} + watched: Følger + see_all: Se alle + updated_at: Opdateret %{timestamp} af %{user} mail_body_account_activation_request: 'En ny bruger ( %{value}) har registreret sig. Kontoen afventer din godkendelse:' mail_body_account_information: Din kontoinformation mail_body_account_information_external: Du kan bruge din %{value} konto til at logge ind. - mail_body_backup_ready: 'Your requested backup is ready. You can download it here:' - mail_body_backup_ready_incomplete: '%{file_count} could not be read and were excluded from this backup. The downloaded archive is named with an "-incomplete" suffix to indicate it is missing some attachments. + mail_body_backup_ready: 'Den sikkerhedskopi, som du har bedt om, er klar. Du kan hente den her:' + mail_body_backup_ready_incomplete: '%{file_count} kunne ikke læses og er udeladt af sikkerhedskopien. Det hentede arkiv har endelsen "-incomplete" i navnet for at vise, at der mangler nogle vedhæftede filer. ' - mail_body_backup_token_info: The previous token is no longer valid. - mail_body_backup_token_reset_admin_info: The backup token for user '%{user}' has been reset. - mail_body_backup_token_reset_user_info: Your backup token has been reset. - mail_body_backup_token_warning: If this wasn't you, login to OpenProject immediately and reset it again. - mail_body_backup_waiting_period: The new token will be enabled in %{hours} hours. + mail_body_backup_token_info: Det tidligere token er ikke længere gyldigt. + mail_body_backup_token_reset_admin_info: Tokenet til sikkerhedskopiering for brugeren '%{user}' er nulstillet. + mail_body_backup_token_reset_user_info: Dit token til sikkerhedskopiering er nulstillet. + mail_body_backup_token_warning: Hvis det ikke var dig, så log straks ind i OpenProject, og nulstil det igen. + mail_body_backup_waiting_period: Det nye token aktiveres om %{hours} timer. mail_body_group_reminder: '%{count} arbejdspakke(r) som er tildelt "%{group}" har deadline indenfor %{days} dage:' - mail_body_incoming_email_error: The email you sent to OpenProject could not be processed. - mail_body_incoming_email_error_in_reply_to: At %{received_at} %{from_email} wrote - mail_body_incoming_email_error_logs: Logs + mail_body_incoming_email_error: Den e-mail, som du sendte til OpenProject, kunne ikke behandles. + mail_body_incoming_email_error_in_reply_to: Den %{received_at} skrev %{from_email} + mail_body_incoming_email_error_logs: Logge mail_body_lost_password: 'Klik på dette link for at ændre din adgangskode:' - mail_body_register: 'Welcome to %{app_title}. Please activate your account by clicking on this link:' - mail_body_register_closing: Your OpenProject team - mail_body_register_ending: Stay connected! Kind regards, - mail_body_register_header_title: Project member invitation email + mail_body_register: 'Velkommen til %{app_title}. Aktivér din konto ved at klikke på dette link:' + mail_body_register_closing: Dit OpenProject-team + mail_body_register_ending: Vi ses! Venlig hilsen + mail_body_register_header_title: E-mail med invitation til projektmedlem 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. + Kig gerne forbi vores YouTube-kanal (%{youtube_link}), hvor vi har et webinar (%{webinar_link}) + og videoer om at komme i gang (%{get_started_link}), så dine første skridt i OpenProject bliver så nemme som muligt.
- If you have any further questions, consult our documentation (%{documentation_link}) or contact your administrator. - mail_body_register_user: 'Dear %{name}, ' + Har du flere spørgsmål, så læs vores dokumentation (%{documentation_link}), eller kontakt din administrator. + mail_body_register_user: 'Hej %{name} ' mail_body_reminder: "%{count} arbejdspakke(r), der er tilknyttet dig, udløber indenfor de næste %{days} dage:" mail_body_wiki_page_added: Wiki-siden '%{id}' er blevet tilføjet af %{author}. mail_body_wiki_page_updated: Wiki-siden '%{id}' er blevet opdateret af %{author}. @@ -4418,130 +4418,130 @@ da: without_message: "%{user} opdaterede de roller, du har i projektet '%{project}'." subject: "%{project} - Dine roller er blevet opdateret" mail_password_change_not_possible: - body: Your account at %{app_title} is connected to an external authentication provider (%{name}). - subtext: Passwords for external account cannot be changed in the application. Please use the lost password functionality of your authentication provider. - title: Password change not possible + body: Din konto på %{app_title} er forbundet med en ekstern godkendelsesudbyder (%{name}). + subtext: Adgangskoder til eksterne konti kan ikke ændres i programmet. Brug funktionen til glemt adgangskode hos din godkendelsesudbyder. + title: Adgangskoden kan ikke ændres mail_subject_account_activation_request: "%{value} anmodninger om kontoaktivering" - mail_subject_backup_ready: Your backup is ready - mail_subject_backup_token_reset: Backup token reset - mail_subject_incoming_email_error: An email you sent to OpenProject could not be processed + mail_subject_backup_ready: Din sikkerhedskopi er klar + mail_subject_backup_token_reset: Token til sikkerhedskopiering nulstillet + mail_subject_incoming_email_error: En e-mail, som du sendte til OpenProject, kunne ikke behandles mail_subject_lost_password: Din %{value} adgangskode mail_subject_register: Din %{value} kontoaktivering mail_subject_wiki_content_added: "'%{id}' wikisider er blevet tilføjet" mail_subject_wiki_content_updated: "'%{id}' wikiside er blevet opdateret" mail_user_activation_limit_reached: message_html: | - A new user (%{email}) tried to create an account on an OpenProject environment that you manage (%{host}). - The user cannot activate their account since the user limit has been reached. + En ny bruger (%{email}) forsøgte at oprette en konto i et OpenProject-miljø, som du administrerer (%{host}). + Brugeren kan ikke aktivere sin konto, fordi grænsen for antal brugere er nået. steps: - a: Upgrade your payment plan ([here](upgrade_url)) - b: Lock or delete an existing user ([here](users_url)) - label: 'To allow the user to sign in you can either: ' - subject: User activation limit reached + a: Opgrader din betalingsplan ([her](upgrade_url)) + b: Lås eller slet en eksisterende bruger ([her](users_url)) + label: 'Du kan give brugeren mulighed for at logge ind på en af disse måder: ' + subject: Grænsen for aktivering af brugere er nået mcp_configurations: server_url_component: - caption: The URL at which the OpenProject MCP server will be reachable. Required for setting up MCP clients. - label: Server URL + caption: Den URL, hvor OpenProjects MCP-server kan nås. Den skal bruges til at opsætte MCP-klienter. + label: Serverens URL members: columns: - shared: Shared + shared: Delt delete_member_dialog: also_work_packages_shared_with_user_html: - one: Also, %{shared_work_packages_link} has been shared with this user. - other: Also, %{shared_work_packages_link} have been shared with this user. - can_remove_direct_but_not_shared_roles: You can remove this user as a direct project member but a group they are in is also a member of this project, so they will continue being a member via the group. - cannot_delete_inherited_membership: You cannot delete this member because they belong to a group that is itself a member of this project. - cannot_delete_inherited_membership_note_admin_html: You can either remove the group as a member of the project or this specific member from the group in the %{administration_settings_link}. - cannot_delete_inherited_membership_note_non_admin: You can either remove the group as a member of the project or contact your administrator to remove this specific member from the group. + one: Desuden er %{shared_work_packages_link} delt med brugeren. + other: Desuden er %{shared_work_packages_link} delt med brugeren. + can_remove_direct_but_not_shared_roles: Du kan fjerne brugeren som direkte medlem af projektet, men en gruppe, som brugeren er med i, er også medlem af projektet, så brugeren forbliver medlem via gruppen. + cannot_delete_inherited_membership: Du kan ikke slette medlemmet, fordi vedkommende hører til en gruppe, der selv er medlem af projektet. + cannot_delete_inherited_membership_note_admin_html: Du kan enten fjerne gruppen som medlem af projektet eller fjerne dette medlem fra gruppen under %{administration_settings_link}. + cannot_delete_inherited_membership_note_non_admin: Du kan enten fjerne gruppen som medlem af projektet eller bede din administrator om at fjerne dette medlem fra gruppen. however_work_packages_shared_with_group_html: - one: However, %{shared_work_packages_link} has also been shared with this group. - other: However, %{shared_work_packages_link} have also been shared with this group. + one: "%{shared_work_packages_link} er dog også delt med gruppen." + other: "%{shared_work_packages_link} er dog også delt med gruppen." however_work_packages_shared_with_user_html: - one: However, %{shared_work_packages_link} has also been shared with this user. - other: However, %{shared_work_packages_link} have also been shared with this user. - remove_project_membership_or_work_package_shares_too: Do you want to remove just the user as a direct member (and keep the shares) or remove the work package shares too? - remove_work_packages_shared_with_group_too: A group that has been removed as member can still access shared work packages. Would you like to remove the shares too? - remove_work_packages_shared_with_user_too: A user that has been removed as member can still access shared work packages. Would you like to remove the shares too? - title: Remove member - will_not_affect_inherited_shares: "(This will not affect work packages shared with their group)." - will_remove_all_group_access_priveleges: Deleting this member will remove all access privileges of the group to the project. The group will still exist as part of the instance. - will_remove_all_user_access_priveleges: Deleting this member will remove all access privileges of the user to the project. The user will still exist as part of the instance. - will_remove_the_groups_role: This will remove the group role from this project. - will_remove_the_users_role: This will remove the user’s role from this project. + one: "%{shared_work_packages_link} er dog også delt med brugeren." + other: "%{shared_work_packages_link} er dog også delt med brugeren." + remove_project_membership_or_work_package_shares_too: Vil du kun fjerne brugeren som direkte medlem (og beholde delingerne), eller vil du også fjerne delingerne af arbejdspakker? + remove_work_packages_shared_with_group_too: En gruppe, der er fjernet som medlem, har stadig adgang til delte arbejdspakker. Vil du også fjerne delingerne? + remove_work_packages_shared_with_user_too: En bruger, der er fjernet som medlem, har stadig adgang til delte arbejdspakker. Vil du også fjerne delingerne? + title: Fjern medlem + will_not_affect_inherited_shares: "(Det påvirker ikke arbejdspakker, der er delt med deres gruppe)." + will_remove_all_group_access_priveleges: Hvis du sletter medlemmet, fjernes alle gruppens adgangsrettigheder til projektet. Gruppen findes stadig i installationen. + will_remove_all_user_access_priveleges: Hvis du sletter medlemmet, fjernes alle brugerens adgangsrettigheder til projektet. Brugeren findes stadig i installationen. + will_remove_the_groups_role: Gruppens rolle i projektet fjernes. + will_remove_the_users_role: Brugerens rolle i projektet fjernes. delete_work_package_shares_dialog: - cannot_remove_inherited: The work packages shares shared via groups cannot be removed. - cannot_remove_inherited_note_admin_html: You can either revoke the share to the group or remove this specific member from the group in the %{administration_settings_link}. - cannot_remove_inherited_note_non_admin: You can either revoke the share to the group or contact your administrator to remove this specific member from the group. - cannot_remove_inherited_with_role: The work packages shares with role %{shared_role_name} are shared via groups and cannot be removed. - revoke_all_or_with_role: Would you like to revoke access to all shared work packages, or only those with %{shared_role_name} permissions? + cannot_remove_inherited: Delinger af arbejdspakker via grupper kan ikke fjernes. + cannot_remove_inherited_note_admin_html: Du kan enten tilbagekalde delingen med gruppen eller fjerne dette medlem fra gruppen under %{administration_settings_link}. + cannot_remove_inherited_note_non_admin: Du kan enten tilbagekalde delingen med gruppen eller bede din administrator om at fjerne dette medlem fra gruppen. + cannot_remove_inherited_with_role: Delingerne af arbejdspakker med rollen %{shared_role_name} er delt via grupper og kan ikke fjernes. + revoke_all_or_with_role: Vil du tilbagekalde adgangen til alle delte arbejdspakker eller kun dem med tilladelserne %{shared_role_name}? shared_with_permission_html: - one: Only %{shared_work_packages_link} has been shared with %{shared_role_name} permissions. - other: Only %{shared_work_packages_link} have been shared with %{shared_role_name} permissions. + one: Kun %{shared_work_packages_link} er delt med tilladelserne %{shared_role_name}. + other: Kun %{shared_work_packages_link} er delt med tilladelserne %{shared_role_name}. shared_with_this_group_html: - one: "%{all_shared_work_packages_link} has been shared with this group." - other: "%{all_shared_work_packages_link} have been shared with this group." + one: "%{all_shared_work_packages_link} er delt med gruppen." + other: "%{all_shared_work_packages_link} er delt med gruppen." shared_with_this_user_html: - one: "%{all_shared_work_packages_link} has been shared with this user." - other: "%{all_shared_work_packages_link} have been shared with this user." - title: Revoke work package shares - will_not_affect_inherited_shares: "(This will not affect work packages shared with their group)." - will_revoke_access_to_all: This action will revoke their access to all of them. - will_revoke_directly_granted_access: This action will revoke their access to all of them, but the work packages shared with a group. + one: "%{all_shared_work_packages_link} er delt med brugeren." + other: "%{all_shared_work_packages_link} er delt med brugeren." + title: Tilbagekald delinger af arbejdspakker + will_not_affect_inherited_shares: "(Det påvirker ikke arbejdspakker, der er delt med deres gruppe)." + will_revoke_access_to_all: Handlingen tilbagekalder adgangen til dem alle. + will_revoke_directly_granted_access: Handlingen tilbagekalder adgangen til dem alle undtagen de arbejdspakker, der er delt med en gruppe. filters: - all_shares: All shares + all_shares: Alle delinger index: no_results_content_text: Tilføj et deltager til projektet - no_results_title_text: There are currently no members part of this project. + no_results_title_text: Projektet har i øjeblikket ingen medlemmer. invite_by_mail: Send invitation til %{mail} menu: all: Alle groups: Grupper - invited: Invited + invited: Inviteret locked: Låst - project_roles: Project roles - wp_shares: Work package shares - send_invite_to: Send invite to + project_roles: Projektroller + wp_shares: Delinger af arbejdspakker + send_invite_to: Send invitation til menu_item: Menupunkt menu_item_setting: Synlighed menus: admin: - aggregation: Aggregation - ai: Artificial Intelligence (AI) - api_and_webhooks: API and webhooks + aggregation: Sammenlægning + ai: Kunstig intelligens (AI) + api_and_webhooks: API og webhooks mail_notification: E-mail-påmindelser - mails_and_notifications: Emails and notifications + mails_and_notifications: E-mails og notifikationer mcp_configurations: Model Context Protocol (MCP) - text_transform_actions: Text transform actions + text_transform_actions: Handlinger til tekstomskrivning quick_add: - label: Add… + label: Tilføj … more_actions: Flere funktioner my: access_token: created_dialog: - one_time_warning: This is the only time you will see this token. Make sure to copy it now. + one_time_warning: Det er eneste gang, at du kan se tokenet. Sørg for at kopiere det nu. token/api: - title: The API token has been generated + title: API-tokenet er dannet token/rss: - title: The RSS token has been generated + title: RSS-tokenet er dannet dialog: token/api: - attention_text: Treat API tokens like passwords. Anyone with this token will have access to information from this instance, share it only with trusted users. + attention_text: Behandl API-tokens som adgangskoder. Alle med tokenet har adgang til oplysninger i denne installation, så del det kun med brugere, som du stoler på. create_button: Opret - dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. - dialog_title: Create new API token - name_label: Token name - failed_to_create_token: 'Failed to create access token: %{error}' - failed_to_reset_token: 'Failed to reset access token: %{error}' - failed_to_revoke_token: 'Failed to revoke access token: %{error}' - no_results_title_text: There are currently no access tokens available. - notice_api_token_revoked: The API token has been deleted. To create a new token please use the button in the API section. - notice_ical_token_revoked: iCalendar token "%{token_name}" for calendar "%{calendar_name}" of project "%{project_name}" has been revoked. The iCalendar URL with this token is now invalid. - notice_reset_token: 'A new %{type} token has been generated. Your access token is:' - notice_rss_token_revoked: The RSS token has been deleted. To create a new token please use the link in the RSS section. - token_value_warning: 'Note: This is the only time you will see this token, make sure to copy it now.' + dialog_body: Tokenet lader tredjepartsprogrammer kommunikere med din installation. Giv det nye API-token et navn, så du kan kende det fra andre. + dialog_title: Opret nyt API-token + name_label: Tokennavn + failed_to_create_token: 'Adgangstokenet kunne ikke oprettes: %{error}' + failed_to_reset_token: 'Adgangstokenet kunne ikke nulstilles: %{error}' + failed_to_revoke_token: 'Adgangstokenet kunne ikke tilbagekaldes: %{error}' + no_results_title_text: Der er i øjeblikket ingen adgangstokens. + notice_api_token_revoked: API-tokenet er slettet. Brug knappen i afsnittet API for at oprette et nyt token. + notice_ical_token_revoked: iCalendar-tokenet "%{token_name}" til kalenderen "%{calendar_name}" i projektet "%{project_name}" er tilbagekaldt. iCalendar-URL'en med tokenet er nu ugyldig. + notice_reset_token: 'Der er dannet et nyt %{type}-token. Dit adgangstoken er:' + notice_rss_token_revoked: RSS-tokenet er slettet. Brug linket i afsnittet RSS for at oprette et nyt token. + token_value_warning: 'Bemærk: Det er eneste gang, at du kan se tokenet, så sørg for at kopiere det nu.' password_confirmation_dialog: - confirmation_required: You need to enter your account password to confirm this change. - title: Confirm your password to continue + confirmation_required: Du skal angive adgangskoden til din konto for at bekræfte ændringen. + title: Bekræft din adgangskode for at fortsætte my_account: access_tokens: access_tokens: Adgangstokens @@ -4638,7 +4638,7 @@ da: title: Få påmindelser via e-mail på disse dage notifications: date_alerts: - description: Du kan indstille datobeskeder for arbejdspakker, hvor du er tildelt, ansvarlig og/eller tilsynsførende, så du automatisk får besked nogle dage før en frist eller efter, at den er overskredet. + description: Du kan indstille datobeskeder for arbejdspakker, hvor du er tildelt, ansvarlig og/eller følger, så du automatisk får besked nogle dage før en frist eller efter, at den er overskredet. due_date: Slutdato overdue: Overskredet start_date: Startdato @@ -4663,13 +4663,13 @@ da: work_package_scheduled: Alle ændringer af datoer participating: assignee: Tildelt - description: Du får altid en notifikation, når du bliver omtalt, og ved ændringer i arbejdspakker, som du er tilsynsførende for. Det kan ikke slås fra. Du kan dog selv vælge, om du vil have notifikationer om ændringer i arbejdspakker, der vedrører dig (hvor du er tildelt eller ansvarlig, eller som er delt med dig). + description: Du får altid en notifikation, når du bliver omtalt, og ved ændringer i arbejdspakker, som du følger. Det kan ikke slås fra. Du kan dog selv vælge, om du vil have notifikationer om ændringer i arbejdspakker, der vedrører dig (hvor du er tildelt eller ansvarlig, eller som er delt med dig). mentioned: Omtalt responsible: Ansvarlig shared: Delt med mig submit_button: Opdater præferencer title: Involveret - watched: Tilsynsførende + watched: Følger project_specific_settings: add_button: Tilføj projektspecifikke notifikationer description: Du kan finjustere dine notifikationsindstillinger, så du kun får besked om bestemte hændelser i bestemte projekter. Tilføj et projekt nedenfor, og vælg, hvilke hændelser der skal give dig en notifikation. De projektspecifikke indstillinger tilsidesætter standardindstillingerne ovenfor. @@ -4683,14 +4683,14 @@ da: title: Notifikationer og e-mail news: index: - no_results_content_text: Add a news item - no_results_title_text: There is currently no news to report. + no_results_content_text: Tilføj en nyhed + no_results_title_text: Der er i øjeblikket ingen nyheder. no_results_title_text: Der er i øjeblikket ikke noget at vise. noscript_description: Du skal aktivere JavaScript for at bruge OpenProject! noscript_heading: JavaScript deaktiveret noscript_learn_more: Få mere at vide note: Note - note_password_login_disabled_link: Password login has been disabled through a [configuration setting](configuration_url). + note_password_login_disabled_link: Login med adgangskode er deaktiveret med en [konfigurationsindstilling](configuration_url). nothing_to_preview: Intet at forhåndsvise notice_accessibility_mode: Tilgængelighedstilstanden kan slås til under dine [kontoindstillinger](url). notice_account_activated: Din konto er blevet aktiveret. Du kan nu logge ind. @@ -4730,11 +4730,11 @@ da: notice_forced_logout: Du er blevet automatisk logget ud efter %{ttl_time} minutters inaktivitet. notice_internal_server_error: Der opstod en fejl på siden du prøver at gå til. Hvis du fortsat oplever problemer kontakt venligst din %{app_title} administrator for hjælp. notice_locking_conflict: Oplysning er opdateret af mindst én anden bruger i mellemtiden. - notice_locking_conflict_action_button: Discard changes and reload + notice_locking_conflict_action_button: Kassér ændringerne, og genindlæs notice_locking_conflict_additional_information: Opdatering(en) stammer fra %{users}. - notice_locking_conflict_danger: Could not save your changes because of conflicting modifications. To not lose your edits, copy them locally and reload to view the updated version. + notice_locking_conflict_danger: Dine ændringer kunne ikke gemmes på grund af modstridende ændringer. Kopiér dine ændringer lokalt, så du ikke mister dem, og genindlæs for at se den opdaterede version. notice_locking_conflict_reload_page: Vær venlig at genindlæse siden, gennemgå ændringer og genindsend dine opdateringer. - notice_locking_conflict_warning: This page has been updated by someone else. To not lose your edits, copy them locally and reload to view the updated version. + notice_locking_conflict_warning: En anden har opdateret siden. Kopiér dine ændringer lokalt, så du ikke mister dem, og genindlæs for at se den opdaterede version. notice_logged_out: Du er blevet logget ud. notice_member_added: Tilføjede %{name} til projektet. notice_member_deleted: "%{user} er blevet fjernet fra projektet og slettet." @@ -4747,19 +4747,19 @@ da: notice_password_confirmation_failed: Den indtastede adgangskode er forkert. notice_principals_found_multiple: "Der blev fundet %{number} resultater. \n Tryk på Tab for at gå til det første resultat." notice_principals_found_single: "Der er ét resultat. \n Tryk på Tab for at gå til det." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' + notice_project_cannot_update_custom_fields: 'Du kan ikke opdatere projektets tilgængelige brugerdefinerede felter. Projektet er ugyldigt: %{errors}' notice_project_not_deleted: Projektet blev ikke slettet. notice_project_not_found: Projektet blev ikke fundet. notice_requires_enterprise_token: Enterprise-tokenet mangler eller giver ikke adgang til denne side. - notice_smtp_address_unsafe_env_hint: SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable. + notice_smtp_address_unsafe_env_hint: SMTP-adressen %{address} er ikke sikker. Føj den til listen over tilladte adresser med miljøvariablen %{env_name}. notice_successful_cancel: Annulleret. notice_successful_connection: Forbindelse gennemført. notice_successful_create: Oprettelse gennemført. notice_successful_delete: Sletning gennemført. notice_successful_update: Opdatering gennemført. notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. + Opdateringen lykkedes. De brugerdefinerede felter for de aktiverede typer aktiveres automatisk + i formularen til arbejdspakker. Se mere. notice_to_many_principals_to_display: |- Der er for mange resultater. Indsnævr søgningen ved at indtste navnet på det nye medlem (eller gruppe). @@ -4774,31 +4774,31 @@ da: facets: all: Alle all_title: Vis alt - unread: Unread - unread_title: Show unread + unread: Ulæste + unread_title: Vis ulæste menu: - by_project: Unread by project - by_reason: Reason - inbox: Inbox + by_project: Ulæste efter projekt + by_reason: Årsag + inbox: Indbakke query: - invalid_filter: Invalid notification filter + invalid_filter: Ugyldigt notifikationsfilter reasons: assigned: Tildelt - dateAlert: Date alert - mentioned: Mentioned - reminder: Reminder - responsible: Accountable - shared: Shared - watched: Tilsynsførende - send_notifications: Send notifications for this action + dateAlert: Datobesked + mentioned: Omtalt + reminder: Påmindelse + responsible: Ansvarlig + shared: Delt + watched: Følger + send_notifications: Send notifikationer om denne handling work_packages: subject: - assigned: You have been assigned to %{work_package} - created: The work package was created. - mentioned: You have been mentioned in %{work_package} - responsible: You have become accountable for %{work_package} - subscribed: You subscribed to %{work_package} - watched: You are watching %{work_package} + assigned: Du er blevet tildelt %{work_package} + created: Arbejdspakken er oprettet. + mentioned: Du er blevet omtalt i %{work_package} + responsible: Du er blevet ansvarlig for %{work_package} + subscribed: Du abonnerer på %{work_package} + watched: Du følger %{work_package} number: format: delimiter: "," @@ -4820,118 +4820,116 @@ da: tb: TB oauth: application: - builtin: Built-in instance application - client_credentials: Client credentials - confidential: Confidential - default_scopes: "(Default scopes)" + builtin: Indbygget program i installationen + client_credentials: Client Credentials + confidential: Fortrolig + default_scopes: "(Standardomfang)" instructions: - client_credential_user_id: Optional user ID to impersonate when clients use this application. Leave empty to allow public access only - confidential: Check if the application will be used where the client secret can be kept confidential. Native mobile apps and Single Page Apps are assumed non-confidential. + client_credential_user_id: Valgfrit bruger-id, som klienter optræder som, når de bruger programmet. Lad feltet stå tomt for kun at tillade offentlig adgang + confidential: Markér feltet, hvis programmet skal bruges et sted, hvor klienthemmeligheden kan holdes fortrolig. Indbyggede mobilapps og Single Page Apps regnes for ikke-fortrolige. default_scopes: '' - enabled: Enable this application, allowing users to perform authorization grants with it. - name: The name of your application. This will be displayed to other users upon authorization. - redirect_uri_html: 'The allowed URLs authorized users can be redirected to. One entry per line.
If you''re registering a desktop application, use the following URL. + enabled: Aktivér programmet, så brugerne kan give godkendelser med det. + name: Navnet på dit program. Det vises for andre brugere ved godkendelse. + redirect_uri_html: 'De tilladte URL''er, som godkendte brugere kan omdirigeres til. Én pr. linje.
Hvis du registrerer et skrivebordsprogram, så brug følgende URL. ' - register_intro: If you are developing an OAuth API client application for OpenProject, you can register it using this form for all users to use. - scopes: Check the scopes you want the application to grant access to. If no scope is checked, api_v3 is assumed. - named: OAuth application '%{name}' - new: New OAuth application - non_confidential: Non confidential - plural: OAuth applications - scopes: Scopes - singular: OAuth application + register_intro: Hvis du udvikler et OAuth-API-klientprogram til OpenProject, kan du registrere det med denne formular, så alle brugere kan bruge det. + scopes: Markér de omfang, som programmet skal give adgang til. Hvis intet omfang er markeret, bruges api_v3. + named: OAuth-programmet '%{name}' + new: Nyt OAuth-program + non_confidential: Ikke fortrolig + plural: OAuth-programmer + scopes: Omfang + singular: OAuth-program authorization_dialog: - authorize: Authorize - cancel: Cancel and deny authorization. - prompt_html: Authorize %{application_name} to use your account %{login}? - title: Authorize %{application_name} - wants_to_access_html: 'This application requests access to your OpenProject account.
It has requested the following permissions: + authorize: Godkend + cancel: Annuller, og afvis godkendelsen. + prompt_html: Vil du give %{application_name} lov til at bruge din konto %{login}? + title: Godkend %{application_name} + wants_to_access_html: 'Programmet beder om adgang til din OpenProject-konto.
Det har bedt om følgende tilladelser: ' - authorization_error: An authorization error has occurred. - client_credentials: User used for Client credentials - client_credentials_impersonation_html: 'By default, OpenProject provides OAuth 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable %{client_credentials_flow_link}, but you must provide a user on whose behalf requests will be performed. + authorization_error: Der opstod en fejl under godkendelsen. + client_credentials: Bruger til Client Credentials + client_credentials_impersonation_html: 'Som standard tilbyder OpenProject OAuth 2.0-godkendelse via %{authorization_code_flow_link}. Du kan også aktivere %{client_credentials_flow_link}, men så skal du angive en bruger, som forespørgslerne udføres på vegne af. ' - client_credentials_impersonation_set_to: Client credentials user set to - client_credentials_impersonation_warning: 'Note: Clients using the ''Client credentials'' flow in this application will have the rights of this user' - client_id: Client ID - client_secret_notice: 'This is the only time we can print the client secret, please note it down and keep it secure. It should be treated as a password and cannot be retrieved by OpenProject at a later time. + client_credentials_impersonation_set_to: Bruger til Client Credentials er sat til + client_credentials_impersonation_warning: 'Bemærk: Klienter, der bruger flowet ''Client Credentials'' i dette program, får denne brugers rettigheder' + client_id: Klient-id + client_secret_notice: 'Det er eneste gang, at vi kan vise klienthemmeligheden. Skriv den ned, og opbevar den sikkert. Den skal behandles som en adgangskode og kan ikke hentes fra OpenProject senere. ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. - other: Do you really want to remove this application? This will revoke %{count} tokens active for it. - empty_application_lists: No OAuth applications have been registered. + one: Vil du virkelig fjerne programmet? Det tilbagekalder ét aktivt token for det. + other: Vil du virkelig fjerne programmet? Det tilbagekalder %{count} aktive tokens for det. + empty_application_lists: Der er ikke registreret nogen OAuth-programmer. flows: - authorization_code: Authorization code flow - client_credentials: Client credentials flow + authorization_code: Flowet Authorization Code + client_credentials: Flowet Client Credentials grants: - created_date: Approved on - none_given: No OAuth applications have been granted access to your user account. + created_date: Godkendt den + none_given: Ingen OAuth-programmer har fået adgang til din brugerkonto. scopes: Tilladelser - successful_application_revocation: Revocation of application %{application_name} successful. + successful_application_revocation: Programmet %{application_name} er tilbagekaldt. header: - builtin_applications: Built-in OAuth applications - other_applications: Other OAuth applications - my_registered_applications: Registered OAuth applications + builtin_applications: Indbyggede OAuth-programmer + other_applications: Andre OAuth-programmer + my_registered_applications: Registrerede OAuth-programmer scopes: - api_v3: Full API v3 access - api_v3_text: Application will receive full read & write access to the OpenProject API v3 to perform actions on your behalf. - mcp: Access to MCP - mcp_text: Application will receive access to the OpenProject MCP endpoints. They are a limited subset of APIv3, that's tailored for usage with AI agents. + api_v3: Fuld adgang til API v3 + api_v3_text: Programmet får fuld læse- og skriveadgang til OpenProjects API v3 for at udføre handlinger på dine vegne. + mcp: Adgang til MCP + mcp_text: Programmet får adgang til OpenProjects MCP-slutpunkter. De er et begrænset udsnit af APIv3, der er tilpasset brug med AI-agenter. oauth_client: errors: - oauth_authorization_code_grant_had_errors: OAuth2 Authorization grant unsuccessful - oauth_client_not_found: OAuth2 client not found in 'callback' endpoint (redirect_uri). - oauth_client_not_found_explanation: 'This error appears after you have updated the client_id and client_secret in OpenProject, but haven''t updated the ''Return URI'' field in the OAuth2 provider. + oauth_authorization_code_grant_had_errors: OAuth2-godkendelsen mislykkedes + oauth_client_not_found: OAuth2-klienten blev ikke fundet i slutpunktet 'callback' (redirect_uri). + oauth_client_not_found_explanation: 'Fejlen opstår, når du har opdateret client_id og client_secret i OpenProject, men ikke har opdateret feltet ''Return URI'' hos OAuth2-udbyderen. ' - oauth_code_not_present: OAuth2 'code' not found in 'callback' endpoint (redirect_uri). - oauth_code_not_present_explanation: 'This error appears if you have selected the wrong response_type in the OAuth2 provider. Response_type should be ''code'' or similar. - - ' - oauth_reported: OAuth2 provider reported - oauth_returned_error: OAuth2 returned an error - oauth_returned_http_error: OAuth2 returned a network error - oauth_returned_json_error: OAuth2 returned a JSON error - oauth_returned_standard_error: OAuth2 returned an internal error - oauth_state_not_present: OAuth2 'state' not found in 'callback' endpoint (redirect_uri). - oauth_state_not_present_explanation: 'The ''state'' is used to indicate to OpenProject where to continue after a successful OAuth2 authorization. A missing ''state'' is an internal error that may appear during setup. Please contact your system administrator. + oauth_code_not_present: OAuth2-'code' blev ikke fundet i slutpunktet 'callback' (redirect_uri). + oauth_code_not_present_explanation: 'Fejlen opstår, hvis du har valgt den forkerte response_type hos OAuth2-udbyderen. response_type skal være ''code'' eller lignende. ' + oauth_reported: OAuth2-udbyderen meldte + oauth_returned_error: OAuth2 returnerede en fejl + oauth_returned_http_error: OAuth2 returnerede en netværksfejl + oauth_returned_json_error: OAuth2 returnerede en JSON-fejl + oauth_returned_standard_error: OAuth2 returnerede en intern fejl + oauth_state_not_present: OAuth2-'state' blev ikke fundet i slutpunktet 'callback' (redirect_uri). + oauth_state_not_present_explanation: "'state' bruges til at fortælle OpenProject, hvor der skal fortsættes efter en vellykket OAuth2-godkendelse. Mangler 'state', er det en intern fejl, der kan opstå under opsætningen. Kontakt din systemadministrator.\n" rack_oauth2: - client_secret_invalid: Client secret is invalid (client_secret_invalid) - invalid_client: The OAuth2 Authorization Server doesn't recognize OpenProject (invalid_client). - invalid_grant: The OAuth2 Authorization Server asks you to reauthorize (invalid_grant). - invalid_request: 'OAuth2 Authorization Server responded with ''invalid_request''. This error appears if you try to authorize multiple times or in case of technical issues. + client_secret_invalid: Klienthemmeligheden er ugyldig (client_secret_invalid) + invalid_client: OAuth2-godkendelsesserveren genkender ikke OpenProject (invalid_client). + invalid_grant: OAuth2-godkendelsesserveren beder dig om at godkende igen (invalid_grant). + invalid_request: 'OAuth2-godkendelsesserveren svarede med ''invalid_request''. Fejlen opstår, hvis du forsøger at godkende flere gange, eller ved tekniske problemer. ' - invalid_response: OAuth2 Authorization Server provided an invalid response (invalid_response) - invalid_scope: You are not allowed to access the requested resource (invalid_scope). - unauthorized_client: The OAuth2 Authorization Server rejects the grant type (unauthorized_client) - unsupported_grant_type: The OAuth2 Authorization Server asks you to reauthorize (unsupported_grant_type). - refresh_token_called_without_existing_token: 'Internal error: Called refresh_token without a previously existing token. + invalid_response: OAuth2-godkendelsesserveren gav et ugyldigt svar (invalid_response) + invalid_scope: Du har ikke adgang til den ønskede ressource (invalid_scope). + unauthorized_client: OAuth2-godkendelsesserveren afviser godkendelsestypen (unauthorized_client) + unsupported_grant_type: OAuth2-godkendelsesserveren beder dig om at godkende igen (unsupported_grant_type). + refresh_token_called_without_existing_token: 'Intern fejl: refresh_token blev kaldt uden et eksisterende token. ' - refresh_token_updated_failed: Error during update of OAuthClientToken - wrong_token_type_returned: OAuth2 returned a wrong type of token, expecting AccessToken::Bearer + refresh_token_updated_failed: Fejl under opdatering af OAuthClientToken + wrong_token_type_returned: OAuth2 returnerede en forkert type token. Forventede AccessToken::Bearer labels: - label_oauth_integration: OAuth2 integration - label_redirect_uri: Redirect URI - label_refresh_token: Refresh token - label_request_token: Request token + label_oauth_integration: OAuth2-integration + label_redirect_uri: Omdirigerings-URI + label_refresh_token: Fornyelsestoken + label_request_token: Forespørgselstoken urn_connection_status: - connected: Connected + connected: Forbundet error: Fejl - failed_authorization: Authorization failed - not_connected: Not connected + failed_authorization: Godkendelsen mislykkedes + not_connected: Ikke forbundet onboarding: - heading_getting_started: Get an overview - select_language: Please select your language - text_getting_started_description: Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu. - welcome: Welcome to %{app_title} + heading_getting_started: Få et overblik + select_language: Vælg dit sprog + text_getting_started_description: Få et hurtigt overblik over projektstyring og samarbejde i teams med OpenProject. Du kan afspille videoen igen fra menuen Hjælp. + welcome: Velkommen til %{app_title} op_dry_validation: errors: array?: skal være et array. @@ -4939,7 +4937,7 @@ da: defined: må ikke være defineret. eql?: skal være lig med %{left}. filled?: skal udfyldes. - format?: is in invalid format. + format?: har et ugyldigt format. greater_or_equal_zero: skal være større end eller lig med 0. gteq?: skal være større end eller lig med %{num}. hash?: skal være en hash. @@ -4953,7 +4951,7 @@ da: respond_to?: implementerer ikke den påkrævede metode. rules: copy_workflow_from: - workflow_missing: has no own workflow. + workflow_missing: har ingen egen arbejdsgang. custom_field: format_not_supported: formatet '%{field_format}' understøttes ikke. item: @@ -4966,14 +4964,14 @@ da: short: not_unique: skal være entydig på samme niveau i hierarkiet. str?: skal være en streng. - time?: must be a time. + time?: skal være et klokkeslæt. type?: skal være %{type}. - unexpected_key: is not allowed. - uri?: is not a valid URI. + unexpected_key: er ikke tilladt. + uri?: er ikke en gyldig URI. or: eller rules: blueprint: Skabelon for mønster - copy_workflow_from: Type for workflow copy + copy_workflow_from: Type at kopiere arbejdsgang fra depth: Dybde enabled: Aktiveret item: Element @@ -4981,83 +4979,83 @@ da: parent: Overordnet short: Kort navn weight: Vægt - open_link_in_a_new_tab: Open link in a new tab + open_link_in_a_new_tab: Åbn link i en ny fane open_project: common: work_package_card_component: drag_handle: - label: Drag to reorder + label: Træk for at ændre rækkefølgen menu: - label_actions: Work package actions - parent: Parent - undisclosed: Undisclosed + label_actions: Handlinger for arbejdspakke + parent: Overordnet + undisclosed: Skjult page: text: Tekst pagination: - label: Pagination - next: Next - next_page: Next Page - page: Page %{number} - page_with_more: Page %{number}... - prev: Previous - prev_page: Previous Page + label: Sideinddeling + next: Næste + next_page: Næste side + page: Side %{number} + page_with_more: Side %{number}... + prev: Forrige + prev_page: Forrige side pdf_generator: budgets_table: - cost_per_unit: Cost per unit - description: Description - labor: Labor costs - material: Unit costs + cost_per_unit: Pris pr. enhed + description: Beskrivelse + labor: Lønomkostninger + material: Enhedsomkostninger sum: Sum - total: Total + total: I alt dialog: footer_center: - caption: This text will appear on every page at the center of the footer. - default_hint_project_name: When left blank, defaults to the project name. - default_hint_subject: When left blank, defaults to the work package's subject. - label: Footer text + caption: Teksten vises midt i sidefoden på hver side. + default_hint_project_name: Står feltet tomt, bruges projektets navn. + default_hint_subject: Står feltet tomt, bruges arbejdspakkens emne. + label: Tekst i sidefoden footer_right: - caption: This text will appear on every page at the right of the footer. - label: Footer text + caption: Teksten vises til højre i sidefoden på hver side. + label: Tekst i sidefoden hyphenation: - caption: Break line between words for better layout and justification. - label: Hyphenation + caption: Del ord ved linjeskift for et bedre layout og bedre lige margener. + label: Orddeling hyphenation_language: - label: Language and hyphenation + label: Sprog og orddeling include_budget: - caption: Include the project's budgets with their planned unit and labor cost items. - label: Project budgets + caption: Medtag projektets budgetter med de planlagte poster for enheds- og lønomkostninger. + label: Projektbudgetter include_lifecycle: - caption: Include the project's phases and their date ranges. - label: Project lifecycle + caption: Medtag projektets faser og deres perioder. + label: Projektets livscyklus page_orientation: - caption: Select the orientation of the pages in the PDF document. - label: Page orientation + caption: Vælg sidernes retning i PDF-dokumentet. + label: Sideretning options: - landscape: Landscape - portrait: Portrait + landscape: Liggende + portrait: Stående submit: Hent templates: - label: Template - none_enabled: No template has been enabled for this work package type - title: Generate PDF + label: Skabelon + none_enabled: Der er ikke aktiveret nogen skabelon for denne arbejdspakketype + title: Generér PDF toc: - caption: Add a table of contents page indexing the section headers. - label: Table of contents - page_nr_footer: Page %{page} of %{total} + caption: Tilføj en side med en indholdsfortegnelse over afsnittenes overskrifter. + label: Indholdsfortegnelse + page_nr_footer: Side %{page} af %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Arbejdspakkens detaljer vist som et PMflex-artefakt. + label: PMflex-artefakt template_attributes: - caption: All the attributes present in the current form using the default template. - label: Attributes and description + caption: Alle attributter i den aktuelle formular med standardskabelonen. + label: Attributter og beskrivelse template_contract: - caption: Work package details formatted to the standard German contract form. - label: Contract + caption: Arbejdspakkens detaljer formateret efter den tyske standardkontrakt. + label: Kontrakt permission_add_internal_comments: Skriv interne kommentarer permission_add_messages: Send beskeder permission_add_portfolios: Opret porteføljer permission_add_programs: Opret programmer - permission_add_project: Create projects + permission_add_project: Opret projekter permission_add_subprojects: Opret underprojekter permission_add_work_package_attachments: Tilføj vedhæftede filer permission_add_work_package_attachments_explanation: Giver mulighed for at tilføje vedhæftede filer uden tilladelsen Rediger arbejdspakker @@ -5073,8 +5071,8 @@ da: permission_commit_access: Læse- og skriveadgang til repository (commit) permission_copy_projects: Kopiér projekter permission_copy_projects_explanation: 'I skabelonprojekter har tilladelsen en ekstra funktion: Den giver mulighed for at oprette nye projekter ud fra skabelonen.' - permission_copy_work_packages: Duplicate work packages - permission_create_backup: Create backups + permission_copy_work_packages: Dupliker arbejdspakker + permission_create_backup: Opret sikkerhedskopier permission_create_user: Opret brugere permission_delete_messages: Slet meddelelser permission_delete_own_messages: Slet egne meddelelser @@ -5095,7 +5093,7 @@ da: permission_edit_project_phases: Rediger projektfaser permission_edit_project_query: Rediger projektlister permission_edit_reportings: Rediger rapporteringer - permission_edit_time_entries: Edit time logs for other users + permission_edit_time_entries: Rediger tidsregistreringer for andre brugere permission_edit_timelines: Rediger tidslinjer permission_edit_wiki_pages: Rediger wiki-sider permission_edit_work_package_comments: Moderer kommentarer @@ -5103,13 +5101,13 @@ da: permission_edit_work_packages: Rediger arbejdspakker permission_export_projects: Eksportér projekter permission_export_work_packages: Eksportér arbejdspakker - permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_header_for_project_module_work_package_tracking: Arbejdspakker og Gantt-diagrammer permission_invite_members_by_email: Inviter medlemmer via e-mail permission_invite_members_by_email_explanation: 'Giver brugerne mulighed for at invitere nye medlemmer via e-mail. Inviterede brugere får en e-mail med et link, hvor de kan angive deres adgangskode og aktivere deres konto. Kræver tilladelsen til at administrere medlemmer ' - permission_log_own_time: Log own time - permission_log_time: Log time for other users + permission_log_own_time: Registrer egen tid + permission_log_time: Registrer tid for andre brugere permission_manage_categories: Administrer kategorier for arbejdspakker permission_manage_dashboards: Administrer dashboards permission_manage_forums: Administrer fora @@ -5142,7 +5140,7 @@ da: permission_save_bcf_queries: Gem BCF-visninger permission_save_queries: Gem visninger permission_search_project: Søg i projekt - permission_select_custom_fields: Select custom fields + permission_select_custom_fields: Vælg brugerdefinerede felter permission_select_project_custom_fields: Vælg projektattributter permission_select_project_modules: Vælg projektmoduler permission_select_project_phases: Vælg projektfaser @@ -5176,98 +5174,98 @@ da: permission_work_package_assigned: Kan være tildelt/ansvarlig permission_work_package_assigned_explanation: Arbejdspakker kan tildeles brugere og grupper, der har denne rolle i det pågældende projekt placeholder_users: - delete_tooltip: Delete placeholder user + delete_tooltip: Slet pladsholder-bruger deletion_info: data_consequences: 'Alle forekomster af pladsholder brugeren (f.eks. som modtager, ansvarlig eller andre brugerværdier) vil blive omfordelt til en konto kaldet "Slettet bruger". Da dataene for hver slettet konto er omfordelt til denne konto, vil det ikke være muligt at skelne de data, brugeren har oprettet fra data fra en anden slettet konto. ' - heading: Delete placeholder user %{name}? - title: Delete placeholder user %{name} - right_to_manage_members_missing: 'You are not allowed to delete the placeholder user. You do not have the right to manage members for all projects that the placeholder user is a member of. + heading: Vil du slette pladsholder-brugeren %{name}? + title: Slet pladsholder-brugeren %{name} + right_to_manage_members_missing: 'Du har ikke tilladelse til at slette pladsholder-brugeren. Du har ikke ret til at administrere medlemmer i alle de projekter, som pladsholder-brugeren er medlem af. ' placeholders: default: "-" - templated_hint: Automatically generated through type %{type} + templated_hint: Dannet automatisk af typen %{type} plugin_openproject_auth_plugins: - description: Integration of OmniAuth strategy providers for authentication in OpenProject. + description: Integration af OmniAuth-udbydere til godkendelse i OpenProject. name: OpenProject Auth Plugins plugin_openproject_auth_saml: - description: Adds the OmniAuth SAML provider to OpenProject - name: OmniAuth SAML / Single-Sign On + description: Føjer OmniAuth SAML-udbyderen til OpenProject + name: OmniAuth SAML / Single sign-on portfolio: count: - one: 1 portfolio - other: "%{count} portfolios" - zero: 0 portfolios + one: 1 portefølje + other: "%{count} porteføljer" + zero: 0 porteføljer filters: - name: Part of Portfolio + name: Del af portefølje portfolios: index: search: - label: Portfolio name filter - placeholder: Search portfolios + label: Filter for porteføljenavn + placeholder: Søg efter porteføljer sub_items_html: - one: "1 sub-item" - other: "%{count} sub-items" + one: "1 underelement" + other: "%{count} underelementer" lists: - active: Active portfolios - archived: Archived portfolios - favorited: Favorite portfolios - my: My portfolios + active: Aktive porteføljer + archived: Arkiverede porteføljer + favorited: Favoritporteføljer + my: Mine porteføljer present_access_key_value: 'Din %{key_name} er: %{value}' priorities: edit: priority_color_text: | - Click to assign or change the color of this priority. - It can be used for highlighting work packages in the table. + Klik for at tildele eller ændre prioritetens farve. + Den kan bruges til at fremhæve arbejdspakker i tabellen. program: count: one: 1 program - other: "%{count} programs" - zero: 0 programs + other: "%{count} programmer" + zero: 0 programmer filters: - name: Part of Program + name: Del af program project: archive: - archived: Archived - confirmation_heading: Are you sure you want to continue? - confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. - title: Archive project + archived: Arkiveret + confirmation_heading: Er du sikker på, at du vil fortsætte? + confirmation_message: Hvis projektet arkiveres, bliver det og alle dets underliggende projekter utilgængelige for alle brugere i installationen. Arkiverede projekter kan gendannes. + title: Arkivér projekt count: one: 1 projekt other: "%{count} projekter" - zero: 0 projects + zero: 0 projekter destroy: confirmation_message_for_subprojects_html: - one: 'You are about to permanently delete all data relating to project %{name} and this subproject: + one: 'Du er ved at slette alle data om projektet %{name} og dette underprojekt permanent: ' - other: 'You are about to permanently delete all data relating to project %{name} and these subprojects: + other: 'Du er ved at slette alle data om projektet %{name} og disse underprojekter permanent: ' - zero: 'You are about to permanently delete all data relating to project %{name}. + zero: 'Du er ved at slette alle data om projektet %{name} permanent. ' - heading: Permanently delete this project? - title: Delete project + heading: Vil du slette projektet permanent? + title: Slet projekt filters: - project_phase: 'Project phase: %{phase}' - project_phase_any: 'Project phase: Any' - project_phase_gate: 'Project phase gate: %{gate}' + project_phase: 'Projektfase: %{phase}' + project_phase_any: 'Projektfase: Alle' + project_phase_gate: 'Fase-gate: %{gate}' identifier: - title: Change the project's identifier - warning_one: Members of the project will have to relocate the project's repositories. - warning_two: Existing links to the project will no longer work. - not_available: Project N/A + title: Skift projektets id + warning_one: Projektets medlemmer skal flytte projektets repositories. + warning_two: Eksisterende links til projektet holder op med at virke. + not_available: Projekt ikke tilgængeligt template: - copying: 'Your project is being created from the selected template project. You will be notified by mail as soon as the project is available. + copying: 'Dit projekt oprettes ud fra det valgte skabelonprojekt. Du får besked via e-mail, så snart projektet er klar. ' - copying_title: Applying template - make_template: Set as template - remove_from_templates: Remove from templates - use_template: Use template + copying_title: Anvender skabelon + make_template: Angiv som skabelon + remove_from_templates: Fjern fra skabeloner + use_template: Brug skabelon project_module_activity: Aktivitet project_module_forums: Fora project_module_news: Nyheder @@ -5276,45 +5274,45 @@ da: project_module_work_package_tracking: Arbejdspakker projects: copy: - members: Project members - overviews: Project overview - queries: 'Work packages: saved views' - wiki_page_attachments: 'Wiki pages: attachments' - work_package_attachments: 'Work packages: attachments' - work_package_categories: 'Work packages: categories' - work_package_file_links: 'Work packages: file links' - work_package_shares: 'Work packages: shares' + members: Projektmedlemmer + overviews: Projektoversigt + queries: 'Arbejdspakker: gemte visninger' + wiki_page_attachments: 'Wikisider: vedhæftede filer' + work_package_attachments: 'Arbejdspakker: vedhæftede filer' + work_package_categories: 'Arbejdspakker: kategorier' + work_package_file_links: 'Arbejdspakker: fil-links' + work_package_shares: 'Arbejdspakker: delinger' create: - complete_wizard_link: Complete the %{artefact_name} - notification_email_subject: Your project '%{project_name}' has been created + complete_wizard_link: Fuldfør %{artefact_name} + notification_email_subject: Dit projekt '%{project_name}' er oprettet delete: - completed: Deletion of project '%{name}' completed + completed: Sletningen af projektet '%{name}' er fuldført completed_text: Anmodningen om at slette projektet '%{name}' er gennemført. - completed_text_children: 'Additionally, the following subprojects have been deleted:' - failed: Deletion of project '%{name}' has failed - failed_text: The request to delete project '%{name}' has failed. The project was left archived. + completed_text_children: 'Desuden er følgende underprojekter slettet:' + failed: Sletningen af projektet '%{name}' mislykkedes + failed_text: Anmodningen om at slette projektet '%{name}' mislykkedes. Projektet er stadig arkiveret. schedule_failed: 'Projektet kan ikke slettes: %{errors}' scheduled: Sletning er skemalagt og udføres i baggrunden. Du får besked om resultatet. index: no_results_content_text: Opret et nyt projekt no_results_title_text: Der er i øjeblikket ingen projekter - open_as_gantt: Open as Gantt view + open_as_gantt: Åbn som Gantt-visning search: - label: Project name filter - placeholder: Search by project name + label: Filter for projektnavn + placeholder: Søg efter projektnavn lists: - active: Active projects - archived: Archived projects + active: Aktive projekter + archived: Arkiverede projekter delete_modal: - heading: Delete this project list? - text: This action will not delete any project the list contains. Are you sure you want to delete this project list? - title: Delete project list - favorited: Favorite projects + heading: Vil du slette projektlisten? + text: Handlingen sletter ingen af de projekter, som listen indeholder. Er du sikker på, at du vil slette projektlisten? + title: Slet projektliste + favorited: Favoritprojekter my: Mine projekter - my_lists: My project lists + my_lists: Mine projektlister new: - placeholder: New project list - shared: Shared project lists + placeholder: Ny projektliste + shared: Delte projektlister settings: actions: label_disable_all: Deaktiver alle @@ -5341,12 +5339,12 @@ da: no_work_package_type: Anmodning om projektinitiering kunne ikke aktiveres, fordi den kræver mindst én aktiv arbejdspakketype, og projektet har ingen. Føj mindst én arbejdspakketype til projektet. export: description_attachment_export: Det dannede dokument gemmes som en vedhæftet PDF på arbejdspakken til dokumentet. - description_file_link_export: Arbejdspakken til dokumentet får et fillink til en PDF i et eksternt fillager. Det kræver et fungerende fillager med automatisk administrerede projektmapper til dette projekt. I øjeblikket understøttes kun Nextcloud-fillagre. + description_file_link_export: Arbejdspakken til dokumentet får et fil-link til en PDF i et eksternt fillager. Det kræver et fungerende fillager med automatisk administrerede projektmapper til dette projekt. I øjeblikket understøttes kun Nextcloud-fillagre. description_file_storage_selection: Vælg, hvilket af de konfigurerede eksterne fillagre der skal bruges. external_file_storage: Eksternt fillager label_artifact_export: Eksport af dokumentet label_attachment_export: Gem som vedhæftet fil på arbejdspakken - label_file_link_export: Overfør filen til eksternt fillager, og tilføj et fillink til arbejdspakken + label_file_link_export: Overfør filen til eksternt fillager, og tilføj et fil-link til arbejdspakken pdf_file_storage: Fillager til PDF unavailable: ikke tilgængelig label_request_submission: Indsendelse af anmodningen @@ -5450,15 +5448,15 @@ da: new_heading: Felter, der bliver tilgængelige nothing_affected: Ingen felter eller statusser påvirkes. status_count: - one: 1 work package - other: "%{count} work packages" + one: 1 arbejdspakke + other: "%{count} arbejdspakker" table_suffix: "(tabel)" value_count: - one: 1 work package has a value - other: "%{count} work packages have a value" + one: 1 arbejdspakke har en værdi + other: "%{count} arbejdspakker har en værdi" work_packages: - one: 1 work package will use the new configuration - other: "%{count} work packages will use the new configuration" + one: 1 arbejdspakke kommer til at bruge den nye konfiguration + other: "%{count} arbejdspakker kommer til at bruge den nye konfiguration" success: Projektet bruger nu %{type}. target_label: Variant title: "%{type}: Skift variant" @@ -5475,54 +5473,54 @@ da: work_package_priorities: new_label: Ny prioritet status: - button_edit: Edit status + button_edit: Rediger status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package - no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. - no_help_text: This attribute has no help text defined. - progress_label: "%{current} of %{total}" - sections: Sections - sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. - title: Project initiation request + create_artifact_storage_error: Dokumentet kunne ikke gemmes i fillageret + create_artifact_work_package_error: Arbejdspakken til dokumentet kunne ikke oprettes + no_custom_fields_html: Projektet har ingen projektattributter aktiveret til guiden. Aktivér mindst én i projektindstillingerne. + no_help_text: Der er ikke defineret nogen hjælpetekst til attributten. + progress_label: "%{current} af %{total}" + sections: Afsnit + sidebar_content_title: Indhold + success: Projektattributterne er gemt, og arbejdspakken til dokumentet er oprettet. + title: Anmodning om projektinitiering queries: apply_filter: Tildel filter som specificeret på forhånd configure_view: columns: - drag_area_label: Manage and reorder columns - input_label: Add columns - input_placeholder: Select a column - heading: Configure view + drag_area_label: Administrer kolonner, og skift deres rækkefølge + input_label: Tilføj kolonner + input_placeholder: Vælg en kolonne + heading: Konfigurer visning sort_by: automatic: - description: Order the %{plural} by one or more sorting criteria. You will lose the previous sorting. - heading: Automatic + description: Sortér %{plural} efter et eller flere sorteringskriterier. Den tidligere sortering går tabt. + heading: Automatisk query: attribute_and_direction: "%{attribute} (%{direction})" query_fields: - active_or_archived: Active or archived + active_or_archived: Aktiv eller arkiveret assigned_to_role: Tildeltes rolle assignee_or_group: Tildelte eller tilhørende gruppe member_of_group: Tildeltes gruppe - name_or_identifier: Name or identifier - only_subproject_id: Only subproject - shared_with_me: Shared with me - shared_with_user: Shared with users - subproject_id: Including subproject + name_or_identifier: Navn eller id + only_subproject_id: Kun underprojekt + shared_with_me: Delt med mig + shared_with_user: Delt med brugere + subproject_id: Inklusive underprojekt reactions: - action_title: React - add_reaction: Add reaction + action_title: Reagér + add_reaction: Tilføj reaktion and_others: - one: and 1 other - other: and %{count} others - and_user: and %{user} - react_with: React with %{reaction} - reaction_by: "%{reaction} by" + one: og 1 anden + other: og %{count} andre + and_user: og %{user} + react_with: Reagér med %{reaction} + reaction_by: "%{reaction} af" reportings: index: - no_results_content_text: Add a status reporting - no_results_title_text: There are currently no status reportings. + no_results_content_text: Tilføj en statusrapport + no_results_title_text: Der er i øjeblikket ingen statusrapporter. repositories: at_identifier: på %{identifier} atom_revision_feed: Atom-revisionsfeed @@ -5541,7 +5539,7 @@ da: subversion: Data i dette repositorie kan downloades til din computer med Subversion. Se venligst dokumentationen for Subversion, såfremt du behøver yderligere information om checkout-procedurer og tilgængelige klienter. enable_instructions_text: Viser nedenfor definerede checkout-vejledninger på alle repositorierelaterede sider. instructions: Checkout-instruktioner - not_available: Checkout instructions are not defined for this repository. Ask your administrator to enable them for this repository in the system settings. + not_available: Der er ikke defineret checkout-vejledning for dette repository. Bed din administrator om at aktivere den for repositoryet i systemindstillingerne. show_instructions: Vis checkout-instruktioner text_instructions: Denne tekst vises sammen med checkout-URL'en som vejledning til, hvordan du foretager checkout fra repositoriet. url: Checkout-URL @@ -5549,12 +5547,12 @@ da: create_successful: Repositoriet er blevet registreret. delete_sucessful: Repositoriet er blevet slettet. destroy_dialog: - description: The %{repository_type} repository at %{path} and all its contents will be permanently deleted. - description_not_managed: The linked %{repository_type} at %{url} will be removed from the project. This will not delete the contents of this repository, as it is not managed by OpenProject. - heading: Delete this %{repository_type}? - heading_not_managed: Remove this linked %{repository_type}? - title: Delete repository - title_not_managed: Remove repository + description: "%{repository_type}-repositoryet på %{path} og hele dets indhold slettes permanent." + description_not_managed: Det tilknyttede %{repository_type} på %{url} fjernes fra projektet. Indholdet slettes ikke, fordi repositoryet ikke administreres af OpenProject. + heading: Vil du slette dette %{repository_type}? + heading_not_managed: Vil du fjerne dette tilknyttede %{repository_type}? + title: Slet repository + title_not_managed: Fjern repository errors: build_failed: Kan ikke oprette repositoriet med den valgte konfiguration. %{reason} disabled_or_unknown_type: Den valgte type %{type} er inaktiv eller ikke længere tilgængelig for SCM-leverandør %{vendor}. @@ -5569,13 +5567,13 @@ da: path_permission_failed: 'En fejl opstod under forsøget på at oprette følgende sti: %{path}. Sørg venligst for, at OpenProject har skrivetilladelse til den pågældende mappe.' remote_call_failed: 'Kald af den administrerede fjernhåndtering mislykkedes med beskeden ''%{message}'' (kode: %{code})' remote_invalid_response: Modtog et ugyldigt svar fra den administrerede fjernhåndtering. - remote_save_failed: Could not save the repository with the parameters retrieved from the remote. + remote_save_failed: Repositoryet kunne ikke gemmes med de parametre, der blev hentet fra fjernserveren. unauthorized: Du har ikke tilladelse - eller legitimationsoplysningerne er ugyldige - til at tilgå repositoriet. unavailable: Repositoriet er utilgængeligt. git: instructions: managed_url: Dette er URL'en til det administrerede (lokale) Git-repositorie. - path: Specify the path to your local Git repository ( e.g., %{example_path} ). You can also use remote repositories which are cloned to a local copy by using a value starting with http(s):// or file://. + path: Angiv stien til dit lokale Git-repository (fx %{example_path}). Du kan også bruge fjernrepositories, der klones til en lokal kopi, ved at bruge en værdi, der begynder med http(s):// eller file://. path_encoding: 'Tilsidesæt Git-stikodning (standard: UTF-8)' local_introduction: Har du et eksisterende underversions-repositorie, kan du lænke dette med OpenProject for at kunne tilgå det indefra applikationen. local_title: Link eksisterende lokalt Git-repositorie @@ -5584,7 +5582,7 @@ da: managed_title: Git-repositorie integreret i OpenProject managed_url: Administreret URL path: Sti til Git-repositorie - path_encoding: Indkod sti for arkivering + path_encoding: Kodning af sti go_to_revision: Gå til revision managed_remote: Administrerede repositorier for denne leverandør håndteres eksternt. managed_remote_note: Oplysninger om dette repositories URL og sti er ikke tilgængelig forud for dets oprettelse. @@ -5602,18 +5600,18 @@ da: automatic_managed_repos_text: Ved at angive en leverandør her, vil nyoprettede projekter automatisk få oprettet et administreret repositorie til denne leverandør. storage: not_available: Disklagerpladsforbrug er ikke tilgængelig for dette repositorie. - oauth_application_details_html: 'The client secret value will not be accessible again after you close this window. Please copy these values into the Nextcloud OpenProject Integration settings:' - oauth_application_details_link_text: Go to settings page - setup_documentation_details: 'If you need help configuring a new file storage please check the documentation: ' - setup_documentation_details_link_text: File storages setup - show_warning_details: To use this file storage remember to activate the module and the specific storage in the project settings of each desired project. + oauth_application_details_html: 'Værdien for klienthemmeligheden kan ikke ses igen, når du lukker vinduet. Kopiér disse værdier til indstillingerne for Nextclouds OpenProject-integration:' + oauth_application_details_link_text: Gå til siden med indstillinger + setup_documentation_details: 'Se dokumentationen, hvis du har brug for hjælp til at konfigurere et nyt fillager: ' + setup_documentation_details_link_text: Opsætning af fillagre + show_warning_details: For at bruge fillageret skal du huske at aktivere modulet og det pågældende lager i projektindstillingerne i hvert projekt, hvor det skal bruges. update_timeout: |- Behold de seneste, nødvendige disklagerpladsoplysninger for et repositorie i N minutter. Da opgørelsen af påkrævet disklagerplads for et repositorie kan være bekosteligt, forøg denne værdi for at reducere følgevirkninger på ydeevnen. subversion: existing_introduction: Hvis du har et eksisterende underversions-repositorie, kan du sammenkæde dette med OpenProject for at få adgang til det indefra applikationen. existing_title: Eksisterende underversions-repositorie - existing_url: Existing URL + existing_url: Eksisterende URL instructions: managed_url: Dette er URL'en på det administrerede (lokale) underversions-repositorie. url: |- @@ -5624,33 +5622,33 @@ da: managed_url: Administreret URL password: Repositorie-adgangskode username: Repositorie-brugernavn - truncated: Sorry, we had to truncate this directory to %{limit} files. %{truncated} entries were omitted from the list. + truncated: Vi var desværre nødt til at afkorte mappen til %{limit} filer. %{truncated} poster er udeladt fra listen. update_settings_successful: Indstillingerne er blevet gemt succesfuldt. url: URL til repositorie warnings: cannot_annotate: Denne fil kan ikke kommenteres. roles: edit: - default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' + default_for_new_projects_warning: 'Rollen er konfigureret som den standardrolle, som brugere uden administratorrettigheder får, når de opretter et projekt. Fjern ikke følgende tilladelser, ellers kan dem, der opretter projekter, ikke gøre opsætningen af deres nye projekter færdig:' index: - filter_label: Search roles + filter_label: Søg efter roller types: - all: All roles - global: Global roles - project: Project roles + all: Alle roller + global: Globale roller + project: Projektroller permissions: - section_check_all_label: Assign all %{module} permissions - section_uncheck_all_label: Unassign all %{module} permissions + section_check_all_label: Tildel alle tilladelser i %{module} + section_uncheck_all_label: Fjern alle tilladelser i %{module} report: - matrix_caption: Permissions matrix for %{module} module - matrix_check_all_label: Assign all %{module} permissions to all roles - matrix_check_uncheck_all_in_col_label_html: Toggle all %{module} permissions for %{role} role - matrix_check_uncheck_all_in_row_label_html: Toggle %{permission} permission for all roles - matrix_checkbox_label: Assign %{permission} permission to %{role} role - matrix_uncheck_all_label: Unassign all %{module} permissions from all roles + matrix_caption: Matrix over tilladelser for modulet %{module} + matrix_check_all_label: Tildel alle tilladelser i %{module} til alle roller + matrix_check_uncheck_all_in_col_label_html: Slå alle tilladelser i %{module} til eller fra for rollen %{role} + matrix_check_uncheck_all_in_row_label_html: Slå tilladelsen %{permission} til eller fra for alle roller + matrix_checkbox_label: Tildel tilladelsen %{permission} til rollen %{role} + matrix_uncheck_all_label: Fjern alle tilladelser i %{module} fra alle roller scheduling: - automatic: set to Automatic - manual: set to Manual + automatic: sat til Automatisk + manual: sat til Manuel search_input_placeholder: Søg ... setting_accessibility_mode_for_anonymous: Aktivér tilgængelighedstilstand for anonyme brugere setting_activity_days_default: Dage, der vises under projektaktivitet @@ -5663,7 +5661,7 @@ da: ' setting_ai_text_transform_actions_enabled: Aktivér handlinger til tekstomskrivning - setting_allowed_link_protocols: Tilladte linkprotokoller + setting_allowed_link_protocols: Tilladte link-protokoller setting_allowed_link_protocols_text_html: Tillad, at disse protokoller vises som links i arbejdspakkers beskrivelser, lange tekstfelter og kommentarer. Fx %{tel_code} eller %{element_code}. Angiv én protokol pr. linje.
Protokollerne %{http_code}, %{https_code} og %{mailto_code} er altid tilladt. setting_antivirus_scan_action: Handling ved inficeret fil setting_antivirus_scan_mode: Scanningstilstand @@ -5765,8 +5763,8 @@ da: setting_hours_per_day: Timer pr. dag setting_hours_per_day_explanation: Bestemmer, hvad der regnes for en "dag", når varighed vises i dage og timer (hvis en dag fx er 8 timer, er 32 timer 4 dage). setting_ical_enabled: Aktivér iCalendar-abonnementer - setting_invitation_expiration_days: E-mailen med aktiveringslink udløber efter - setting_invitation_expiration_days_caption: Antal dage, hvorefter e-mailen med aktiveringslink udløber. + setting_invitation_expiration_days: E-mailen med aktiverings-link udløber efter + setting_invitation_expiration_days_caption: Antal dage, hvorefter e-mailen med aktiverings-link udløber. setting_journal_aggregation_time_minutes: Sammenlægningsperiode setting_log_requesting_user: Log bruger-login, navn og mail-adresse ved hver forespørgsel setting_login_required: Godkendelse påkrævet @@ -5912,7 +5910,7 @@ da: description_html: 'Vælg, hvordan integrationen med antivirusscanneren skal fungere.
  • %{disabled_option}: Overførte filer scannes ikke for virus.
  • %{socket_option}: Du har installeret ClamAV på samme server som OpenProject, og scanningsdaemonen clamd kører i baggrunden
  • %{host_option}: Du sender filer til en ekstern vært, der scanner for virus.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virusscanning er deaktiveret. %{file_count} er stadig i karantæne. Du kan gennemse filerne i karantæne her: %{link} ' remaining_rescanned_files: 'Virusscanning er aktiveret. Der er %{file_count}, som er overført tidligere og endnu skal scannes. Scanningen er planlagt til at køre i baggrunden. Filerne er tilgængelige, mens scanningen kører. @@ -6124,76 +6122,76 @@ da: section_work_week: Arbejdsuge sharing: count: - one: 1 user - other: "%{count} users" - zero: 0 users - denied: You don't have permissions to share %{entities}. + one: 1 bruger + other: "%{count} brugere" + zero: 0 brugere + denied: Du har ikke tilladelse til at dele %{entities}. filter: group: Gruppe - not_project_group: Not project group - not_project_member: Not project member - project_group: Project group - project_member: Project member + not_project_group: Ikke projektgruppe + not_project_member: Ikke projektmedlem + project_group: Projektgruppe + project_member: Projektmedlem role: Rolle type: Type user: Bruger - label_search: Search for users to invite - label_search_placeholder: Search by user or email address - label_toggle_all: Toggle all shares + label_search: Søg efter brugere, der skal inviteres + label_search_placeholder: Søg efter bruger eller e-mailadresse + label_toggle_all: Markér eller fjern markering af alle delinger project_queries: - access_warning: Users will only see the projects they have access to. Sharing project lists does not impact individual project permissions. + access_warning: Brugerne ser kun de projekter, som de har adgang til. Deling af projektlister påvirker ikke tilladelserne i de enkelte projekter. blank_state: private: - description: This project list has not been shared with anyone yet. Only you can access this list. - header: 'Not shared: Private' + description: Projektlisten er endnu ikke delt med nogen. Kun du har adgang til den. + header: 'Ikke delt: Privat' public: - description: Everyone can view this project list. You can also add individual users with extra permissions. - header: Shared with everyone + description: Alle kan se projektlisten. Du kan også tilføje enkelte brugere med ekstra tilladelser. + header: Delt med alle permissions: edit: Rediger - edit_description: Can view, share and edit this project list. + edit_description: Kan se, dele og redigere projektlisten. view: Se - view_description: Can view this project list. + view_description: Kan se projektlisten. public_flag: - caption: Everyone can view this project list. Those with global edit permissions can modify it. - label: Share with everyone at %{instance_name} - publishing_denied: You do not have permission to make project lists public. + caption: Alle kan se projektlisten. Brugere med globale redigeringstilladelser kan ændre den. + label: Del med alle på %{instance_name} + publishing_denied: Du har ikke tilladelse til at gøre projektlister offentlige. upsell: - message: Sharing project lists with individual users is an enterprise add-on. + message: Deling af projektlister med enkelte brugere er en Enterprise-tilføjelse. user_details: - can_manage_public_lists: Can edit due to global permissions - can_view_because_public: Can already view because list is shared with everyone - owner: List owner + can_manage_public_lists: Kan redigere på grund af globale tilladelser + can_view_because_public: Kan allerede se listen, fordi den er delt med alle + owner: Listens ejer remove: Fjern share: Del - text_empty_search_description: There are no users with the current filter criteria. - text_empty_search_header: We couldn't find any matching results. - text_empty_state_description: The %{entity} has not been shared with anyone yet. + text_empty_search_description: Der er ingen brugere, der opfylder de aktuelle filterkriterier. + text_empty_search_header: Vi fandt ingen resultater, der matcher. + text_empty_state_description: Denne %{entity} er endnu ikke delt med nogen. text_empty_state_header: Ikke delt - text_user_limit_reached: Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this %{entity}. - text_user_limit_reached_admins: Adding additional users will exceed the current limit. Please upgrade your plan to be able to add more users. + text_user_limit_reached: Hvis der tilføjes flere brugere, overskrides den nuværende grænse. Kontakt en administrator, og få grænsen for antal brugere hævet, så eksterne brugere kan få adgang til denne %{entity}. + text_user_limit_reached_admins: Hvis der tilføjes flere brugere, overskrides den nuværende grænse. Opgrader din plan for at kunne tilføje flere brugere. user_details: - additional_privileges_group: Might have additional privileges (as group member) - additional_privileges_project: Might have additional privileges (as project member) - additional_privileges_project_or_group: Might have additional privileges (as project or group member) - invite_resent: Invite has been resent - invited: 'Invite sent. ' - locked: Locked user - not_project_group: Group (shared with all members) - not_project_member: Not a project member - project_group: Group members might have additional privileges (as project members) - resend_invite: Resend. - warning_locked_user: The user %{user} is locked and cannot be shared with - warning_no_selected_user: Please select users to share this %{entity} with - warning_user_limit_reached: 'Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this %{entity}. + additional_privileges_group: Kan have ekstra rettigheder (som gruppemedlem) + additional_privileges_project: Kan have ekstra rettigheder (som projektmedlem) + additional_privileges_project_or_group: Kan have ekstra rettigheder (som projekt- eller gruppemedlem) + invite_resent: Invitationen er sendt igen + invited: 'Invitation sendt. ' + locked: Låst bruger + not_project_group: Gruppe (delt med alle medlemmer) + not_project_member: Ikke projektmedlem + project_group: Gruppens medlemmer kan have ekstra rettigheder (som projektmedlemmer) + resend_invite: Send igen. + warning_locked_user: Brugeren %{user} er låst, og der kan ikke deles med vedkommende + warning_no_selected_user: Vælg brugere, som denne %{entity} skal deles med + warning_user_limit_reached: 'Hvis der tilføjes flere brugere, overskrides den nuværende grænse. Kontakt en administrator, og få grænsen for antal brugere hævet, så eksterne brugere kan få adgang til denne %{entity}. ' - warning_user_limit_reached_admin_html: 'Adding additional users will exceed the current limit. Please [upgrade your plan](upgrade_url) to be able to ensure external users are able to access this %{entity}. + warning_user_limit_reached_admin_html: 'Hvis der tilføjes flere brugere, overskrides den nuværende grænse. [Opgrader din plan](upgrade_url), så eksterne brugere kan få adgang til denne %{entity}. ' status_active: aktiv - status_archived: archived - status_blocked: blocked + status_archived: arkiveret + status_blocked: blokeret status_deleted: slettet status_invited: inviteret status_locked: Spærret @@ -6201,29 +6199,29 @@ da: statuses: edit: status_color_text: | - Click to assign or change the color of this status. - It is shown in the status button and can be used for highlighting work packages in the table. - status_default_text: New work packages are by default set to this type. They cannot be read-only. + Klik for at tildele eller ændre statussens farve. + Den vises på statusknappen og kan bruges til at fremhæve arbejdspakker i tabellen. + status_default_text: Nye arbejdspakker får som standard denne status. Den kan ikke være skrivebeskyttet. status_excluded_from_totals_text: |- - Check this option to exclude work packages with this status from totals of Work, - Remaining work, and % Complete in a hierarchy. + Markér feltet for at udelade arbejdspakker med denne status fra totalerne for Arbejde, + Resterende arbejde og % færdigt i et hierarki. status_percent_complete_text_html: |- - In [status-based progress calculation mode](setting_url), the % Complete of a work - package is automatically set to this value when this status is selected. - Ignored in work-based mode. + I den [statusbaserede beregning af fremdrift](setting_url) sættes en arbejdspakkes % færdigt + automatisk til denne værdi, når statussen vælges. + Ignoreres i den arbejdsbaserede tilstand. status_readonly_html: | - Check this option to mark work packages with this status as read-only. - No attributes can be changed with the exception of the status. + Markér feltet for at gøre arbejdspakker med denne status skrivebeskyttede. + Ingen attributter kan ændres undtagen status.
- Note: Inherited values (e.g., from children or relations) will still apply. + Bemærk: Nedarvede værdier (fx fra underordnede eller relationer) gælder fortsat. index: headers: - excluded_from_totals: Excluded from totals + excluded_from_totals: Udeladt fra totaler is_closed: Lukket is_default: Forhåndsvalgt is_readonly: Skrivebeskyttet - no_results_content_text: Add a new status - no_results_title_text: There are currently no work package statuses. + no_results_content_text: Tilføj en ny status + no_results_title_text: Der er i øjeblikket ingen statusser for arbejdspakker. support: array: sentence_connector: og @@ -6272,10 +6270,10 @@ da: ' text_custom_field_possible_values_info: Én linje for hver værdi - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. + text_custom_logo_instructions: 'Logoet skaleres automatisk, så det passer i sidehovedet. Det bedste resultat får du ved at overføre et hvidt logo på et gennemsigtigt billede på 130×47 px. Du kan lægge så meget luft ind i billedet, som du vil. ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. + text_custom_logo_mobile_instructions: 'Logoet skaleres automatisk, så det passer i sidehovedet. Det bedste resultat får du ved at overføre et hvidt logo på et gennemsigtigt billede på 130×33 px. Du kan lægge så meget luft ind i billedet, som du vil. ' text_custom_touch_icon_instructions: 'Det er det ikon, der vises på din mobil eller tablet, når du lægger et bogmærke på hjemmeskærmen. Det skal være en kvadratisk PNG-billedfil på 180 × 180 pixel. Sørg for, at billedets baggrund ikke er gennemsigtig, ellers ser det dårligt ud på iOS. @@ -6288,7 +6286,7 @@ da: text_destroy_what_to_do: Hvad vil du lave? text_destroy_with_associated: 'Der er flere objekter knyttet til de arbejdspakker, der skal slettes. Objekterne er af følgende typer:' text_diff_truncated: "... Denne afvigelse blev undertrykt da den overstiger den længde, der kan vises." - text_email_delivery_letter_opener: Letter opener is used to render emails as files in your Rails tmp folder. Emails will automatically open in your browser if supported. + text_email_delivery_letter_opener: Letter opener bruges til at gemme e-mails som filer i Rails' tmp-mappe. E-mailene åbnes automatisk i din browser, hvis det understøttes. text_email_delivery_not_configured: |- Afsendelse af e-mails er ikke konfigureret, og notifikationer er slået fra. Konfigurer din SMTP-server for at slå dem til. @@ -6301,7 +6299,7 @@ da: text_form_configuration_required_attribute: Attributten er markeret som påkrævet og vises derfor altid text_formatting: markdown: Markdown - plain: Plain text + plain: Almindelig tekst text_git_repo_example: et lokalt projektarkiv (f.eks. /gitrepo, c:\gitrepo) text_hint_date_format: Angiv en dato i formatet ÅÅÅÅ-MM-DD. Andre formater kan blive ændret til en uønsket dato. text_hint_disable_with_0: Deaktivér med 0 @@ -6342,7 +6340,7 @@ da: text_permanent_remove_confirmation_checkbox_label: Jeg forstår, at fjernelsen ikke kan fortrydes. text_plugin_assets_writable: Brug af plugin forudsætter at dette arkiv er skrivbart text_powered_by: Drevet af %{link} - text_project_custom_field_html: 'The Enterprise edition will add these additional add-ons for projects'' custom fields:
  • Add custom fields for projects to your Project list to create a project portfolio view
+ text_project_custom_field_html: 'Enterprise-udgaven tilføjer disse ekstra funktioner til projekters brugerdefinerede felter:
  • Tilføj brugerdefinerede felter for projekter til din projektliste for at oprette en porteføljevisning
' text_project_identifier_description: Projekt-id'et sættes foran alle arbejdspakkers id. Er id'et fx "PROJ", bliver arbejdspakkens id "PROJ-12" eller "PROJ-246". @@ -6380,8 +6378,8 @@ da: text_work_package_category_destroy_question: Nogle arbejdspakker (%{count}) er tilknyttet til denne kategori. Hvad vil du gøre? text_work_package_category_reassign_to: Gentilknyt arbejdspakker til denne kategori text_work_package_updated: Arbejdspakke %{id} er blevet opdateret af %{author}. - text_work_package_watcher_added: Du er blevet tilføjet som tilsynsførende på arbejdspakke %{id} af %{watcher_changer}. - text_work_package_watcher_removed: Du er blevet fjernet som tilsynsførende på arbejdspakke %{id} af %{watcher_changer}. + text_work_package_watcher_added: "%{watcher_changer} har tilføjet dig som følger af arbejdspakke %{id}." + text_work_package_watcher_removed: "%{watcher_changer} har fjernet dig som følger af arbejdspakke %{id}." text_work_packages_destroy_confirmation: Er du sikker på, du vil slette de/den valgte arbejdspakke(r)? text_work_packages_ref_in_commit_messages: Arbejdspakker håndteres i tilknyttede meddelelser text_workflow_edit: Vælg en rolle og en type til redigering af arbejdsgang @@ -6389,9 +6387,9 @@ da: text_zoom_in: Zoom ind text_zoom_out: Zoom ud themes: - dark: Dark - light: Light - sync_with_os: Automatic (match OS color mode) + dark: Mørk + light: Lys + sync_with_os: Automatisk (følg styresystemets farvetilstand) time: am: formiddag formats: @@ -6404,50 +6402,50 @@ da: end: til show: Vis tidsrammer start: fra - title_enterprise_upgrade: Upgrade to unlock more users. - title_remove_and_delete_user: Remove the invited user from the project and delete him/her. + title_enterprise_upgrade: Opgrader for at få plads til flere brugere. + title_remove_and_delete_user: Fjern den inviterede bruger fra projektet, og slet brugeren. toggle_switch: - label_off: 'Off' - label_on: 'On' + label_off: Fra + label_on: Til token: hashed_token: display_value_placeholder: "***" tooltip: - setting_email_login: 'If enabled a user will be unable to chose a login during registration. Instead their given email address will serve as the login. An administrator may still change the login separately. + setting_email_login: 'Når indstillingen er slået til, kan brugeren ikke selv vælge et brugernavn ved registreringen. I stedet bruges brugerens e-mailadresse som brugernavn. En administrator kan stadig ændre brugernavnet separat. ' - tooltip_resend_invitation: 'Sends another invitation email with a fresh token in case the old one expired or the user did not get the original email. Can also be used for active users to choose a new authentication method. When used with active users their status will be changed to ''invited''. + tooltip_resend_invitation: 'Sender endnu en invitation via e-mail med et nyt token, hvis det gamle er udløbet, eller brugeren ikke fik den oprindelige e-mail. Kan også bruges til aktive brugere, så de kan vælge en ny godkendelsesmetode. Bruges det til aktive brugere, ændres deres status til ''inviteret''. ' - tooltip_user_default_timezone: 'The default time zone for new users. Can be changed in a user''s settings. + tooltip_user_default_timezone: 'Standardtidszonen for nye brugere. Den kan ændres i brugerens indstillinger. ' top_menu: - additional_resources: Additional resources + additional_resources: Flere ressourcer getting_started: At komme gang - help_and_support: Help and support + help_and_support: Hjælp og support total_progress: Samlet fremgang tree_view: - label_empty_sub_tree: No items + label_empty_sub_tree: Ingen elementer types: creation_wizard: - add_variant: Add a variant to %{name} - create_type: Create type - create_variant: Create variant + add_variant: Tilføj en variant til %{name} + create_type: Opret type + create_variant: Opret variant fields: - variant_name_caption: Names this configuration of %{type}. Work packages keep using %{type} itself. - finish: Finish - placeholder_description: This step will be available soon. - progress_label: Step %{number} of %{total} + variant_name_caption: Navngiver denne konfiguration af %{type}. Arbejdspakker bruger fortsat selve %{type}. + finish: Afslut + placeholder_description: Dette trin bliver snart tilgængeligt. + progress_label: Trin %{number} af %{total} steps: - defaults: Defaults - details: Details - form_configuration: Form - pdf: PDF generation - project_attributes: Project attributes - projects: Projects - workflows: Workflows - success: Created successfully. + defaults: Standardværdier + details: Detaljer + form_configuration: Formular + pdf: Generering af PDF + project_attributes: Projektattributter + projects: Projekter + workflows: Arbejdsgange + success: Oprettet. edit: breadcrumb_variant: 'Variant: %{name}' defaults: @@ -6455,8 +6453,8 @@ da: caption: Definer et mønster med refererede attributter og tekst, så arbejdspakkernes emner dannes automatisk. Brugerne kan ikke redigere emnerne manuelt. label: Automatisk dannede emner description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: Angiv den tekst, der indsættes i beskrivelsesfeltet i alle nye arbejdspakker af denne type. + label: Standardtekst til beskrivelse manually_editable_subjects: caption: Brugerne kan frit skrive og redigere arbejdspakkernes emner manuelt. label: Manuelt redigerbare emner @@ -6484,7 +6482,7 @@ da: label: Gem som vedhæftet fil på arbejdspakken file_link: caption: Den dannede PDF overføres til projektets automatisk administrerede Nextcloud-lager og linkes fra arbejdspakken. Arbejdspakker i projekter uden et sådant lager springes over. - label: Overfør filen til eksternt fillager, og tilføj et fillink til arbejdspakken + label: Overfør filen til eksternt fillager, og tilføj et fil-link til arbejdspakken intro: Dan automatisk en PDF af arbejdspakker af denne type, hver gang deres status ændres. invalid_mode: Ugyldig tilstand for automatisk PDF-eksport. label: Automatisk PDF-eksport @@ -6493,7 +6491,7 @@ da: label: Fra section_title: Automatisk PDF-eksport unavailable: ikke tilgængelig, fordi der ikke er konfigureret noget automatisk administreret Nextcloud-lager - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. + intro: Vælg, hvilke af de tilgængelige skabeloner der skal aktiveres for denne type. Skabelonen bestemmer layoutet og de attributter, der vises i den eksporterede PDF af en arbejdspakke af typen. Den første skabelon på listen er valgt som standard. pdf_export_templates: actions: label_disable_all: Deaktiver alle @@ -6547,10 +6545,10 @@ da: untitled_group: Unavngiven gruppe overview: configuration_mode: Konfigurationstilstand - dependents: Dependent types and variants + dependents: Afhængige typer og varianter mode: always_manual: Altid manuel - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Nedarver fra %{source_name} manual: Manuelt konfigureret settings: Indstillinger tab: Oversigt @@ -6565,7 +6563,7 @@ da: manual: description: Når du [opretter projektattributter](administration_url), vises de her og kan føjes til en type. title: Ingen tilgængelige projektattributter - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. + description: Vælg de projektattributter, der skal aktiveres for denne arbejdspakketype. Aktiverede projektattributter vises på en separat fane i arbejdspakker af typen. Brugere med de nødvendige tilladelser kan se og redigere attributterne dér. disabled: Deaktiveret exclusions: attribute_label: Nedarv %{attribute} @@ -6603,41 +6601,41 @@ da: success: Konfigurationen er kopieret. dependents: blank: - description: No other type or variant inherits from this configuration - title: No dependent types + description: Ingen anden type eller variant nedarver fra denne konfiguration + title: Ingen afhængige typer description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. + one: Følgende konfiguration nedarves af 1 anden type eller variant. Ændringer, som du laver her, påvirker også den afhængige. + other: Følgende konfiguration nedarves af %{count} andre typer eller varianter. Ændringer, som du laver her, påvirker også de afhængige. dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} + description: Disse typer og varianter nedarver konfigurationen af dette afsnit. En ændring, som du laver her, gælder dem alle. + direct_heading: Direkte afhængige + indirect_heading: Afhængige via andre typer + title: Afhængige typer + variant_of_html: Variant af %{type_name} + variant_of_via_html: Variant af %{type_name}, nedarver via %{source_name} + via_html: Nedarver via %{source_name} title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types + one: 1 afhængig type + other: "%{count} afhængige typer" + view: Vis afhængige typer exclusions: not_inherited: Konfigurationen er ikke nedarvet, så der er intet at udelade. Rediger i stedet konfigurationen direkte. unknown_aspect: Ukendt konfigurationsafsnit "%{aspect}". inherited: - change_source: Change source type + change_source: Skift kildetype configure_manually: Konfigurer manuelt confirm_dialog: change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type + description_html: Når du skifter kildetypen til %{source_name}, overskriver du de aktuelle indstillinger og kan påvirke eksisterende oplysninger i arbejdspakker af denne type. + heading: Vil du skifte kildetype? + title: Skift kildetype check_box: Jeg forstår, at dette overskriver de aktuelle indstillinger from_manual: description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. heading: Vil du skifte konfigurationstilstand? title: Skift konfigurationstilstand - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. + description: Konfigurationen nedarves fra kildetypen [%{source_name}](source_url)%{source_suffix}. + description_unlinked: Konfigurationen nedarves fra kildetypen %{source_name}%{source_suffix}. dialog: description: Nedarv konfigurationen fra en kildetype. Ny konfiguration, der føjes til kilden, gælder også her. source_label: Kildetype @@ -6653,12 +6651,12 @@ da: description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. heading: Vil du skifte konfigurationstilstand? title: Skift konfigurationstilstand - copy_from_type: Copy from another type + copy_from_type: Kopiér fra en anden type description: Ingen indstillinger nedarves. Du kan stadig kopiere indstillingerne fra en anden type én gang. dialog: submit: Skift title: Konfigurer manuelt - inherit_from_type: Inherit from another type + inherit_from_type: Nedarv fra en anden type invalid_mode: Den valgte tilstand er ikke tilgængelig for denne konfiguration. Vælg en anden tilstand. modes: copy: @@ -6687,38 +6685,38 @@ da: filter_no_results: Ingen varianter matcher filteret global_section: description: Disse varianter er tilgængelige i alle projekter. - title: Variants + title: Varianter project_specific_section: description: Disse varianter er kun tilgængelige i de projekter, hvor de blev oprettet. title: Projektspecifikke varianter workflow: - tab: Workflows + tab: Arbejdsgange index: - add_variant: Add a variant to %{name} - add_variant_action: Add variant - description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. + add_variant: Tilføj en variant til %{name} + add_variant_action: Tilføj variant + description: 'Hvert konfigurationsområde i typer og varianter kan konfigureres uafhængigt, nedarves fra en anden type med enkelte dele udeladt eller knyttes helt til en kilde. ' - duplicate_name: Copy of %{name} - duplicate_notice: "%{name} was duplicated." - enabled_in_new_projects: Active in new projects - make_default: Activate in new projects - make_default_notice: "%{name} is now activated in new projects." - no_results_content_text: Create a new type - no_results_title_text: There are currently no types. + duplicate_name: Kopi af %{name} + duplicate_notice: "%{name} er duplikeret." + enabled_in_new_projects: Aktiv i nye projekter + make_default: Aktivér i nye projekter + make_default_notice: "%{name} er nu aktiveret i nye projekter." + no_results_content_text: Opret en ny type + no_results_title_text: Der er i øjeblikket ingen typer. project_variants_count: - one: 1 project-specific variant - other: "%{count} project-specific variants" - remove_default: Do not activate in new projects - remove_default_notice: "%{name} is no longer activated in new projects." + one: 1 projektspecifik variant + other: "%{count} projektspecifikke varianter" + remove_default: Aktivér ikke i nye projekter + remove_default_notice: "%{name} aktiveres ikke længere i nye projekter." type_label: Type variant_label: Variant - milestone_indicator: Milestone + milestone_indicator: Milepæl unsupported_browser: - close_warning: Ignore this warning. - message: You may run into errors and degraded experience on this page. - title: Your browser is outdated and unsupported. - update_message: Please update your browser. + close_warning: Ignorer advarslen. + message: Du kan opleve fejl og en ringere oplevelse på denne side. + title: Din browser er forældet og understøttes ikke. + update_message: Opdater din browser. user: activate: Aktivér activate_and_reset_failed_logins: Aktiver og nulstil mislykkede forsøg på at logge ind @@ -6734,14 +6732,14 @@ da: blocked_num_failed_logins: one: midlertidigt låst (ét mislykket log ind-forsøg) other: midlertidigt låst (%{count} mislykkede log ind-forsøg) - confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? + confirm_status_change: Du er ved at ændre status for '%{name}'. Er du sikker på, at du vil fortsætte? deleted: Slettet bruger - department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. - error_admin_change_on_non_admin: Only administrators can change the status of administrator users. - error_cannot_delete_user: User cannot be deleted + department_ldap_managed_caption: Afdelingen styres af LDAP-synkroniseringen og kan ikke ændres her. + error_admin_change_on_non_admin: Kun administratorer kan ændre status for administratorer. + error_cannot_delete_user: Brugeren kan ikke slettes error_status_change_failed: 'Det lykkedes ikke at ændre brugerens status på grund af denne fejl: %{errors}' - error_status_change_self: You cannot change your own user status. - identity_url_text: The internal unique identifier provided by the authentication provider. + error_status_change_self: Du kan ikke ændre din egen brugerstatus. + identity_url_text: Det interne, entydige id, som godkendelsesudbyderen leverer. invite: Invitér bruger via e-mail invited: inviteret lock: Spær permanent @@ -6750,34 +6748,34 @@ da: password_change_unsupported: Ændring af adgangskode er ikke understøttet. registered: registreret reset_failed_logins: Nulstil mislykkede forsøg på at logge ind - status_change: Status change + status_change: Statusændring status_user_and_brute_force: "%{user} og %{brute_force}" - text_change_disabled_for_provider_login: The name and email is set by your login provider and can thus not be changed. - text_change_mail_disabled_by_administrator: Changing your email address has been disabled by the administrator. - unlock: Ophæv spærring + text_change_disabled_for_provider_login: Navn og e-mail angives af din loginudbyder og kan derfor ikke ændres. + text_change_mail_disabled_by_administrator: Administratoren har deaktiveret ændring af din e-mailadresse. + unlock: Lås op unlock_and_reset_failed_logins: Lås mislykkede forsøg på at logge ind op, og nulstil dem user_preferences: - disable_keyboard_shortcuts_caption: 'You can choose to disable default [keyboard shortcuts](docs_url) if you use a screen reader or want to avoid accidentally triggering an action with a shortcut. + disable_keyboard_shortcuts_caption: 'Du kan vælge at deaktivere standard[tastaturgenvejene](docs_url), hvis du bruger en skærmlæser eller vil undgå at udløse en handling ved et uheld med en genvej. ' users: autologins: - prompt: Stay logged in for %{num_days} - force_password_change_hint: The user must set a new password on their next login. Automatically enabled when sending credentials via email. + prompt: Forbliv logget ind i %{num_days} + force_password_change_hint: Brugeren skal angive en ny adgangskode ved næste login. Slås automatisk til, når loginoplysninger sendes via e-mail. groups: - member_in_these_groups: 'This user is currently a member of the following groups:' - more: "%{count} more" - no_results_title_text: This user is currently not a member in any group. - summary_html: Member of %{names}. - summary_with_more_html: Member of %{names} and %{count_link}. + member_in_these_groups: 'Brugeren er i øjeblikket medlem af følgende grupper:' + more: "%{count} mere" + no_results_title_text: Brugeren er i øjeblikket ikke medlem af nogen gruppe. + summary_html: Medlem af %{names}. + summary_with_more_html: Medlem af %{names} og %{count_link}. invite_user_modal: invite: Invitér message: - description: We will send an email to the user, to which you can add a personal message here. An explanation for the invitation could be useful, or perhaps a bit of information regarding the project to help them get started. - label: Invitations besked + description: Vi sender en e-mail til brugeren, og du kan tilføje en personlig besked her. Det kan være nyttigt at forklare invitationen eller give lidt information om projektet, så brugeren kommer godt i gang. + label: Invitationsbesked principal: create_new_placeholder: 'Opret ny pladsholder:' - invite_to_project: Invite to %{project_name} + invite_to_project: Inviter til %{project_name} invite_user: 'Invitér:' no_results_group: Ingen grupper blev fundet no_results_placeholder: Ingen pladsholdere blev fundet @@ -6793,11 +6791,11 @@ da: no_results: Ingen projekter blev fundet required: Vælg et projekt role: - description: 'This is the role that the user will receive when they join your project. The role defines which actions they are allowed to take and which information they are allowed to see. [Learn more about roles and permissions.](docs_url) + description: 'Det er den rolle, som brugeren får, når vedkommende bliver en del af projektet. Rollen bestemmer, hvilke handlinger brugeren må udføre, og hvilke oplysninger brugeren må se. [Læs mere om roller og tilladelser.](docs_url) ' label: Rolle i %{project} - no_roles_found: No roles were found + no_roles_found: Der blev ikke fundet nogen roller required: Vælg venligst en rolle success_message: group: Gruppen er nu en del af %{project}. I mellemtiden kan du allerede planlægge med denne gruppe og tildele arbejdspakker for eksempel. @@ -6813,131 +6811,131 @@ da: already_member_message: Allerede medlem af %{project} group: description: Tilladelser baseret på den tildelte rolle i det valgte projekt - title: Invite group to %{project_name} + title: Inviter gruppe til %{project_name} placeholder_user: description: Har ikke adgang til projektet, og ingen e-mails er sendt ud. - title: Add placeholder user to %{project_name} - title_no_ee: Placeholder user (Enterprise edition only add-on) + title: Tilføj pladsholder-bruger til %{project_name} + title_no_ee: Pladsholder-bruger (Enterprise-tilføjelse) required: Vælg venligst den type, der skal inviteres user: description: Tilladelser baseret på den tildelte rolle i det valgte projekt - title: Invite user to %{project_name} + title: Inviter bruger til %{project_name} memberships: - no_results_title_text: This user is currently not a member of a project. - open_profile: Open profile - send_information_hint: Emails the password in plain text. When checked, the user will be required to change their password on first login. + no_results_title_text: Brugeren er i øjeblikket ikke medlem af noget projekt. + open_profile: Åbn profil + send_information_hint: Sender adgangskoden i klartekst via e-mail. Når feltet er markeret, skal brugeren skifte adgangskode ved første login. sessions: browser: Browser - browser_session: "(Browser session)" - current: Current (this device) - deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. - device: Device / OS + browser_session: "(Browsersession)" + current: Aktuel (denne enhed) + deletion_warning: Er du sikker på, at du vil tilbagekalde sessionen? Du bliver logget ud på denne enhed. + device: Enhed/styresystem expires: Udløber - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: Du er logget ind på din konto fra følgende enheder. Tilbagekald sessioner, som du ikke kender, eller som kommer fra enheder, som du ikke har kontrol over. last_connection: Seneste session - may_not_delete_current: You cannot delete your current session. - session_name: "%{browser_name} %{browser_version} on %{os_name}" - title: Session management - unknown: "(unknown)" - unknown_browser: unknown browser - unknown_os: unknown operating system + may_not_delete_current: Du kan ikke slette din aktuelle session. + session_name: "%{browser_name} %{browser_version} på %{os_name}" + title: Administration af sessioner + unknown: "(ukendt)" + unknown_browser: ukendt browser + unknown_os: ukendt styresystem working_hours: current_schedule: - availability_factor: Availability factor - availability_subtitle: Dedicated to project work - effective_hours: Effective work hours - effective_subtitle: Per week - not_set: Not set - title: Current schedule - work_days: Work days - work_hours: Work hours + availability_factor: Tilgængelighedsfaktor + availability_subtitle: Afsat til projektarbejde + effective_hours: Effektiv arbejdstid + effective_subtitle: Pr. uge + not_set: Ikke angivet + title: Nuværende arbejdstid + work_days: Arbejdsdage + work_hours: Arbejdstimer destroy: - confirm: Are you sure you want to delete this working schedule? + confirm: Er du sikker på, at du vil slette denne arbejdstid? form: - availability_description: The availability factor represents the actual percentage of your working time dedicated to project tasks. This accounts for meetings, emails, administrative work, and other non-project activities. - availability_factor: Availability factor - availability_factor_caption: Define the percentage of your working time dedicated to project work. - effective_hours: Effective work hours - hours_mode_label: Hours mode - hours_per_day: Hours per day - individual_hours_mode: Individual hours per day - per_day: per day - per_week: per week - same_hours_mode: Same hours per day - start_date: Start date - start_date_caption: Select the date from when the new work schedule will be effective. - title: Plan a future work schedule - title_availability_factor: Availability factor - title_current: Edit current work schedule - title_days_and_hours: Days and hours - title_future_dates: Future dates - total_work_hours: Total work hours - work_days: Work days - work_hours: Work hours - working_hours_label: Working hours + availability_description: Tilgængelighedsfaktoren er den faktiske andel af din arbejdstid, der er afsat til projektopgaver. Den tager højde for møder, e-mails, administrativt arbejde og andre aktiviteter uden for projekterne. + availability_factor: Tilgængelighedsfaktor + availability_factor_caption: Angiv, hvor stor en procentdel af din arbejdstid der er afsat til projektarbejde. + effective_hours: Effektiv arbejdstid + hours_mode_label: Angivelse af timer + hours_per_day: Timer pr. dag + individual_hours_mode: Forskellige timer pr. dag + per_day: pr. dag + per_week: pr. uge + same_hours_mode: Samme timer pr. dag + start_date: Startdato + start_date_caption: Vælg den dato, hvor den nye arbejdstid skal gælde fra. + title: Planlæg en fremtidig arbejdstid + title_availability_factor: Tilgængelighedsfaktor + title_current: Rediger nuværende arbejdstid + title_days_and_hours: Dage og timer + title_future_dates: Fremtidige datoer + total_work_hours: Arbejdstimer i alt + work_days: Arbejdsdage + work_hours: Arbejdstimer + working_hours_label: Arbejdstid future: - add_button: Add future schedule - blank_description: Create a future schedule to plan changes ahead of time - blank_title: No future schedules planned - description: Plan working schedule changes ahead of time. Once the date arrives your working schedules will be updated automatically. - title: Future schedules + add_button: Tilføj fremtidig arbejdstid + blank_description: Opret en fremtidig arbejdstid for at planlægge ændringer i god tid + blank_title: Ingen fremtidig arbejdstid planlagt + description: Planlæg ændringer af arbejdstiden i god tid. Når datoen kommer, opdateres din arbejdstid automatisk. + title: Fremtidig arbejdstid history: - blank_description: Past schedule changes will appear here - blank_title: No schedule history yet - description: View your past work schedules. - title: Schedule history + blank_description: Tidligere ændringer af arbejdstiden vises her + blank_title: Ingen historik for arbejdstid endnu + description: Se din tidligere arbejdstid. + title: Historik for arbejdstid table: - availability_factor: Availability factor - effective_work_hours: Effective work hours - mobile_title: Working schedules - start_date: Start date - work_days: Work days + availability_factor: Tilgængelighedsfaktor + effective_work_hours: Effektiv arbejdstid + mobile_title: Arbejdstider + start_date: Startdato + work_days: Arbejdsdage work_days_count: - one: 1 working day - other: "%{count} working days" - work_hours: Work hours + one: 1 arbejdsdag + other: "%{count} arbejdsdage" + work_hours: Arbejdstimer version_status_closed: lukket version_status_locked: Spærret version_status_open: åbn versions: overview: - no_results_title_text: There are currently no work packages assigned to this version. - work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. + no_results_title_text: Der er i øjeblikket ingen arbejdspakker tildelt versionen. + work_packages_in_archived_projects: Versionen er delt med arkiverede projekter, der stadig har arbejdspakker tildelt versionen. De tælles med, men vises ikke i de tilknyttede visninger. warning: Advarsel warning_attachments_not_saved: "%{count} file(r) kunne ikke gemmes." warning_bar: hostname_mismatch: - text_html: 'Your application is running with its host name setting set to %{set_hostname}, but the request is a %{actual_hostname} hostname. This will result in errors! Go to System settings and change the "Host name" setting to correct this. + text_html: 'Programmet kører med værtsnavnet sat til %{set_hostname}, men forespørgslen har værtsnavnet %{actual_hostname}. Det giver fejl! Gå til Systemindstillinger, og ret indstillingen "Værtsnavn". ' - title: Hostname setting mismatch + title: Indstillingen for værtsnavn passer ikke https_mismatch: - text_html: 'Your application is running with HTTPS mode set to %{set_protocol}, but the request is an %{actual_protocol} request. This will result in errors! You will need to set the following configuration value: %{setting_value}. Please see the installation documentation on how to set this configuration. + text_html: 'Programmet kører med HTTPS-tilstand sat til %{set_protocol}, men forespørgslen er en %{actual_protocol}-forespørgsel. Det giver fejl! Du skal angive følgende konfigurationsværdi: %{setting_value}. Se i installationsdokumentationen, hvordan konfigurationen angives. ' - title: HTTPS mode setup mismatch - warning_imminent_user_limit_html: 'You invited more users than are supported by your current plan. Invited users may not be able to join your OpenProject environment. Please [upgrade your plan](upgrade_url) or block existing users in order to allow invited and registered users to join. + title: Opsætningen af HTTPS-tilstand passer ikke + warning_imminent_user_limit_html: 'Du har inviteret flere brugere, end din nuværende plan understøtter. Inviterede brugere kan måske ikke komme ind i dit OpenProject-miljø. [Opgrader din plan](upgrade_url), eller bloker eksisterende brugere, så inviterede og registrerede brugere kan komme ind. ' warning_protocol_mismatch_html: '' warning_registration_token_expired: | - The activation email has expired. We sent you a new one to %{email}. - Please click the link inside of it to activate your account. - warning_user_limit_reached: 'Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this instance. + E-mailen med aktiverings-linket er udløbet. Vi har sendt dig en ny til %{email}. + Klik på linket i den for at aktivere din konto. + warning_user_limit_reached: 'Hvis der tilføjes flere brugere, overskrides den nuværende grænse. Kontakt en administrator, og få grænsen for antal brugere hævet, så eksterne brugere kan få adgang til installationen. ' - warning_user_limit_reached_admin_html: 'Adding additional users will exceed the current limit. Please [upgrade your plan](upgrade_url) to be able to ensure external users are able to access this instance. + warning_user_limit_reached_admin_html: 'Hvis der tilføjes flere brugere, overskrides den nuværende grænse. [Opgrader din plan](upgrade_url), så eksterne brugere kan få adgang til installationen. ' - warning_user_limit_reached_instructions: 'You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. + warning_user_limit_reached_instructions: 'Du har nået grænsen for antal brugere (%{current}/%{max} aktive brugere). Kontakt sales@openproject.com for at opgradere din plan til Enterprise-udgaven og få plads til flere brugere. ' wiki: index: - no_results_content_text: Add a new wiki page - no_results_title_text: There are currently no wiki pages. - page_not_editable_index: The requested page does not (yet) exist. You have been redirected to the index of all wiki pages. - print_hint: This will print the content of this wiki page without any navigation bars. + no_results_content_text: Tilføj en ny wikiside + no_results_title_text: Der er i øjeblikket ingen wikisider. + page_not_editable_index: Den ønskede side findes ikke (endnu). Du er sendt videre til oversigten over alle wikisider. + print_hint: Udskriver indholdet af wikisiden uden navigationslinjer. wiki_menu_item_delete_not_permitted: Menupunktet til den eneste wiki-side kan ikke slettes. wiki_menu_item_for: Menupunkt for wikipage "%{title}" wiki_menu_item_new_main_item_explanation: 'Du er ved at slette det eneste overordnede punkt på wiki-menuen. Du skal nu vælge en wiki-side, udfra hvilken der kan dannes et nyt hovedpunkt. Hvis du vil slette wikien helt kan wiki-modulet deaktiveres af projektadministratorer. @@ -6946,288 +6944,288 @@ da: wiki_menu_item_setting: Synlighed work_flows: index: - no_results_title_text: There are currently no workflows. + no_results_title_text: Der er i øjeblikket ingen arbejdsgange. work_package: destroy: info: Sletning af arbejdspakken er en irreversibel handling. title: Slet arbejdspakken permissions: comment: Kommentér - comment_description: Can view and comment this work package. - comment_verb: comment + comment_description: Kan se og kommentere arbejdspakken. + comment_verb: kommentere edit: Rediger - edit_description: Can view, comment and edit this work package. - edit_verb: edit + edit_description: Kan se, kommentere og redigere arbejdspakken. + edit_verb: redigere view: Se - view_description: Can view this work package. - view_verb: view + view_description: Kan se arbejdspakken. + view_verb: se progress: derivation_hints: done_ratio: - cleared_because_remaining_work_is_empty: Cleared because Remaining work is empty. - cleared_because_work_is_0h: Cleared because Work is 0h. - derived: Derived from Work and Remaining work. + cleared_because_remaining_work_is_empty: Ryddet, fordi Resterende arbejde er tomt. + cleared_because_work_is_0h: Ryddet, fordi Arbejde er 0 t. + derived: Afledt af Arbejde og Resterende arbejde. estimated_hours: - cleared_because_remaining_work_is_empty: Cleared because Remaining work is empty. - derived: Derived from Remaining work and % Complete. - same_as_remaining_work: Set to same value as Remaining work. + cleared_because_remaining_work_is_empty: Ryddet, fordi Resterende arbejde er tomt. + derived: Afledt af Resterende arbejde og % færdigt. + same_as_remaining_work: Sat til samme værdi som Resterende arbejde. remaining_hours: - cleared_because_percent_complete_is_empty: Cleared because % Complete is empty. - cleared_because_work_is_empty: Cleared because Work is empty. - decreased_by_delta_like_work: Decreased by %{delta}, matching the reduction in Work. - derived: Derived from Work and % Complete. - increased_by_delta_like_work: Increased by %{delta}, matching the increase in Work. - same_as_work: Set to same value as Work. - label_note: 'Note:' + cleared_because_percent_complete_is_empty: Ryddet, fordi % færdigt er tomt. + cleared_because_work_is_empty: Ryddet, fordi Arbejde er tomt. + decreased_by_delta_like_work: Reduceret med %{delta} svarende til reduktionen af Arbejde. + derived: Afledt af Arbejde og % færdigt. + increased_by_delta_like_work: Øget med %{delta} svarende til stigningen i Arbejde. + same_as_work: Sat til samme værdi som Arbejde. + label_note: 'Bemærk:' modal: - migration_warning_text: In work-based progress calculation mode, % Complete cannot be manually set and is tied to Work. The existing value has been kept but cannot be edited. Please input Work first. - status_based_help_text: "% Complete is set by work package status." - work_based_help_text: Each field is automatically calculated from the two others when possible. + migration_warning_text: I den arbejdsbaserede beregning af fremdrift kan % færdigt ikke angives manuelt og er knyttet til Arbejde. Den eksisterende værdi er bevaret, men kan ikke redigeres. Angiv først Arbejde. + status_based_help_text: "% færdigt bestemmes af arbejdspakkens status." + work_based_help_text: Hvert felt beregnes automatisk ud fra de to andre, når det er muligt. reminders: - create_success_message_html: Reminder set successfully. You will receive a notification for this work package %{reminder_time}. + create_success_message_html: Påmindelsen er angivet. Du får en notifikation om arbejdspakken %{reminder_time}. label_remind_at: Dato - note_placeholder: Why are you setting this reminder? - success_deletion_message: Reminder deleted successfully. - success_update_message: Reminder updated successfully. + note_placeholder: Hvorfor angiver du påmindelsen? + success_deletion_message: Påmindelsen er slettet. + success_update_message: Påmindelsen er opdateret. updated_automatically_by_child_changes: '_Updateret automatisk ved at ændre værdier i underordnet arbejdspakke %{child} _ ' work_package_relations_tab: index: - action_bar_title: Add relations to other work packages to create a link between them. - blankslate_description: This work package does not have any relations yet. - blankslate_heading: No relations - no_results_title_text: There are currently no relations available. - label_add_child_button: Child - label_add_description: Add description - label_add_x: Add %{x} - label_edit_x: Edit %{x} + action_bar_title: Tilføj relationer til andre arbejdspakker for at forbinde dem. + blankslate_description: Arbejdspakken har endnu ingen relationer. + blankslate_heading: Ingen relationer + no_results_title_text: Der er i øjeblikket ingen relationer. + label_add_child_button: Underordnet + label_add_description: Tilføj beskrivelse + label_add_x: Tilføj %{x} + label_edit_x: Rediger %{x} lag: caption: |- - The minimum number of working days to keep in between the two work packages. - It can also be negative. - subject: Lag + Det mindste antal arbejdsdage, der skal være mellem de to arbejdspakker. + Det kan også være negativt. + subject: Forsinkelse relations: - blocked_by_description: This work package cannot be closed until the related one is closed first - blocked_description: This work package cannot be closed until the related one is closed first - blocks_description: The related work package cannot be closed until this one is closed first - child: Child - child_description: Makes the related work package a sub-item of the current (parent) work package - duplicated_by_description: The related work package is a copy of this - duplicated_description: The related work package is a copy of this - duplicates_description: This is a copy of the related work package - follows_description: The related work package necessarily needs to finish before this one can start - ghost_relation_description: This is not visible to you due to permissions. - ghost_relation_title: Sammenhørende arbejdspakker - includes_description: Marks the related work package as including this one with no additional effect - label_blocked__by_plural: spærret af - label_blocked_by_singular: spærret af - label_blocked_plural: spærret af - label_blocked_singular: spærret af - label_blocks_plural: spærringer - label_blocks_singular: spærringer - label_child_plural: children - label_child_singular: child - label_closest: Closest - label_duplicated_by_plural: duplikeret gennem - label_duplicated_by_singular: duplikeret gennem - label_duplicated_plural: duplikeret gennem - label_duplicated_singular: duplikeret gennem - label_duplicates_plural: dubletter - label_duplicates_singular: dubletter - label_follows_plural: predecessors (before) - label_follows_singular: predecessor (before) - label_includes_plural: inkluderer - label_includes_singular: inkluderer - label_new_child_created: New work package created and added as a child - label_other_relations: Other relations - label_parent_plural: parent - label_parent_singular: parent + blocked_by_description: Arbejdspakken kan ikke lukkes, før den relaterede arbejdspakke er lukket + blocked_description: Arbejdspakken kan ikke lukkes, før den relaterede arbejdspakke er lukket + blocks_description: Den relaterede arbejdspakke kan ikke lukkes, før denne er lukket + child: Underordnet + child_description: Gør den relaterede arbejdspakke til underelement af den nuværende (overordnede) arbejdspakke + duplicated_by_description: Den relaterede arbejdspakke er en kopi af denne + duplicated_description: Den relaterede arbejdspakke er en kopi af denne + duplicates_description: Denne er en kopi af den relaterede arbejdspakke + follows_description: Den relaterede arbejdspakke skal være færdig, før denne kan begynde + ghost_relation_description: Den er ikke synlig for dig på grund af dine tilladelser. + ghost_relation_title: Relateret arbejdspakke + includes_description: Markerer den relaterede arbejdspakke som omfattende denne uden yderligere virkning + label_blocked__by_plural: blokeret af + label_blocked_by_singular: blokeret af + label_blocked_plural: blokeret af + label_blocked_singular: blokeret af + label_blocks_plural: blokerer + label_blocks_singular: blokerer + label_child_plural: underordnede + label_child_singular: underordnet + label_closest: Nærmeste + label_duplicated_by_plural: dubleret af + label_duplicated_by_singular: dubleret af + label_duplicated_plural: dubleret af + label_duplicated_singular: dubleret af + label_duplicates_plural: dublerer + label_duplicates_singular: dublerer + label_follows_plural: forgængere (før) + label_follows_singular: forgænger (før) + label_includes_plural: omfatter + label_includes_singular: omfatter + label_new_child_created: Ny arbejdspakke oprettet og tilføjet som underordnet + label_other_relations: Andre relationer + label_parent_plural: overordnet + label_parent_singular: overordnet label_part_of_plural: del af label_part_of_singular: del af label_partof_plural: del af label_partof_singular: del af - label_precedes_plural: successors (after) - label_precedes_singular: successor (after) - label_relates_plural: Forbundet til - label_relates_singular: Forbundet til - label_relates_to_plural: Forbundet til - label_relates_to_singular: Forbundet til - label_required_plural: required by - label_required_singular: required by - label_requires_plural: requires - label_requires_singular: requires - new_child: Create new child - new_child_description: Creates a related work package as a sub-item of the current (parent) work package + label_precedes_plural: efterfølgere (efter) + label_precedes_singular: efterfølger (efter) + label_relates_plural: relateret til + label_relates_singular: relateret til + label_relates_to_plural: relateret til + label_relates_to_singular: relateret til + label_required_plural: krævet af + label_required_singular: krævet af + label_requires_plural: kræver + label_requires_singular: kræver + new_child: Opret ny underordnet + new_child_description: Opretter en relateret arbejdspakke som underelement til den nuværende (overordnede) arbejdspakke parent: Overordnet - parent_description: Makes the related work package a parent of the current (child) work package - part_of_description: Marks the related work package as being part of this one with no additional effect - partof_description: Marks the related work package as being part of this one with no additional effect - precedes_description: The related work package necessarily needs to start after this one finishes - relates_description: Creates a visible link between the two work packages with no additional effect - relates_to_description: Creates a visible link between the two work packages with no additional effect - required_description: Marks this work package as being a requirement to the related one - requires_description: Marks the related work package as a requirement to this one + parent_description: Gør den relaterede arbejdspakke overordnet til den nuværende (underordnede) arbejdspakke + part_of_description: Markerer den relaterede arbejdspakke som en del af denne uden yderligere virkning + partof_description: Markerer den relaterede arbejdspakke som en del af denne uden yderligere virkning + precedes_description: Den relaterede arbejdspakke kan først begynde, når denne er færdig + relates_description: Opretter en synlig forbindelse mellem de to arbejdspakker uden yderligere virkning + relates_to_description: Opretter en synlig forbindelse mellem de to arbejdspakker uden yderligere virkning + required_description: Markerer denne arbejdspakke som en forudsætning for den relaterede + requires_description: Markerer den relaterede arbejdspakke som en forudsætning for denne work_packages: bulk: - copy_failed: The work packages could not be copied. - could_not_be_deleted: 'The following work packages could not be deleted:' - could_not_be_saved: 'The following work packages could not be saved:' + copy_failed: Arbejdspakkerne kunne ikke kopieres. + could_not_be_deleted: 'Følgende arbejdspakker kunne ikke slettes:' + could_not_be_saved: 'Følgende arbejdspakker kunne ikke gemmes:' deletion_successful: - one: Successfully deleted 1 work package. - other: Successfully deleted %{count} work packages. - descendant: descendant of selected - move_failed: The work packages could not be moved. - none_could_be_saved: None of the %{total} work packages could be updated. - selected_because_descendants: While %{selected} work packages were selected, in total %{total} work packages are affected which includes descendants. - x_out_of_y_could_be_saved: "%{failing} out of the %{total} work packages could not be updated while %{success} could." + one: 1 arbejdspakke er slettet. + other: "%{count} arbejdspakker er slettet." + descendant: underliggende arbejdspakke til en valgt + move_failed: Arbejdspakkerne kunne ikke flyttes. + none_could_be_saved: Ingen af de %{total} arbejdspakker kunne opdateres. + selected_because_descendants: Der blev valgt %{selected} arbejdspakker, men i alt %{total} arbejdspakker påvirkes, fordi de underliggende arbejdspakker er medregnet. + x_out_of_y_could_be_saved: "%{failing} af de %{total} arbejdspakker kunne ikke opdateres, mens %{success} kunne." bulk_delete_dialog: - children_label: 'The following descendants will also be deleted:' - confirm_deletion: I confirm that the selected work packages and all associated data will be deleted. - confirm_descendants_deletion: I confirm that all descendants listed above will also be deleted. - cross_project_warning_html: 'These work packages span multiple projects: %{projects}' + children_label: 'Følgende underliggende arbejdspakker slettes også:' + confirm_deletion: Jeg bekræfter, at de valgte arbejdspakker og alle tilknyttede data slettes. + confirm_descendants_deletion: Jeg bekræfter, at alle de underliggende arbejdspakker ovenfor også slettes. + cross_project_warning_html: 'Arbejdspakkerne hører til flere projekter: %{projects}' descendants_choice: - heading: Delete all descendants too? - question: You are trying to delete work packages that have descendants. Do you want to delete them as well? - self_only_caption: This will not delete descendants but will remove hierarchical relations. - self_only_label: Delete just the selected work packages - with_descendants_caption: This will delete all child work packages visible to you. You will have a chance to review the full list in the next step. - with_descendants_label: Delete the selected work packages and their descendants - description: Are you sure you want to delete the selected work packages and all associated data? - description_with_all_descendants: Are you sure you want to delete the selected work packages and all of their descendants? - description_with_descendants: Are you sure you want to delete the selected work packages and all the following descendants? - description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? - heading: Permanently delete these %{count} work packages? + heading: Vil du også slette alle underliggende arbejdspakker? + question: Du forsøger at slette arbejdspakker, der har underliggende arbejdspakker. Vil du også slette dem? + self_only_caption: Underliggende arbejdspakker slettes ikke, men de hierarkiske relationer fjernes. + self_only_label: Slet kun de valgte arbejdspakker + with_descendants_caption: Alle underordnede arbejdspakker, som du kan se, slettes. Du kan gennemse hele listen i næste trin. + with_descendants_label: Slet de valgte arbejdspakker og deres underliggende arbejdspakker + description: Er du sikker på, at du vil slette de valgte arbejdspakker og alle tilknyttede data? + description_with_all_descendants: Er du sikker på, at du vil slette de valgte arbejdspakker og alle deres underliggende arbejdspakker? + description_with_descendants: Er du sikker på, at du vil slette de valgte arbejdspakker og alle følgende underliggende arbejdspakker? + description_with_visible_descendants: Er du sikker på, at du vil slette de valgte arbejdspakker og alle synlige underliggende arbejdspakker? + heading: Vil du slette disse %{count} arbejdspakker permanent? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. - other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + one: Der er én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. + other: Der er %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men alle hierarkiske relationer fjernes. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. - other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. - title: Delete %{count} work packages + one: Alle synlige underliggende arbejdspakker fjernes. Der er dog én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. + other: Alle synlige underliggende arbejdspakker fjernes. Der er dog %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men alle hierarkiske relationer fjernes. + title: Slet %{count} arbejdspakker undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. - other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. + other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser. De bevares, men alle hierarkiske relationer fjernes. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. - other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. + other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser i %{projects}. De bevares, men alle hierarkiske relationer fjernes. datepicker_modal: banner: description: - automatic_mobile: Start date derived. - click_on_show_relations_to_open_gantt: Click on "%{button_name}" for Gantt overview. - manual_gap_between_predecessors: There is a gap between this and all predecessors. - manual_mobile: Ignoring relations. - manual_overlap_with_predecessors: Overlaps with at least one predecessor. - manual_with_children: This has child work packages but their start dates are ignored. + automatic_mobile: Startdatoen er afledt. + click_on_show_relations_to_open_gantt: Klik på "%{button_name}" for at se et Gantt-overblik. + manual_gap_between_predecessors: Der er et mellemrum mellem denne og alle forgængere. + manual_mobile: Ignorerer relationer. + manual_overlap_with_predecessors: Overlapper mindst én forgænger. + manual_with_children: Den har underordnede arbejdspakker, men deres startdatoer ignoreres. title: - automatic_mobile: Automatically scheduled. - automatic_with_children: The dates are determined by child work packages. - automatic_with_predecessor: The start date is set by a predecessor. - manual_mobile: Manually scheduled. - manually_scheduled: Manually scheduled. Dates not affected by relations. + automatic_mobile: Automatisk planlagt. + automatic_with_children: Datoerne bestemmes af underordnede arbejdspakker. + automatic_with_predecessor: Startdatoen bestemmes af en forgænger. + manual_mobile: Manuelt planlagt. + manually_scheduled: Manuelt planlagt. Datoerne påvirkes ikke af relationer. blankslate: - description: To enable automatic scheduling, this work package needs to have at least one predecessor. It will then automatically be scheduled to start after the closest predecessor. - title: No predecessors + description: Arbejdspakken skal have mindst én forgænger, før automatisk planlægning kan aktiveres. Den planlægges så automatisk til at begynde efter den nærmeste forgænger. + title: Ingen forgængere ignore_non_working_days: - title: Working days only + title: Kun arbejdsdage mode: - automatic: Automatic - manual: Manual - title: Scheduling mode - show_relations: Show relations + automatic: Automatisk + manual: Manuel + title: Planlægningstilstand + show_relations: Vis relationer tabs: - aria_label: Datepicker tabs + aria_label: Faner i datovælgeren blankslate: children: - description: This work package does not have any children. - title: No children + description: Arbejdspakken har ingen underordnede. + title: Ingen underordnede predecessors: - description: This work package does not have any predecessors. - title: No predecessors + description: Arbejdspakken har ingen forgængere. + title: Ingen forgængere successors: - description: This work package does not have any successors. - title: No successors + description: Arbejdspakken har ingen efterfølgere. + title: Ingen efterfølgere children: Underordnede dates: Datoer - predecessors: Predecessors - successors: Successors - update_inputs_aria_live_message: Date picker updated. %{message} + predecessors: Forgængere + successors: Efterfølgere + update_inputs_aria_live_message: Datovælgeren er opdateret. %{message} delete_dialog: - confirm_deletion: I confirm that the work package and all associated data will be deleted. - confirm_descendants_deletion: I confirm that all descendants listed above will also be deleted. - cross_project_warning_html: 'Work packages from the following projects will be deleted: %{projects}' + confirm_deletion: Jeg bekræfter, at arbejdspakken og alle tilknyttede data slettes. + confirm_descendants_deletion: Jeg bekræfter, at alle de underliggende arbejdspakker ovenfor også slettes. + cross_project_warning_html: 'Arbejdspakker fra følgende projekter slettes: %{projects}' descendants_choice: - heading: Delete all descendants too? - question: This work package has descendants. Do you want to delete them as well? - self_only_caption: This will not delete descendants but will remove hierarchical relations. - self_only_label: Delete just this work package - with_descendants_caption: This will delete all child work packages visible to you. You will have a chance to review the full list in the next step. - with_descendants_label: Delete this work package and descendants - description: Are you sure you want to delete "%{name}"? - heading: Permanently delete this work package? + heading: Vil du også slette alle underliggende arbejdspakker? + question: Arbejdspakken har underliggende arbejdspakker. Vil du også slette dem? + self_only_caption: Underliggende arbejdspakker slettes ikke, men de hierarkiske relationer fjernes. + self_only_label: Slet kun denne arbejdspakke + with_descendants_caption: Alle underordnede arbejdspakker, som du kan se, slettes. Du kan gennemse hele listen i næste trin. + with_descendants_label: Slet arbejdspakken og dens underliggende arbejdspakker + description: Er du sikker på, at du vil slette "%{name}"? + heading: Vil du slette arbejdspakken permanent? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. - other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + one: Arbejdspakken har én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. + other: Arbejdspakken har %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men den hierarkiske relation fjernes. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. - other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. - title: Delete work package + one: Alle synlige underliggende arbejdspakker slettes. Arbejdspakken har dog én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. + other: Alle synlige underliggende arbejdspakker slettes. Arbejdspakken har dog %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men den hierarkiske relation fjernes. + title: Slet arbejdspakke undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. - other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. + other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser. De bevares, men alle hierarkiske relationer fjernes. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. - other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. + other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser i %{projects}. De bevares, men alle hierarkiske relationer fjernes. move: - bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. + bulk_current_type_not_available_in_target_project: 'Arbejdspakkernes eller deres underliggende arbejdspakkers typer er ikke aktiveret i målprojektet. Aktivér de manglende typer i målprojektet, hvis typerne skal forblive uændrede. Ellers skal du vælge en tilgængelig type i målprojektet på listen. ' - current_type_not_available_in_target_project: 'The type of this work package or one of its descendants is not enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. + current_type_not_available_in_target_project: 'Typen for denne arbejdspakke eller en af dens underliggende arbejdspakker er ikke aktiveret i målprojektet. Aktivér de manglende typer i målprojektet, hvis typerne skal forblive uændrede. Ellers skal du vælge en tilgængelig type i målprojektet på listen. ' - no_common_statuses_exists: There is no status available for all selected work packages. Their status cannot be changed. - unsupported_for_multiple_projects: Bulk move/copy is not supported for work packages from multiple projects + no_common_statuses_exists: Der er ingen status, der er tilgængelig for alle de valgte arbejdspakker. Deres status kan ikke ændres. + unsupported_for_multiple_projects: Flytning eller kopiering af flere arbejdspakker på én gang understøttes ikke for arbejdspakker fra flere projekter sharing: missing_workflow_warning: - link_message: Configure the workflows in the administration. - message: No workflow is configured for the 'Work package editor' role. Without a workflow, the shared with user cannot alter the status of the work package. Workflows can be copied. Select a source type (e.g. 'Task') and source role (e.g. 'Member'). Then select the target types. To start with, you could select all the types as targets. Finally, select the 'Work package editor' role as the target and press 'Copy'. After having thus created the defaults, fine tune the workflows as you do for every other role. - title: Workflow missing for work package sharing + link_message: Konfigurer arbejdsgangene under administration. + message: Der er ikke konfigureret nogen arbejdsgang for rollen 'Redaktør af arbejdspakker'. Uden en arbejdsgang kan den bruger, som arbejdspakken er delt med, ikke ændre arbejdspakkens status. Arbejdsgange kan kopieres. Vælg en kildetype (fx 'Opgave') og en kilderolle (fx 'Medlem'). Vælg derefter måltyperne. Til en start kan du vælge alle typer som mål. Vælg til sidst rollen 'Redaktør af arbejdspakker' som mål, og tryk på 'Kopiér'. Når standarderne er oprettet, kan du finjustere arbejdsgangene som for alle andre roller. + title: Arbejdsgang mangler for deling af arbejdspakker summary: reports: assigned_to: - no_results_title_text: There are currently no members part of this project. + no_results_title_text: Projektet har i øjeblikket ingen medlemmer. author: - no_results_title_text: There are currently no members part of this project. + no_results_title_text: Projektet har i øjeblikket ingen medlemmer. category: - no_results_title_text: There are currently no categories available. + no_results_title_text: Der er i øjeblikket ingen kategorier. priority: - no_results_title_text: There are currently no priorities available. + no_results_title_text: Der er i øjeblikket ingen prioriteter. responsible: - no_results_title_text: There are currently no members part of this project. + no_results_title_text: Projektet har i øjeblikket ingen medlemmer. type: no_results_title_text: Der er i øjeblikket ingen tilgængelige typer. version: - no_results_title_text: There are currently no versions available. + no_results_title_text: Der er i øjeblikket ingen versioner. x_descendants: - one: One descendant work package - other: "%{count} work package descendants" + one: Én underliggende arbejdspakke + other: "%{count} underliggende arbejdspakker" workflows: copies: form: mode: from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles + caption: Kopiér den aktuelle arbejdsgang til en eller flere roller i samme arbejdspakketype. Hvis den valgte rolle allerede har en arbejdsgang, overskrives den. + label: Kopiér til andre roller from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type + caption: Kopiér den aktuelle arbejdsgang til en anden arbejdspakketype. Hvis den valgte type allerede har en arbejdsgang, overskrives den. Det gælder alle roller. + label: Kopiér til en anden type source_role_id: - label: Source role + label: Kilderolle target_role_ids: label: Målroller target_variant_ids: - label: Target types + label: Måltyper from_roles: create: notice: @@ -7236,10 +7234,10 @@ da: from_variants: create: notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. + one: Arbejdsgangen er kopieret til '%{type_name}'. + other: Arbejdsgangen er kopieret til %{count} typer. new: - title: Copy workflow of "%{source_type}" + title: Kopiér arbejdsgangen fra "%{source_type}" form: matrix_caption: Matrix for arbejdsgang matrix_caption_assignee: Matrix for arbejdsgang for tildelte @@ -7256,33 +7254,33 @@ da: index_component: description: Konfigurer statusovergange for hver arbejdspakketype. working_days: - change_button: Change working days + change_button: Skift arbejdsdage dialog: - confirm_button: Save and reschedule - description: 'Changing which days of the week are considered working days or non-working days can affect the start and finish days of all work packages and life cycles in all projects in this instance. + confirm_button: Gem, og planlæg igen + description: 'Hvis du ændrer, hvilke ugedage der er arbejdsdage eller arbejdsfrie dage, kan det påvirke start- og slutdatoen for alle arbejdspakker og livscyklusser i alle projekter i denne installation. ' - heading: Change the working days? - removed_title: 'You will remove the following days from the non-working days list:' - title: Change working days - warning: 'The changes might take some time to take effect. You will be notified when all relevant work packages and project life cycles have been updated. + heading: Vil du skifte arbejdsdagene? + removed_title: 'Du fjerner følgende dage fra listen over arbejdsfrie dage:' + title: Skift arbejdsdage + warning: 'Det kan tage noget tid, før ændringerne slår igennem. Du får besked, når alle berørte arbejdspakker og projekters livscyklusser er opdateret. ' - info: 'Days that are not selected are skipped when scheduling work packages and project life cycles (and not included in the day count). These can be overridden at a work-package level. + info: 'Dage, der ikke er valgt, springes over ved planlægning af arbejdspakker og projekters livscyklusser (og tælles ikke med i antallet af dage). Det kan tilsidesættes for den enkelte arbejdspakke. ' - instance_wide_info: 'Dates added to the list below are considered non-working and skipped when scheduling work packages. + instance_wide_info: 'Datoer, der føjes til listen nedenfor, regnes for arbejdsfrie og springes over ved planlægning af arbejdspakker. ' journal_note: - changed: _**Working days** changed (%{changes})._ + changed: _**Arbejdsdage** ændret (%{changes})._ dates: - non_working: "%{date} is now non-working" - working: "%{date} is now working" + non_working: "%{date} er nu en arbejdsfri dag" + working: "%{date} er nu en arbejdsdag" days: - non_working: "%{day} is now non-working" - working: "%{day} is now working" - warning: 'Changing which days of the week are considered working days or non-working days can affect the start and finish days of all work packages and life cycles in all projects in this instance. + non_working: "%{day} er nu en arbejdsfri dag" + working: "%{day} er nu en arbejdsdag" + warning: 'Hvis du ændrer, hvilke ugedage der er arbejdsdage eller arbejdsfrie dage, kan det påvirke start- og slutdatoen for alle arbejdspakker og livscyklusser i alle projekter i denne installation. ' - you: you + you: dig diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 3627f8041a25..4ab2800e45f7 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -1542,7 +1542,7 @@ fr: JiraCreateProjectJob: title: Create project '%{jira_project_name}' JiraCreateProjectRoleJob: - title: Create 'JiraMember' project role + title: Créer un rôle de projet 'JiraMember' JiraCreateProjectVersionsJob: title: Create versions for '%{jira_project_name}' JiraCreateProjectWorkPackageAttachmentsJob: diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index efa587378aba..515247806ae4 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -36,7 +36,7 @@ da: empty_state_header: Arbejdsfrie dage new_date: "(ny)" ajax: - hide: Gem + hide: Skjul loading: Indlæser… updating: Opdaterer… attachments: @@ -51,7 +51,7 @@ da: autocomplete_ng_select: add_tag: Tilføj element clear_all: Ryd alle - loading: Henter... + loading: Indlæser... not_found: Ingen elementer fundet type_to_search: Skriv for at søge autocomplete_select: @@ -59,7 +59,7 @@ da: placeholder: multi: Tilføj "%{name}" single: Vælg "%{name}" - remove: Fjern %{name}; + remove: Fjern %{name} autocompleter: notFoundText: Ingen elementer fundet placeholder: Skriv for at søge @@ -82,7 +82,7 @@ da: request_backup: Bestil sikkerhedskopi title: Sikkerhedskopiér OpenProject baseline: - apply: Benyt + apply: Anvend clear: Ryd drop_down: a_specific_date: en bestemt dato @@ -91,7 +91,7 @@ da: last_week: seneste uge last_working_day: seneste arbejdsdag none: "-" - yesterday: I går + yesterday: i går from: Fra header_description: Fremhæv ændringer i listen siden et vilkårligt tidspunkt tilbage i tiden. help_description: Referencetidszone for baselinen. @@ -113,7 +113,7 @@ da: toggle_title: Baseline breadcrumb: Brødkrumme button_add: Tilføj - button_add_watcher: Tilføj tilsynsførende + button_add_watcher: Tilføj følger button_advanced_filter: Avanceret filter button_back: Tilbage button_back_to_list_view: Tilbage til listevisning @@ -122,7 +122,7 @@ da: button_check_all: Vælg alt button_clear: Ryd button_close: Luk - button_close_details: Luk detaljeret visning + button_close_details: Luk detaljevisning button_collapse_all: Fold alle sammen button_configure-form: Konfigurer formularen button_confirm: Bekræft @@ -130,25 +130,25 @@ da: button_copy: Kopier button_copy_link_to_clipboard: Kopiér link til udklipsholderen button_copy_numeric_id_to_clipboard: Kopiér numerisk id til udklipsholderen - button_copy_to_clipboard: Kopiér til Udklipsholder + button_copy_to_clipboard: Kopiér til udklipsholderen button_copy_to_other_project: Dupliker i et andet projekt button_create: Opret - button_custom-fields: Selvvalgte felter + button_custom-fields: Brugerdefinerede felter button_delete: Slet - button_delete_watcher: Slet tilsynsførende + button_delete_watcher: Slet følger button_details_view: Detaljevisning - button_duplicate: Lav dublet + button_duplicate: Dupliker button_edit: Rediger button_expand_all: Fold alle ud - button_export-atom: Download Atom + button_export-atom: Hent Atom button_filter: Filter button_generate_pdf: Generer PDF button_list_view: Listevisning - button_log_time: Tidsregistrering - button_more: mere + button_log_time: Registrer tid + button_more: Mere button_more_actions: Flere handlinger button_open_details: Åbn detaljevisning - button_open_fullscreen: Fuldskærmsvisning + button_open_fullscreen: Åbn fuldskærmsvisning button_quote: Citer button_save: Gem button_settings: Indstillinger @@ -198,8 +198,8 @@ da: specific: på description_available_columns: Tilgængelige kolonner description_current_position: 'Du er her: ' - description_select_work_package: 'Vælg arbejds pakke #%{id}' - description_subwork_package: 'Barn af arbejds-pakke #%{id}' + description_select_work_package: 'Vælg arbejdspakke #%{id}' + description_subwork_package: 'Underordnet arbejdspakke #%{id}' editor: ckeditor_error: Der opstod en fejl i CKEditor error_saving_failed: 'Lagring af dokumentet mislykkedes med følgende fejl: %{error}' @@ -214,62 +214,62 @@ da: not_found: Den ønskede ressource blev ikke fundet child_pages: button: Liste over undersider - hint: 'Lad feltet være tomt for at vise alle børnesider på den aktuelle side. Hvis du vil referere til en anden side, skal du angive sin titel eller slug. + hint: 'Lad feltet stå tomt for at vise alle undersider til den aktuelle side. Hvis du vil henvise til en anden side, skal du angive dens titel eller URL-navn. ' - include_parent: Inkludér forælder + include_parent: Medtag overordnet side page: Wiki-side text: "[Pladsholder] Liste over undersider til" this_page: denne side code_block: button: Indsæt kodestykke - language: Formaterings sprog + language: Formateringssprog language_hint: Indtast det formateringssprog, der skal bruges til at fremhæve (hvis det understøttes). title: Indsæt / rediger kodestykke embedded_calendar: - text: "[Placeholder] Embedded kalender" + text: "[Pladsholder] Indlejret kalender" embedded_table: - button: Embed arbejdspakkebord - text: "[Placeholder] Embedded arbejdspakkebord" + button: Indlejr tabel med arbejdspakker + text: "[Pladsholder] Indlejret tabel med arbejdspakker" error: 'Makroen kan ikke udfoldes: %{message}' macro_dropdown: caption: Indsæt toc: Indholdsfortegnelse - toolbar_help: Klik for at vælge widget og vis værktøjslinjen. Dobbeltklik for at redigere widget + toolbar_help: Klik for at vælge widgetten og vise værktøjslinjen. Dobbeltklik for at redigere widgetten wiki_page_include: - button: Inkluder indhold på en anden wiki side - hint: 'Inkluder indholdet på en anden wiki side ved at angive sin titel eller slug. Du kan inkludere wiki-sien i et andet projekt ved at adskille dem med et kolon som det følgende eksempel. - - ' - not_set: "(Side er endnu ikke indstillet)" + button: Medtag indholdet af en anden wikiside + hint: | + Medtag indholdet af en anden wikiside ved at angive dens titel eller URL-navn. + Du kan medtage en wikiside fra et andet projekt ved at adskille dem med kolon som i følgende eksempel. + not_set: "(Siden er endnu ikke angivet)" page: Wiki-side - text: "[Placeholder] Inkluderet wiki side af" + text: "[Pladsholder] Medtaget wikiside fra" work_package_button: - button: Indsæt oprettelse af arbejdspakke + button: Indsæt knap til oprettelse af arbejdspakke button_style: Brug knappestil - button_style_hint: 'Valgfrit: Kontroller, at makro vises som en knap, ikke som et link.' + button_style_hint: 'Valgfrit: Markér for at vise makroen som en knap i stedet for et link.' type: Arbejdspakketype with_type: 'Opret arbejdspakke (Type: %{typename})' without_type: Opret arbejdspakke mode: - manual: Skift til Markdown kildekode - wysiwyg: Skift til WYSIWYG redigering + manual: Skift til Markdown-kildekode + wysiwyg: Skift til WYSIWYG-editor no_revisions: Ingen lokale ændringer fundet - preview: Toggle forhåndsvisning + preview: Slå forhåndsvisning til eller fra revisions: Vis lokale ændringer - source_code: Toggle Markdown kilde-visning - enumeration_activities: Aktiviteter (styring af tid) + source_code: Slå Markdown-kildevisning til eller fra + enumeration_activities: Aktiviteter (tidsregistrering) enumeration_doc_categories: Dokumentkategorier - enumeration_work_package_priorities: Prioritering af arbejdspakker + enumeration_work_package_priorities: Prioriteter for arbejdspakker error: cannot_save_changes_with_message: 'Kan ikke gemme dine ændringer på grund af følgende fejl: %{error}' embedded_table_loading: 'Den indlejrede visning kunne ikke indlæses: %{message}' - internal: En intern fejl opstod. + internal: Der opstod en intern fejl. query_saving: Visningen kunne ikke gemmes. error_attachment_upload: 'Filen kunne ikke overføres: %{error}' error_attachment_upload_permission: Du har ikke tilladelse til at overføre filer til denne ressource. - error_could_not_resolve_user_name: Kunne ikke finde brugernavnet - error_could_not_resolve_version_name: Kunne ikke fastslå versionsnavn + error_could_not_resolve_user_name: Brugernavnet blev ikke fundet + error_could_not_resolve_version_name: Versionsnavnet blev ikke fundet exclusion_info: modal: content: Status '%{status_name}' er konfigureret til at blive udeladt af hierarkiets totaler for Arbejde, Resterende arbejde og % færdigt. Totalerne tager ikke højde for denne værdi. @@ -280,15 +280,15 @@ da: field_value_enter_prompt: Indtast en værdi for '%{field}' filter: description: - text_close_filter: For at vælge en post forlade fokuset ved at trykke på Enter. For at undlade filterbrug vælg den første (tomme) post. - text_open_filter: Åbn dette filter med 'ALT' og pile tasterne. + text_close_filter: Vælg en post ved at flytte fokus, fx ved at trykke på Enter. Vælg den første (tomme) post for at fortsætte uden filter. + text_open_filter: Åbn filteret med 'ALT' og piletasterne. more_values_not_shown: Der er %{total} resultater mere. Søg for at filtrere resultaterne. noneElement: "(ingen)" sorting: criteria: one: Første sorteringskriterium three: Tredje sorteringskriterium - two: Anden sorteringskriterier + two: Andet sorteringskriterium time_zone_converted: only_end: Til %{to} i din lokale tid. only_start: Fra %{from} i din lokale tid. @@ -348,7 +348,7 @@ da: search_for: Søg efter hal: error: - edit_prohibited: Redigering af %{attribute} er blokeret for denne ressource. Enten er denne attribut afledt af relationer (f.eks. børn) eller på anden måde ikke konfigurerbar. + edit_prohibited: Redigering af %{attribute} er blokeret for ressourcen. Attributten er enten afledt af relationer (fx underordnede) eller kan ikke konfigureres på anden måde. format: date: "%{attribute} er ikke en gyldig dato – ÅÅÅÅ-MM-DD forventes." general: Der opstod en fejl. @@ -367,7 +367,7 @@ da: token_name_placeholder: Skriv et navn, fx "Telefon" warning: Del ikke URL'en med andre brugere. Alle med linket kan se detaljer om arbejdspakker uden en konto eller adgangskode. include_projects: - apply: Benyt + apply: Anvend clear_selection: Ryd valg include_subprojects: Medtag alle underprojekter no_results: Ingen projekter matcher dine søgekriterier. @@ -386,9 +386,9 @@ da: portfolio: Portefølje program: Program inplace: - btn_preview_disable: Deaktivér forhåndsvisning + btn_preview_disable: Slå forhåndsvisning fra btn_preview_enable: Forhåndsvisning - button_cancel: "%{attribute}: Annullér" + button_cancel: "%{attribute}: Annuller" button_cancel_all: Annuller button_edit: "%{attribute}: Rediger" button_save: "%{attribute}: Gem" @@ -397,11 +397,11 @@ da: errors: maxlength: "%{field} må ikke indeholde mere end %{maxLength} cifre" messages_on_field: 'Dette felt er ugyldigt: %{messages}' - minlength: "%{field} må ikke indeholde mindre end %{minLength} cifre" + minlength: "%{field} må ikke indeholde færre end %{minLength} cifre" number: "%{field} er ikke et gyldigt tal" required: "%{field} må ikke være tomt" link_formatting_help: Hjælp til tekstformatering - null_value_label: Ingen værdi tildelt + null_value_label: Ingen værdi invalid_job_response: Ugyldigt svar fra serveren. invite_user_modal: invite: Invitér @@ -430,7 +430,7 @@ da: label_ascending: Stigende label_assignee: Tildelt label_assignee_alt_text: Arbejdspakken er tildelt %{name} - label_attachments: Vedhæftninger + label_attachments: Vedhæftede filer label_author: 'Forfatter: %{user}' label_avatar: Avatar label_between: mellem @@ -441,7 +441,7 @@ da: label_cancel_comment: Annuller kommentar label_change: Ændring label_children_derived_duration: Varighed beregnet ud fra arbejdspakkens underordnede - label_closed_work_packages: lukket + label_closed_work_packages: lukkede label_collapse: Fold sammen label_collapse_all: Fold alle sammen label_collapse_text: Fold tekst sammen @@ -452,13 +452,13 @@ da: label_create: Opret label_create_work_package: Opret ny arbejdspakke label_created_by: Oprettet af - label_created_on: oprettet d. + label_created_on: oprettet den label_current: aktuel label_custom_queries: Private label_date: Dato label_date_with_format: 'Angiv %{date_attribute} i dette format: %{format}' label_deactivate: Deaktivér - label_default_queries: Forhåndsvalgt + label_default_queries: Standard label_descending: Faldende label_description: Beskrivelse label_details: Detaljer @@ -470,16 +470,16 @@ da: label_edit_status: Rediger arbejdspakkens status label_email: E-mail label_equals: er - label_expand: Udvid + label_expand: Fold ud label_expand_all: Fold alle ud label_expand_project_menu: Fold projektmenuen ud label_expand_text: Vis hele teksten label_expanded: udfoldet label_export: Eksportér - label_export_preparing: Eksporten er under forberedelse og vil blive hentet om lidt. + label_export_preparing: Eksporten forberedes og hentes om lidt. label_favorites: Favoritter label_filename: Fil - label_files_to_upload: 'Disse filer vil blive uploadet:' + label_files_to_upload: 'Disse filer overføres:' label_filesize: Størrelse label_formattable_attachment_hint: Vedhæft og link filer ved at slippe dem i feltet eller indsætte dem fra udklipsholderen. label_general: Generelle @@ -489,12 +489,12 @@ da: label_group_by: Gruppér efter label_group_plural: Grupper label_hide_attributes: Vis mindre - label_hide_column: Gem kolonne + label_hide_column: Skjul kolonne label_hide_project_menu: Fold projektmenuen sammen label_import: Importér label_in: i - label_in_less_than: på mindre end - label_in_more_than: på mere end + label_in_less_than: om mindre end + label_in_more_than: om mere end label_incoming_emails: Indkommende e-mails label_infinity: Uendelig label_information_plural: Information @@ -504,8 +504,8 @@ da: label_learn_more_link: Få mere at vide label_less_or_equal: "<=" label_less_than_ago: mindre end dage siden - label_loading: Henter... - label_mail_notification: E-mail-påmindelser + label_loading: Indlæser... + label_mail_notification: E-mail-notifikationer label_manage_columns: Administrer kolonner og rækkefølge label_me: mig label_meeting_agenda: Dagsorden @@ -518,7 +518,7 @@ da: label_no_date: ingen dato label_no_due_date: ingen slutdato label_no_start_date: ingen startdato - label_no_value: Ingen værdi tildelt + label_no_value: Ingen værdi label_none: ingen label_not_available: Ikke tilgængelig label_not_contains: indeholder ikke @@ -526,9 +526,9 @@ da: label_on: på label_open_context_menu: Åbn genvejsmenu label_open_menu: Åbn menuen - label_open_work_packages: åbn + label_open_work_packages: åbne label_password: Adgangskode - label_per_page: 'Per side:' + label_per_page: 'Pr. side:' label_please_wait: Vent et øjeblik label_press_enter_to_save: Tryk på Enter for at gemme. label_previous: Foregående @@ -537,30 +537,30 @@ da: label_public_query: Offentlig label_quote_comment: Citér denne kommentar label_recent: Seneste - label_rejected_files: 'Disse filer kan ikke uploades:' - label_rejected_files_reason: Disse filer kan ikke uploades, da deres størrelse overstiger %{maximumFilesize} + label_rejected_files: 'Disse filer kan ikke overføres:' + label_rejected_files_reason: Disse filer kan ikke overføres, fordi de er større end %{maximumFilesize} label_remove: Fjern label_remove_all_files: Slet alle filer label_remove_column: Fjern kolonne label_remove_columns: Fjern valgte kolonner label_remove_file: Slet %{fileName} label_remove_row: Fjern række - label_remove_watcher: Fjern iagttager %{name} + label_remove_watcher: Fjern følger %{name} label_report: Rapport label_repository_plural: Projektarkiver label_reset: Nulstil label_resize_project_menu: Tilpas størrelsen på projektmenuen label_save_as: Gem som label_search_columns: Søg efter en kolonne - label_select_watcher: Vælg en tilsynsførende... + label_select_watcher: Vælg en følger... label_selected_filter_list: Valgte filtre - label_show_attributes: Vis alle egenskaber + label_show_attributes: Vis alle attributter label_show_in_menu: Vis visningen i menuen label_sort_by: Sortér efter label_sort_higher: Flyt op label_sort_lower: Flyt ned label_sorted_by: sorteret efter - label_sorting: Sorterer + label_sorting: Sortering label_spent_time: Anvendt tid label_star_query: Markeret som favorit label_starred_queries: Favoritter @@ -573,34 +573,34 @@ da: label_total_amount: 'I alt: %{amount}' label_total_progress: 'Samlet fremskridt: %{percent}%' label_total_sum: I alt - label_unwatch: Stands tilsyn - label_unwatch_work_package: Stands tilsyn med arbejdspakke + label_unwatch: Stop med at følge + label_unwatch_work_package: Stop med at følge arbejdspakke label_up: Op - label_updated_on: opdateret d. + label_updated_on: opdateret den label_upload_counter: "%{done} af %{count} filer færdige" - label_upload_notification: Uploader filer... - label_uploaded_by: Lagt op af + label_upload_notification: Overfører filer... + label_uploaded_by: Overført af label_user_plural: Brugere - label_validation_error: 'Arbejdspakken kunne ikke gemmes grundet følgende fejl:' + label_validation_error: 'Arbejdspakken kunne ikke gemmes på grund af følgende fejl:' label_value_derived_from_children: "(værdi beregnet ud fra underordnede)" label_version_plural: Versioner label_view_has_changed: Visningen har ændringer, der ikke er gemt. Klik for at gemme dem. label_visibility_settings: Synlighedsindstillinger - label_wait: Vent venligst på opsætning... + label_wait: Vent på konfigurationen... label_warning: Advarsel - label_watch: Før tilsyn - label_watch_work_package: Før tilsyn med arbejdspakke - label_watcher_added_successfully: Tilsynsførende er nu tilføjet! - label_watcher_deleted_successfully: Tilsynsførende er nu slettet! + label_watch: Følg + label_watch_work_package: Følg arbejdspakke + label_watcher_added_successfully: Følgeren er tilføjet! + label_watcher_deleted_successfully: Følgeren er slettet! label_work_package: Arbejdspakke label_work_package_context_menu: Arbejdspakkens genvejsmenu label_work_package_details_you_are_here: Du er på fanen %{tab} for %{type} %{subject}. label_work_package_parent: Overordnet arbejdspakke label_work_package_plural: Arbejdspakker - label_work_package_upload_notification: 'Upload af filer til arbejdspakke #%{id}: %{subject}' + label_work_package_upload_notification: 'Overfører filer til arbejdspakke #%{id}: %{subject}' label_wp_id_added_by: "#%{id} tilføjet af %{author}" modals: - button_apply: Benyt + button_apply: Anvend button_cancel: Annuller button_delete: Slet button_save: Gem @@ -614,7 +614,7 @@ da: label_delete_page: Slet denne side label_name: Navn no_job_id: Serveren returnerede intet job-id. - notice_bad_request: Uanvendelig anmodning. + notice_bad_request: Ugyldig anmodning. notice_job_started: job startet. notice_no_results_to_display: Ingen synlige resultater at vise. notice_successful_create: Oprettelse gennemført. @@ -623,8 +623,8 @@ da: notifications: center: and_more_users: - one: and 1 other - other: and %{count} others + one: og 1 anden + other: og %{count} andre empty_state: no_notification: Det ser ud til, at du er helt opdateret. no_notification_for_filter: Det ser ud til, at du er helt opdateret med dette filter. @@ -664,7 +664,7 @@ da: responsible: Ansvarlig scheduled: Planlagt shared: Delt - watched: Tilsynsførende + watched: Følger reminders: note: 'Note: »%{note}«' settings: @@ -721,7 +721,7 @@ da: default: "-" description: 'Beskrivelse: Klik for at redigere...' relation_description: Klik for at tilføje en beskrivelse af relationen - selection: Vælg venligst + selection: Vælg subject: Skriv emnet her project: autocompleter: @@ -747,7 +747,7 @@ da: add_parent: Tilføj eksisterende overordnet add_predecessor: Tilføj forgænger add_successor: Add successor - change_parent: Ændr overordnede + change_parent: Skift overordnet create_new: Opret ny group_by_relation_type: Gruppér efter relationstype group_by_wp_type: Gruppér efter arbejdspakketype @@ -761,10 +761,10 @@ da: show_relations: Vis relationer toggle_description: Vis eller skjul beskrivelsen af relationen update_description: Angiv eller opdater beskrivelsen af relationen - update_relation: Klik for at ændre den relationstypen + update_relation: Klik for at ændre relationstypen relation_labels: blocked: Blokeret af - blocks: Blokke + blocks: Blokerer child: Underordnet children: Underordnede duplicated: Dublet oprettet af @@ -779,7 +779,7 @@ da: required: Krævet af requires: Kræver relations: - empty: Ingen relationer findes + empty: Der findes ingen relationer remove: Fjern relation relations_autocomplete: parent_placeholder: Vælg ny overordnet, eller tryk på Esc for at annullere. @@ -818,12 +818,12 @@ da: focus_grab: Dette er et fokusanker for dialogbokse. Tryk på Skift+Tab for at gå tilbage til det element, der åbnede dialogboksen. filter_chip: remove: Fjern - text_are_you_sure: Sikker? + text_are_you_sure: Er du sikker? text_are_you_sure_to_cancel: Siden har ændringer, der ikke er gemt. Er du sikker på, at du vil kassere dem? text_data_lost: Alle indtastede data går tabt. text_query_destroy_confirmation: Er du sikker på, at du vil slette den valgte visning? text_user_wrote: "%{value} skrev:" - text_work_packages_destroy_confirmation: Er du sikker på, du vil slette de/den valgte arbejdspakke(r)? + text_work_packages_destroy_confirmation: Er du sikker på, at du vil slette de valgte arbejdspakker? time_entry: stop: Stop title: Tidsregistrering @@ -836,7 +836,7 @@ da: timer_already_stopped: Ingen aktiv tidtagning for denne arbejdspakke. Har du stoppet den i et andet vindue? tracking_time: Registrerer tid tl_toolbar: - outlines: Niveau i hieraki + outlines: Hierarkiniveau zooms: Zoomniveau toolbar: filter: Filter @@ -846,11 +846,11 @@ da: configure_view: Konfigurer visning delete: Slet display_hierarchy: Vis hierarki - display_sums: Vis sammentællinger + display_sums: Vis summer export: Eksportér group_by: Gruppér efter hide_hierarchy: Skjul hierarki - hide_sums: Skjul sammentællinger + hide_sums: Skjul summer page_settings: Omdøb visning save: Gem save_as: Gem som @@ -862,8 +862,8 @@ da: label_two_factor_authentication: To-faktor-godkendelse units: child_work_packages: - one: one child work package - other: "%{count} work package children" + one: én underordnet arbejdspakke + other: "%{count} underordnede arbejdspakker" day: one: 1 dag other: "%{count} dage" @@ -874,8 +874,8 @@ da: zero: 0 t hour_string: "%{hours} t" word: - one: 1 word - other: "%{count} words" + one: 1 ord + other: "%{count} ord" workPackage: one: arbejdspakke other: arbejdspakker @@ -886,26 +886,26 @@ da: list: Tabel timeline: Gantt watchers: - label_add: Tilføj tilsynsførende + label_add: Tilføj følgere label_discard: Kassér valg - label_error_loading: En fejl opstod under indlæsning af seere - label_loading: indlæser iagttagere... - label_search_watchers: Søg iagttagere - typeahead_placeholder: Søg efter mulige tilsynsførende + label_error_loading: Der opstod en fejl under indlæsning af følgerne + label_loading: indlæser følgere... + label_search_watchers: Søg efter følgere + typeahead_placeholder: Søg efter mulige følgere wiki_formatting: - code: Kildekode + code: Kode i linjen deleted: Slettet heading1: Overskrift 1 heading2: Overskrift 2 heading3: Overskrift 3 image: Billede italic: Kursiv - ordered_list: Sorteret liste - preformatted_text: Forudformatteret tekst + ordered_list: Nummereret liste + preformatted_text: Forudformateret tekst quote: Citer strong: Fed underline: Understreget - unordered_list: Usorteret liste + unordered_list: Punktopstilling unquote: Afslut citat wiki_link: Link til wiki-side work_packages: @@ -921,7 +921,7 @@ da: move: Skift projekt for valgte button_clear: Ryd comment_added: Kommentaren blev tilføjet. - comment_send_failed: En fejl opstod. Kunne ikke indsende kommentaren. + comment_send_failed: Der opstod en fejl. Kommentaren kunne ikke sendes. comment_updated: Kommentaren blev opdateret. confirm_edit_cancel: Er du sikker på, at du vil annullere redigeringen af arbejdspakken? create: @@ -943,11 +943,11 @@ da: summary: Opsummering description_enter_text: Indtast tekst description_filter: Filter - description_options_hide: Gem muligheder + description_options_hide: Skjul muligheder description_options_show: Vis muligheder duplicate: title: Duplicate work package - edit_attribute: "%{attribute}: Redigér" + edit_attribute: "%{attribute}: Rediger" faulty_query: description: Visningen er fejlbehæftet og kunne ikke behandles. title: Arbejdspakkerne kunne ikke indlæses. @@ -970,15 +970,15 @@ da: label_pagination: Klik her for at springe tabellen med arbejdspakker over og gå til sidenavigationen pagination: Gå til tabellens sidenavigation key_value: "%{key}: %{value}" - label_column_multiselect: 'Kombineret rullegardinfelt: Vælg med piletaster, bekræft valg med ''Enter'' slet med ''Backspace''' + label_column_multiselect: 'Kombineret rullemenu: Vælg med piletasterne, bekræft valget med Enter, og slet med Backspace' label_disable_multi_select: Slå multimarkeringer fra label_enable_multi_select: Tillad multimarkeringer label_filter_add: Tilføj filter label_filter_by_text: Filtrer efter tekst label_options: Muligheder limited_results: Der kan kun vises %{count} arbejdspakker i manuel sortering. Begræns resultaterne med filtre, eller skift til automatisk sortering. - message_error_during_bulk_delete: En fejl opstod under forsøg på at slette arbejdspakker. - message_successful_bulk_delete: Slettet arbejdspakker med succes. + message_error_during_bulk_delete: Der opstod en fejl under sletning af arbejdspakkerne. + message_successful_bulk_delete: Arbejdspakkerne er slettet. message_successful_show_in_fullscreen: Klik her for at åbne arbejdspakken i fuld skærm. message_view_spent_time: Vis anvendt tid for arbejdspakken message_work_package_read_only: Arbejdspakken er låst i denne status. Kun status kan ændres. @@ -1024,14 +1024,14 @@ da: workAlternative: Anslået tid property_groups: details: Detaljer - estimatesAndTime: Skøn & tid + estimatesAndTime: Estimater og tid other: Andet people: Personer query: click_to_edit_query_name: Klik for at redigere visningens titel. column_names: Kolonner confirm_edit_cancel: Er du sikker på, at du vil annullere redigeringen af visningens navn? Titlen nulstilles til den tidligere værdi. - display_sums: Vis totaler + display_sums: Vis summer errors: duplicate_query_title: Der findes allerede en visning med det navn. Vil du ændre det alligevel? not_found: Visningen findes ikke @@ -1040,7 +1040,7 @@ da: group: Gruppér efter group_by: Gruppér resultater efter group_by_disabled_by_hierarchy: Gruppering er slået fra, fordi hierarkitilstand er aktiv. - hide_column: Gem kolonne + hide_column: Skjul kolonne hierarchy_disabled_by_group_by: Hierarkitilstand er slået fra, fordi resultaterne er grupperet efter %{column}. insert_columns: Indsæt kolonner move_column_left: Flyt kolonne til venstre @@ -1076,12 +1076,12 @@ da: summary: Tabel med arbejdspakker som rækker og deres attributter som kolonner. text_inline_edit: De fleste celler i tabellen er knapper, der gør det muligt at redigere attributten direkte i tabellen. text_select_hint: Rullelister åbnes med 'ALT' og piletasterne. - text_sort_hint: Med linksne i tabeloverskrifterne kan du sortere, gruppere, omarrangere, fjerne og tilføje tabelkolonner. + text_sort_hint: Med linkene i tabeloverskrifterne kan du sortere, gruppere, flytte, fjerne og tilføje tabelkolonner. table_configuration: button: Konfigurer denne tabel med arbejdspakker choose_display_mode: Vis arbejdspakker som - columns_help_text: Brug indtastningsfeltet ovenfor for at tilføje kolonner til tabelvisningen. Du kan trække og slippe kolonnerne for at ændre rækkefølgen. - default: Forhåndsvalgt + columns_help_text: Brug indtastningsfeltet ovenfor til at tilføje kolonner til tabelvisningen. Du kan trække og slippe kolonnerne for at ændre rækkefølgen. + default: standard default_mode: Flad liste display_settings: Visningsindstillinger display_sums_hint: Vis summen af alle attributter, der kan summeres, i en række under tabellens resultater. @@ -1112,8 +1112,8 @@ da: files: Filer overview: Overblik project_attributes: Projektattributter - relations: Tilknytninger - watchers: Tilsynsførende + relations: Relationer + watchers: Følgere time_relative: days: dage months: måneder diff --git a/modules/avatars/config/locales/crowdin/da.yml b/modules/avatars/config/locales/crowdin/da.yml index 9044f4cf24af..334a61e8ac01 100644 --- a/modules/avatars/config/locales/crowdin/da.yml +++ b/modules/avatars/config/locales/crowdin/da.yml @@ -1,28 +1,28 @@ --- da: - are_you_sure_delete_avatar: Sikker på, at den personlige avatar skal slettes? - avatar_deleted: Avatar slettet. + are_you_sure_delete_avatar: Er du sikker på, at du vil slette din avatar? + avatar_deleted: Avataren er slettet. avatars: label_avatar: Avatar label_gravatar: Gravatar label_local_avatar: Tilpasset avatar settings: - enable_gravatars: Aktivér bruger-gravatarer + enable_gravatars: Aktivér Gravatar for brugere enable_local_avatars: Aktivér tilpassede avatarer - gravatar_default: Standard gravatar-billede - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. - empty_file_error: Upload et gyldigt billede (jpg, png, gif) + gravatar_default: Standardbillede fra Gravatar + text_avatar_gravatar_html: OpenProject bruger din Gravatar, hvis du har registreret en på %{gravatar_url}, ellers et standardbillede eller -ikon, hvis det findes. + text_avatar_local: Du kan også overføre en egen avatar, der tilsidesætter Gravataren, ved at klikke på billedet. Vi anbefaler et billede på 128 × 128 pixel. + text_avatar_local_only: Du kan overføre en egen avatar ved at klikke på billedet. Vi anbefaler et billede på 128 × 128 pixel. + empty_file_error: Overfør et gyldigt billede (jpg, png, gif) error_image_size: Billedet er for stort. error_image_upload: Fejl under lagring af billedet. label_avatar: Avatar label_avatar_plural: Avatarer label_choose_avatar: Vælg avatar fra fil label_current_avatar: Aktuel avatar - message_avatar_uploaded: Avatar skiftet. + message_avatar_uploaded: Avataren er ændret. plugin_openproject_avatars: - description: This plugin allows OpenProject users to upload a picture to be used as an avatar or use registered images from Gravatar. + description: Pluginnet lader OpenProject-brugere overføre et billede, der bruges som avatar, eller bruge registrerede billeder fra Gravatar. name: Avatarer - unable_to_delete_avatar: Avatar kunne ikke slettes. + unable_to_delete_avatar: Avataren kunne ikke slettes. wrong_file_format: Gyldige formater er jpg, png, gif diff --git a/modules/backlogs/config/locales/crowdin/da.yml b/modules/backlogs/config/locales/crowdin/da.yml index 484d6a6d65b2..a4e10edd0a4f 100644 --- a/modules/backlogs/config/locales/crowdin/da.yml +++ b/modules/backlogs/config/locales/crowdin/da.yml @@ -24,48 +24,48 @@ da: activerecord: attributes: project: - allow_multiple_active_sprints: Allow multiple active sprints - backlog_excluded_types: Excluded work package types - sprint_sharing: Sprint-deling - statuses_considered_closed: Statuses considered closed + allow_multiple_active_sprints: Tillad flere aktive sprints + backlog_excluded_types: Udeladte arbejdspakketyper + sprint_sharing: Deling af sprints + statuses_considered_closed: Statusser, der regnes som lukkede sprint: duration: Varighed finish_date: Slutdato - goal: Sprint-mål - name: Sprint-navn + goal: Sprintmål + name: Sprintnavn sharing: Deling statuses: active: Aktiv - completed: Færdiggjort + completed: Afsluttet in_planning: Under planlægning work_packages: Arbejdspakker sprint_goal: - text: Sprint mål + text: Sprintmål work_package: - backlog_bucket: Backlog bucket - backlog_inbox: Backlog inbox + backlog_bucket: Backlog-gruppe + backlog_inbox: Backlog-indbakke backlogs_work_package_type: Backlog-type position: Position sprint: Sprint story_points: Historiepunkter errors: messages: - cannot_start_while_receiving_shared_sprints: cannot be started while the project is receiving shared sprints. + cannot_start_while_receiving_shared_sprints: kan ikke startes, mens projektet modtager delte sprints. dates_required: Start- og slutdatoer er obligatoriske for at kunne starte sprinten. must_be_in_planning: skal være i planlægning for at starte. - only_one_active_sprint_allowed: kun én aktiv sprint tilladt pr. projekt. + only_one_active_sprint_allowed: der må kun være én aktiv sprint pr. projekt. models: project: attributes: allow_multiple_active_sprints: - locked_by_multiple_active_sprints: cannot be changed while multiple active sprints are running. - requires_no_sharing: can only be enabled when sprint sharing is set to 'Don't share'. + locked_by_multiple_active_sprints: kan ikke ændres, mens flere sprints er aktive. + requires_no_sharing: kan kun slås til, når deling af sprints er sat til 'Del ikke'. sprint_sharing: - active_or_borrowed_sprint_blocks_receiving: cannot be set to receive because the project has an active or borrowed sprint. Close or unassign the work packages first. - locked_by_multiple_active_sprints: cannot be changed while multiple active sprints are enabled. + active_or_borrowed_sprint_blocks_receiving: kan ikke sættes til at modtage, fordi projektet har en aktiv eller lånt sprint. Luk arbejdspakkerne, eller fjern dem fra sprinten først. + locked_by_multiple_active_sprints: kan ikke ændres, mens flere aktive sprints er slået til. share_all_projects_already_taken: kan ikke indstilles, da projektet "%{name}" allerede deler med alle projekter. share_all_projects_already_taken_anonymous: kan ikke indstilles, da et andet projekt allerede deler med alle projekter. - work_packages_still_linked_to_shared_sprints: cannot be changed because work packages are still linked to shared sprints. Unassign them first. + work_packages_still_linked_to_shared_sprints: kan ikke ændres, fordi arbejdspakker stadig er knyttet til delte sprints. Fjern dem fra sprintene først. receiving_sprints: modtager delte sprints. Egne sprints kan ikke oprettes. sprint: attributes: @@ -77,67 +77,67 @@ da: status: not_active: er ikke aktiv, så den kan ikke lukkes. sprint_goal: - project_already_has_goal: Har allerede et mål for dette sprint. + project_already_has_goal: har allerede et mål for denne sprint. work_package: attributes: backlog_bucket: backlog_bucket_from_another_project: skal tilhøre samme projekt som arbejdspakken. blocks_ids: - can_only_contain_work_packages_of_current_sprint: kan kun indeholde ID'er for arbejdsopgaver i den aktuelle sprint. + can_only_contain_work_packages_of_current_sprint: kan kun indeholde id'er for arbejdspakker i den aktuelle sprint. must_block_at_least_one_work_package: skal indeholde ID'et på mindst én billet. sprint: - not_assignable: is not assignable since it is either not shared with the project or already finished. - not_eligible_for_moving: ikke er en aktiv sprint i projektet indeholdende den sprint, som arbejdspakken flyttes ud af. + not_assignable: kan ikke tildeles, fordi den enten ikke er delt med projektet eller allerede er afsluttet. + not_eligible_for_moving: er ikke en aktiv sprint i det projekt, der ejer den sprint, som arbejdspakken flyttes ud af. version_id: - task_version_must_be_the_same_as_story_version: skal være identisk med hovedhistorieversionen. - backlog_bucket_xor_sprint: kan ikke tildeles til både en sprint og en backlog bucket. + task_version_must_be_the_same_as_story_version: skal være den samme som versionen for den overordnede story. + backlog_bucket_xor_sprint: kan ikke tildeles både en sprint og en backlog-gruppe. models: backlog_bucket: - one: Backlog bucket - other: Backlog buckets + one: Backlog-gruppe + other: Backlog-grupper sprint: one: Sprint other: Sprints sprint_goal: - one: Sprint goal - other: Sprint goals + one: Sprintmål + other: Sprintmål backlogs: add_existing_work_package_dialog_component: - title_without_container: Add existing work package + title_without_container: Tilføj eksisterende arbejdspakke administration_blankslate: - text: Vi er i gang med at redesigne Backlog-modulet. Admin-indstillinger for sprints og backlogs vil fremgå her i den nærmeste fremtid. Projektniveauindstillinger forbliver tilgængelige. - title: Backlog admin-indstillinger udvikler sig + text: Vi er ved at omlægge modulet Backlogs. Administrationsindstillinger for sprints og backlogs vises her inden længe. Indstillingerne på projektniveau er stadig tilgængelige. + title: Administrationsindstillingerne for backlogs er under udvikling backlog_component: - button_new_backlog_bucket: New backlog bucket + button_new_backlog_bucket: Ny backlog-gruppe backlog_filter_select_panel_component: label_backlog_bucket_filter: - one: Backlog bucket - other: Backlog buckets - zero: All backlog buckets + one: Backlog-gruppe + other: Backlog-grupper + zero: Alle backlog-grupper label_sprint_filter: one: Sprint other: Sprints - zero: All sprints - select_panel_title: Select items - blankslate_filtered_title: No work packages match the filter criteria. + zero: Alle sprints + select_panel_title: Vælg elementer + blankslate_filtered_title: Ingen arbejdspakker matcher filterkriterierne. bucket_component: action_menu: - add_existing_work_package: Add existing work package - add_new_work_package: Add new work package - delete_backlog_bucket: Delete backlog bucket - edit_backlog_bucket: Edit backlog bucket - blankslate_description: Drag items here to add them - blankslate_title: Backlog bucket is empty - drop_zone_label: Drop here to add this item - label_actions: Backlog bucket actions + add_existing_work_package: Tilføj eksisterende arbejdspakke + add_new_work_package: Tilføj ny arbejdspakke + delete_backlog_bucket: Slet backlog-gruppe + edit_backlog_bucket: Rediger backlog-gruppe + blankslate_description: Træk elementer hertil for at tilføje dem + blankslate_title: Backlog-gruppen er tom + drop_zone_label: Slip her for at tilføje elementet + label_actions: Handlinger for backlog-gruppen bucket_destroy_modal_component: - details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. - title: Delete backlog bucket? + details: Backlog-gruppen '%{name}' slettes, og alle arbejdspakker flyttes til backlog-indbakken. Ingen arbejdspakker slettes. + title: Vil du slette backlog-gruppen? burndown_chart: show: blankslate_description: Angiv start- og slutdato for sprinten for at generere et burndown-diagram. blankslate_title: Ingen burndown-data tilgængelige - excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. + excluded_work_package_types_caption: 'Vælg, hvilke arbejdspakketyper der skal skjules i backloggen. Elementer af de valgte typer vises ikke automatisk i backloggen, så den holder fokus på det arbejde, der betyder noget for dit team. Typer som epics eller milepæle, der styres på et højere niveau, kan fx skjules, så backloggen holder fokus på elementer, der kan handles på. ' finish_sprint_dialog_component: @@ -145,35 +145,35 @@ da: move_to_bottom_of_backlog: Flyt dem til bunden af backloggen move_to_sprint: Flyt dem til en anden sprint move_to_top_of_backlog: Flyt dem til toppen af backloggen - body: "%{message} Hvad skal der gøres med disse?" - button_complete_sprint: Færdiggør sprint + body: "%{message} Hvad vil du gøre med dem?" + button_complete_sprint: Afslut sprint legend: Handling for ufærdige arbejdspakker select_sprint_label: Vælg sprint - title: Der er igangværende arbejdsemner + title: Nogle elementer er stadig i gang inbox_component: action_menu: - add_existing_work_package: Add existing work package - add_new_work_package: Add new work package - blankslate_description: Open work packages that are not in a sprint or backlog bucket automatically appear here + add_existing_work_package: Tilføj eksisterende arbejdspakke + add_new_work_package: Tilføj ny arbejdspakke + blankslate_description: Åbne arbejdspakker, der ikke er i en sprint eller en backlog-gruppe, vises automatisk her blankslate_title: Backlog-indbakke er tom - drop_zone_label: Drop here to add this item - label_actions: Inbox actions + drop_zone_label: Slip her for at tilføje elementet + label_actions: Handlinger for indbakken show_more: one: Vis 1 emne mere other: Vis %{count} emner mere - title: Inbox + title: Indbakke index_subheader_component: - label_search_by_subject: Search work packages by subject + label_search_by_subject: Søg efter arbejdspakker på emne label_burndown_chart: Burndown-diagram label_is_done_status: Status %{status_name} betyder færdig label_sprint_board: Sprinttavle - label_sprint_report: Sprint report + label_sprint_report: Sprintrapport move_to_bucket_dialog_component: - title: Move to backlog bucket + title: Flyt til backlog-gruppe move_to_sprint_dialog_component: label_sprint: Sprint title: Flyt til sprint - multiple_active_sprints: Multiple active sprints + multiple_active_sprints: Flere aktive sprints points_label: one: point other: point @@ -182,50 +182,50 @@ da: rebuild: Genopbyg rebuild_positions: Genopbyg positioner remaining_hours: Resterende arbejde - sharing: Sprint sharing + sharing: Deling af sprints show_burndown_chart: Burndown-diagram sprint_component: action_menu: - add_existing_work_package: Add existing work package - add_new_work_package: Add new work package - edit_sprint: Edit sprint - blankslate_description: Ingen emner planlagt endnu. Træk emner hertil for at tilføje dem. + add_existing_work_package: Tilføj eksisterende arbejdspakke + add_new_work_package: Tilføj ny arbejdspakke + edit_sprint: Rediger sprint + blankslate_description: Der er endnu ikke planlagt noget. Træk elementer hertil for at tilføje dem. blankslate_title: "%{name} er tom" - drop_zone_label: Drop here to add this item - label_actions: Sprint actions - label_complete_sprint: Complete sprint + drop_zone_label: Slip her for at tilføje elementet + label_actions: Handlinger for sprinten + label_complete_sprint: Afslut sprint label_start_sprint: Start sprint - start_sprint_disabled_reason_active_sprint: Another sprint is already active. - start_sprint_disabled_reason_missing_dates: Start and finish dates are required in order to start the sprint. - start_sprint_disabled_reason_receiving_shared_sprints: This project's own sprints cannot be started while it is receiving shared sprints. - start_sprint_disabled_reason_shared_sprint: This sprint is from another project that doesn't support multiple active sprints. + start_sprint_disabled_reason_active_sprint: En anden sprint er allerede aktiv. + start_sprint_disabled_reason_missing_dates: Sprinten skal have en start- og slutdato, før den kan startes. + start_sprint_disabled_reason_receiving_shared_sprints: Projektets egne sprints kan ikke startes, mens projektet modtager delte sprints. + start_sprint_disabled_reason_shared_sprint: Sprinten kommer fra et andet projekt, der ikke understøtter flere aktive sprints. sprint_form: - goal_caption: The sprint goal is unique to this project and is not shared with other projects also using this sprint. - goal_for_this_project_label: "%{attribute} (for this project)" + goal_caption: Sprintmålet gælder kun dette projekt og deles ikke med andre projekter, der også bruger sprinten. + goal_for_this_project_label: "%{attribute} (for dette projekt)" sprint_form_component: - shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. - shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. + shared_sprint_info_banner: Det er en delt sprint. Ændringer slår igennem i alle projekter, der bruger den. + shared_sprint_warning_banner: Det er en delt sprint. Du har ikke de nødvendige tilladelser til at redigere den. sprint_reports: page_header_component: - breadcrumb: Report - title: "%{sprint} report" + breadcrumb: Rapport + title: Rapport for %{sprint} sprints: row_component: action_menu: - edit_sprint: Edit sprint - sprint_report: Sprint report + edit_sprint: Rediger sprint + sprint_report: Sprintrapport sprints_component: blankslate: - create_and_manage_description_html: For at begynde at planlægge en sprint, opret en her eller gå til %{settings_link} for at modtage sprints fra et andet projekt. - create_description_text: For at begynde at planlægge en sprint, opret en her. - manage_description_html: For at begynde at planlægge en sprint, gå til %{settings_link} for at modtage sprints fra et andet projekt. - no_actions_description_text: Endnu ingen sprints tilgængelige til dette projekt. - receive_and_manage_description_html: Dette projekt modtager sprints fra et andet projekt. Håndtér dette via %{settings_link}. - receive_description_text: Dette projekt modtager delte sprints fra et andet projekt, men ingen tilgængelige p.t. + create_and_manage_description_html: Opret en sprint her for at begynde planlægningen, eller gå til %{settings_link} for at modtage sprints fra et andet projekt. + create_description_text: Opret en sprint her for at begynde planlægningen. + manage_description_html: Gå til %{settings_link} for at modtage sprints fra et andet projekt og begynde planlægningen. + no_actions_description_text: Der er endnu ingen tilgængelige sprints i dette projekt. + receive_and_manage_description_html: Projektet modtager sprints fra et andet projekt. Det kan du ændre i %{settings_link}. + receive_description_text: Projektet modtager delte sprints fra et andet projekt, men der er ingen tilgængelige lige nu. settings_link_text: projektindstillinger - title: Ingen sprints til stede endnu - button_new_sprint: New sprint - statuses_considered_closed_caption: 'Choose the statuses that represent a closed or finished state in your workflow. These will be treated as the "Closed" state across reporting (e.g. burndown) and sprint planning. For example, statuses like Done, Resolved, or Won''t Fix may all represent a closed work item in your process. + title: Der er endnu ingen sprints + button_new_sprint: Ny sprint + statuses_considered_closed_caption: 'Vælg de statusser, der betyder lukket eller færdig i jeres arbejdsgang. De behandles som tilstanden "Lukket" i rapporter (fx burndown) og i planlægningen af sprints. Statusser som Udført, Løst eller Rettes ikke kan fx alle betyde et lukket element i jeres proces. ' story_points: @@ -234,109 +234,109 @@ da: types_and_statuses: Typer og statusser unassigned: Utildelt user_preference: - button_update_backlogs: Opdatér backlog-modul + button_update_backlogs: Opdater backlog-modulet header_backlogs: Backlog-modul work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard - copy_work_package_id: Copy work package ID - move_menu: Move to position - move_to_backlog_bucket: Move to backlog bucket - move_to_inbox: Move to backlog inbox - move_to_sprint: Move to sprint + copy_url_to_clipboard: Kopiér URL til udklipsholderen + copy_work_package_id: Kopiér arbejdspakkens id + move_menu: Flyt til placering + move_to_backlog_bucket: Flyt til backlog-gruppe + move_to_inbox: Flyt til backlog-indbakken + move_to_sprint: Flyt til sprint work_package_is_closed: Arbejdspakken er færdig, når work_packages: add_existing_dialog: - invalid_target: The target you are trying to add to is invalid. - target_not_found: The sprint or backlog you are trying to add to was not found. + invalid_target: Det sted, som du forsøger at tilføje til, er ugyldigt. + target_not_found: Den sprint eller backlog, som du forsøger at tilføje til, blev ikke fundet. move: - moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + moved_announcement: "%{label} er flyttet til %{list}, placering %{position} af %{total}" update_service: - invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' - missing_target: list_type or list_id must be present. + invalid_target_type: 'list_type skal være en af: backlog_bucket med et list_id, sprint med et list_id eller inbox uden list_id.' + missing_target: list_type eller list_id skal være angivet. burndown: - story_points: Historiepoint - story_points_ideal: Historiepoint (idéell) + story_points: Story points + story_points_ideal: Story points (ideelt) ee: features: - multiple_active_sprints: Multiple active sprints - sprint_sharing: Sprint sharing + multiple_active_sprints: Flere aktive sprints + sprint_sharing: Deling af sprints upsell: multiple_active_sprints: - description: Run multiple sprints in parallel for different teams in your project for more control and flexibility. + description: Kør flere sprints samtidig for forskellige teams i projektet for at få mere kontrol og fleksibilitet. sprint_sharing: - description: Share sprints across projects to align teams and coordinate work in scaled agile setups (SAFe). - label_all_sprints: All sprints + description: Del sprints på tværs af projekter for at samordne teams og koordinere arbejdet i skalerede agile opsætninger (SAFe). + label_all_sprints: Alle sprints label_backlog: Backlog - label_backlog_and_sprints: Backlog and sprints - label_backlog_bucket_edit: Redigér backlog bucket - label_backlog_bucket_new: Ny backlog bucket + label_backlog_and_sprints: Backlog og sprints + label_backlog_bucket_edit: Rediger backlog-gruppe + label_backlog_bucket_new: Ny backlog-gruppe label_backlogs: Backlogger label_burndown_chart: Burndown-diagram label_inbox: Indbakke label_points_burn_down: Ned label_points_burn_up: Op label_sprint_board: Sprinttavle - label_sprint_edit: Redigér sprint + label_sprint_edit: Rediger sprint label_sprint_new: Ny sprint - label_task_board: Opgaveoversigt + label_task_board: Opgavetavle notice_successful_finish: Sprinten blev afsluttet. notice_successful_start: Sprinten blev sat i gang. notice_unsuccessful_finish: Sprinten kunne ikke afsluttes. notice_unsuccessful_finish_with_reason: 'Sprinten kunne ikke afsluttes: %{reason}' notice_unsuccessful_start: Sprinten kunne ikke startes. notice_unsuccessful_start_with_reason: 'Sprinten kunne ikke startes: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: 'Arbejdspakken er flyttet til %{backlog}, men vises ikke, fordi dens type eller status er udeladt af backloggen. ' permission_create_sprints: Opret sprints - permission_manage_sprint_items: Håndtér sprint-emner - permission_select_backlog_types_and_statuses: Select backlog types and statuses - permission_select_backlog_types_and_statuses_explanation: 'Allows choosing which work package types to hide from the backlog. Also allows defining which statuses represent a closed or finished state in the project''s workflow. + permission_manage_sprint_items: Administrer elementer i sprints + permission_select_backlog_types_and_statuses: Vælg typer og statusser til backloggen + permission_select_backlog_types_and_statuses_explanation: 'Giver mulighed for at vælge, hvilke arbejdspakketyper der skal skjules i backloggen, og for at angive, hvilke statusser der betyder lukket eller færdig i projektets arbejdsgang. ' permission_share_sprint: Del sprint permission_start_complete_sprint: Start/afslut sprint permission_view_sprints: Vis sprints plugin_openproject_backlogs: - description: This module adds features enabling agile teams to work with OpenProject in Scrum projects. + description: Modulet tilføjer funktioner, så agile teams kan arbejde med OpenProject i Scrum-projekter. name: OpenProject Backlogs project_module_backlogs: Backlogger projects: copy: - backlog_buckets: Backlog buckets + backlog_buckets: Backlog-grupper sprints: Sprints settings: backlog_sharing: options: no_sharing: - caption: Sprints oprettes i dette projekt vil kun være tilgængelige og synlige for dette projekt. De vil heller ikke være synlige for underprojekter. + caption: Sprints, der oprettes i dette projekt, er kun tilgængelige og synlige i dette projekt. De er heller ikke synlige i underprojekter. label: Del ikke receive_shared: caption: Dette projekt kan kun bruge sprints delt af andre projekter. label: Modtag delte sprints warning: Dette projekt kan kun bruge sprints delt af andre projekter. Ubrugte sprints, tidligere oprettet i dette projekt, vil ikke længere være synlige. share_all_projects: - caption: Sprints oprettet i dette projekt vil være tilgængelige for alle projekter i denne instans. Vælges denne mulighed, vil den ikke længere være tilgængelig for andre projekter. - disabled_caption: Muligheden er ikke tilgængelig, da projektet "%{name}" p.t. deles med alle projekter, og kun ét projekt kan gøre dette. - disabled_caption_anonymous: Mulighed utilgængelig, da et andet projekt p.t. deler med alle projekter, og kun ét projekt kan gøre dette. + caption: Sprints, der oprettes i dette projekt, bliver tilgængelige for alle projekter i installationen. Når du vælger muligheden, er den ikke længere tilgængelig for andre projekter. + disabled_caption: Muligheden er ikke tilgængelig, fordi projektet "%{name}" allerede deler med alle projekter, og kun ét projekt kan gøre det. + disabled_caption_anonymous: Muligheden er ikke tilgængelig, fordi et andet projekt allerede deler med alle projekter, og kun ét projekt kan gøre det. label: Alle projekter share_subprojects: caption: Sprints oprettet i dette projekt vil være tilgængelige for alle underprojekter i det aktuelle projekt. - info: Deling af en sprint, deler navn, status samt start- og slutdato i alle projekter. Disse kan ikke ændres i projekter, som modtager og benytter disse sprints. + info: Når en sprint deles, deles navn, status samt start- og slutdato i alle projekter. De kan ikke ændres i projekter, der modtager og bruger sprintene. label: Underprojekter sprint_sharing: Del sprints backlogs: multiple_active_sprints: - description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. - heading: Number of active sprints + description: Som standard kan der kun være én aktiv sprint ad gangen pr. projekt. Du kan ændre det, så flere sprints kan være aktive samtidig i dette projekt. + heading: Antal aktive sprints multiple_active_sprints_component: - cannot_turn_off: Multiple sprints are currently active. To switch back to allow only one active sprint at a time, please first ensure that at most one sprint is active. - not_available_html: Multiple active sprints are not available when sprint sharing or receiving is enabled. + cannot_turn_off: Flere sprints er aktive lige nu. Sørg for, at højst én sprint er aktiv, før du skifter tilbage til kun én aktiv sprint ad gangen. + not_available_html: Flere aktive sprints er ikke tilgængeligt, når deling af sprints eller modtagelse er slået til. sharing_form_component: - disabled_due_to_multiple_active_sprints: Sprint sharing is not available when multiple active sprints are enabled. - sharing_description: This project can either share its own sprints, receive shared sprints or handle sprints independently (no sharing). - sharing_fallback_description: Lacking a corporate enterprise plan, the sharing options are limited to the project's own sprints. The currently active setting remains active. + disabled_due_to_multiple_active_sprints: Deling af sprints er ikke tilgængelig, når flere aktive sprints er slået til. + sharing_description: Projektet kan enten dele sine egne sprints, modtage delte sprints eller håndtere sprints selvstændigt (ingen deling). + sharing_fallback_description: Uden Corporate-abonnementet på Enterprise-udgaven er delingsmulighederne begrænset til projektets egne sprints. Den nuværende indstilling forbliver aktiv. query_fields: - backlog_inbox: Backlog inbox + backlog_inbox: Backlog-indbakke remaining_hours: resterende arbejde diff --git a/modules/bim/config/locales/crowdin/da.yml b/modules/bim/config/locales/crowdin/da.yml index a445a85f2ed2..f4be52de7e40 100644 --- a/modules/bim/config/locales/crowdin/da.yml +++ b/modules/bim/config/locales/crowdin/da.yml @@ -4,7 +4,7 @@ da: attributes: bim/bcf/issue: bcf_comment: BCF-kommentar - bim_snippet: BIM-uddrag + bim_snippet: BIM-kodestykke reference_links: Referencelinks stage: Fase status_id: Status @@ -39,19 +39,19 @@ da: invalid_ifc_file: Den angivne fil er ikke en gyldig IFC-fil. models: bim/bcf/comment: - one: BCF comment - other: BCF comments + one: BCF-kommentar + other: BCF-kommentarer bim/bcf/issue: - one: BCF issue - other: BCF issues + one: BCF-sag + other: BCF-sager bim/bcf/viewpoint: - one: BCF viewpoint - other: BCF viewpoints + one: BCF-synsvinkel + other: BCF-synsvinkler bim/ifc_models/ifc_model: - one: IFC model - other: IFC models + one: IFC-model + other: IFC-modeller attributes: - bcf_thumbnail: BCF øjebliksbillede + bcf_thumbnail: BCF-øjebliksbillede bcf: bcf_xml: export: Eksportér @@ -80,38 +80,38 @@ da: no_type_provided: Ingen type angivet non_members_found: Ikke-projektmedlemmer fundet num_issues_found: "%{x_bcf_issues} er indeholdt i BCF-XML-filen, deres detaljer er angivet nedenfor." - perform_description: Vil du importere eller opdatere de problemer, der er nævnt ovenfor? + perform_description: Vil du importere eller opdatere de sager, der er vist ovenfor? replace_with_system_user: Erstat dem med "System"-brugeren unknown_emails_found: Ukendte e-mailadresser fundet unknown_property: Ukendt egenskab - what_to_do: Hvad vil du lave? + what_to_do: Hvad vil du gøre? work_package_has_newer_changes: Forældet! Dette emne blev ikke opdateret, da de seneste ændringer på serveren var nyere end "ModifiedDate" for det importerede emne. Kommentarer til emnet blev dog importeret. import_canceled: BCF-XML-import annulleret. import_failed: 'Kan ikke importere BCF-fil: %{error}' import_failed_unsupported_bcf_version: 'Kunne ikke læse BCF- filen: BCF- versionen understøttes ikke. Kontroller, at versionen er mindst %{minimal_version} eller højere.' - import_successful: Importeret %{count} BCF-problemer + import_successful: "%{count} BCF-sager er importeret" import_title: Importér import_update_comment: "(Opdateret i BCF-import)" - type_not_active: Problemtypen er ikke aktiveret for dette projekt. + type_not_active: Typen er ikke aktiveret i dette projekt. xml_file: BCF XML-fil exceptions: file_invalid: BCF-fil ugyldig - issues: Problemer + issues: Sager label_bcf: BCF - label_bcf_issue_associated: BCF-problem forbundet med - label_imported_failed: Mislykket import af BCF-emner - label_imported_successfully: Importerede BCF-emner med succes + label_bcf_issue_associated: Tilknyttet BCF-sag + label_imported_failed: Mislykkede importer af BCF-sager + label_imported_successfully: Importerede BCF-sager new_badge: Ny - no_viewpoints: Ingen synspunkter + no_viewpoints: Ingen synsvinkler not_recommended: ikke anbefalet - recommended: Anbefalet + recommended: anbefalet x_bcf_issues: one: Et BCF- problem other: "%{count} BCF sager" - zero: Ingen BCF-problemer + zero: Ingen BCF-sager bim: - error_direct_upload_failed: Direkte upload mislykkedes. - error_direct_upload_file_too_large: IFC model is too large (maximum size is %{size} Bytes). + error_direct_upload_failed: Den direkte overførsel mislykkedes. + error_direct_upload_file_too_large: IFC-modellen er for stor (den maksimale størrelse er %{size} byte). label_bim: BIM export: format: @@ -125,21 +125,21 @@ da: conversion_status: completed: Udført error: Fejl - label: Bearbejder + label: Behandles? pending: Afventer - processing: Bearbejder + processing: Behandles flash_messages: - upload_successful: Uploaden lykkedes. Den vil nu blive behandlet og være klar til brug om et par minutter. + upload_successful: Overførslen lykkedes. Filen behandles nu og er klar til brug om et par minutter. label_default_ifc_models: Standard IFC-modeller label_edit_defaults: Rediger standarder label_ifc_models: IFC-modeller label_new_ifc_model: Ny IFC-model label_show_defaults: Vis standarder no_defaults_warning: - check_1: Tjek, at du har uploadet mindst én IFC-model. + check_1: Tjek, at du har overført mindst én IFC-model. check_2: Kontroller, at mindst én IFC-model er indstillet til "Standard". title: Ingen IFC-model blev indstillet som standard for dette projekt. - no_results: Der er ikke uploadet nogen IFC-modeller i dette projekt. + no_results: Der er ikke overført nogen IFC-modeller i dette projekt. processing_notice: processing_default: 'Følgende standard IFC-modeller er stadig under behandling og er derfor ikke tilgængelige endnu:' oauth: @@ -147,16 +147,16 @@ da: bcf_v2_1: Fuld adgang til BCF v2.1 API'en bcf_v2_1_text: Applikationen får fuld læse- og skriveadgang til OpenProject BCF API v2.1 for at udføre handlinger på dine vegne. permission_delete_bcf: Slet BCF sager - permission_manage_bcf: Import og administrer BCF-problemer + permission_manage_bcf: Importér og administrer BCF-sager permission_manage_bcf_explanation: | - Allows managing BCF issues, including bulk import and updates. - BCF import maps file metadata to project resources and can create or update work packages - and comments using author and timestamp values from the imported file, effectively acting on behalf of users. + Giver mulighed for at administrere BCF-sager, herunder masseimport og -opdateringer. + BCF-import knytter filens metadata til projektets ressourcer og kan oprette eller opdatere arbejdspakker + og kommentarer med forfatter og tidsstempel fra den importerede fil og handler dermed reelt på vegne af brugerne. permission_manage_ifc_models: Importer og administrer IFC-modeller - permission_view_ifc_models: Se IFC-modeller - permission_view_linked_issues: Vis BCF-problemer + permission_view_ifc_models: Vis IFC-modeller + permission_view_linked_issues: Vis BCF-sager plugin_openproject_bim: - description: This OpenProject plugin introduces BIM and BCF functionality. + description: OpenProject-pluginnet tilføjer funktioner til BIM og BCF. name: OpenProject BIM and BCF functionality project_module_bcf: BCF project_module_bim: BCF diff --git a/modules/boards/config/locales/crowdin/da.yml b/modules/boards/config/locales/crowdin/da.yml index 5b4bac995b11..0962fd4a4e7b 100644 --- a/modules/boards/config/locales/crowdin/da.yml +++ b/modules/boards/config/locales/crowdin/da.yml @@ -3,18 +3,18 @@ da: activerecord: models: boards/grid: - one: Board - other: Boards + one: Tavle + other: Tavler boards: board_type_attributes: assignee: Tildelt basic: Grundlæggende status: Kanban subproject: Underprojekt - subtasks: overordnet-underordnet + subtasks: Overordnet-underordnet version: Version board_type_descriptions: - assignee: 'Tavle med automatiserede kolonner baseret på tildelte brugere. Ideel til afsendelse af arbejdspakker. + assignee: 'Tavle med automatiske kolonner ud fra tildelte brugere. Velegnet til at fordele arbejdspakker. ' basic: 'Start fra bunden med en tom tavle. Tilføj manuelt kort og kolonner til denne tavle. @@ -23,13 +23,13 @@ da: status: 'Grundlæggende kanbantavle med kolonner til status som To Do, I gang, Udført. ' - subproject: 'Tavle med automatiserede kolonner til underprojekter. Træk arbejdspakker til andre lister opdaterer (under)projektet i overensstemmelse hermed. + subproject: 'Tavle med automatiske kolonner til underprojekter. Når du trækker arbejdspakker til andre lister, opdateres (under)projektet tilsvarende. ' - subtasks: 'Tavle med automatiserede kolonner til underelementer. Træk arbejdspakker til andre lister, opdaterer den overordnede i overensstemmelse hermed. + subtasks: 'Tavle med automatiske kolonner til underelementer. Når du trækker arbejdspakker til andre lister, opdateres den overordnede tilsvarende. ' - version: 'Tavle med automatiserede kolonner baseret på versionsattributten. Ideel til planlægning af produktudvikling. + version: 'Tavle med automatiske kolonner ud fra attributten Version. Velegnet til at planlægge produktudvikling. ' board_types: @@ -42,7 +42,7 @@ da: ee: upsell: board_view: - description: Vil du automatisere dine arbejdsgange med Tavler? Avancerede tavler er en Enterprise-tilføjelse. Opgrader venligst til en betalt plan. + description: Vil du automatisere dine arbejdsgange med tavler? Avancerede tavler er en tilføjelse til Enterprise-udgaven. Opgrader til et betalt abonnement. permission_manage_board_views: Administrer tavler permission_show_board_views: Vis tavler plugin_openproject_boards: diff --git a/modules/boards/config/locales/crowdin/js-da.yml b/modules/boards/config/locales/crowdin/js-da.yml index d4801a28f61f..cbebc5b96146 100644 --- a/modules/boards/config/locales/crowdin/js-da.yml +++ b/modules/boards/config/locales/crowdin/js-da.yml @@ -3,7 +3,7 @@ da: ee: upsell: board_view: - description: Vil du automatisere dine arbejdsgange med Tavler? Avancerede tavler er en Enterprise-tilføjelse. Opgrader venligst til en betalt plan. + description: Vil du automatisere dine arbejdsgange med tavler? Avancerede tavler er en tilføjelse til Enterprise-udgaven. Opgrader til et betalt abonnement. js: boards: add_card: Tilføj kort diff --git a/modules/budgets/config/locales/crowdin/da.yml b/modules/budgets/config/locales/crowdin/da.yml index 653b376e6adb..536b30656621 100644 --- a/modules/budgets/config/locales/crowdin/da.yml +++ b/modules/budgets/config/locales/crowdin/da.yml @@ -25,13 +25,13 @@ da: attributes: budget: author: Forfatter - available: Tillrådighed + available: Til rådighed base_amount: Basisbeløb budget: Planlagte budget_ratio: Forbrugt (ratio) description: Beskrivelse labor_budget: Planlagte lønomkostninger - labor_budget_items: Planned labor costs + labor_budget_items: Planlagte lønomkostninger material_budget: Planlagte enhedsomkostninger spent: Forbrugt status: Status @@ -44,17 +44,17 @@ da: labor_budget_item: attributes: principal: - not_a_member_of_budget_project: is not a member of the budget's project + not_a_member_of_budget_project: er ikke medlem af budgettets projekt models: budget: one: Budget - other: Budgets + other: Budgetter labor_budget_item: - one: Planned labor cost - other: Planned labor costs + one: Planlagt lønomkostning + other: Planlagte lønomkostninger material_budget_item: - one: Unit - other: Units + one: Enhed + other: Enheder activity: filter: budget: Budgetter @@ -64,28 +64,28 @@ da: widgets: budget_by_cost_type: blankslate: - description: Få overblik over budgetterne og omkostningerne for effektivt at følge projektets sundhedsstatus - heading: Start projektstyring + description: Få overblik over budgetter og omkostninger, så du nemt kan følge projektets tilstand + heading: Kom i gang med projektøkonomien blankslate_zero: description: Tilføj detaljer om det planlagte budget for at se data her heading: Budgetoplysninger mangler count_caption: - one: Data aggregated from %{count} budget - other: Data aggregated from %{count} budgets - zero: No budget data. + one: Data samlet fra %{count} budget + other: Data samlet fra %{count} budgetter + zero: Ingen budgetdata. count_caption_with_subitems: portfolio: - one: Data aggregated from %{count} budget included in this portfolio and its subitems. - other: Data aggregated from %{count} budgets included in this portfolio and its subitems. - zero: No budget data. + one: Data samlet fra %{count} budget, der indgår i denne portefølje og dens underelementer. + other: Data samlet fra %{count} budgetter, der indgår i denne portefølje og dens underelementer. + zero: Ingen budgetdata. program: - one: Data aggregated from %{count} budget included in this program and its subitems. - other: Data aggregated from %{count} budgets included in this program and its subitems. - zero: No budget data. + one: Data samlet fra %{count} budget, der indgår i dette program og dets underelementer. + other: Data samlet fra %{count} budgetter, der indgår i dette program og dets underelementer. + zero: Ingen budgetdata. project: - one: Data aggregated from %{count} budget included in this project and its subitems. - other: Data aggregated from %{count} budgets included in this project and its subitems. - zero: No budget data. + one: Data samlet fra %{count} budget, der indgår i dette projekt og dets underelementer. + other: Data samlet fra %{count} budgetter, der indgår i dette projekt og dets underelementer. + zero: Ingen budgetdata. title: Budget efter omkostningstype view_details: Vis budgetdetaljer budget_totals: @@ -108,23 +108,23 @@ da: help_click_to_edit: Klik her for at redigere. help_currency_format: Format for viste valutaværdier. %n erstattes med valutaværdien, %u erstattes med valutaenheden. help_override_rate: Angiv en værdi for at tilsidesætte standardsatsen. - label_budget_available: Tildelt budget + label_budget_available: Tilgængeligt budget label_budget_details: Detaljer om budgettet label_budget_id: 'Budget #%{id}' label_budget_new: Nyt budget - label_budget_planned: Estimeret budget + label_budget_planned: Planlagt budget label_budget_plural: Budgetter label_budget_spent: Forbrugt budget label_budget_spent_ratio: Andel forbrugt label_budget_totals: I alt label_deliverable: Budget label_example_placeholder: f.eks. %{decimal} - label_view_all_budgets: Se alle budgetter + label_view_all_budgets: Vis alle budgetter label_yes: Ja - notice_budget_conflict: Work packages must be of the same project. + notice_budget_conflict: Arbejdspakkerne skal høre til samme projekt. notice_no_budgets_available: Ingen tilgængelige budgetter. - permission_edit_budgets: Redigér budgetter - permission_view_budgets: Se budgetter + permission_edit_budgets: Rediger budgetter + permission_view_budgets: Vis budgetter plugin_budgets_engine: name: Budgetter project_module_budgets: Budgetter diff --git a/modules/costs/config/locales/crowdin/da.yml b/modules/costs/config/locales/crowdin/da.yml index 057fa34cc010..20f27075aa43 100644 --- a/modules/costs/config/locales/crowdin/da.yml +++ b/modules/costs/config/locales/crowdin/da.yml @@ -34,15 +34,15 @@ da: work_package: Arbejdspakke cost_type: default: Omkostningstype som standard - for_all_projects: For all projects - rates: Rates + for_all_projects: For alle projekter + rates: Satser unit: Enhedsnavn unit_plural: Pluralistisk enhedsnavn rate: rate: Sats time_entry: activity: Aktivivtet - comments: Kommentér + comments: Kommentar end_time: Sluttidspunkt entity: Logget til entity_gid: Logget til @@ -66,31 +66,31 @@ da: spent_units: Forbrugte enheder errors: messages: - cost_type_in_use_cannot_disable: cannot be disabled because costs have already been logged for it in this project. + cost_type_in_use_cannot_disable: kan ikke slås fra, fordi der allerede er registreret omkostninger for den i projektet. models: cost_types_project: attributes: project_ids: - blank: Please select a project. + blank: Vælg et projekt. time_entry: attributes: entity: - blank: Logged for can't be blank. - cannot_log_for_this_work_package: You don't have permissions to log time for this work package. + blank: Registreret for skal udfyldes. + cannot_log_for_this_work_package: Du har ikke tilladelse til at registrere tid på denne arbejdspakke. format: "%{message}" hours: - exceeds_user_working_hours: The logged hours cannot exceed the limit of %{limit} hours available on the user's working day. + exceeds_user_working_hours: De registrerede timer må ikke overstige grænsen på %{limit} timer, som brugeren har til rådighed på arbejdsdagen. format: "%{message}" - max_hours_per_day_exceeded: The logged hours cannot exceed the limit of %{limit} hours for a single day defined by the administrator. - max_hours_per_entry_exceeded: The logged hours cannot exceed the limit of %{limit} hours for a single time entry defined by the administrator. + max_hours_per_day_exceeded: De registrerede timer må ikke overstige administratorens grænse på %{limit} timer pr. dag. + max_hours_per_entry_exceeded: De registrerede timer må ikke overstige administratorens grænse på %{limit} timer pr. tidsregistrering. spent_on: format: "%{message}" - in_past_month: You can't plan time into a past month. Time entries can only be added, changed or deleted from %{date} onwards. - not_a_working_day: The selected day is a non-working day for this user. + in_past_month: Du kan ikke registrere tid i en tidligere måned. Tidsregistreringer kan kun tilføjes, ændres eller slettes fra %{date} og frem. + not_a_working_day: Den valgte dag er en arbejdsfri dag for brugeren. start_time: format: "%{message}" - invalid_time: Invalid time. The time must be between 00:00 and 23:59. - duplicate_ongoing: Another timer is already running. Only one timer can be active at the same time. + invalid_time: Ugyldigt tidspunkt. Tidspunktet skal være mellem 00:00 og 23:59. + duplicate_ongoing: En anden tidtagning kører allerede. Der kan kun være én aktiv tidtagning ad gangen. work_package: is_not_a_valid_target_for_cost_entries: 'Arbejdspakke #%{id} er ikke et gyldigt mål til omfordeling af omkostningsangivelser.' nullify_is_not_valid_for_cost_entries: Omkostningsangivelser kan ikke tildeles et projekt. @@ -99,20 +99,20 @@ da: one: Omkostningspostering other: Omkostningsposteringer cost_rate: - one: Cost rate - other: Cost rates + one: Omkostningssats + other: Omkostningssatser cost_type: one: Omkostningstype other: Omkostningstyper default_hourly_rate: - one: Default hourly rate - other: Default hourly rates + one: Standardtimesats + other: Standardtimesatser hourly_rate: - one: Hourly rate - other: Hourly rates + one: Timesats + other: Timesatser rate: - one: Rate - other: Rates + one: Sats + other: Satser time_entry: one: Tidspunkt other: Tidsangivelser @@ -120,8 +120,8 @@ da: one: Tidsregistrering af aktivitet other: Tidsregistrering af aktiviteter time_entry_custom_field: - one: Time entry custom field - other: Time entry custom fields + one: Brugerdefineret felt til tidsregistrering + other: Brugerdefinerede felter til tidsregistrering api_v3: errors: validation: @@ -135,19 +135,19 @@ da: hours: Timer units: Enheder valid_from: Gældende fra - button_add_activity: Aktivivtet + button_add_activity: Aktivitet button_add_rate: Tilføj sats button_add_time_entry: Tidsregistrering button_log_costs: Registrér enhedsomkostninger - button_log_time: Log + button_log_time: Registrer button_stop_timer: Stop stopur - button_update_limits: Update limits - button_update_start_finish_times: Update start and finish times + button_update_limits: Opdater grænser + button_update_start_finish_times: Opdater start- og sluttider caption_booked_on_project: Reservationer til projekt caption_default: Forhåndsvalgt caption_default_rate_history_for: Standardsatshistorik for %{user} caption_locked_on: Låst d. - caption_log_time_dialog: Tidsregistrering + caption_log_time_dialog: Registrer tid caption_materials: Enheder caption_rate_history: Satshistorik caption_rate_history_for: Satshistorik for %{user} @@ -158,46 +158,46 @@ da: cost_types: admin: columns: - active_projects: Active projects + active_projects: Aktive projekter cost_type_projects: for_all_projects_blank_slate: - description: Uncheck "For all projects" on the details tab to limit this cost type to specific projects. - heading: This cost type is enabled in all projects + description: Fjern markeringen i "For alle projekter" på fanen Detaljer for at begrænse omkostningstypen til bestemte projekter. + heading: Omkostningstypen er slået til i alle projekter no_projects: - description: Add projects so this cost type can be used in them. - heading: No projects assigned + description: Tilføj projekter, så omkostningstypen kan bruges i dem. + heading: Ingen projekter tildelt rates: - title: Rate history + title: Satshistorik errors: - no_cost_types_available: No cost types are available in this project. Please contact an administrator. + no_cost_types_available: Der er ingen tilgængelige omkostningstyper i projektet. Kontakt en administrator. settings: cost_types: - for_all_projects_hint: This cost type is enabled in all projects. - heading: Cost types - in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. - none_active: No cost types are currently active in this project. - time_and_costs: Time and costs + for_all_projects_hint: Omkostningstypen er slået til i alle projekter. + heading: Omkostningstyper + in_use_hint: Omkostningstypen kan ikke slås fra, fordi der allerede er registreret omkostninger for den i projektet. + none_active: Der er ingen aktive omkostningstyper i projektet i øjeblikket. + time_and_costs: Tid og omkostninger costs: widgets: actual_costs: blankslate: - action: Registrér tid - description: Få et overblik over omkostningernne og registreret tid for at monitorere prijektfremdriften. Sørg for, at arbejdspakkerne er knyttet til det korrekte budget. - heading: Begynd at spore tid og omkostninger + action: Registrer tid + description: Få overblik over omkostninger og registreret tid, så du kan følge projektets fremdrift. Sørg for, at arbejdspakkerne er knyttet til det rigtige budget. + heading: Begynd at registrere tid og omkostninger title: Faktiske omkostninger efter måned view_details: Vis faktiske omkostningsdetaljer description_costs_settings: Definer det ønskede format for omkostningerne i alle projekter. description_date_for_new_rate: Dato for ny sats - description_time_entry_restrictions: Define limits for when a user logs time. This applies to all projects. - description_time_settings: Time entries can have specific start and finish times, which can be made optional or mandatory. + description_time_entry_restrictions: Fastlæg grænser for, hvornår en bruger kan registrere tid. Det gælder alle projekter. + description_time_settings: Tidsregistreringer kan have bestemte start- og sluttider, som kan gøres valgfrie eller obligatoriske. ee: features: - time_entry_time_restrictions: Time entry restrictions + time_entry_time_restrictions: Begrænsninger for tidsregistrering upsell: time_entry_time_restrictions: - description: Improve your time tracking by allowing or enforcing precise start and finish times and by introducing limits on when and how much time can be logged by a project member. + description: Forbedr tidsregistreringen ved at tillade eller kræve præcise start- og sluttider og ved at sætte grænser for, hvornår og hvor meget tid et projektmedlem kan registrere. group_by_others: ikke i nogen gruppe - label_available_cost_types_projects: Available cost types projects + label_available_cost_types_projects: Projekter med tilgængelige omkostningstyper label_between: mellem label_cost: Omkostning label_cost_filter_add: Tilføj omkostningangivelsesfilter @@ -210,7 +210,7 @@ da: label_current_default_rate: Nuværende standardsats label_date_on: d. label_day: Dag - label_defaults_and_limits: Defaults and limits + label_defaults_and_limits: Standarder og grænser label_deleted_cost_types: Slettede omkostningstyper label_display_cost_entries: Vis enhedsomkostninger label_display_time_entries: Vis indberettede timer @@ -224,7 +224,7 @@ da: label_kind: Type label_less_or_equal: "<=" label_list: Liste - label_log_costs: Registrér enhedsomkostninger + label_log_costs: Registrer enhedsomkostninger label_month: Måned label_my_time_tracking: Min tidsregistrering label_new_time_entry_activity: Ny tidsregistreringsaktivitet @@ -244,11 +244,11 @@ da: label_show: Vis label_specific_day: Dag %{day} label_specific_month: Måned %{month} - label_start_and_finished: Start and finish times + label_start_and_finished: Start- og sluttider label_status_finished: Afsluttet label_time: Tidspunkt label_time_entry_activity_form_description: Ændringer i denne tidsregistreringsaktivitet vil blive afspejlet i alle projekter, hvor den er aktiveret. - label_time_entry_restrictions: Limits + label_time_entry_restrictions: Grænser label_timer_since: Startede %{time} label_today_capitalized: I dag label_units: Omkostningsenheder @@ -258,10 +258,10 @@ da: label_work_package_filter_add: Tilføj arbejdspakkefilter label_workweek: Arbejdsuge label_yes: Ja - notice_cost_logged_successfully: Enhedsomkostningerne er logget korrekt. - notice_different_time_zones: Denne bruger har en anden tidszone (%{tz}). Tiden vil blive logget ved hjælp af deres tidszone. + notice_cost_logged_successfully: Enhedsomkostningerne er registreret. + notice_different_time_zones: Brugeren har en anden tidszone (%{tz}). Tiden registreres i brugerens tidszone. notice_something_wrong: Noget gik galt. Forsøg venligst igen. - notice_successful_lock: Låst med succes. + notice_successful_lock: Låst. notice_successful_restore: Gendannet. notice_time_entry_delete_failed: 'Kunne ikke slette tidsregistreringen. Fejl: %{errors}' notice_time_entry_update_failed: 'Kunne ikke opdatere tidsregistreringen. Fejl: %{errors}' @@ -280,31 +280,31 @@ da: permission_view_own_time_entries: Se eget tidsforbrug placeholder_activity_select_work_package_first: Valg af arbejdspakke er påkrævet først plugin_costs: - description: This module adds features for planning and tracking costs of projects. - name: Time and costs + description: Modulet tilføjer funktioner til at planlægge og følge projekters omkostninger. + name: Tid og omkostninger project_module_costs: Tid og omkostninger setting_allow_tracking_start_and_end_times: Tillad start- og sluttider - setting_allow_tracking_start_and_end_times_caption: Enables entering start and finish times when logging time. + setting_allow_tracking_start_and_end_times_caption: Gør det muligt at angive start- og sluttider ved tidsregistrering. setting_costs_currency: Valuta setting_costs_currency_caption: Dette er valutaenheden. Det kan være en trebogstavs ISO-kode, såsom EUR, USD eller JPY, eller et symbol, såsom €, $ eller ¥. setting_costs_currency_format: Valutaformat - setting_costs_currency_format_prefix: Før tallet (f.eks. EUR 100) - setting_costs_currency_format_suffix: Efter tallet (f.eks. 100 EUR) + setting_costs_currency_format_prefix: Før tallet (fx EUR 100) + setting_costs_currency_format_suffix: Efter tallet (fx 100 EUR) setting_enforce_tracking_start_and_end_times: Kræv start- og sluttider - setting_enforce_tracking_start_and_end_times_caption: Makes entering start and finish times mandatory when logging time. + setting_enforce_tracking_start_and_end_times_caption: Gør det obligatorisk at angive start- og sluttider ved tidsregistrering. setting_enforce_without_allow: Det er ikke muligt at kræve start- og sluttider uden at tillade dem - setting_time_entries_limit_to_user_working_hours: Limit to the user's working hours - setting_time_entries_limit_to_user_working_hours_caption: Limits the total hours that can be logged per day to that user’s effective working hours. Users without defined working times will not be restricted. - setting_time_entries_max_hours_per_day: Maximum number of hours per day - setting_time_entries_max_hours_per_day_caption: Limits the total number of hours a user can log in a single day. A value of 0 means there are no restrictions. - setting_time_entries_max_hours_per_entry: Maximum number of hours per time entry - setting_time_entries_max_hours_per_entry_caption: Limits how many hours a single time entry can be. A value of 0 means there are no restrictions. - setting_time_entries_past_month_grace_days: Grace period for past months - setting_time_entries_past_month_grace_days_caption: Define the number of days a user has when a new month starts to log time entries for the past month. A value of 5 lets users log time for the previous month till the 5th of the current month. A value of 0 represents no grace period at all. - setting_time_entries_prohibit_logging_for_past_months: Do not allow logging for past months - setting_time_entries_prohibit_logging_for_past_months_caption: Restricts adding, changing and deleting time entries to the current month. Time that is logged in past months can no longer be modified. - setting_time_entries_prohibit_logging_on_non_working_days: Do not allow logging time on non-working days - setting_time_entries_prohibit_logging_on_non_working_days_caption: Users will not be able to log time on days that are defined as non-working either by an administrator or by individual users in their account settings. + setting_time_entries_limit_to_user_working_hours: Begræns til brugerens arbejdstid + setting_time_entries_limit_to_user_working_hours_caption: Begrænser det samlede antal timer, der kan registreres pr. dag, til brugerens faktiske arbejdstid. Brugere uden angivet arbejdstid begrænses ikke. + setting_time_entries_max_hours_per_day: Maksimalt antal timer pr. dag + setting_time_entries_max_hours_per_day_caption: Begrænser det samlede antal timer, en bruger kan registrere på én dag. Værdien 0 betyder ingen begrænsning. + setting_time_entries_max_hours_per_entry: Maksimalt antal timer pr. tidsregistrering + setting_time_entries_max_hours_per_entry_caption: Begrænser, hvor mange timer en enkelt tidsregistrering må være. Værdien 0 betyder ingen begrænsning. + setting_time_entries_past_month_grace_days: Frist for tidligere måneder + setting_time_entries_past_month_grace_days_caption: Angiv det antal dage, en bruger har efter starten af en ny måned til at registrere tid for den forrige måned. Med værdien 5 kan brugerne registrere tid for den forrige måned frem til den 5. i den aktuelle måned. Værdien 0 betyder ingen frist. + setting_time_entries_prohibit_logging_for_past_months: Tillad ikke registrering for tidligere måneder + setting_time_entries_prohibit_logging_for_past_months_caption: Begrænser tilføjelse, ændring og sletning af tidsregistreringer til den aktuelle måned. Tid, der er registreret i tidligere måneder, kan ikke længere ændres. + setting_time_entries_prohibit_logging_on_non_working_days: Tillad ikke registrering af tid på arbejdsfrie dage + setting_time_entries_prohibit_logging_on_non_working_days_caption: Brugerne kan ikke registrere tid på dage, som en administrator eller brugeren selv i kontoindstillingerne har angivet som arbejdsfrie. text_assign_time_and_cost_entries_to_project: Tildel indberettede timer og omkostninger til projektet text_destroy_cost_entries_question: "%{cost_entries} blev indberettet for de arbejdspakker, som du er ved at slette. Hvad ønsker du at gøre?" text_destroy_time_and_cost_entries: Slet indberettede timer og omkostninger diff --git a/modules/costs/config/locales/crowdin/js-da.yml b/modules/costs/config/locales/crowdin/js-da.yml index 36fbbd9c8171..263f580709bd 100644 --- a/modules/costs/config/locales/crowdin/js-da.yml +++ b/modules/costs/config/locales/crowdin/js-da.yml @@ -27,7 +27,7 @@ da: label_hours: timer myTimeTracking: noSpecificTime: Intet specifikt tidspunkt - text_are_you_sure: Sikker? + text_are_you_sure: Er du sikker? work_packages: properties: overallCosts: Samlede omkostninger diff --git a/modules/documents/config/locales/crowdin/da.yml b/modules/documents/config/locales/crowdin/da.yml index 5e5e0b6a6226..611eb7bb3d69 100644 --- a/modules/documents/config/locales/crowdin/da.yml +++ b/modules/documents/config/locales/crowdin/da.yml @@ -32,30 +32,30 @@ da: one_or_more_required: Kan ikke slette den sidste dokumenttype models: document: - one: Document - other: Documents + one: Dokument + other: Dokumenter document_type: - one: Document type - other: Document types + one: Dokumenttype + other: Dokumenttyper activity: filter: document: Dokumenter attributes: collaborative_editing_hocuspocus_url: URL til Hocuspocus-server - documents: Documents + documents: Dokumenter default_doc_category_tech: Teknisk dokumentation default_doc_category_user: Brugerdokumentation documents: active_editors: Aktive redaktører active_editors_count: - one: 1 active editor - other: "%{count} active editors" + one: 1 aktiv redaktør + other: "%{count} aktive redaktører" admin: collaboration_settings: banner: none_writable: Disse værdier konfigureres via miljøvariabler og kan ikke redigeres her. some_unwritable: Nogle værdier konfigureres via miljøvariabler og kan ikke redigeres her. - hocuspocus_server: Hokuspokus-server + hocuspocus_server: Hocuspocus-server hocuspocus_server_secret: caption: Indsæt den hemmelighed, der er leveret af Hocuspocus-serveren. label: Klienthemmelighed @@ -70,9 +70,9 @@ da: disable_text_collaboration_dialog: confirmation_checkbox_message: Jeg forstår, at jeg kan miste data permanent confirmation_message: |- - Alle eksisterende dokumenter kan blive utilgængelige. Gør venligst kun dette, hvis du er sikker på, at du vil deaktivere - realtidssamarbejde og BlockNote-editoren i denne instans. - heading: Deaktivér samarbejde i realtid? + Alle eksisterende dokumenter kan blive utilgængelige. Gør det kun, hvis du er sikker på, at du vil deaktivere + samarbejde i realtid og BlockNote-editoren i denne installation. + heading: Deaktiver samarbejde i realtid? success: Samarbejde i realtid er deaktiveret. title: Deaktiver samarbejde i realtid enable_text_collaboration: @@ -81,11 +81,11 @@ da: Alle nye dokumenter vil være baseret på en ny editor (BlockNote) og kræver en fungerende forbindelse til en Hocuspocus-server. heading: Samarbejde i realtid er ikke aktiveret - primary_action: Aktiver samarbejde i realtid + primary_action: Aktivér samarbejde i realtid success: Samarbejde i realtid er blevet aktiveret. button_add_type: Type delete_dialog: - confirmation_message_html: Dette vil slette dette dokument og alle vedhæftede filer permanent. Er du sikker på, at du vil gøre dette? + confirmation_message_html: Dokumentet og alle vedhæftede filer slettes permanent. Er du sikker på, at du vil gøre det? heading: Slet dette dokument? title: Slet dokument delete_document_type_dialog: @@ -93,8 +93,8 @@ da: heading: Kan ikke slette den sidste dokumenttype message: Der skal altid være mindst én dokumenttype konfigureret. Opret først en anden, hvis du vil slette denne. title: Kan ikke slette dokumenttype - confirmation_message: Typen "%{type_name}" er i øjeblikket ubrugt. Sletning af denne type vil ikke have nogen effekt på eksisterende dokumenter. - heading: Slette denne dokumenttype? + confirmation_message: Typen "%{type_name}" bruges ikke i øjeblikket. Det påvirker ikke eksisterende dokumenter at slette den. + heading: Vil du slette dokumenttypen? reassign_message: one: Typen "%{type_name}" bruges i øjeblikket i %{document_count} dokument. Vælg venligst hvilken type der skal angives dokumentet. other: Typen "%{type_name}" bruges i øjeblikket i %{document_count} dokumenter. Vælg venligst, hvilken type de skal overgå til. @@ -112,16 +112,16 @@ da: description: Der er ingen dokumenter i denne visning. Du kan klikke på knappen nedenfor for at tilføje et. heading: Der er ingen dokumenter endnu index_page: - label_legacy: Historie + label_legacy: Ældre name: Navn type: Type updated_at: Senest redigeret info_line: - connection_restored: Internetforbindelse reetableret. - currently_offline: Ingen internetforbindelse p.t. - label_attachment_author: Bilagsforfatter + connection_restored: Du er online igen. + currently_offline: Du er offline i øjeblikket. + label_attachment_author: Forfatter til vedhæftet fil label_categories: Kategorier - last_updated_at: Last saved %{time}. + last_updated_at: Senest gemt %{time}. menu: all: Alle dokumenter collaboration_settings: Samarbejde i realtid @@ -135,9 +135,9 @@ da: heading: Alle dokumenter show_edit_view: connection_error_notice: - action: Forsøg igen + action: Prøv igen description_server_unavailable: |- - Dokumentet kan ikke åbnes, da realtidstekst-samarbejdsserveren ikke kan nås. + Dokumentet kan ikke åbnes, fordi serveren til tekstsamarbejde i realtid ikke kan nås. Kontakt administratoren, hvis problemet fortsætter. tabs: Dokumentfaner subheader: @@ -160,6 +160,6 @@ da: permission_manage_documents: Håndter dokumenter permission_view_documents: Se dokumenter plugin_openproject_documents: - description: An OpenProject plugin to allow creation of documents in projects. + description: Et OpenProject-plugin til oprettelse af dokumenter i projekter. name: OpenProject Documents project_module_documents: Dokumenter diff --git a/modules/github_integration/config/locales/crowdin/da.yml b/modules/github_integration/config/locales/crowdin/da.yml index 909c2198a6aa..aa861eb28329 100644 --- a/modules/github_integration/config/locales/crowdin/da.yml +++ b/modules/github_integration/config/locales/crowdin/da.yml @@ -24,11 +24,11 @@ da: activerecord: models: deploy_status_check: - one: Deployment status check - other: Deployment status checks + one: Kontrol af udrulningsstatus + other: Kontroller af udrulningsstatus deploy_target: - one: Deployment target - other: Deployment targets + one: Udrulningsmål + other: Udrulningsmål github_check_run: one: GitHub check run other: GitHub check runs @@ -36,28 +36,28 @@ da: one: GitHub pull request other: GitHub pull requests github_user: - one: GitHub user - other: GitHub users + one: GitHub-bruger + other: GitHub-brugere attributes: additions_count: Antal tilføjelser changed_files_count: Ændrede filer comments_count: Antal kommentarer deletions_count: Antal sletninger github: GitHub-identifikator - github_app_owner_avatar_url: URL til Ejeravatar + github_app_owner_avatar_url: URL til ejerens avatar github_avatar_url: Avatar-URL - github_html_url: URL til pull-anmodning + github_html_url: URL til pull request github_login: GitHub-login github_updated_at: Opdateret host: Vært labels: Etiketter - repository: Repo - review_comments_count: Antal anmeldelseskommentarer + repository: Repository + review_comments_count: Antal kommentarer i review button_add_deploy_target: Tilføj udrulningsmål label_deploy_target: Udrulningsmål label_deploy_target_new: Nyt udrulningsmål label_deploy_target_plural: Udrulningsmål - label_github_comment_user: GitHub-initiator (actor) + label_github_comment_user: GitHub-aktør label_github_integration: GitHub-integration label_github_webhook_secret: Webhook-hemmelighed notice_deploy_target_created: Udrulningsmål oprettet @@ -65,7 +65,7 @@ da: permission_introspection: Læs kørende OpenProject-kerneversion og build SHA permission_show_github_content: Vis GitHub indhold plugin_openproject_github_integration: - description: Integrates OpenProject and GitHub for a better workflow + description: Integrerer OpenProject og GitHub for en bedre arbejdsgang name: OpenProject GitHub Integration project_module_github: GitHub text_deploy_target_api_key_info: 'En OpenProject [API-nøgle](docs_url) tilhørende en bruger med den globale introspektionstilladelse. @@ -74,13 +74,13 @@ da: text_deploy_target_type_info: 'Indtil videre understøttes kun OpenProject selv. ' - text_github_comment_user_info: 'Den OpenProject-bruger, hvis API-nøgle skal bruges til at godkende indgående webhook-anmodninger. Når indstillet, afvises anmodninger godkendt med anden brugers legitimationsoplysninger. Denne bruger sender også automatiserede kommentarer om udrulningsstatus på arbejdspakker. Standard er systembrugeren, når ikke indstillet. + text_github_comment_user_info: 'Den OpenProject-bruger, hvis API-nøgle skal bruges til at godkende indgående webhook-forespørgsler. Når den er angivet, afvises forespørgsler, der er godkendt med andre brugeres legitimationsoplysninger. Brugeren skriver også de automatiske kommentarer om udrulningsstatus på arbejdspakker. Er der ikke angivet nogen, bruges systembrugeren. ' - text_github_webhook_secret_info: 'Et hemmeligt token delt med GitHub, når webhook''en opsættes. Når indstillet, bekræfter OpenProject X-Hub-Signature-256-headeren på hver indgående anmodning og afviser payloads, som ikke matcher. Lad stå tom for at overspringe bekræftelsen (anbefales ikke!). + text_github_webhook_secret_info: 'Et hemmeligt token, der deles med GitHub, når webhooken sættes op. Når det er angivet, kontrollerer OpenProject headeren X-Hub-Signature-256 i hver indgående forespørgsel og afviser payloads, der ikke stemmer. Lad feltet stå tomt for at springe kontrollen over (anbefales ikke). ' - text_github_webhook_secret_missing_warning: 'Ingen webhook-hemmelighed opsat. Alle anmodning til GitHub webhook-endepunktet accepteres uden bekræftelse, hvilket kan tillade uautoriserede aktører at forfalske begivenheder. Det anbefales kraftigt at opsætte en hemmelighed. + text_github_webhook_secret_missing_warning: 'Der er ikke konfigureret nogen webhook-hemmelighed. Alle forespørgsler til GitHubs webhook-endepunkt accepteres uden kontrol, så uautoriserede aktører kan forfalske hændelser. Det anbefales kraftigt at angive en hemmelighed. ' - text_pull_request_deployed_to: "%{pr_link} deployed to %{deploy_target_link}" + text_pull_request_deployed_to: "%{pr_link} udrullet til %{deploy_target_link}" diff --git a/modules/gitlab_integration/config/locales/crowdin/da.yml b/modules/gitlab_integration/config/locales/crowdin/da.yml index 7fd626a3dbe8..3f4015768071 100644 --- a/modules/gitlab_integration/config/locales/crowdin/da.yml +++ b/modules/gitlab_integration/config/locales/crowdin/da.yml @@ -33,63 +33,63 @@ da: gitlab_issue: attributes: labels: - invalid_schema: 'skal være et række hashes med nøgler: color, title' + invalid_schema: 'skal være en liste af hashes med nøglerne: color, title' gitlab_merge_request: attributes: labels: - invalid_schema: 'skal være et række hashes med nøgler: color, title' + invalid_schema: 'skal være en liste af hashes med nøglerne: color, title' models: gitlab_issue: - one: GitLab issue - other: GitLab issues + one: GitLab-issue + other: GitLab-issues gitlab_merge_request: one: GitLab merge request other: GitLab merge requests gitlab_pipeline: - one: GitLab pipeline - other: GitLab pipelines + one: GitLab-pipeline + other: GitLab-pipelines gitlab_user: - one: GitLab user - other: GitLab users + one: GitLab-bruger + other: GitLab-brugere attributes: commit: Commit - gitlab: GitLab-identifikator + gitlab: GitLab-id gitlab_avatar_url: Avatar-URL gitlab_email: GitLab e-mail gitlab_html_url: GitLab HTML-URL - gitlab_merge_request: Fletteanmodning + gitlab_merge_request: Merge request gitlab_name: GitLab-navn - gitlab_updated_at: Opdateret pr. - gitlab_user_avatar_url: GitLab-avatar URL + gitlab_updated_at: Opdateret + gitlab_user_avatar_url: GitLab-avatar-URL gitlab_username: GitLab-brugernavn gitlab_integration: - issue_closed_referenced_comment: "**Problematik lukket:** Problematik %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) er blevet lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" - issue_opened_referenced_comment: "**Problematik åbnet:** Problematik %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) er blevet åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" - issue_reopened_referenced_comment: "**Emne Reopens:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) er blevet genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" - merge_request_closed_comment: "**MR lukket:** Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) er blevet lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" - merge_request_merged_comment: "**MR flettet:** Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) er blevet flettet af [%{gitlab_user}](%{gitlab_user_url}).\n" - merge_request_opened_comment: "**MR åbnet:** Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) er blevet åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" - merge_request_reopened_comment: "**MR genåbnet:** Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) er blevet genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" - note_commit_referenced_comment: "**Refereret i commit:** [%{gitlab_user}](%{gitlab_user_url}) refererede til denne WP i en Commit-note [%{commit_id}](%{commit_url}) på [%{repository}](%{repository_url}): %{commit_note}\n" - note_issue_commented_comment: "**Kommenteret i problematik:** [%{gitlab_user}](%{gitlab_user_url}) kommenterede denne WP i Problematik %{issue_number} [%{issue_title}](%{issue_url}) på [%{repository}](%{repository_url}): %{issue_note}\n" - note_issue_referenced_comment: "**Refereret i prohlematik:** [%{gitlab_user}](%{gitlab_user_url}) refererede denne WP i Problematik %{issue_number} [%{issue_title}](%{issue_url}) på [%{repository}](%{repository_url}): %{issue_note}\n" - note_mr_commented_comment: "**Kommenteret i MR:** [%{gitlab_user}](%{gitlab_user_url}) kommenterede denne WP i Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) på [%{repository}](%{repository_url}): %{mr_note}\n" - note_mr_referenced_comment: "**Refereret i MR:** [%{gitlab_user}](%{gitlab_user_url}) refererede til denne WP i Fletteanmodning %{mr_number} [%{mr_title}](%{mr_url}) på [%{repository}](%{repository_url}): %{mr_note}\n" - note_snippet_referenced_comment: "**Refereret i Snippet:** [%{gitlab_user}](%{gitlab_user_url}) refererede denn WP i Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) på [%{repository}](%{repository_url}): %{snippet_note}\n" - push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" - push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" - push_single_commit_comment_with_ref: "**Pushed i %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) kl. %{commit_timestamp}: %{commit_note}\n" - label_gitlab_actor: GitHub-initiator (actor) - label_gitlab_integration: GitLab-Integration + issue_closed_referenced_comment: "**Issue lukket:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_opened_referenced_comment: "**Issue åbnet:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_reopened_referenced_comment: "**Issue genåbnet:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_closed_comment: "**MR lukket:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_merged_comment: "**MR flettet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er flettet af [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_opened_comment: "**MR åbnet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_reopened_comment: "**MR genåbnet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" + note_commit_referenced_comment: "**Henvist til i commit:** [%{gitlab_user}](%{gitlab_user_url}) henviste til denne arbejdspakke i en commit-note [%{commit_id}](%{commit_url}) i [%{repository}](%{repository_url}): %{commit_note}\n" + note_issue_commented_comment: "**Kommenteret i issue:** [%{gitlab_user}](%{gitlab_user_url}) kommenterede denne arbejdspakke i issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}): %{issue_note}\n" + note_issue_referenced_comment: "**Henvist til i issue:** [%{gitlab_user}](%{gitlab_user_url}) henviste til denne arbejdspakke i issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}): %{issue_note}\n" + note_mr_commented_comment: "**Kommenteret i MR:** [%{gitlab_user}](%{gitlab_user_url}) kommenterede denne arbejdspakke i merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}): %{mr_note}\n" + note_mr_referenced_comment: "**Henvist til i MR:** [%{gitlab_user}](%{gitlab_user_url}) henviste til denne arbejdspakke i merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}): %{mr_note}\n" + note_snippet_referenced_comment: "**Henvist til i snippet:** [%{gitlab_user}](%{gitlab_user_url}) henviste til denne arbejdspakke i snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) i [%{repository}](%{repository_url}): %{snippet_note}\n" + push_multiple_commits_comment: "**Pushet i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushede flere commits [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" + push_single_commit_comment: "**Pushet i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushede [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" + push_single_commit_comment_with_ref: "**Pushet i %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushede [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" + label_gitlab_actor: GitLab-aktør + label_gitlab_integration: GitLab-integration label_gitlab_webhook_secret: Webhook-hemmelighed - permission_show_gitlab_content: Vis GitHub-indhold + permission_show_gitlab_content: Vis GitLab-indhold project_module_gitlab: GitLab - text_gitlab_actor_info: 'Den OpenProject-bruger, hvis API-nøgle skal bruges til at godkende indgående webhook-anmodninger. Når angivet, afvises anmodninger godkendt med anden brugers legitimationsoplysninger. Denne bruger sender også automatiserede kommentarer om arbejdspakker. Standard er systembrugeren, når ikke angivet. + text_gitlab_actor_info: 'Den OpenProject-bruger, hvis API-nøgle skal bruges til at godkende indgående webhook-forespørgsler. Når den er angivet, afvises forespørgsler, der er godkendt med andre brugeres legitimationsoplysninger. Brugeren skriver også de automatiske kommentarer på arbejdspakker. Er der ikke angivet nogen, bruges systembrugeren. ' - text_gitlab_webhook_secret_info: 'Et hemmeligt token delt med GitHub, når webhook''en opsættes. Når angivet, bekræfter OpenProject X-Hub-Signature-256-headeren på hver indgående anmodning og afviser payloads, som ikke matcher. Lad stå tom for at overspringe bekræftelsen (anbefales ikke!). + text_gitlab_webhook_secret_info: 'Et hemmeligt token, der deles med GitLab, når webhooken sættes op. Når det er angivet, kontrollerer OpenProject headeren X-Gitlab-Token i hver indgående forespørgsel og afviser payloads, der ikke stemmer. Lad feltet stå tomt for at springe kontrollen over (anbefales ikke). ' - text_gitlab_webhook_secret_missing_warning: 'Ingen webhook-hemmelighed opsat. Alle anmodning til GitHub webhook-endepunktet accepteres uden bekræftelse, hvilket kan tillade uautoriserede aktører at forfalske begivenheder. Det anbefales kraftigt at opsætte en hemmelighed. + text_gitlab_webhook_secret_missing_warning: 'Der er ikke konfigureret nogen webhook-hemmelighed. Alle forespørgsler til GitLabs webhook-endepunkt accepteres uden kontrol, så uautoriserede aktører kan forfalske hændelser. Det anbefales kraftigt at angive en hemmelighed. ' diff --git a/modules/gitlab_integration/config/locales/crowdin/js-da.yml b/modules/gitlab_integration/config/locales/crowdin/js-da.yml index 5c044fb703fb..9a3a05bdb4ec 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-da.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-da.yml @@ -29,23 +29,23 @@ da: title: Issues tab_header_mr: copy_menu: - description: Copy git snippets to clipboard - label: Git snippets + description: Kopiér Git-kodestykker til udklipsholderen + label: Git-kodestykker create_mr: - description: Create a Merge Request - label: Create MR + description: Opret en merge request + label: Opret MR git_actions: - branch_name: Branch name - cmd: Create branch with empty commit - commit_message: Commit message + branch_name: Navn på branch + cmd: Opret branch med tomt commit + commit_message: Commit-besked copy_error: "❌ Kopiering mislykkedes!" copy_success: "✅ Kopieret!" - title: Quick snippets for Git + title: Hurtige Git-kodestykker title: Merge requests tab_issue: - empty: There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue. + empty: Der er endnu ikke linket nogen issues. Link et eksisterende issue ved at skrive koden OP#%{wp_id} (eller PP#%{wp_id} for private links) i issuets titel eller beskrivelse, eller opret et nyt issue. tab_mrs: - empty: There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR. + empty: Der er endnu ikke linket nogen merge requests. Link en eksisterende MR ved at skrive koden OP#%{wp_id} (eller PP#%{wp_id} for private links) i MR'ens titel eller beskrivelse, eller opret en ny MR. updated_on: Opdateret den work_packages: tab_name: GitLab diff --git a/modules/grids/config/locales/crowdin/da.yml b/modules/grids/config/locales/crowdin/da.yml index 299b5b1ae1e7..cf049796ddf6 100644 --- a/modules/grids/config/locales/crowdin/da.yml +++ b/modules/grids/config/locales/crowdin/da.yml @@ -13,11 +13,11 @@ da: grids/grid: end_before_start: Slutværdien skal være større end startværdien. outside: er uden for gitteret. - overlaps: overlap. + overlaps: overlapper. models: grids/grid: - one: Grid - other: Grids + one: Gitter + other: Gitre grids/widget: one: Widget other: Widgets @@ -37,13 +37,13 @@ da: no_results: Intet nyt at rapportere. not_available: Denne widget er ikke tilgængelig. project_timeline: - footer_actions_label: See more details - gantt_link: Milestones Gantt - no_results_title: No project timeline content configured - sprints_link: Sprints overview - title: Project timeline - title_portfolio: Portfolio timeline - title_program: Program timeline + footer_actions_label: Se flere detaljer + gantt_link: Gantt-diagram over milepæle + no_results_title: Der er ikke konfigureret noget indhold til projektets tidslinje + sprints_link: Oversigt over sprints + title: Projektets tidslinje + title_portfolio: Porteføljens tidslinje + title_program: Programmets tidslinje subitems: button_text: Underpunkt no_results: Der er ingen synlige underordnede. diff --git a/modules/grids/config/locales/crowdin/js-da.yml b/modules/grids/config/locales/crowdin/js-da.yml index 969f5bb2cd7b..ba966a1fd333 100644 --- a/modules/grids/config/locales/crowdin/js-da.yml +++ b/modules/grids/config/locales/crowdin/js-da.yml @@ -2,73 +2,73 @@ da: js: grid: - add_widget: Add widget - configure: Configure widget + add_widget: Tilføj widget + configure: Konfigurer widget remove: Fjern widget - widget_menu_label: Show menu options for %{widgetName} widget + widget_menu_label: Vis menuen for widgetten %{widgetName} widgets: custom_text: title: Tilpasset tekst documents: - no_results: No documents yet. + no_results: Ingen dokumenter endnu. title: Dokumenter members: title: Medlemmer - missing_permission: You don't have the necessary permissions to view this widget. + missing_permission: Du har ikke de nødvendige tilladelser til at se widgetten. news: title: Nyheder - not_available: This widget is currently unavailable. + not_available: Widgetten er ikke tilgængelig i øjeblikket. project_description: - title: Description + title: Beskrivelse project_favorites: - no_results: You currently have no favorite projects. Add one or multiple projects as favorite through their overview or in a project list. - title: Favorite projects + no_results: Du har ingen favoritprojekter. Føj et eller flere projekter til favoritter fra deres oversigt eller fra en projektliste. + title: Favoritprojekter project_status: at_risk: I fare - discontinued: Discontinued + discontinued: Afsluttet i utide finished: Afsluttet not_set: Ikke angivet - not_started: Not started + not_started: Ikke startet off_track: Af sporet on_track: På sporet title: Status project_timeline: - accessible_date_range: "%{start} to %{end}" - accessible_gate: 'Phase gate %{name}: %{date}' - accessible_milestone: 'Milestone %{name}: %{date}' - accessible_phase: 'Phase %{name}: %{date}' + accessible_date_range: "%{start} til %{end}" + accessible_gate: 'Fase-gate %{name}: %{date}' + accessible_milestone: 'Milepæl %{name}: %{date}' + accessible_phase: 'Fase %{name}: %{date}' accessible_sprint: 'Sprint %{name}: %{date}. Status: %{status}' sprint_status: - active: Active - completed: Completed - in_planning: In planning - tooltip_type_gate: Phase gate - tooltip_type_milestone: Milestone - tooltip_type_phase: Phase + active: Aktiv + completed: Fuldført + in_planning: Under planlægning + tooltip_type_gate: Fase-gate + tooltip_type_milestone: Milepæl + tooltip_type_phase: Fase tooltip_type_sprint: Sprint subprojects: - title: Subitems + title: Underelementer time_entries_current_user: - displayed_days: 'Days displayed in the widget:' - title: My spent time + displayed_days: 'Dage, der vises i widgetten:' + title: Min anvendte tid time_entries_list: - no_results: No time entries for the last 7 days. - title: Spent time (last 7 days) + no_results: Ingen tidsregistreringer de seneste 7 dage. + title: Anvendt tid (seneste 7 dage) work_packages_accountable: - title: Work packages I am accountable for + title: Arbejdspakker, som jeg er ansvarlig for work_packages_assigned: - title: Mine tilknyttede arbejdspakker + title: Arbejdspakker, der er tildelt mig work_packages_calendar: title: Kalender work_packages_created: - title: Work packages created by me + title: Arbejdspakker, som jeg har oprettet work_packages_graph: - summary: "%{chartType} chart showing work packages which are %{description}." - title: Work packages graph + summary: "%{chartType} over arbejdspakker, der er %{description}." + title: Graf over arbejdspakker work_packages_overview: - placeholder: Click to edit ... - title: Work packages overview + placeholder: Klik for at redigere ... + title: Oversigt over arbejdspakker work_packages_table: - title: Work packages table + title: Tabel over arbejdspakker work_packages_watched: - title: Work packages watched by me + title: Arbejdspakker, som jeg følger diff --git a/modules/job_status/config/locales/crowdin/da.yml b/modules/job_status/config/locales/crowdin/da.yml index d10ceb44b42d..73f76c6cbe4e 100644 --- a/modules/job_status/config/locales/crowdin/da.yml +++ b/modules/job_status/config/locales/crowdin/da.yml @@ -3,24 +3,24 @@ da: activerecord: models: job_status/status: - one: Background job status - other: Background job statuses + one: Status for baggrundsjob + other: Statusser for baggrundsjob job_status_dialog: - click_to_download: Or [click here](download_url) to download. - download_starts: The download should start automatically. - errors: Something went wrong + click_to_download: Eller [klik her](download_url) for at hente. + download_starts: Hentningen bør starte automatisk. + errors: Der gik noget galt generic_messages: - cancelled: The job has been cancelled due to an error. - error: The job has failed to complete. - in_process: The job is currently being processed. - in_queue: The job has been queued and will be processed shortly. - not_found: This job could not be found. - success: The job completed successfully. - redirect: You are being redirected. - redirect_errors: Due to these errors, you will not be redirected automatically. - redirect_link: Please click here to continue. - title: Background job status - label_job_status_plural: Job statuses + cancelled: Jobbet er annulleret på grund af en fejl. + error: Jobbet blev ikke gennemført. + in_process: Jobbet behandles nu. + in_queue: Jobbet er sat i kø og behandles snart. + not_found: Jobbet blev ikke fundet. + success: Jobbet er gennemført. + redirect: Du sendes videre. + redirect_errors: På grund af fejlene sendes du ikke videre automatisk. + redirect_link: Klik her for at fortsætte. + title: Status for baggrundsjob + label_job_status_plural: Jobstatusser plugin_openproject_job_status: - description: Listing and status of background jobs. + description: Oversigt over og status for baggrundsjob. name: OpenProject Job status diff --git a/modules/meeting/config/locales/crowdin/da.seeders.yml b/modules/meeting/config/locales/crowdin/da.seeders.yml index 6ae6697b0730..ab245b784289 100644 --- a/modules/meeting/config/locales/crowdin/da.seeders.yml +++ b/modules/meeting/config/locales/crowdin/da.seeders.yml @@ -9,22 +9,22 @@ da: demo-project: meeting_series: item_0: - title: Weekly + title: Ugentligt meeting_agenda_items: item_0: - title: Good news - notes: What went well this week? + title: Gode nyheder + notes: Hvad gik godt i denne uge? item_1: - title: Team updates - notes: News and focused topics for the upcoming week. + title: Nyt fra teamet + notes: Nyheder og fokusemner for den kommende uge. item_2: - notes: "**Today's topic**: Organizing the open-source conference." + notes: "**Dagens emne**: Planlægning af open source-konferencen." item_3: - title: Review of quarterly goals - notes: Assessing the status and progress of the defined quarterly goals. + title: Gennemgang af kvartalsmål + notes: Vurdering af status og fremdrift for de fastlagte kvartalsmål. item_4: - title: Core values feedback - notes: Highlight employees who have lived the core values this week. + title: Tilbagemelding om kerneværdier + notes: Fremhæv medarbejdere, der har efterlevet kerneværdierne i denne uge. item_5: - title: General topics - notes: Solving or discussing topics together. + title: Generelle emner + notes: Løsning eller drøftelse af emner i fællesskab. diff --git a/modules/meeting/config/locales/crowdin/da.yml b/modules/meeting/config/locales/crowdin/da.yml index 447f329591a9..a36906f14dfc 100644 --- a/modules/meeting/config/locales/crowdin/da.yml +++ b/modules/meeting/config/locales/crowdin/da.yml @@ -25,7 +25,7 @@ da: attributes: meeting: duration: Varighed - end_time: Slut tid + end_time: Sluttidspunkt location: Placering notes: Kommentarer notify: Send notifikationer @@ -33,117 +33,117 @@ da: one: 1 deltager other: "%{count} deltagere" participants: Deltagere - participants_added: 'Participants added:' + participants_added: 'Deltagere tilføjet:' participants_attended: Tilsluttede participants_invited: Inviterede - participants_removed: 'Participants removed:' + participants_removed: 'Deltagere fjernet:' project: Projekt - recurrence_start_time: Scheduled start time - sharing: Sharing + recurrence_start_time: Planlagt starttidspunkt + sharing: Deling start_date: Dato start_time: Starttidspunkt start_time_hour: Starttidspunkt - template: Template - type: Meeting type + template: Skabelon + type: Mødetype meeting_agenda_item: author: Forfatter description: Kommentarer duration_in_minutes: Varighed item_type: Type - lock_version: Lock version + lock_version: Låseversion notes: Noter - position: Position - presenter: Presenter + position: Placering + presenter: Oplægsholder title: Titel meeting_outcome: - kind: Kind + kind: Art meeting_participant: - attended: Attended - invited: Invited - participation_status: Participation status + attended: Deltog + invited: Inviteret + participation_status: Svar på invitation meeting_section: - position: Position + position: Placering title: Titel recurring_meeting: - duration: Duration + duration: Varighed end_after: Møderækken slutter end_date: Slutdato frequency: Hyppighed interval: Interval iterations: Forekomster - location: Lokation - monthly_day: Day of month - monthly_ordinal: Position - monthly_weekday: Weekday - notify: Send notfikationer + location: Placering + monthly_day: Dag i måneden + monthly_ordinal: Placering + monthly_weekday: Ugedag + notify: Send notifikationer start_date: Starter - start_time: Start time - start_time_hour: Start time + start_time: Starttidspunkt + start_time_hour: Starttidspunkt time_zone: Tidszone title: Titel recurring_meeting_interim_response: - start_time: Start time + start_time: Starttidspunkt errors: messages: - invalid_time_format: 'is not a valid time. Required format: HH:MM' + invalid_time_format: 'er ikke et gyldigt klokkeslæt. Påkrævet format: TT:MM' models: meeting_agenda_item: - section_not_belong_to_meeting: Section does not belong to the same meeting. - user_invalid: is not a valid participant. + section_not_belong_to_meeting: Afsnittet hører ikke til det samme møde. + user_invalid: er ikke en gyldig deltager. meeting_participant: - user_invalid: is not a valid participant. + user_invalid: er ikke en gyldig deltager. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. - other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: Der er ét åbent møde i serien, som ikke er med i den nye tidsplan. Tilpas tidsplanen, så alle eksisterende møder er med. + other: Der er %{count} åbne møder i serien, som ikke er med i den nye tidsplan. Tilpas tidsplanen, så alle eksisterende møder er med. recurring_meeting_interim_response: - not_an_occurrence: is not a valid occurrence time for this recurring meeting + not_an_occurrence: er ikke et gyldigt tidspunkt for en forekomst af det tilbagevendende møde models: meeting: - one: One-time meeting - other: One-time meetings + one: Enkeltstående møde + other: Enkeltstående møder meeting_agenda_item: - one: Agenda item - other: Agenda items + one: Dagsordenspunkt + other: Dagsordenspunkter meeting_outcome: - one: Outcome - other: Outcomes + one: Resultat + other: Resultater meeting_participant: - one: Meeting participant - other: Meeting participants + one: Mødedeltager + other: Mødedeltagere meeting_section: - one: Section - other: Sections + one: Afsnit + other: Afsnit recurring_meeting: - one: Recurring meeting - other: Recurring meetings + one: Tilbagevendende møde + other: Tilbagevendende møder scheduled_meeting: - one: Scheduled meeting - other: Scheduled meetings + one: Planlagt møde + other: Planlagte møder token/ical_meeting: - one: iCal Meeting subscription - other: iCal Meeting subscriptions + one: iCal-abonnement på møder + other: iCal-abonnementer på møder activity: filter: meeting: Møder item: meeting_agenda_item: duration: - added: sæt til %{value} - added_html: sæt til %{value} + added: sat til %{value} + added_html: sat til %{value} removed: fjernet updated: ændret fra %{old_value} til %{value} updated_html: ændret fra %{old_value} til %{value} position: - updated: reordered + updated: flyttet work_package: updated: ændret fra %{old_value} til %{value} updated_html: ændret fra %{old_value} til %{value} - caption_meeting_template_select: Select a template to automatically copy its agenda items - caption_template_project_select: Please select the project in which to create this meeting template + caption_meeting_template_select: Vælg en skabelon for automatisk at kopiere dens dagsordenspunkter + caption_template_project_select: Vælg det projekt, mødeskabelonen skal oprettes i description_attended: tilsluttede - error_notification: Failed to send notification. + error_notification: Notifikationen kunne ikke sendes. error_notification_with_errors: 'Kunne ikke sende påmindelse. Følgende modtagere blev ikke nået: %{recipients}' events: meeting: Mødet er ændret @@ -152,603 +152,603 @@ da: meeting_agenda_opened: Mødedagsorden er påbegyndt meeting_minutes: Mødereferat er ændret meeting_minutes_created: Mødereferat er udfærdiget - label_add_work_package_to_meeting_dialog_button: Add to meeting - label_add_work_package_to_meeting_dialog_title: Select meeting - label_add_work_package_to_meeting_section_label: Section - label_added_as_outcome: Added as outcome - label_agenda_backlog: Agenda backlog - label_agenda_backlog_clear_title: Clear agenda backlog? - label_agenda_item_actions: Agenda items actions - label_agenda_item_add: Add agenda item + label_add_work_package_to_meeting_dialog_button: Føj til møde + label_add_work_package_to_meeting_dialog_title: Vælg møde + label_add_work_package_to_meeting_section_label: Afsnit + label_added_as_outcome: Tilføjet som resultat + label_agenda_backlog: Backlog for dagsorden + label_agenda_backlog_clear_title: Vil du rydde backloggen for dagsordenen? + label_agenda_item_actions: Handlinger for dagsordenspunkter + label_agenda_item_add: Tilføj dagsordenspunkt label_agenda_item_add_notes: Tilføj noter - label_agenda_item_add_outcome: Add outcome - label_agenda_item_convert_to_work_package: Convert to work package - label_agenda_item_deleted_wp: Deleted work package reference - label_agenda_item_duplicate: Duplicate - label_agenda_item_duplicate_in_next: Duplicate in next meeting - label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_add_outcome: Tilføj resultat + label_agenda_item_convert_to_work_package: Konvertér til arbejdspakke + label_agenda_item_deleted_wp: Henvisning til slettet arbejdspakke + label_agenda_item_duplicate: Dupliker + label_agenda_item_duplicate_in_next: Dupliker i næste møde + label_agenda_item_duplicate_in_next_title: Vil du duplikere i næste møde? label_agenda_item_move: Flyt label_agenda_item_move_down: Flyt ned - label_agenda_item_move_to_backlog: Move to backlog + label_agenda_item_move_to_backlog: Flyt til backlog label_agenda_item_move_to_bottom: Flyt til bunden - label_agenda_item_move_to_current_meeting: Move to current meeting - label_agenda_item_move_to_next: Move to next meeting - label_agenda_item_move_to_next_title: Move to next meeting? - label_agenda_item_move_to_section: Move to section + label_agenda_item_move_to_current_meeting: Flyt til det aktuelle møde + label_agenda_item_move_to_next: Flyt til næste møde + label_agenda_item_move_to_next_title: Vil du flytte til næste møde? + label_agenda_item_move_to_section: Flyt til afsnit label_agenda_item_move_to_top: Flyt til toppen label_agenda_item_move_up: Flyt op - label_agenda_item_remove_from_agenda: Remove from agenda - label_agenda_item_remove_from_backlog: Remove from backlog - label_agenda_item_undisclosed_wp: 'Work package #%{id} not visible' - label_agenda_item_work_package: Agenda item work package - label_agenda_item_work_package_add: Add work package - label_agenda_items: Agenda items - label_agenda_items_reordered: reordered - label_agenda_new_outcome: New outcome - label_agenda_outcome: Outcome - label_agenda_outcome_actions: Agenda outcome actions - label_agenda_outcome_delete: Remove outcome - label_agenda_outcome_edit: Edit outcome + label_agenda_item_remove_from_agenda: Fjern fra dagsordenen + label_agenda_item_remove_from_backlog: Fjern fra backlog + label_agenda_item_undisclosed_wp: 'Arbejdspakke #%{id} er ikke synlig' + label_agenda_item_work_package: Arbejdspakke for dagsordenspunkt + label_agenda_item_work_package_add: Tilføj arbejdspakke + label_agenda_items: Dagsordenspunkter + label_agenda_items_reordered: flyttet + label_agenda_new_outcome: Nyt resultat + label_agenda_outcome: Resultat + label_agenda_outcome_actions: Handlinger for resultat + label_agenda_outcome_delete: Fjern resultat + label_agenda_outcome_edit: Rediger resultat label_all_meetings: Alle møder - label_attended: Attended - label_attended_user: Attended user - label_backlog_clear: Clear backlog - label_backlog_clear_button: Clear all - label_created_by_me: Created by me - label_existing_work_package: Existing work package + label_attended: Deltog + label_attended_user: Bruger, der deltog + label_backlog_clear: Ryd backlog + label_backlog_clear_button: Ryd alle + label_created_by_me: Oprettet af mig + label_existing_work_package: Eksisterende arbejdspakke label_icalendar: Send iCalendar - label_icalendar_download: Download iCalendar event + label_icalendar_download: Hent iCalendar-begivenhed label_initial_meeting_details: Møde - label_invitations: Invitations - label_invited_user: Invited user - label_involvement: Involvement + label_invitations: Invitationer + label_invited_user: Inviteret bruger + label_involvement: Involvering label_meeting: Møde - label_meeting_actions: Meeting actions + label_meeting_actions: Handlinger for møde label_meeting_agenda: Dagsorden label_meeting_agenda_close: Afslut dagsorden og påbegynd referat label_meeting_close: Luk - label_meeting_close_action: Close meeting - label_meeting_create: Create meeting - label_meeting_create_from_template: Create meeting from template - label_meeting_created_by: Created by + label_meeting_close_action: Luk møde + label_meeting_create: Opret møde + label_meeting_create_from_template: Opret møde ud fra skabelon + label_meeting_created_by: Oprettet af label_meeting_date_and_time: Dato og tid label_meeting_date_time: Dato/tidspunkt - label_meeting_delete: Delete meeting - label_meeting_details: Meeting details - label_meeting_details_edit: Edit meeting details + label_meeting_delete: Slet møde + label_meeting_details: Mødedetaljer + label_meeting_details_edit: Rediger mødedetaljer label_meeting_diff: Uenigheder label_meeting_duplicate: Dupliker møde label_meeting_edit: Rediger møde - label_meeting_edit_title: Edit meeting title - label_meeting_empty_action: Add agenda item - label_meeting_in_progress_action: Start meeting + label_meeting_edit_title: Rediger mødets titel + label_meeting_empty_action: Tilføj dagsordenspunkt + label_meeting_in_progress_action: Start møde label_meeting_index_delete: Slet - label_meeting_index_later: Next week and later - label_meeting_index_this_week: Later this week - label_meeting_index_today: Today - label_meeting_index_tomorrow: Tomorrow - label_meeting_last_updated: Last updated + label_meeting_index_later: Næste uge og senere + label_meeting_index_this_week: Senere i denne uge + label_meeting_index_today: I dag + label_meeting_index_tomorrow: I morgen + label_meeting_last_updated: Senest opdateret label_meeting_minutes: Referat label_meeting_more: - one: There is one more meeting. - other: Der er %{count} møder. + one: Der er ét møde mere. + other: Der er %{count} møder mere. label_meeting_new: Nyt møde - label_meeting_new_dynamic: New one-time meeting - label_meeting_new_recurring: New recurring meeting + label_meeting_new_dynamic: Nyt enkeltstående møde + label_meeting_new_recurring: Nyt tilbagevendende møde label_meeting_open: Åbn - label_meeting_open_action: Open meeting - label_meeting_open_this_meeting: Åben dette møde + label_meeting_open_action: Åbn møde + label_meeting_open_this_meeting: Åbn dette møde label_meeting_plural: Møder - label_meeting_reload: Reload - label_meeting_reopen_action: Reopen meeting - label_meeting_selection_caption: It is only possible to add this work package to an upcoming or an ongoing meeting. - label_meeting_send_updates: Send email kalender invitation og opdateringer - label_meeting_send_updates_caption: Send out email invites to all participants of this meeting - label_meeting_series: Meeting series - label_meeting_series_details: Meeting series details - label_meeting_state: Meeting status - label_meeting_state_agenda_created: Agenda created - label_meeting_state_cancelled: Cancelled + label_meeting_reload: Genindlæs + label_meeting_reopen_action: Genåbn møde + label_meeting_selection_caption: Arbejdspakken kan kun føjes til et kommende eller igangværende møde. + label_meeting_send_updates: Send kalenderinvitation og opdateringer via e-mail + label_meeting_send_updates_caption: Send invitationer via e-mail til alle mødets deltagere + label_meeting_series: Mødeserie + label_meeting_series_details: Detaljer om mødeserien + label_meeting_state: Mødestatus + label_meeting_state_agenda_created: Dagsorden oprettet + label_meeting_state_cancelled: Aflyst label_meeting_state_closed: Lukket - label_meeting_state_draft: Draft + label_meeting_state_draft: Kladde label_meeting_state_in_progress: Igangværende - label_meeting_state_open: Åbn - label_meeting_state_planned: Planlagte - label_meeting_state_skipped: Skipped - label_meeting_template: Template - label_meeting_template_create: Create template - label_meeting_template_delete: Delete template - label_meeting_template_edit: Edit template - label_meeting_template_new: New template - label_meeting_template_sharing: Sharing - label_meeting_template_sharing_descendants: With subprojects - label_meeting_template_sharing_none: Only with this project - label_meeting_template_sharing_system: With all projects - label_meeting_templates: Templates + label_meeting_state_open: Åben + label_meeting_state_planned: Planlagt + label_meeting_state_skipped: Sprunget over + label_meeting_template: Skabelon + label_meeting_template_create: Opret skabelon + label_meeting_template_delete: Slet skabelon + label_meeting_template_edit: Rediger skabelon + label_meeting_template_new: Ny skabelon + label_meeting_template_sharing: Deling + label_meeting_template_sharing_descendants: Med underprojekter + label_meeting_template_sharing_none: Kun med dette projekt + label_meeting_template_sharing_system: Med alle projekter + label_meeting_templates: Skabeloner label_my_meetings: Mine møder label_notify: Send til vurdering - label_past_invitations: Past invitations - label_past_meetings: Past meetings - label_past_meetings_short: Past - label_recurring_filter: Recurring filter - label_recurring_meeting_cancel: Cancel this occurrence + label_past_invitations: Tidligere invitationer + label_past_meetings: Tidligere møder + label_past_meetings_short: Tidligere + label_recurring_filter: Filter for tilbagevendende + label_recurring_meeting_cancel: Aflys denne forekomst label_recurring_meeting_create: Åbn - label_recurring_meeting_delete: Delete occurrence - label_recurring_meeting_duplicate: Duplicate as a one-time meeting + label_recurring_meeting_delete: Slet forekomst + label_recurring_meeting_duplicate: Dupliker som enkeltstående møde label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). - other: There are %{count} more scheduled meetings (%{schedule}). + one: Der er ét planlagt møde mere (%{schedule}). + other: Der er %{count} planlagte møder mere (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. - other: There are %{count} more past meetings. - label_recurring_meeting_new: New recurring meeting - label_recurring_meeting_next_occurrence: Next occurrence - label_recurring_meeting_no_end_date: There are more scheduled meetings (%{schedule}). - label_recurring_meeting_part_of: Part of a meeting series - label_recurring_meeting_plural: Recurring meetings - label_recurring_meeting_restore: Restore this occurrence - label_recurring_meeting_schedule: Schedule - label_recurring_meeting_series_create: Create meeting series - label_recurring_meeting_series_delete: Delete meeting series - label_recurring_meeting_series_edit: Edit meeting series - label_recurring_meeting_series_end: End meeting series - label_recurring_meeting_series_end_now: End series now + one: Der er ét tidligere møde mere. + other: Der er %{count} tidligere møder mere. + label_recurring_meeting_new: Nyt tilbagevendende møde + label_recurring_meeting_next_occurrence: Næste forekomst + label_recurring_meeting_no_end_date: Der er flere planlagte møder (%{schedule}). + label_recurring_meeting_part_of: Del af en mødeserie + label_recurring_meeting_plural: Tilbagevendende møder + label_recurring_meeting_restore: Gendan denne forekomst + label_recurring_meeting_schedule: Tidsplan + label_recurring_meeting_series_create: Opret mødeserie + label_recurring_meeting_series_delete: Slet mødeserie + label_recurring_meeting_series_edit: Rediger mødeserie + label_recurring_meeting_series_end: Afslut mødeserie + label_recurring_meeting_series_end_now: Afslut serien nu label_recurring_meeting_show_more: Vis mere - label_recurring_meeting_view: View meeting series - label_section_rename: Rename section - label_section_selection_caption: Choose a particular section of the agenda or add it to the backlog. - label_series_backlog: Series backlog - label_series_backlog_clear_title: Clear series backlog? - label_start_date: Start dato - label_subscribe_icalendar: Subscribe to calendar - label_template: Template + label_recurring_meeting_view: Vis mødeserie + label_section_rename: Omdøb afsnit + label_section_selection_caption: Vælg et bestemt afsnit på dagsordenen, eller føj punktet til backloggen. + label_series_backlog: Backlog for serien + label_series_backlog_clear_title: Vil du rydde backloggen for serien? + label_start_date: Startdato + label_subscribe_icalendar: Abonner på kalender + label_template: Skabelon label_time_zone: Tidszone - label_upcoming_meetings: Upcoming meetings - label_upcoming_meetings_short: Upcoming + label_upcoming_meetings: Kommende møder + label_upcoming_meetings_short: Kommende label_version: Version - label_view_meeting: View meeting - label_view_meeting_series: View meeting series - label_write_outcome: Write outcome + label_view_meeting: Vis møde + label_view_meeting_series: Vis mødeserie + label_write_outcome: Skriv resultat meeting: attachments: - onetime_template: These attached files will be included in all future meetings using this template. - series_template: These attached files will be included in all future meetings in the series. - text: Attached files are available to all meeting participants. You can also drag and drop these into agenda item notes. + onetime_template: De vedhæftede filer kommer med i alle fremtidige møder, der bruger skabelonen. + series_template: De vedhæftede filer kommer med i alle fremtidige møder i serien. + text: Vedhæftede filer er tilgængelige for alle mødets deltagere. Du kan også trække dem ind i noterne til et dagsordenspunkt. blankslate: - desc: You can create a new meeting or change filter criteria - title: There are no meetings to display - copied: 'Copied from Meeting #%{id}' + desc: Du kan oprette et nyt møde eller ændre filterkriterierne + title: Der er ingen møder at vise + copied: 'Kopieret fra møde #%{id}' copy: - agenda: Copy agenda - agenda_items: Copy agenda items - agenda_text: Copy the agenda of the old meeting - attachments: Copy attachments - attachments_text: Copy over all attached files to the new meeting - participants: Copy list of participants - title: 'Copy meeting: %{title}' - to_clipboard: Copy link to clipboard + agenda: Kopiér dagsorden + agenda_items: Kopiér dagsordenspunkter + agenda_text: Kopiér dagsordenen fra det gamle møde + attachments: Kopiér vedhæftede filer + attachments_text: Kopiér alle vedhæftede filer til det nye møde + participants: Kopiér listen over deltagere + title: 'Kopiér møde: %{title}' + to_clipboard: Kopiér link til udklipsholderen delete_dialog: occurrence: - confirm_button: Cancel occurrence - confirmation_message_html: 'Any meeting information not in the template will be lost. Do you want to continue? + confirm_button: Aflys forekomst + confirmation_message_html: 'Oplysninger om mødet, som ikke står i skabelonen, går tabt. Vil du fortsætte? ' - heading: Cancel this meeting occurrence? - title: Cancel meeting occurrence + heading: Vil du aflyse denne forekomst af mødet? + title: Aflys forekomsten af mødet occurrence_past: - confirm_button: Delete occurrence - confirmation_message_html: 'This action is not reversible. Please proceed with caution. + confirm_button: Slet forekomst + confirmation_message_html: 'Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. ' - heading: Delete this occurrence? - title: Delete occurrence + heading: Vil du slette forekomsten? + title: Slet forekomst one_time: - confirmation_message_html: 'This action is not reversible. Please proceed with caution. + confirmation_message_html: 'Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. ' - heading: Delete this meeting? + heading: Vil du slette mødet? template: - confirmation_message_html: 'This action is not reversible. Please proceed with caution. Existing meetings that were created using this template will not be affected. + confirmation_message_html: 'Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. Eksisterende møder, der er oprettet ud fra skabelonen, påvirkes ikke. ' - heading: Delete this template? - title: Delete template - title: Delete meeting + heading: Vil du slette skabelonen? + title: Slet skabelon + title: Slet møde email: cancelled: - date_time: Scheduled date/time - header: 'Cancelled: Meeting ''%{title}''' - header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' - header_series: 'Cancelled: Meeting series ''%{title}''' - summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" - summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant - summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant + date_time: Planlagt dato/tidspunkt + header: 'Aflyst: Mødet ''%{title}''' + header_occurrence: 'Aflyst: Forekomsten af mødet ''%{title}''' + header_series: 'Aflyst: Mødeserien ''%{title}''' + summary: "'%{title}' er aflyst af %{actor}, eller du er fjernet som deltager" + summary_occurrence: En forekomst af '%{title}' er aflyst af %{actor}, eller du er fjernet som deltager + summary_series: Mødeserien '%{title}' er aflyst af %{actor}, eller du er fjernet som deltager ended: - header_series: 'Ended: Meeting series ''%{title}''' - summary_series: Meeting series '%{title}' has been ended by %{actor} + header_series: 'Afsluttet: Mødeserien ''%{title}''' + summary_series: Mødeserien '%{title}' er afsluttet af %{actor} invited: - summary: "%{actor} has sent you an invitation for the meeting '%{title}'" - open_meeting_link: Åben møde - open_my_meetings_link: Go to My meetings - send_emails: Email participants - send_invitation_emails: 'Send an email invitation immediately to the participants selected above. You can also do this manually at any time later. + summary: "%{actor} har sendt dig en invitation til mødet '%{title}'" + open_meeting_link: Åbn møde + open_my_meetings_link: Gå til Mine møder + send_emails: Send e-mail til deltagerne + send_invitation_emails: 'Send straks en invitation via e-mail til de deltagere, der er valgt ovenfor. Du kan også gøre det manuelt senere. ' - send_invitation_emails_structured: Send an email invitation immediately to all participants. You can also do this manually at any time later. + send_invitation_emails_structured: Send straks en invitation via e-mail til alle deltagere. Du kan også gøre det manuelt senere. series: - summary: "%{actor} has invited you to a new meeting series '%{title}'" - title: "[%{project_name}] Meeting series '%{title}'" + summary: "%{actor} har inviteret dig til en ny mødeserie '%{title}'" + title: "[%{project_name}] Mødeserien '%{title}'" series_updated: - new_schedule: New schedule - old_schedule: Old schedule - summary: Meeting series '%{title}' has been updated by %{actor} - title: "[%{project_name}] Meeting series '%{title}' has been updated" + new_schedule: Ny tidsplan + old_schedule: Gammel tidsplan + summary: Mødeserien '%{title}' er opdateret af %{actor} + title: "[%{project_name}] Mødeserien '%{title}' er opdateret" updated: - added_participants: Added - body: The meeting '%{title}' has been updated by %{actor}. - header: Meeting '%{title}' has been updated - new_date_time: New date/time - new_location: New location - new_title: New title - old_date_time: Old date/time - old_location: Old location - old_title: Old title - removed_participants: Removed - summary: Meeting '%{title}' has been updated by %{actor} + added_participants: Tilføjet + body: Mødet '%{title}' er opdateret af %{actor}. + header: Mødet '%{title}' er opdateret + new_date_time: Ny dato/tidspunkt + new_location: Ny placering + new_title: Ny titel + old_date_time: Gammel dato/tidspunkt + old_location: Gammel placering + old_title: Gammel titel + removed_participants: Fjernet + summary: Mødet '%{title}' er opdateret af %{actor} export: minutes: author: Forfatter date: Dato - footer_page_numbers: P. %{current_page} of %{total_pages} + footer_page_numbers: S. %{current_page} af %{total_pages} location: Placering time: Tidspunkt title: Referat - your_meeting_export: Meeting is being exported + your_meeting_export: Mødet eksporteres export_pdf_dialog: author: - caption: The author of the minutes will be displayed in the subtitle. + caption: Referatets forfatter vises i undertitlen. label: Forfatter - description: Generate a printable PDF file of this meeting at the current state. + description: Dan en PDF-fil af mødet, som det ser ud nu, til udskrivning. first_page_header_left: - caption: This text will appear on the first page at the left of the header. - label: First page header left + caption: Teksten vises til venstre i sidehovedet på første side. + label: Sidehoved til venstre på første side footer_text: - caption: This text will appear on every page at the center of the footer. - label: Footer text + caption: Teksten vises midt i sidefoden på hver side. + label: Tekst i sidefoden include_attachments: - caption: A list containing the filenames of attachments will be appended at the end. - label: Include list of attachments + caption: Der tilføjes en liste med filnavnene på de vedhæftede filer til sidst. + label: Medtag liste over vedhæftede filer include_backlog: - caption: Backlog elements are not normally considered part of a meeting occurrence but you can choose to include them. - label: Include backlog + caption: Punkter i backloggen regnes normalt ikke som en del af et møde, men du kan vælge at medtage dem. + label: Medtag backlog include_outcomes: - caption: If your agenda outcomes contain confidential information, you can choose to not include them in the export. - label: Include agenda outcomes + caption: Hvis resultaterne indeholder fortrolige oplysninger, kan du vælge ikke at medtage dem i eksporten. + label: Medtag resultater include_participants: - caption: A list of participants will be preset above the meeting agenda. - label: Include list of participants + caption: Der indsættes en liste over deltagere over mødets dagsorden. + label: Medtag liste over deltagere submit_button: Hent templates: default: - caption: The default template is suitable for most meetings and represent the current state. + caption: Standardskabelonen passer til de fleste møder og viser den nuværende tilstand. label: Forhåndsvalgt minutes: - caption: The minutes template is suitable for closed and archived meetings. + caption: Skabelonen til referat passer til lukkede og arkiverede møder. label: Referat - title: Export PDF + title: Eksportér PDF ical_response: - meeting_not_found: Meeting not found for the given UID. - update_failed: Could not update participation status. - label_export_pdf: Export PDF - label_mail_all_participants: Send email invite to participants + meeting_not_found: Der blev ikke fundet noget møde med det angivne UID. + update_failed: Svaret på invitationen kunne ikke opdateres. + label_export_pdf: Eksportér PDF + label_mail_all_participants: Send invitation via e-mail til deltagerne notifications: dialog: confirm_label: - disable: Disable email updates - enable: Enable email updates + disable: Deaktiver opdateringer via e-mail + enable: Aktivér opdateringer via e-mail message: - disable: If they already had an invite for this meeting, it might no longer be accurate. - enable: Once enabled, an email will be sent out immediately to all participants. + disable: Hvis deltagerne allerede har fået en invitation til mødet, er den måske ikke længere korrekt. + enable: Når funktionen er aktiveret, sendes der straks en e-mail til alle deltagere. title: - disable: Disable email calendar updates? - enable: Enable email calendar updates? - disabled: Participants will not receive email updates informing them of changes to the date, time or list of participants. - enabled: All participants will receive updated calendar invites informing them of changes to date, time or list of participants. + disable: Vil du deaktivere kalenderopdateringer via e-mail? + enable: Vil du aktivere kalenderopdateringer via e-mail? + disabled: Deltagerne får ikke opdateringer via e-mail om ændringer i dato, tidspunkt eller listen over deltagere. + enabled: Alle deltagere får opdaterede kalenderinvitationer om ændringer i dato, tidspunkt eller listen over deltagere. sidepanel: description: - change_via_template: To change this, edit the series template. - title: Email calendar updates + change_via_template: Rediger seriens skabelon for at ændre det. + title: Kalenderopdateringer via e-mail participants: blankslate: description: Der er ingen deltagere endnu. heading: Ingen deltagere label: - apply_to_upcoming_meetings: Apply these changes to all upcoming meetings in this series - attended: Attended - manage_participants: Manage participants - mark_all_as_attended: Mark all as attended - mark_as_attended: Mark as attended + apply_to_upcoming_meetings: Anvend ændringerne på alle kommende møder i serien + attended: Deltog + manage_participants: Administrer deltagere + mark_all_as_attended: Markér alle som deltaget + mark_as_attended: Markér som deltaget no_participants: Ingen deltagere participants: Deltagere - remove_participant: Fjerne deltager + remove_participant: Fjern deltager show_all: Vis alt text: - manage_participants: Search for and add project members as participants to this meeting. - search_for_members: Search for project members - template: These participants will be invited automatically to all future meetings as they are created. + manage_participants: Søg efter projektmedlemmer, og tilføj dem som deltagere i mødet. + search_for_members: Søg efter projektmedlemmer + template: Deltagerne inviteres automatisk til alle fremtidige møder, efterhånden som de oprettes. presentation_mode: - button_present: Present - current_item: Current item - exit: Exit presentation - next: Next - no_items: No agenda items - no_items_flash: There are no agenda items to present. - previous: Previous - title: Presentation Mode - total_items: "%{current} of %{total}" + button_present: Præsentér + current_item: Aktuelt punkt + exit: Afslut præsentation + next: Næste + no_items: Ingen dagsordenspunkter + no_items_flash: Der er ingen dagsordenspunkter at præsentere. + previous: Forrige + title: Præsentationstilstand + total_items: "%{current} af %{total}" types: - one_time: One-time - recurring: Recurring - recurring_text: Create meeting series with dynamic template for each occurrence. - structured_text: Organize your meeting as a dynamic list of agenda items, optionally linking them to a work package. - structured_text_copy: Copying a meeting will currently not copy the associated meeting agenda items, just the details + one_time: Enkeltstående + recurring: Tilbagevendende + recurring_text: Opret en mødeserie med en dynamisk skabelon for hver forekomst. + structured_text: Organiser mødet som en dynamisk liste over dagsordenspunkter, der eventuelt kan knyttes til en arbejdspakke. + structured_text_copy: Når et møde kopieres, kopieres de tilknyttede dagsordenspunkter i øjeblikket ikke, kun detaljerne widgets: blankslate: - description: Upcoming meetings you are participating in will appear here. - heading: No upcoming meetings - view_details: View all meetings + description: Kommende møder, som du deltager i, vises her. + heading: Ingen kommende møder + view_details: Vis alle møder meeting_participant: participation_status: - accepted: Accepted - declined: Declined - needs_action: No response - tentative: Maybe - unknown: Unknown + accepted: Accepteret + declined: Afvist + needs_action: Intet svar + tentative: Måske + unknown: Ukendt meeting_section: - delete_confirmation: Deleting the section will also delete all of its agenda items. Are you sure you want to do this? - empty_text: Drag items here or create a new one - placeholder_title: New section - untitled_title: Untitled section + delete_confirmation: Hvis du sletter afsnittet, slettes også alle dets dagsordenspunkter. Er du sikker på, at du vil gøre det? + empty_text: Træk punkter hertil, eller opret et nyt + placeholder_title: Nyt afsnit + untitled_title: Afsnit uden titel my: access_token: created_dialog: token/ical_meeting: - body: Treat the following URL as you would a password. Anyone who has access to it can view all your meetings. - title: An iCal meeting subscription token has been generated + body: Behandl URL'en nedenfor som en adgangskode. Alle med adgang til den kan se alle dine møder. + title: Der er dannet et token til iCal-abonnement på møder dialog: token/ical_meeting: - create_button: Create subscription - dialog_body: This token will generate an iCal subscription URL that lets you view all your meetings in an external calendar application. - dialog_title: New iCal subscription token for meetings - name_caption: You can name it after where you will use it, such as "My phone" or "Work computer". - name_label: Token name + create_button: Opret abonnement + dialog_body: Tokenet danner en URL til iCal-abonnement, så du kan se alle dine møder i et eksternt kalenderprogram. + dialog_title: Nyt token til iCal-abonnement på møder + name_caption: Du kan opkalde det efter, hvor du vil bruge det, fx "Min telefon" eller "Arbejdscomputer". + name_label: Tokennavn revocation: token/ical_meeting: - notice_failure: 'Failed to revoke iCalendar meeting subscription: %{error}' - notice_success: The iCalendar meeting subscription has been revoked successfully. + notice_failure: 'iCalendar-abonnementet på møder kunne ikke tilbagekaldes: %{error}' + notice_success: iCalendar-abonnementet på møder er tilbagekaldt. my_account: access_tokens: token/ical_meeting: - add_button: Subscribe to calendar - blank_description: You can create one using the button below. - blank_title: No iCalendar meeting token - disabled_text: iCalendar meeting subscriptions are not enabled by the administrator. Please contact your administrator to use this feature. - table_title: iCalendar meeting tokens - text_hint: iCalendar meeting tokens allow users to subscribe to all their meetings and view up-to-date meeting information in external clients. - title: iCalendar for meetings - notice_meeting_template_created: Template successfully created - notice_meeting_updated: This page has been updated by someone else. Reload to view changes. - notice_successful_notification: Email calendar update sent to all participants + add_button: Abonner på kalender + blank_description: Du kan oprette et med knappen nedenfor. + blank_title: Intet iCalendar-token til møder + disabled_text: iCalendar-abonnementer på møder er ikke aktiveret af administratoren. Kontakt din administrator for at bruge funktionen. + table_title: iCalendar-tokens til møder + text_hint: Med iCalendar-tokens til møder kan brugerne abonnere på alle deres møder og se aktuelle mødeoplysninger i eksterne programmer. + title: iCalendar til møder + notice_meeting_template_created: Skabelonen er oprettet + notice_meeting_updated: En anden har opdateret siden. Genindlæs for at se ændringerne. + notice_successful_notification: Kalenderopdatering via e-mail er sendt til alle deltagere notice_timezone_missing: Der er ikke sat en tidszone og systemet har valgt %{zone}. For at vælge din egen tidszone, klik venligst her. permission_create_meetings: Opret møder permission_delete_meetings: Slet møder permission_edit_meetings: Rediger møder - permission_manage_agendas: Håndter dagsordner - permission_manage_agendas_explanation: Allows creating, editing and removing agenda items - permission_manage_outcomes: Manage outcomes - permission_send_meeting_invites_and_outcomes: Send meeting invites and outcomes to participants + permission_manage_agendas: Administrer dagsordener + permission_manage_agendas_explanation: Giver mulighed for at oprette, redigere og fjerne dagsordenspunkter + permission_manage_outcomes: Administrer resultater + permission_send_meeting_invites_and_outcomes: Send mødeinvitationer og resultater til deltagerne permission_view_meetings: Se møder - placeholder_meeting_template_no_templates_for_project: No templates available for this project - placeholder_meeting_template_select_project_first: Select a project first - placeholder_section_select_meeting_first: Meeting selection is required first + placeholder_meeting_template_no_templates_for_project: Der er ingen tilgængelige skabeloner til projektet + placeholder_meeting_template_select_project_first: Vælg først et projekt + placeholder_section_select_meeting_first: Der skal først vælges et møde plugin_openproject_meeting: - description: This module adds functions to support project meetings to OpenProject. Meetings can be scheduled selecting invitees from the same project to take part in the meeting. An agenda can be created and sent to the invitees. After the meeting, attendees can be selected and minutes can be created based on the agenda. Finally, the minutes can be sent to all attendees and invitees. + description: Modulet tilføjer funktioner til projektmøder i OpenProject. Møder kan planlægges ved at vælge inviterede fra samme projekt. Der kan oprettes en dagsorden, som sendes til de inviterede. Efter mødet kan deltagerne registreres, og der kan skrives et referat ud fra dagsordenen. Til sidst kan referatet sendes til alle deltagere og inviterede. name: OpenProject Meeting project_module_meetings: Møder recurring_meeting: - actual_first_occurrence_mismatch_html: The first occurrence of this series will be %{first_occurrence} + actual_first_occurrence_mismatch_html: Seriens første forekomst bliver %{first_occurrence} caption: - ends_on: This results in a series ending on %{date} + ends_on: Det giver en serie, der slutter den %{date} occurrences: - one: This results in 1 upcoming occurrence - other: This results in %{count} upcoming occurrences - occurrences_capped: This results in more than %{count} upcoming occurrences - day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped + one: Det giver 1 kommende forekomst + other: Det giver %{count} kommende forekomster + occurrences_capped: Det giver mere end %{count} kommende forekomster + day_of_month_skipping_info: Måneder med færre end %{monthly_day} dage springes over delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Hvis du sletter %{title}, slettes også én forekomst i serien. Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. ' - other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. + other: 'Hvis du sletter %{title}, slettes alle %{count} forekomster i serien. Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. ' - zero: 'The meeting series %{title} does not have any meeting occurrences. The series will be deleted for everyone. Please proceed with caution. + zero: 'Mødeserien %{title} har ingen forekomster. Serien slettes for alle. Fortsæt med forsigtighed. ' - heading: Permanently delete this meeting series? - title: Delete meeting series + heading: Vil du slette mødeserien permanent? + title: Slet mødeserie end_after: - iterations: After a number of occurrences - never: Never - specific_date: After a specific date + iterations: Efter et antal forekomster + never: Aldrig + specific_date: Efter en bestemt dato end_series_dialog: - title: End meeting series + title: Afslut mødeserie ended_blankslate: - action: You can still view past occurrences or edit the meeting series to extend it. - message: 'This meeting series has come to an end. There are no upcoming meetings. ' - title: Meeting series ended + action: Du kan stadig se tidligere forekomster eller redigere mødeserien for at forlænge den. + message: 'Mødeserien er slut. Der er ingen kommende møder. ' + title: Mødeserien er slut frequency: - every_weekday: Every %{day_of_the_week} - monthly_day_of_month: Day of month - monthly_nth_weekday: Monthly on a weekday - working_days: Every working day + every_weekday: Hver %{day_of_the_week} + monthly_day_of_month: Dag i måneden + monthly_nth_weekday: Månedligt på en ugedag + working_days: Hver arbejdsdag x_daily: - one: Every day - other: Every %{count} days + one: Hver dag + other: Hver %{count}. dag x_monthly: - one: Every month - other: Every %{count} months + one: Hver måned + other: Hver %{count}. måned x_weekly: - one: Every week - other: Every %{count} weeks + one: Hver uge + other: Hver %{count}. uge in_words: - daily_interval: Every %{interval} days - frequency: "%{base} at %{time}" - full: "%{base} at %{time}, ends on %{end_date}" - full_past: "%{base} at %{time}, ended on %{end_date}" - monthly_day: Every month on the %{day} - monthly_day_interval: Every %{interval} months on the %{day} - monthly_nth_weekday: Every month on the %{ordinal} %{weekday} - monthly_nth_weekday_interval: Every %{interval} months on the %{ordinal} %{weekday} - never_ending: "%{base} at %{time}" - weekly: Every week on %{weekday} - weekly_interval: Every %{interval} weeks on %{weekday} - working_days: Every working day + daily_interval: Hver %{interval}. dag + frequency: "%{base} kl. %{time}" + full: "%{base} kl. %{time}, slutter den %{end_date}" + full_past: "%{base} kl. %{time}, sluttede den %{end_date}" + monthly_day: Hver måned den %{day} + monthly_day_interval: Hver %{interval}. måned den %{day} + monthly_nth_weekday: Hver måned den %{ordinal} %{weekday} + monthly_nth_weekday_interval: Hver %{interval}. måned den %{ordinal} %{weekday} + never_ending: "%{base} kl. %{time}" + weekly: Hver uge om %{weekday}en + weekly_interval: Hver %{interval}. uge om %{weekday}en + working_days: Hver arbejdsdag monthly: inflected_ordinal: - first: first - fourth: fourth - last: last - second: second - third: third + first: første + fourth: fjerde + last: sidste + second: anden + third: tredje ordinal_options: - first: First - fourth: Fourth - last: Last - second: Second - third: Third + first: Første + fourth: Fjerde + last: Sidste + second: Anden + third: Tredje occurrence: - error_no_next: There is no next occurrence for this meeting. - error_template_draft: The meeting series template is still in draft mode. - first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + error_no_next: Der er ingen næste forekomst af mødet. + error_template_draft: Mødeseriens skabelon er stadig en kladde. + first_already_exists: Mødeseriens første forekomst er allerede oprettet. + first_created: 'Det første møde er oprettet ud fra skabelonen. Alle fremtidige møder oprettes automatisk på tidspunktet for den foregående forekomst. ' - infoline: This meeting is part of a recurring meeting series. + infoline: Mødet er en del af en tilbagevendende mødeserie. open: blankslate: - desc: You can manually open a planned meeting by clicking on the 'Open' button below - title: No open meetings at the moment - subtitle: 'Open meetings have agendas that can be edited and show up in individual users’ ‘My meetings’ section. Changes to the meeting series template do not affect already-open meeting occurrences. + desc: Du kan åbne et planlagt møde manuelt ved at klikke på knappen 'Åbn' nedenfor + title: Ingen åbne møder lige nu + subtitle: 'Åbne møder har dagsordener, der kan redigeres, og vises under ‘Mine møder’ hos de enkelte brugere. Ændringer i mødeseriens skabelon påvirker ikke forekomster, der allerede er åbnet. ' - title: Agenda opened + title: Dagsorden åbnet planned: blankslate: - desc: 'There are no additional meetings planned in this series. To schedule additional meetings or extend the series, go to the template and edit meeting details to change the end date, frequency or interval. + desc: 'Der er ikke planlagt flere møder i serien. Hvis du vil planlægge flere møder eller forlænge serien, så gå til skabelonen, og rediger mødedetaljerne for at ændre slutdato, hyppighed eller interval. ' - title: No more planned meetings - subtitle: 'The following meetings are planned in the recurring meeting schedule but are not open yet. Every time a planned meeting starts, the next one will automatically be opened for you. You can also open planned meetings manually to import the template and start editing the agenda. + title: Ikke flere planlagte møder + subtitle: 'Følgende møder er planlagt i tidsplanen for det tilbagevendende møde, men er endnu ikke åbnet. Hver gang et planlagt møde begynder, åbnes det næste automatisk for dig. Du kan også åbne planlagte møder manuelt for at hente skabelonen og begynde at redigere dagsordenen. ' - title: Planlagte + title: Planlagt scheduled_delete_dialog: - confirm_button: Cancel occurrence - confirmation_message_html: 'Any meeting information not in the template will be lost. Do you want to continue? + confirm_button: Aflys forekomst + confirmation_message_html: 'Oplysninger om mødet, som ikke står i skabelonen, går tabt. Vil du fortsætte? ' - heading: Cancel this meeting occurrence? - title: Cancel meeting occurrence - starts: Starts + heading: Vil du aflyse denne forekomst af mødet? + title: Aflys forekomsten af mødet + starts: Starter template: - banner_html: 'You are currently editing a template of a meeting series: %{link}. Every new occurrence of a meeting in the series will use this template. Changes will not affect past or already-created meetings. + banner_html: 'Du redigerer en skabelon til en mødeserie: %{link}. Hver ny forekomst af et møde i serien bruger skabelonen. Ændringer påvirker ikke tidligere eller allerede oprettede møder. ' - blank_title: Your meeting series template is empty - button_finalize: Open first meeting - description: 'This template will be used whenever new meetings in the series get created. You can add agenda items, participants, and attachments to this template. + blank_title: Skabelonen til din mødeserie er tom + button_finalize: Åbn første møde + description: 'Skabelonen bruges, hver gang der oprettes nye møder i serien. Du kan føje dagsordenspunkter, deltagere og vedhæftede filer til skabelonen. ' - draft_banner_html: 'You are currently editing a template of a meeting series: %{link}. Every new occurrence of a meeting in the series will use this template. Changes will not affect past or already-created meetings. No email invites will be sent in this current draft mode until you open the first meeting. + draft_banner_html: 'Du redigerer en skabelon til en mødeserie: %{link}. Hver ny forekomst af et møde i serien bruger skabelonen. Ændringer påvirker ikke tidligere eller allerede oprettede møder. Der sendes ingen invitationer via e-mail, så længe skabelonen er en kladde, før du åbner det første møde. ' - label_edit_template: Edit template - label_view_template: View template + label_edit_template: Rediger skabelon + label_view_template: Vis skabelon time_zone_difference_banner: - description: 'The dates below are referencing the time zone of the meeting series (%{actual_zone}), not your local time zone (%{user_zone}). + description: 'Datoerne nedenfor følger mødeseriens tidszone (%{actual_zone}), ikke din lokale tidszone (%{user_zone}). ' - title: Time zone difference - text_add_work_package_to_meeting_description: A work package can be added to one or multiple meetings for discussion. Any notes concerning it are also visible here. - text_add_work_package_to_meeting_form: The work package will be added to the selected meeting or backlog as an agenda item. - text_agenda_backlog: 'This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda. + title: Forskel i tidszone + text_add_work_package_to_meeting_description: En arbejdspakke kan føjes til et eller flere møder og drøftes dér. Alle noter om den vises også her. + text_add_work_package_to_meeting_form: Arbejdspakken føjes til det valgte møde eller backloggen som et dagsordenspunkt. + text_agenda_backlog: 'Backloggen hører kun til dette enkeltstående møde. Du kan trække punkter ind og ud for at føje dem til eller fjerne dem fra mødets dagsorden. ' - text_agenda_backlog_clear_description: 'Are you sure you want to remove all items currently in the agenda backlog? This action is not reversible. + text_agenda_backlog_clear_description: 'Er du sikker på, at du vil fjerne alle punkter, der står i backloggen for dagsordenen? Handlingen kan ikke fortrydes. ' - text_agenda_item_dialog_skipping_cancelled_many: "%{count} cancelled meetings" - text_agenda_item_dialog_skipping_cancelled_one: cancelled meeting on %{date} - text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" - text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} - text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. - text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} - text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. - text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} - text_agenda_item_no_available_occurrence: No upcoming occurrences are available. - text_agenda_item_no_notes: No notes provided - text_agenda_item_not_editable_anymore: This agenda item is not editable anymore. - text_agenda_item_title: Agenda item "%{title}" - text_agenda_work_package_deleted: Agenda item for deleted work package - text_backlog_clear_error: One or more errors occurred while trying to clear the backlog. - text_deleted_agenda_item: Deleted agenda item - text_duration_in_hours: Duration in hours - text_email_updates_enabled: Email calendar updates are enabled. All participants will receive updated invites via email when you make changes. - text_email_updates_muted: Email calendar updates are muted. Participants will not receive updated invites via email when you make changes. - text_exit_draft_mode_dialog_subtitle: You cannot return to draft mode once you schedule a meeting. - text_exit_draft_mode_dialog_template_subtitle: You cannot return to draft mode after this. - text_exit_draft_mode_dialog_template_title: Open the first occurrence of this meeting series? - text_exit_draft_mode_dialog_title: Open this meeting and send invites? + text_agenda_item_dialog_skipping_cancelled_many: "%{count} aflyste møder" + text_agenda_item_dialog_skipping_cancelled_one: aflyst møde den %{date} + text_agenda_item_dialog_skipping_closed_many: "%{count} lukkede møder" + text_agenda_item_dialog_skipping_closed_one: lukket møde den %{date} + text_agenda_item_dialog_skipping_note: 'Bemærk: Springer %{details} over.' + text_agenda_item_duplicate_in_next_meeting: Er du sikker på, at du vil føje en kopi af dagsordenspunktet til næste møde den %{date} kl. %{time}? Resultater duplikeres ikke. + text_agenda_item_duplicated_in_next_meeting: Dagsordenspunktet er duplikeret i næste møde den %{date} + text_agenda_item_move_next_meeting: Punktet flyttes til næste møde den %{date} kl. %{time}. + text_agenda_item_moved_to_next_meeting: Dagsordenspunktet er flyttet til næste møde den %{date} + text_agenda_item_no_available_occurrence: Der er ingen kommende forekomster. + text_agenda_item_no_notes: Ingen noter + text_agenda_item_not_editable_anymore: Dagsordenspunktet kan ikke længere redigeres. + text_agenda_item_title: Dagsordenspunkt "%{title}" + text_agenda_work_package_deleted: Dagsordenspunkt for slettet arbejdspakke + text_backlog_clear_error: Der opstod en eller flere fejl under rydning af backloggen. + text_deleted_agenda_item: Slettet dagsordenspunkt + text_duration_in_hours: Varighed i timer + text_email_updates_enabled: Kalenderopdateringer via e-mail er slået til. Alle deltagere får opdaterede invitationer via e-mail, når du laver ændringer. + text_email_updates_muted: Kalenderopdateringer via e-mail er slået fra. Deltagerne får ikke opdaterede invitationer via e-mail, når du laver ændringer. + text_exit_draft_mode_dialog_subtitle: Du kan ikke vende tilbage til kladdetilstand, når du har planlagt et møde. + text_exit_draft_mode_dialog_template_subtitle: Du kan ikke vende tilbage til kladdetilstand bagefter. + text_exit_draft_mode_dialog_template_title: Vil du åbne mødeseriens første forekomst? + text_exit_draft_mode_dialog_title: Vil du åbne mødet og sende invitationer? text_in_hours: i timer text_meeting_agenda_for_meeting: dagsorden for mødet "%{meeting}" text_meeting_agenda_open_are_you_sure: Dette vil overskrive alle ændringer i minutterne! Vil du fortsætte? - text_meeting_closed_description: This meeting is closed. You cannot add/remove agenda items anymore. - text_meeting_closed_dropdown_description: This meeting is closed. You cannot modify agenda items or outcomes anymore. - text_meeting_closing_are_you_sure: Are you sure you want to close the meeting agenda? - text_meeting_draft_banner: You are currently in draft mode. This meeting will not send out any calendar updates or invites, even if you change meeting details or add/remove participants. - text_meeting_draft_description: Prepare your agenda in draft mode. This meeting will not send out any calendar updates or invites, even if you change meeting details or add/remove participants. - text_meeting_empty_description1: Start by adding agenda items below. Each item can be as simple as just a title, but you can also add additional details like duration and notes. - text_meeting_empty_description2: You can also add references to existing work packages. When you do, related notes will automatically be visible in the work package's "Meetings" tab. - text_meeting_empty_heading: Your meeting is empty - text_meeting_ics_description: 'Link to meeting: %{url}' - text_meeting_ics_meeting_series_description: 'Link to meeting series: %{url}' - text_meeting_in_progress_description: You can modify the agenda, document outcomes for each item and track attendance for participants. Once the meeting is complete, you can mark it as closed to lock it. - text_meeting_in_progress_dropdown_description: Document outcomes like information needs or decisions taken during the meeting. + text_meeting_closed_description: Mødet er lukket. Du kan ikke længere tilføje eller fjerne dagsordenspunkter. + text_meeting_closed_dropdown_description: Mødet er lukket. Du kan ikke længere ændre dagsordenspunkter eller resultater. + text_meeting_closing_are_you_sure: Er du sikker på, at du vil lukke mødets dagsorden? + text_meeting_draft_banner: Du er i kladdetilstand. Mødet sender ingen kalenderopdateringer eller invitationer, heller ikke hvis du ændrer mødedetaljerne eller tilføjer eller fjerner deltagere. + text_meeting_draft_description: Forbered dagsordenen i kladdetilstand. Mødet sender ingen kalenderopdateringer eller invitationer, heller ikke hvis du ændrer mødedetaljerne eller tilføjer eller fjerner deltagere. + text_meeting_empty_description1: Begynd med at tilføje dagsordenspunkter nedenfor. Et punkt kan bare være en titel, men du kan også tilføje detaljer som varighed og noter. + text_meeting_empty_description2: Du kan også tilføje henvisninger til eksisterende arbejdspakker. Så vises de tilhørende noter automatisk på arbejdspakkens fane "Møder". + text_meeting_empty_heading: Dit møde er tomt + text_meeting_ics_description: 'Link til mødet: %{url}' + text_meeting_ics_meeting_series_description: 'Link til mødeserien: %{url}' + text_meeting_in_progress_description: Du kan ændre dagsordenen, dokumentere resultater for hvert punkt og registrere, hvilke deltagere der deltog. Når mødet er færdigt, kan du markere det som lukket for at låse det. + text_meeting_in_progress_dropdown_description: Dokumentér resultater som informationsbehov eller beslutninger, der træffes på mødet. text_meeting_minutes_for_meeting: referat for mødet "%{meeting}" - text_meeting_not_editable_anymore: This meeting is not editable anymore. - text_meeting_not_present_anymore: This meeting was deleted. Please select another meeting. - text_meeting_occurrence_ics_description: 'Link to meeting occurrence: %{url} Link to meeting series: %{series_url}' - text_meeting_open_description: You can add/remove agenda items and participants. Once the agenda is ready, mark it as in progress to document outcomes. - text_meeting_open_dropdown_description: Any existing outcomes will remain but users will not be able to add new outcomes. - text_meeting_series_end_early: Ending the series will delete any future open or scheduled meeting occurrences - text_meeting_series_end_early_heading: Delete future occurrences? - text_meeting_template_blank_slate: You can create a new template for one-time meetings - text_meeting_template_blank_slate_heading: There are no templates to display - text_meeting_template_sharing_description: This template can be shared with subprojects or other projects in this instance. Only the agenda items and attachments will be copied. - text_notificiation_invited: 'This mail contains an ics entry for the meeting below:' - text_onetime_meeting_template_banner: You are currently editing a meeting template. You can use this template to create one-time meetings with a predefined agenda. Changes will not affect already-created meetings. - text_onetime_meeting_template_empty_description: Add agenda items, sections and attachments here. They will be included in every meeting created using this template. - text_onetime_meeting_template_empty_heading: This meeting template is empty - text_outcome_cannot_be_added: An outcome can no longer be added. - text_outcome_not_editable_anymore: This outcome is not editable anymore. - text_series_backlog: 'The backlog is shared with all occurrences of this series. You can drag items in and out to add or remove them from a particular meeting. + text_meeting_not_editable_anymore: Mødet kan ikke længere redigeres. + text_meeting_not_present_anymore: Mødet er slettet. Vælg et andet møde. + text_meeting_occurrence_ics_description: 'Link til forekomsten af mødet: %{url} Link til mødeserien: %{series_url}' + text_meeting_open_description: Du kan tilføje og fjerne dagsordenspunkter og deltagere. Når dagsordenen er klar, så markér mødet som i gang for at dokumentere resultater. + text_meeting_open_dropdown_description: Eksisterende resultater bevares, men brugerne kan ikke tilføje nye resultater. + text_meeting_series_end_early: Hvis serien afsluttes, slettes alle fremtidige åbne eller planlagte forekomster + text_meeting_series_end_early_heading: Vil du slette fremtidige forekomster? + text_meeting_template_blank_slate: Du kan oprette en ny skabelon til enkeltstående møder + text_meeting_template_blank_slate_heading: Der er ingen skabeloner at vise + text_meeting_template_sharing_description: Skabelonen kan deles med underprojekter eller andre projekter i installationen. Kun dagsordenspunkterne og de vedhæftede filer kopieres. + text_notificiation_invited: 'E-mailen indeholder en ics-post til mødet nedenfor:' + text_onetime_meeting_template_banner: Du redigerer en mødeskabelon. Du kan bruge skabelonen til at oprette enkeltstående møder med en foruddefineret dagsorden. Ændringer påvirker ikke allerede oprettede møder. + text_onetime_meeting_template_empty_description: Tilføj dagsordenspunkter, afsnit og vedhæftede filer her. De kommer med i alle møder, der oprettes ud fra skabelonen. + text_onetime_meeting_template_empty_heading: Mødeskabelonen er tom + text_outcome_cannot_be_added: Der kan ikke længere tilføjes et resultat. + text_outcome_not_editable_anymore: Resultatet kan ikke længere redigeres. + text_series_backlog: 'Backloggen deles af alle forekomster i serien. Du kan trække punkter ind og ud for at føje dem til eller fjerne dem fra et bestemt møde. ' - text_series_backlog_clear_description: 'This will remove all items in the series backlog, which is shared with all meetings in the series. Are you sure you want to continue? This action is not reversible. + text_series_backlog_clear_description: 'Alle punkter i seriens backlog fjernes. Backloggen deles af alle møder i serien. Er du sikker på, at du vil fortsætte? Handlingen kan ikke fortrydes. ' - text_work_package_add_to_meeting_hint: Use the "Add to meeting" button to add this work package to an upcoming meeting. - text_work_package_has_no_past_meeting_agenda_items: This work package was not added as an agenda item in a past meeting. - text_work_package_has_no_upcoming_meeting_agenda_items: This work package is not scheduled in an upcoming meeting agenda yet. + text_work_package_add_to_meeting_hint: Brug knappen "Føj til møde" for at føje arbejdspakken til et kommende møde. + text_work_package_has_no_past_meeting_agenda_items: Arbejdspakken har ikke været et dagsordenspunkt på et tidligere møde. + text_work_package_has_no_upcoming_meeting_agenda_items: Arbejdspakken er endnu ikke på dagsordenen til et kommende møde. diff --git a/modules/my_page/config/locales/crowdin/da.yml b/modules/my_page/config/locales/crowdin/da.yml index fc68c31c4580..3e76fdea1f81 100644 --- a/modules/my_page/config/locales/crowdin/da.yml +++ b/modules/my_page/config/locales/crowdin/da.yml @@ -3,7 +3,7 @@ da: activerecord: models: grids/my_page: - one: My page - other: My pages + one: Min side + other: Mine sider my_page: label: Min side diff --git a/modules/overviews/config/locales/crowdin/da.yml b/modules/overviews/config/locales/crowdin/da.yml index e501b9b29d52..7143320b1b79 100644 --- a/modules/overviews/config/locales/crowdin/da.yml +++ b/modules/overviews/config/locales/crowdin/da.yml @@ -3,8 +3,8 @@ da: activerecord: models: grids/overview: - one: Overview - other: Overviews + one: Oversigt + other: Oversigter overviews: label_dashboard: Oversigtspanel label_home: "%{workspace_type} hjem" diff --git a/modules/recaptcha/config/locales/crowdin/da.yml b/modules/recaptcha/config/locales/crowdin/da.yml index a54d72f0f7ac..d10d0217c58d 100644 --- a/modules/recaptcha/config/locales/crowdin/da.yml +++ b/modules/recaptcha/config/locales/crowdin/da.yml @@ -1,26 +1,26 @@ --- da: plugin_openproject_recaptcha: - description: This module provides recaptcha checks during login. + description: Modulet giver reCAPTCHA-kontrol ved login. name: OpenProject ReCaptcha recaptcha: - button_please_wait: Vent venligst ... - error_captcha: Your account could not be verified. Please contact an administrator. + button_please_wait: Vent ... + error_captcha: Din konto kunne ikke verificeres. Kontakt en administrator. label_recaptcha: reCAPTCHA settings: - captcha_description_html: 'reCAPTCHA is a free service by Google that can be enabled for your OpenProject instance. If enabled, a captcha form will be rendered upon login for all users that have not verified a captcha yet.
Please see the following link for more details on reCAPTCHA and their versions, and how to create the website and secret keys: %{recaptcha_link}
HCaptcha is a Google-free alternative that you can use if you do not want to use reCAPTCHA. See this link for more information: %{hcaptcha_link}
Cloudflare Turnstile™ is another alternative that is more convenient for users while still providing the same level of security. See this link for more information: %{turnstile_link} + captcha_description_html: 'reCAPTCHA er en gratis tjeneste fra Google, som kan slås til i din OpenProject-installation. Når den er slået til, vises en captcha ved login for alle brugere, der endnu ikke har bestået en captcha.
Følg dette link for at få flere oplysninger om reCAPTCHA og versionerne, og om hvordan du opretter webstedsnøglen og den hemmelige nøgle: %{recaptcha_link}
HCaptcha er et alternativ uden Google, som du kan bruge, hvis du ikke vil bruge reCAPTCHA. Følg dette link for at få flere oplysninger: %{hcaptcha_link}
Cloudflare Turnstile™ er endnu et alternativ, som er mere bekvemt for brugerne og giver samme sikkerhed. Følg dette link for at få flere oplysninger: %{turnstile_link} ' - response_limit: Response limit for HCaptcha - response_limit_text: The maximum number of characters to treat the HCaptcha response as valid. + response_limit: Grænse for svar fra HCaptcha + response_limit_text: Det maksimale antal tegn, et svar fra HCaptcha må have for at blive betragtet som gyldigt. secret_key: Hemmelig nøgle - secret_key_text: Enter the secret key you created on the reCAPTCHA admin console. + secret_key_text: Angiv den hemmelige nøgle, som du har oprettet i administrationskonsollen til reCAPTCHA. type: Brug reCAPTCHA type_disabled: Deaktiver reCAPTCHA type_hcaptcha: HCaptcha type_turnstile: Cloudflare Turnstile™ type_v2: reCAPTCHA v2 type_v3: reCAPTCHA v3 - website_key: Website key (May also be called "Site key") - website_key_text: Enter the website key you created on the reCAPTCHA admin console for this domain. - verify_account: Verificér din konto + website_key: Webstedsnøgle (kaldes også "Site key") + website_key_text: Angiv den webstedsnøgle, som du har oprettet til domænet i administrationskonsollen til reCAPTCHA. + verify_account: Bekræft din konto diff --git a/modules/reporting/config/locales/crowdin/da.yml b/modules/reporting/config/locales/crowdin/da.yml index 12e5b353c855..2bf6f26772fc 100644 --- a/modules/reporting/config/locales/crowdin/da.yml +++ b/modules/reporting/config/locales/crowdin/da.yml @@ -24,8 +24,8 @@ da: activerecord: models: cost_query: - one: Cost report - other: Cost reports + one: Omkostningsrapport + other: Omkostningsrapporter button_save_report_as: Gem rapport som... comments: Kommentér cost_reports_title: Tid og omkostninger @@ -44,7 +44,7 @@ da: overview_per_user_total: 'Oversigt: Samlet antal timer pr. bruger' sums_hours: Summer time: Tidspunkt - timesheet: Tidskema + timesheet: Timeseddel title: Eksport af din PDF-timeseddel information_restricted_depending_on_permission: Afhængigt af dine tilladelser kan denne side indeholde oplysninger du ikke kan se. label_click_to_edit: Klik for at redigere. @@ -97,7 +97,7 @@ da: permission_save_cost_reports: Gem offentlig omkostningsrapport permission_save_private_cost_reports: Gem privat omkostningsrapport plugin_openproject_reporting: - description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. + description: Pluginnet gør det muligt at oprette egne omkostningsrapporter med filtrering og gruppering ud fra data fra OpenProject-pluginnet Tid og omkostninger. name: OpenProject Reporting project_module_reporting_module: Omkostningsrapporter reporting: diff --git a/modules/resource_management/config/locales/crowdin/da.seeders.yml b/modules/resource_management/config/locales/crowdin/da.seeders.yml index bc7b5b61624b..5ae4f401ccec 100644 --- a/modules/resource_management/config/locales/crowdin/da.seeders.yml +++ b/modules/resource_management/config/locales/crowdin/da.seeders.yml @@ -8,14 +8,14 @@ da: projects: demo-project: resource_planner: - name: Team allocations + name: Teamets ressourcefordeling work_package_list: - name: Work packages + name: Arbejdspakker work_package_timeline: - name: Work package timeline + name: Arbejdspakkernes tidslinje user_card: - name: Team members + name: Teammedlemmer user_timeline: - name: Team timeline + name: Teamets tidslinje generic_allocation: - filter_name: Software Developer + filter_name: Softwareudvikler diff --git a/modules/storages/config/locales/crowdin/da.yml b/modules/storages/config/locales/crowdin/da.yml index 3a13a48849d0..d1f600010385 100644 --- a/modules/storages/config/locales/crowdin/da.yml +++ b/modules/storages/config/locales/crowdin/da.yml @@ -3,583 +3,583 @@ da: activerecord: attributes: oauth_client: - client_id: Client ID - client_secret: Client secret + client_id: Klient-id + client_secret: Klienthemmelighed project: - project_folder_type: Project folder type + project_folder_type: Type af projektmappe storages/file_link: - origin: Origin - storage: Storage + origin: Oprindelse + storage: Lager storages/nextcloud_storage: authentication_methods: - oauth2_sso: Single-Sign-On through OpenID Connect Identity Provider - oauth2_sso_with_two_way_oauth2_fallback: Single-Sign-On with Two-Way OAuth 2.0 as fallback - two_way_oauth2: Two-way OAuth 2.0 authorization code flow - storage_audience: Storage Audience - token_exchange_scope: Storage Scope + oauth2_sso: Single sign-on via OpenID Connect-identitetsudbyder + oauth2_sso_with_two_way_oauth2_fallback: Single sign-on med tovejs OAuth 2.0 som reserve + two_way_oauth2: Tovejs OAuth 2.0 med Authorization Code-flow + storage_audience: Lagerets audience + token_exchange_scope: Lagerets scope storages/project_storage: - project_folder: Project folder - project_folder_mode: Project folder mode - storage: Storage - storage_url: Storage URL + project_folder: Projektmappe + project_folder_mode: Tilstand for projektmappe + storage: Lager + storage_url: Lagerets URL storages/sharepoint_storage: - host: Sharepoint Site URL - library: Library ID + host: URL til SharePoint-websted + library: Biblioteks-id name: Navn - site: Site ID + site: Websteds-id storages/storage: - authentication_method: Authentication Method - creator: Creator - drive: Drive ID - file_link_origin: File link origin ID + authentication_method: Godkendelsesmetode + creator: Oprettet af + drive: Drev-id + file_link_origin: Fil-linkets oprindelses-id host: Vært - linkable_to_storage: Linkable to storage - linkable_to_storage_url: Linkable to storage URL + linkable_to_storage: Kan linkes til lager + linkable_to_storage_url: Kan linkes til lagerets URL name: Navn - password: Application password - provider_type: Provider type - storage: Storage - storage_url: Storage URL - tenant: Directory (tenant) ID + password: App-adgangskode + provider_type: Udbydertype + storage: Lager + storage_url: Lagerets URL + tenant: Mappe-id (tenant) work_package: - file_links: File links + file_links: Fil-links errors: messages: - invalid_host_url: is not a valid URL. - invalid_sharepoint_url: is not a valid SharePoint site, library, or document URL. - not_linked_to_project: is not linked to project. + invalid_host_url: er ikke en gyldig URL. + invalid_sharepoint_url: er ikke en gyldig URL til et SharePoint-websted, -bibliotek eller -dokument. + not_linked_to_project: er ikke knyttet til projektet. models: storages/file_link: attributes: origin_id: - only_numeric_or_uuid: can only be numeric or uuid. + only_numeric_or_uuid: kan kun være et tal eller et UUID. storages/project_storage: attributes: project_folder_id: - blank: Please select a folder. + blank: Vælg en mappe. project_folder_mode: - mode_unavailable: is not available for this storage. + mode_unavailable: er ikke tilgængelig for dette lager. project_ids: - blank: Please select a project. + blank: Vælg et projekt. storages/storage: attributes: host: - authorization_header_missing: is not fully set up. The Nextcloud instance does not receive the "Authorization" header, which is necessary for a Bearer token based authorization of API requests. Please double check your HTTP server configuration. - cannot_be_connected_to: could not be reached. Please ensure the host is reachable and the OpenProject integration app is installed. - minimal_nextcloud_version_not_met: does not meet minimal version requirements (must be Nextcloud %{minimal_version} or higher, but %{detected_version} was detected) - not_nextcloud_server: is not a Nextcloud server - op_application_not_installed: appears to not have the app "OpenProject integration" installed. Please install it first and then try again. + authorization_header_missing: er ikke sat helt op. Nextcloud-installationen modtager ikke headeren "Authorization", som er nødvendig for at godkende API-forespørgsler med et bearer-token. Tjek konfigurationen af din HTTP-server. + cannot_be_connected_to: kunne ikke nås. Sørg for, at værten kan nås, og at appen OpenProject Integration er installeret. + minimal_nextcloud_version_not_met: opfylder ikke minimumskravet til versionen (Nextcloud %{minimal_version} eller nyere er påkrævet, men %{detected_version} blev fundet) + not_nextcloud_server: er ikke en Nextcloud-server + op_application_not_installed: ser ikke ud til at have appen "OpenProject integration" installeret. Installer den først, og prøv igen. password: - invalid_password: is not valid. - unknown_error: could not be validated with the file storage provider. Please verify that the connection is functioning properly. + invalid_password: er ikke gyldig. + unknown_error: kunne ikke valideres hos udbyderen af fillageret. Kontrollér, at forbindelsen fungerer korrekt. models: storages/file_link: - one: File link - other: File links + one: Fil-link + other: Fil-links storages/nextcloud_storage: - one: Nextcloud storage - other: Nextcloud storages + one: Nextcloud-lager + other: Nextcloud-lagre storages/one_drive_storage: - one: OneDrive storage - other: OneDrive storages + one: OneDrive-lager + other: OneDrive-lagre storages/project_storage: - one: Project storage - other: Project storages + one: Projektlager + other: Projektlagre storages/sharepoint_storage: - one: SharePoint storage - other: SharePoint storages + one: SharePoint-lager + other: SharePoint-lagre storages/storage: - one: Storage - other: Storages + one: Lager + other: Lagre api_v3: errors: - too_many_elements_created_at_once: Too many elements created at once. Expected %{max} at most, got %{actual}. - external_file_storages: External file storages - permission_create_files: 'Automatically managed project folders: Create files' - permission_create_files_explanation: This permission is only available for Nextcloud storages - permission_delete_files: 'Automatically managed project folders: Delete files' - permission_delete_files_explanation: This permission is only available for Nextcloud storages - permission_header_for_project_module_storages: Automatically managed project folders - permission_manage_file_links: Manage file links - permission_manage_files_in_project: Manage files in project - permission_read_files: 'Automatically managed project folders: Read files' - permission_share_files: 'Automatically managed project folders: Share files' - permission_share_files_explanation: This permission is only available for Nextcloud storages - permission_view_file_links: View file links - permission_write_files: 'Automatically managed project folders: Write files' + too_many_elements_created_at_once: For mange elementer oprettet på én gang. Højst %{max} var forventet, men der kom %{actual}. + external_file_storages: Eksterne fillagre + permission_create_files: 'Automatisk administrerede projektmapper: Opret filer' + permission_create_files_explanation: Tilladelsen findes kun for Nextcloud-lagre + permission_delete_files: 'Automatisk administrerede projektmapper: Slet filer' + permission_delete_files_explanation: Tilladelsen findes kun for Nextcloud-lagre + permission_header_for_project_module_storages: Automatisk administrerede projektmapper + permission_manage_file_links: Administrer fil-links + permission_manage_files_in_project: Administrer filer i projektet + permission_read_files: 'Automatisk administrerede projektmapper: Læs filer' + permission_share_files: 'Automatisk administrerede projektmapper: Del filer' + permission_share_files_explanation: Tilladelsen findes kun for Nextcloud-lagre + permission_view_file_links: Vis fil-links + permission_write_files: 'Automatisk administrerede projektmapper: Skriv filer' project_module_storages: Filer project_storages: edit_project_folder: - label: Edit project folder + label: Rediger projektmappe open: - contact_admin: Please contact your administrator to resolve this error. - remote_identity_error: An unexpected error occurred while connecting to the storage. + contact_admin: Kontakt din administrator for at få løst fejlen. + remote_identity_error: Der opstod en uventet fejl under forbindelsen til lageret. project_folder_mode: - automatic: Automatically managed - inactive: No specific folder - manual: Existing folder manually managed + automatic: Automatisk administreret + inactive: Ingen bestemt mappe + manual: Eksisterende mappe, administreret manuelt remove_project: - deletion_failure_flash: Failed to remove the project from the storage. %{error} - label: Remove project + deletion_failure_flash: Projektet kunne ikke fjernes fra lageret. %{error} + label: Fjern projekt services: attributes: nextcloud_sync_service: - add_user_to_group: 'Add User to Group:' - create_folder: 'Managed Project Folder Creation:' - ensure_root_folder_permissions: 'Set Base Folder Permissions:' - hide_inactive_folders: 'Hide Inactive Folders Step:' - remote_folders: 'Read contents of the team folder:' - remove_user_from_group: 'Remove User from Group:' - rename_project_folder: 'Rename managed project Folder:' - set_folder_permission: 'Set managed project Folder permissions:' + add_user_to_group: 'Føj bruger til gruppe:' + create_folder: 'Oprettelse af administreret projektmappe:' + ensure_root_folder_permissions: 'Angiv tilladelser til basismappen:' + hide_inactive_folders: 'Skjul inaktive mapper:' + remote_folders: 'Læs indholdet af gruppemappen:' + remove_user_from_group: 'Fjern bruger fra gruppe:' + rename_project_folder: 'Omdøb administreret projektmappe:' + set_folder_permission: 'Angiv tilladelser til administreret projektmappe:' one_drive_sync_service: - create_folder: 'Managed Project Folder Creation:' - ensure_root_folder_permissions: 'Set Base Folder Permissions:' - hide_inactive_folders: 'Hide Inactive Folders Step:' - remote_folders: 'Read contents of the drive root folder:' - rename_project_folder: 'Rename managed project Folder:' - set_folder_permission: 'Set managed project Folder permissions:' + create_folder: 'Oprettelse af administreret projektmappe:' + ensure_root_folder_permissions: 'Angiv tilladelser til basismappen:' + hide_inactive_folders: 'Skjul inaktive mapper:' + remote_folders: 'Læs indholdet af drevets rodmappe:' + rename_project_folder: 'Omdøb administreret projektmappe:' + set_folder_permission: 'Angiv tilladelser til administreret projektmappe:' sharepoint_sync_service: - create_folder: 'Managed Project Folder Creation:' - ensure_root_folder_permissions: 'Set Base Folder Permissions:' - hide_inactive_folders: 'Hide Inactive Folders Step:' - remote_folders: 'Read contents of the drive root folder:' - rename_project_folder: 'Rename managed project Folder:' - set_folder_permission: 'Set managed project Folder permissions:' + create_folder: 'Oprettelse af administreret projektmappe:' + ensure_root_folder_permissions: 'Angiv tilladelser til basismappen:' + hide_inactive_folders: 'Skjul inaktive mapper:' + remote_folders: 'Læs indholdet af drevets rodmappe:' + rename_project_folder: 'Omdøb administreret projektmappe:' + set_folder_permission: 'Angiv tilladelser til administreret projektmappe:' errors: messages: - error: An unexpected error occurred. Please check OpenProject logs for more information or contact an administrator - folder_id_collision: Multiple project storages try to manage the project folder %{folder}. Its synchronization was skipped. - forbidden: OpenProject could not access the requested resource. Please check your permissions configuration on the Storage Provider. - invalid_response: OpenProject could not process the response received from the Storage Provider. Please check OpenProject logs for more information or contact an administrator. - unauthorized: OpenProject could not authenticate with the Storage Provider. Please ensure that you have access to it. + error: Der opstod en uventet fejl. Se OpenProjects log for flere oplysninger, eller kontakt en administrator + folder_id_collision: Flere projektlagre forsøger at administrere projektmappen %{folder}. Synkroniseringen af den blev sprunget over. + forbidden: OpenProject kunne ikke få adgang til den ønskede ressource. Tjek konfigurationen af tilladelser hos lagerudbyderen. + invalid_response: OpenProject kunne ikke behandle svaret fra lagerudbyderen. Se OpenProjects log for flere oplysninger, eller kontakt en administrator. + unauthorized: OpenProject kunne ikke godkendes hos lagerudbyderen. Sørg for, at du har adgang til den. models: copy_project_folders_service: - conflict: The folder %{destination_path} already exists. Interrupting process to avoid overwrites. - error: An unexpected error occurred. Please check OpenProject logs for more information or contact an administrator - forbidden: OpenProject could not access the source folder. Please check your permissions configuration on the Storage Provider - not_found: The source template location %{source_path} wasn't found. - unauthorized: OpenProject could not authenticate with the Storage Provider. Please check your storage configuration + conflict: Mappen %{destination_path} findes allerede. Processen afbrydes for at undgå, at noget overskrives. + error: Der opstod en uventet fejl. Se OpenProjects log for flere oplysninger, eller kontakt en administrator + forbidden: OpenProject kunne ikke få adgang til kildemappen. Tjek konfigurationen af tilladelser hos lagerudbyderen + not_found: Skabelonens kildeplacering %{source_path} blev ikke fundet. + unauthorized: OpenProject kunne ikke godkendes hos lagerudbyderen. Tjek konfigurationen af dit lager nextcloud_sync_service: attributes: add_user_to_group: - conflict: 'The user %{user} could not be added to the %{group} group for the following reason: %{reason}' - failed_to_add: 'The user %{user} could not be added to the %{group} group for the following reason: %{reason}' + conflict: 'Brugeren %{user} kunne ikke føjes til gruppen %{group} af følgende årsag: %{reason}' + failed_to_add: 'Brugeren %{user} kunne ikke føjes til gruppen %{group} af følgende årsag: %{reason}' create_folder: - conflict: The folder %{folder_name} already exists on %{parent_location}. - not_found: "%{parent_location} wasn't found." + conflict: Mappen %{folder_name} findes allerede i %{parent_location}. + not_found: "%{parent_location} blev ikke fundet." ensure_root_folder_permissions: - not_found: "%{group_folder} wasn't found. Please check your Nextcloud Team Folder setup." - permission_not_set: could not set permissions on %{group_folder}. + not_found: "%{group_folder} blev ikke fundet. Tjek opsætningen af Gruppemapper i Nextcloud." + permission_not_set: kunne ikke angive tilladelser til %{group_folder}. hide_inactive_folders: - permission_not_set: could not set permissions on %{path}. + permission_not_set: kunne ikke angive tilladelser til %{path}. remote_folders: - not_allowed: The %{username} doesn't have access to the %{group_folder} folder. Please check the folder permissions on Nextcloud. - not_found: "%{group_folder} folder wasn't found. Please check your Nextcloud setup." + not_allowed: "%{username} har ikke adgang til mappen %{group_folder}. Tjek mappens tilladelser i Nextcloud." + not_found: Mappen %{group_folder} blev ikke fundet. Tjek din Nextcloud-opsætning. remove_user_from_group: - conflict: 'The user %{user} could not be removed from the %{group} group for the following reason: %{reason}' - failed_to_remove: 'The user %{user} could not be removed from the %{group} group for the following reason: %{reason}' + conflict: 'Brugeren %{user} kunne ikke fjernes fra gruppen %{group} af følgende årsag: %{reason}' + failed_to_remove: 'Brugeren %{user} kunne ikke fjernes fra gruppen %{group} af følgende årsag: %{reason}' rename_project_folder: - conflict: OpenProject could not rename the project folder to %{current_path} as a folder with the same name already exists - forbidden: OpenProject user does not have access to %{current_path} folder. - not_found: "%{current_path} wasn't found." + conflict: OpenProject kunne ikke omdøbe projektmappen til %{current_path}, fordi der allerede findes en mappe med samme navn + forbidden: OpenProject-brugeren har ikke adgang til mappen %{current_path}. + not_found: "%{current_path} blev ikke fundet." set_folders_permissions: - permission_not_set: could not set permissions on %{path}. - error: An unexpected error occurred. Please ensure that your Nextcloud instance is reachable and check OpenProject worker logs for more information - group_does_not_exist: "%{group} does not exist. Check your Nextcloud instance configuration." - insufficient_privileges: OpenProject does not have enough privileges to add %{user} to %{group}. Check you group settings in Nextcloud. - not_allowed: Nextcloud block the request. - not_found: OpenProject could not find the file on the Nextcloud Storage Provider. Please check if it wasn't deleted. - unauthorized: OpenProject could not sync with Nextcloud. Please check your storage and Nextcloud configuration. - user_does_not_exist: "%{user} does not exist in Nextcloud." + permission_not_set: kunne ikke angive tilladelser til %{path}. + error: Der opstod en uventet fejl. Sørg for, at din Nextcloud-installation kan nås, og se OpenProjects worker-log for flere oplysninger + group_does_not_exist: "%{group} findes ikke. Tjek konfigurationen af din Nextcloud-installation." + insufficient_privileges: OpenProject har ikke rettigheder nok til at føje %{user} til %{group}. Tjek dine gruppeindstillinger i Nextcloud. + not_allowed: Nextcloud blokerede forespørgslen. + not_found: OpenProject kunne ikke finde filen hos lagerudbyderen Nextcloud. Tjek, om den er slettet. + unauthorized: OpenProject kunne ikke synkronisere med Nextcloud. Tjek konfigurationen af dit lager og Nextcloud. + user_does_not_exist: "%{user} findes ikke i Nextcloud." one_drive_sync_service: attributes: create_folder: - conflict: The %{folder_name} already exists on %{parent_location}. - not_found: "%{parent_location} wasn't found." + conflict: "%{folder_name} findes allerede i %{parent_location}." + not_found: "%{parent_location} blev ikke fundet." hide_inactive_folders: - permission_not_set: could not set permissions on %{path}. + permission_not_set: kunne ikke angive tilladelser til %{path}. remote_folders: - request_error: OpenProject could not access your drive %{drive_id}. Please check if your storage configuration is correct. + request_error: OpenProject kunne ikke få adgang til dit drev %{drive_id}. Tjek, om konfigurationen af dit lager er korrekt. rename_project_folder: - conflict: OpenProject could not rename the folder %{current_path} to %{project_folder_name} as a folder with the same name already exists. - forbidden: OpenProject does not have access to %{current_path} in order to rename it. - not_found: "%{current_path} wasn't found." + conflict: OpenProject kunne ikke omdøbe mappen %{current_path} til %{project_folder_name}, fordi der allerede findes en mappe med samme navn. + forbidden: OpenProject har ikke adgang til %{current_path} og kan derfor ikke omdøbe den. + not_found: "%{current_path} blev ikke fundet." set_folders_permissions: - permission_not_set: could not set permissions on %{path}. - error: An unexpected error occurred. Please ensure that OneDrive is reachable and check OpenProject worker logs for more information. - not_allowed: OpenProject wasn't allowed to access your OneDrive drive. Please check the permissions set on the Azure Application. - unauthorized: OpenProject could not sync with OneDrive. Please check your storage and Azure Application configuration. - user_does_not_exist: "%{user} does not exist in Nextcloud." + permission_not_set: kunne ikke angive tilladelser til %{path}. + error: Der opstod en uventet fejl. Sørg for, at OneDrive kan nås, og se OpenProjects worker-log for flere oplysninger. + not_allowed: OpenProject fik ikke adgang til dit OneDrive-drev. Tjek de tilladelser, der er angivet for Azure-programmet. + unauthorized: OpenProject kunne ikke synkronisere med OneDrive. Tjek konfigurationen af dit lager og Azure-programmet. + user_does_not_exist: "%{user} findes ikke i Nextcloud." sharepoint_sync_service: attributes: create_folder: - conflict: The %{folder_name} already exists on %{parent_location}. - not_found: "%{parent_location} wasn't found." + conflict: "%{folder_name} findes allerede i %{parent_location}." + not_found: "%{parent_location} blev ikke fundet." hide_inactive_folders: - permission_not_set: could not set permissions on %{path}. + permission_not_set: kunne ikke angive tilladelser til %{path}. rename_project_folder: - conflict: OpenProject could not rename the folder %{current_path} to %{project_folder_name} as a folder with the same name already exists - forbidden: OpenProject does not have access to %{current_path} in order to rename it. - not_found: "%{current_path} wasn't found." + conflict: OpenProject kunne ikke omdøbe mappen %{current_path} til %{project_folder_name}, fordi der allerede findes en mappe med samme navn + forbidden: OpenProject har ikke adgang til %{current_path} og kan derfor ikke omdøbe den. + not_found: "%{current_path} blev ikke fundet." set_folders_permissions: - permission_not_set: could not set permissions on %{path}. - error: An unexpected error occurred. Please ensure that OneDrive is reachable and check OpenProject worker logs for more information - not_allowed: OpenProject wasn't allowed to access your OneDrive drive. Please check the permissions set on the Azure Application. - not_found: OpenProject could not access your library %{drive_name}. Please check you Sharepoint site document libraries. - unauthorized: OpenProject could not sync with OneDrive. Please check your storage and Azure Application configuration. - user_does_not_exist: "%{user} does not exist in Nextcloud." + permission_not_set: kunne ikke angive tilladelser til %{path}. + error: Der opstod en uventet fejl. Sørg for, at OneDrive kan nås, og se OpenProjects worker-log for flere oplysninger + not_allowed: OpenProject fik ikke adgang til dit OneDrive-drev. Tjek de tilladelser, der er angivet for Azure-programmet. + not_found: OpenProject kunne ikke få adgang til dit bibliotek %{drive_name}. Tjek dokumentbibliotekerne på dit SharePoint-websted. + unauthorized: OpenProject kunne ikke synkronisere med OneDrive. Tjek konfigurationen af dit lager og Azure-programmet. + user_does_not_exist: "%{user} findes ikke i Nextcloud." upload_link_service: - not_found: The destination folder %{folder} could not be found on %{storage_name}. + not_found: Destinationsmappen %{folder} blev ikke fundet på %{storage_name}. storages: admin: side_panel: health_notifications_component: - sync_now: Sync now - sync_queued: Synchronization queued. + sync_now: Synkroniser nu + sync_queued: Synkroniseringen er sat i kø. buttons: - done_continue: Done, continue - open_storage: Open file storage - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth - save_and_continue: Save and continue - select_folder: Select folder + done_continue: Færdig, fortsæt + open_storage: Åbn fillager + replace_oauth_application: Erstat OpenProject OAuth + replace_oauth_client: Erstat %{provider_type} OAuth + save_and_continue: Gem, og fortsæt + select_folder: Vælg mappe configuration_checks: oauth_client_incomplete: - nextcloud: Allow OpenProject to access Nextcloud data using OAuth. - one_drive: Allow OpenProject to access Azure data using OAuth to connect OneDrive. - sharepoint: Allow OpenProject to access SharePoint data using OAuth. + nextcloud: Giv OpenProject adgang til data i Nextcloud via OAuth. + one_drive: Giv OpenProject adgang til data i Azure via OAuth for at forbinde OneDrive. + sharepoint: Giv OpenProject adgang til data i SharePoint via OAuth. redirect_uri_incomplete: - one_drive: Complete the setup with the correct URI redirection. - sharepoint: Complete the setup with the correct URI redirection. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? - confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? + one_drive: Gør opsætningen færdig med den korrekte omdirigerings-URI. + sharepoint: Gør opsætningen færdig med den korrekte omdirigerings-URI. + confirm_replace_oauth_application: De nuværende OAuth-legitimationsoplysninger nulstilles. Når du har bekræftet, skal du angive oplysningerne igen hos lagerudbyderen, og alle eksterne brugere skal give tilladelse til OpenProject igen. Er du sikker på, at du vil fortsætte? + confirm_replace_oauth_client: De nuværende OAuth-legitimationsoplysninger nulstilles. Når du har bekræftet, skal du angive nye oplysninger fra lagerudbyderen, og alle brugere skal give tilladelse til %{provider_type} igen. Er du sikker på, at du vil fortsætte? delete_warning: - project_storage_delete_result_1: All links to corresponding files and folders will be removed - project_storage_delete_result_2: The automatically-managed project folder and all files in it will be deleted - project_storage_html: Are you sure you want to remove %{file_storage} from this project? - storage_delete_result_1: The storage will be removed from all projects currently using it - storage_delete_result_2: All links to corresponding files and folders will be removed - storage_delete_result_3: The automatically-managed project folder and all files in it will be deleted - storage_html: Are you sure you want to delete %{file_storage} as an external file storage? + project_storage_delete_result_1: Alle links til de tilhørende filer og mapper fjernes + project_storage_delete_result_2: Den automatisk administrerede projektmappe og alle filer i den slettes + project_storage_html: Er du sikker på, at du vil fjerne %{file_storage} fra dette projekt? + storage_delete_result_1: Lageret fjernes fra alle projekter, der bruger det + storage_delete_result_2: Alle links til de tilhørende filer og mapper fjernes + storage_delete_result_3: Den automatisk administrerede projektmappe og alle filer i den slettes + storage_html: Er du sikker på, at du vil slette %{file_storage} som eksternt fillager? dependencies: nextcloud: - group_folders_app: Team Folders + group_folders_app: Gruppemapper integration_app: Integration OpenProject enabled_in_projects: - setup_incomplete_description: This storage has an incomplete setup. Please, complete the setup before enabling it in multiple projects. - setup_incomplete_header: Storage setup incomplete - error_invalid_provider_type: Please select a valid storage provider. + setup_incomplete_description: Opsætningen af lageret er ikke færdig. Gør opsætningen færdig, før du slår lageret til i flere projekter. + setup_incomplete_header: Opsætningen af lageret er ikke færdig + error_invalid_provider_type: Vælg en gyldig lagerudbyder. file_storage_view: access_management: - automatic_management: Enable automatically-managed access and folders - automatic_management_description: Each project will be able to decide, when a storage is added to it, whether they want the automatically-managed or the manual approach to folder and access management. - description: OpenProject can automatically create and manage project folders when a file storage is added to a project. This can result in a more organized folder structure and straightforward access management that guarantees access to all relevant users. - manual_management: Only allow manually-managed access and folders - manual_management_description: Projects using this storage will not be offered the option of the automatically-managed approach. Folders and access must be managed manually. - setup_incomplete: Select the type of management of user access and folder creation. - subtitle: Folder and access management - access_management_section: Access and project folders - automatically_managed_folders: Automatically managed folders - general_information: General information - oauth_configuration: OAuth configuration + automatic_management: Slå automatisk administreret adgang og mapper til + automatic_management_description: Når et lager føjes til et projekt, kan hvert projekt selv vælge, om mapper og adgang skal administreres automatisk eller manuelt. + description: OpenProject kan automatisk oprette og administrere projektmapper, når et fillager føjes til et projekt. Det kan give en mere overskuelig mappestruktur og en enkel adgangsstyring, der sikrer, at alle relevante brugere har adgang. + manual_management: Tillad kun manuelt administreret adgang og mapper + manual_management_description: Projekter, der bruger lageret, får ikke tilbudt automatisk administration. Mapper og adgang skal administreres manuelt. + setup_incomplete: Vælg, hvordan brugeradgang og oprettelse af mapper skal administreres. + subtitle: Administration af mapper og adgang + access_management_section: Adgang og projektmapper + automatically_managed_folders: Automatisk administrerede mapper + general_information: Generelle oplysninger + oauth_configuration: OAuth-konfiguration one_drive: access_management: - automatic_management: Enable automatically-managed access and folders - automatic_management_description: Each project using this file storage will necessarily have to use the automatically-managed approach to folder and access management. They cannot do it manually. - manual_management: Only allow manually-managed access and folders - manual_management_description: Projects using this storage will not be offered the option of the automatically-managed approach. Folders and access must be managed manually. + automatic_management: Slå automatisk administreret adgang og mapper til + automatic_management_description: Alle projekter, der bruger fillageret, skal administrere mapper og adgang automatisk. De kan ikke gøre det manuelt. + manual_management: Tillad kun manuelt administreret adgang og mapper + manual_management_description: Projekter, der bruger lageret, får ikke tilbudt automatisk administration. Mapper og adgang skal administreres manuelt. one_drive_oauth: Azure OAuth openproject_oauth: OpenProject OAuth - project_folders: Project folders - redirect_uri: Redirect URI + project_folders: Projektmapper + redirect_uri: Omdirigerings-URI sharepoint_oauth: Azure OAuth - storage_audience_blank: No audience has been configured. - storage_audience_description: Exchanging tokens for audience "%{audience}". - storage_audience_idp: Using access token obtained by identity provider during login, regardless of audience. - storage_oauth: Storage OAuth - storage_provider: Storage provider - token_exchange: Token Exchange + storage_audience_blank: Der er ikke konfigureret nogen audience. + storage_audience_description: Udveksler tokens til audience "%{audience}". + storage_audience_idp: Bruger det adgangstoken, som identitetsudbyderen udstedte ved login, uanset audience. + storage_oauth: Lagerets OAuth + storage_provider: Lagerudbyder + token_exchange: Token-udveksling health: actions: download_report: Hent - rerun_checks: Re-run all checks - run_checks: Run checks now - checked: 'Last check: %{datetime}' + rerun_checks: Kør alle kontroller igen + run_checks: Kør kontroller nu + checked: 'Seneste kontrol: %{datetime}' checks: ampf_configuration: - client_folder_creation: Automatic folder creation - client_folder_removal: Automatic folder deletion - drive_contents: Drive content - files_request: Fetching team folder files - header: Automatically managed project folders - project_folders_exist: Project folders exist - project_folders_linked: Project folders linked - team_folder_app: 'Dependency: Team Folders' - team_folder_contents: Team folder content - team_folder_presence: Team folder exists - userless_access: Server-side request authentication + client_folder_creation: Automatisk oprettelse af mapper + client_folder_removal: Automatisk sletning af mapper + drive_contents: Drevets indhold + files_request: Hentning af filer i gruppemappen + header: Automatisk administrerede projektmapper + project_folders_exist: Projektmapperne findes + project_folders_linked: Projektmapperne er linket + team_folder_app: 'Afhængighed: Gruppemapper' + team_folder_contents: Gruppemappens indhold + team_folder_presence: Gruppemappen findes + userless_access: Godkendelse af forespørgsler på serversiden authentication: - existing_token: User token + existing_token: Brugertoken header: Godkendelse - non_provisioned_user: User provisioned by IDP - offline_access: Configured OIDC offline_access scope - provider_capabilities: Provider capabilities - provisioned_user_provider: User provisioned by OIDC - token_negotiable: User token capabilities - user_bound_request: User-based request authentication + non_provisioned_user: Bruger oprettet af identitetsudbyderen + offline_access: Konfigureret OIDC-scope offline_access + provider_capabilities: Udbyderens funktioner + provisioned_user_provider: Bruger oprettet via OIDC + token_negotiable: Brugertokenets funktioner + user_bound_request: Brugerbaseret godkendelse af forespørgsler base_configuration: - capabilities_request: Remote file storage capabilities - client_id: Client ID - client_secret: Client secret - dependencies_check: Aflæggere - dependencies_versions: Dependencies (version) - diagnostic_request: Diagnostic request - drive_id_exists: Drive exists - drive_id_format: Drive ID format - header: Configuration - host: Host URL - host_url_accessible: Host URL accessible - storage_configured: Configuration complete - tenant_id: Tenant ID + capabilities_request: Det eksterne fillagers funktioner + client_id: Klient-id + client_secret: Klienthemmelighed + dependencies_check: Afhængigheder + dependencies_versions: Afhængigheder (version) + diagnostic_request: Diagnosticeringsforespørgsel + drive_id_exists: Drevet findes + drive_id_format: Format for drev-id + header: Konfiguration + host: Værtens URL + host_url_accessible: Værtens URL kan nås + storage_configured: Konfigurationen er fuldført + tenant_id: Tenant-id errors: - client_id_invalid: The configured OAuth 2 client id is invalid. Please check the configuration. - client_secret_invalid: The configured OAuth 2 client secret is invalid. Please check the configuration. - nc_dependency_missing: 'A required dependency is missing on the file storage. Please add the following dependency: %{dependency}.' - nc_dependency_version_mismatch: The %{dependency} app version is not supported. Please update your Nextcloud server. - nc_host_not_found: No Nextcloud server found at the configured host url. Please check the configuration. - nc_oauth_request_not_found: The endpoint to fetch the currently connected user was not found. Please check the server logs for further information. - nc_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. - nc_oauth_token_missing: OpenProject cannot test the user level communication with Nextcloud as the user did not yet link their Nextcloud account. - nc_project_folder_missing: The previously created project folder for project "%{project}" could not be found. - nc_team_folder_not_found: The team folder could not be found. - nc_unexpected_files: 'Unexpected files found in the managed team folder. For example: %{sample}' - nc_unlinked_project_folders: Not all project folders have been created yet (%{actual} / %{expected}). This can indicate errors during the AMPF background synchronization. - nc_userless_access_denied: The configured app password is invalid. - not_configured: The connection could not be validated. Please finish configuration first. - od_client_cant_delete_folder: The client is having trouble deleting folders. Please check the setup documentation for your storage. - od_client_write_permission_missing: The client seems to have write permissions missing. Please check the setup documentation for your storage. - od_drive_id_invalid: The configured drive id seems invalid. Please check the configuration. - od_drive_id_not_found: The configured drive id could not be found. Please check the configuration. - od_oauth_request_not_found: The endpoint to fetch the currently connected user was not found. Please check the server logs for further information. - od_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. - od_oauth_token_missing: OpenProject cannot test the user level communication with OneDrive as the user did not yet link their Microsoft account. - od_tenant_id_wrong: The configured directory (tenant) id is invalid. Please check the configuration. - od_test_folder_exists: The folder %{folder_name} needed for testing already exists. Please delete it and try again. - od_unexpected_content: Unexpected content found in the drive. - offline_access_scope_missing: It is recommended to configure the OpenID Connect provider to request the offline_access scope. The integration may still work anyways, but make sure that refresh tokens do not expire. - oidc_cant_refresh_token: There was an error while trying to check your access to the storage. Please check the server logs for further information. - oidc_non_oidc_user: The current user, while provisioned, wasn't provisioned by an OpenID Connect (OIDC) Identity Provider. Please re-run the check with an OIDC provisioned user. - oidc_non_provisioned_user: The current user isn't provided by an OpenID Connect Identity Provider. Please re-run the check with a provided user. - oidc_provider_cant_exchange: The OpenID Connect provider does not seem to support token exchange, but token exchange was configured for the storage. - oidc_token_acquisition_failed: Your OpenID Connect setup doesn't provide the necessary audience, nor does it provide token exchange capabilities. Please check out our documentation for more information. - oidc_token_exchange_failed: There seems to be a problem with the Token Exchange setup on your OpenID Connect Provider. Please check its configuration and try again. - oidc_token_refresh_failed: There was an error while trying to check your access to the storage. Please check the server logs for further information. - sp_client_cant_delete_folder: The client is having trouble deleting folders in SharePoint. Please check the setup documentation for your storage. - sp_client_id_missing: The configured OAuth 2 client id is missing for SharePoint. Please check the configuration. - sp_client_secret_missing: The configured OAuth 2 client secret is missing for SharePoint. Please check the configuration. - sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. - sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. - sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. - sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. - sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. - sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint Document Library. - unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. + client_id_invalid: Det konfigurerede OAuth 2-klient-id er ugyldigt. Tjek konfigurationen. + client_secret_invalid: Den konfigurerede OAuth 2-klienthemmelighed er ugyldig. Tjek konfigurationen. + nc_dependency_missing: 'En nødvendig afhængighed mangler i fillageret. Tilføj følgende afhængighed: %{dependency}.' + nc_dependency_version_mismatch: Versionen af appen %{dependency} understøttes ikke. Opdater din Nextcloud-server. + nc_host_not_found: Der blev ikke fundet nogen Nextcloud-server på den konfigurerede værts-URL. Tjek konfigurationen. + nc_oauth_request_not_found: Endepunktet til at hente den aktuelt forbundne bruger blev ikke fundet. Se serverens log for flere oplysninger. + nc_oauth_request_unauthorized: Den aktuelle bruger har ikke tilladelse til at få adgang til det eksterne fillager. Se serverens log for flere oplysninger. + nc_oauth_token_missing: OpenProject kan ikke teste kommunikationen med Nextcloud på brugerniveau, fordi brugeren endnu ikke har forbundet sin Nextcloud-konto. + nc_project_folder_missing: Den tidligere oprettede projektmappe til projektet "%{project}" blev ikke fundet. + nc_team_folder_not_found: Gruppemappen blev ikke fundet. + nc_unexpected_files: 'Der blev fundet uventede filer i den administrerede gruppemappe, fx: %{sample}' + nc_unlinked_project_folders: Ikke alle projektmapper er oprettet endnu (%{actual} / %{expected}). Det kan tyde på fejl under AMPF-synkroniseringen i baggrunden. + nc_userless_access_denied: Den konfigurerede app-adgangskode er ugyldig. + not_configured: Forbindelsen kunne ikke valideres. Gør konfigurationen færdig først. + od_client_cant_delete_folder: Klienten har problemer med at slette mapper. Se dokumentationen til opsætning af dit lager. + od_client_write_permission_missing: Klienten ser ud til at mangle skrivetilladelser. Se dokumentationen til opsætning af dit lager. + od_drive_id_invalid: Det konfigurerede drev-id ser ud til at være ugyldigt. Tjek konfigurationen. + od_drive_id_not_found: Det konfigurerede drev-id blev ikke fundet. Tjek konfigurationen. + od_oauth_request_not_found: Endepunktet til at hente den aktuelt forbundne bruger blev ikke fundet. Se serverens log for flere oplysninger. + od_oauth_request_unauthorized: Den aktuelle bruger har ikke tilladelse til at få adgang til det eksterne fillager. Se serverens log for flere oplysninger. + od_oauth_token_missing: OpenProject kan ikke teste kommunikationen med OneDrive på brugerniveau, fordi brugeren endnu ikke har forbundet sin Microsoft-konto. + od_tenant_id_wrong: Det konfigurerede mappe-id (tenant) er ugyldigt. Tjek konfigurationen. + od_test_folder_exists: Mappen %{folder_name}, der skal bruges til testen, findes allerede. Slet den, og prøv igen. + od_unexpected_content: Der blev fundet uventet indhold på drevet. + offline_access_scope_missing: Det anbefales at konfigurere OpenID Connect-udbyderen til at anmode om scopet offline_access. Integrationen kan fungere alligevel, men sørg for, at opdateringstokens ikke udløber. + oidc_cant_refresh_token: Der opstod en fejl under kontrollen af din adgang til lageret. Se serverens log for flere oplysninger. + oidc_non_oidc_user: Den aktuelle bruger er oprettet automatisk, men ikke af en OpenID Connect-identitetsudbyder (OIDC). Kør kontrollen igen med en bruger, der er oprettet via OIDC. + oidc_non_provisioned_user: Den aktuelle bruger kommer ikke fra en OpenID Connect-identitetsudbyder. Kør kontrollen igen med en bruger derfra. + oidc_provider_cant_exchange: OpenID Connect-udbyderen ser ikke ud til at understøtte token-udveksling, men token-udveksling er konfigureret for lageret. + oidc_token_acquisition_failed: Din OpenID Connect-opsætning leverer hverken den nødvendige audience eller mulighed for token-udveksling. Læs vores dokumentation for flere oplysninger. + oidc_token_exchange_failed: Der ser ud til at være et problem med opsætningen af token-udveksling hos din OpenID Connect-udbyder. Tjek konfigurationen, og prøv igen. + oidc_token_refresh_failed: Der opstod en fejl under kontrollen af din adgang til lageret. Se serverens log for flere oplysninger. + sp_client_cant_delete_folder: Klienten har problemer med at slette mapper i SharePoint. Se dokumentationen til opsætning af dit lager. + sp_client_id_missing: Det konfigurerede OAuth 2-klient-id til SharePoint mangler. Tjek konfigurationen. + sp_client_secret_missing: Den konfigurerede OAuth 2-klienthemmelighed til SharePoint mangler. Tjek konfigurationen. + sp_client_write_permission_missing: Klienten ser ud til at mangle skrivetilladelser i SharePoint. Se dokumentationen til opsætning af dit lager. + sp_existing_test_folder: Mappen %{folder_name}, der skal bruges til testen, findes allerede i SharePoint. Slet den, og prøv igen. + sp_oauth_request_error: Den brugerbaserede forespørgsel til SharePoint mislykkedes. Se serverens log for flere oplysninger. + sp_oauth_request_unauthorized: Den aktuelle bruger har ikke tilladelse til at få adgang til det eksterne fillager. Se serverens log for flere oplysninger. + sp_oauth_token_missing: OpenProject kan ikke teste kommunikationen med SharePoint på brugerniveau, fordi brugeren endnu ikke har forbundet sin SharePoint-konto. + sp_tenant_id_missing: Det konfigurerede mappe-id (tenant) til SharePoint mangler. Tjek konfigurationen. + sp_unexpected_content: Der blev fundet uventet indhold i SharePoint-dokumentbiblioteket. + unknown_error: Forbindelsen kunne ikke valideres. Der opstod en ukendt fejl. Se serverens log for flere oplysninger. label_error: Fejl - label_healthy: Healthy - label_pending: Pending - no_report: No report available - no_report_description: Run the checks now for a full health status report for this file storage. - open_report: Open full health report + label_healthy: Fungerer + label_pending: Afventer + no_report: Der er ingen rapport + no_report_description: Kør kontrollerne nu for at få en fuld tilstandsrapport for fillageret. + open_report: Åbn hele tilstandsrapporten project_folders: - subtitle: Automatically managed project folders - since: since %{datetime} - synced: 'Last sync: %{datetime}' - title: Health status report + subtitle: Automatisk administrerede projektmapper + since: siden %{datetime} + synced: 'Seneste synkronisering: %{datetime}' + title: Tilstandsrapport health_email_notifications: - description_disabled: Admins will not receive updates by email when there are important updates. - description_enabled: Admins will receive updates by email when there are important updates. - error_could_not_be_saved: Email notification settings could not be saved. Please try again. - title: Email updates to admins + description_disabled: Administratorer får ikke besked via e-mail, når der er vigtige opdateringer. + description_enabled: Administratorer får besked via e-mail, når der er vigtige opdateringer. + error_could_not_be_saved: Indstillingerne for e-mail-notifikationer kunne ikke gemmes. Prøv igen. + title: Opdateringer til administratorer via e-mail help_texts: - project_folder: The project folder is the default folder for file uploads for this project. Users can nevertheless still upload files to other locations. - project_folder_bulk: The project folder is the default folder for file uploads for all the projects selected. You can modify this individually in each project settings. Users can nevertheless still upload files to other locations. + project_folder: Projektmappen er standardmappen, når der overføres filer i projektet. Brugerne kan dog stadig overføre filer til andre placeringer. + project_folder_bulk: Projektmappen er standardmappen, når der overføres filer i alle de valgte projekter. Du kan ændre det i hvert projekts indstillinger. Brugerne kan dog stadig overføre filer til andre placeringer. instructions: - all_available_storages_already_added: All available storages are already added to the project. - authentication_method: The way that requests between OpenProject and the Storage are authenticated. - automatic_folder: This will automatically create a root folder for this project and manage the access permissions for each project member. - empty_project_folder_validation: Selecting a folder is mandatory to proceed. - existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. - host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' - name: Give your storage a name so that users can differentiate between multiple storages. - new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. + all_available_storages_already_added: Alle tilgængelige lagre er allerede føjet til projektet. + authentication_method: Den måde, forespørgsler mellem OpenProject og lageret godkendes på. + automatic_folder: Der oprettes automatisk en rodmappe til projektet, og adgangstilladelserne for hvert projektmedlem administreres automatisk. + empty_project_folder_validation: Du skal vælge en mappe for at fortsætte. + existing_manual_folder: Du kan udpege en eksisterende mappe som rodmappe for projektet. Tilladelserne administreres dog ikke automatisk; administratoren skal selv sørge for, at de relevante brugere har adgang. Den valgte mappe kan bruges af flere projekter. + host: Angiv lagerets værtsadresse inklusive https://. Den må højst være 255 tegn lang. + managed_project_folders_application_password_caption: 'Slå automatisk administrerede mapper til ved at kopiere værdien fra: %{provider_type_link}.' + name: Giv lageret et navn, så brugerne kan skelne mellem flere lagre. + new_storage_html: Læs vores dokumentation om [opsætning af en integration med et %{provider_name}-fillager](docs_url) for at få flere oplysninger. nextcloud: - application_link_text: application “Integration OpenProject” - integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. - storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. - storage_audience_placeholder: e.g. nextcloud - token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. - no_specific_folder: By default, each user will start at their own home folder when they upload a file. - no_storage_set_up: There are no file storages set up yet. - not_logged_into_storage: To select a project folder, please first login - oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). + application_link_text: appen “Integration OpenProject” + integration: Nextcloud-administration / OpenProject + oauth_configuration: Kopiér værdierne fra %{application_link_text}. + provider_configuration: Sørg for, at du har administratorrettigheder i din Nextcloud-installation, og at %{application_link_text} er installeret, før du går i gang med opsætningen. + storage_audience: Det klient-id, som Nextcloud-installationen bruger til at kommunikere med identitetsudbyderen. + storage_audience_placeholder: fx nextcloud + token_exchange_scope: De scopes, der skal anmodes om ved token-udveksling, adskilt med mellemrum. + no_specific_folder: Som standard starter hver bruger i sin egen hjemmemappe, når vedkommende overfører en fil. + no_storage_set_up: Der er endnu ikke sat nogen fillagre op. + not_logged_into_storage: Log ind først for at vælge en projektmappe + oauth_application_details_html: Klienthemmeligheden kan ikke ses igen, når du har lukket vinduet. Kopiér værdierne til [indstillingerne for Nextcloud OpenProject Integration](oauth_application_details_link). one_drive: - application_link_text: Azure portal - copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + application_link_text: Azure-portalen + copy_redirect_uri: Kopiér omdirigerings-URI + documentation_link_text: dokumentationen om OneDrive-fillagre + drive_id: Kopiér id'et for det ønskede drev ved at følge trinene i %{drive_id_link_text}. integration: OneDrive - missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI - oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. - oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. + missing_client_id_for_redirect_uri: Udfyld OAuth-værdierne for at danne en URI + oauth_client_redirect_uri: Kopiér værdien til en ny web-omdirigerings-URI under Omdirigerings-URI'er. + oauth_client_secret: Hvis der ikke er nogen klienthemmelighed for programmet under Klientlegitimationsoplysninger, skal du oprette en ny. + oauth_configuration: Kopiér værdierne fra det ønskede program i %{application_link_text}. provider_configuration: Sørg for, at du har administratorrettigheder på %{application_link_text}, eller kontakt din Microsoft-administrator, før du foretager opsætningen. I portalen skal du også registrere en Azure-applikation eller bruge en eksisterende til godkendelse. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. - tenant_id_placeholder: Name or UUID - setting_up_additional_storages: For setting up additional file storages, please visit - setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. - setting_up_storages: For setting up file storages, please visit - setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. + tenant_id: Kopiér mappe-id'et (tenant) fra det ønskede program under App-registreringer i %{application_link_text}. + tenant_id_placeholder: Navn eller UUID + setting_up_additional_storages: Hvis du vil sætte flere fillagre op, kan du gå til + setting_up_additional_storages_non_admin: Administratorer kan sætte flere fillagre op under Administration / Fillagre. + setting_up_storages: Hvis du vil sætte fillagre op, kan du gå til + setting_up_storages_non_admin: Administratorer kan sætte fillagre op under Administration / Fillagre. sharepoint: - application_link_text: SharePoint site - integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. + application_link_text: SharePoint-webstedet + integration: SharePoint-administration / OpenProject + oauth_configuration: Kopiér værdierne fra det ønskede program på %{application_link_text}. provider_configuration: Sørg for, at du har administratorrettigheder på %{application_link_text}, eller kontakt din Microsoft-administrator, før du foretager opsætningen. I portalen skal du også registrere en Azure-applikation eller bruge en eksisterende til godkendelse. - type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' + type: 'Sørg for, at du har administratorrettigheder i din Nextcloud-installation, og at følgende app er installeret, før du går i gang med opsætningen:' type_link_text: "“Integration OpenProject”" label_active: Aktiv - label_add_new_storage: Add new storage - label_automatic_folder: New folder with automatically managed permissions - label_creation_time: Creation time - label_creator: Creator - label_delete_storage: Delete storage - label_edit_storage_access_management: Edit storage access management - label_edit_storage_automatically_managed_folders: Edit storage automatically managed folders - label_edit_storage_host: Edit storage host - label_edit_token_exchange: Edit token exchange configuration - label_existing_manual_folder: Existing folder with manually managed permissions - label_file_storage: File storage - label_host: Host URL - label_inactive: Inactive + label_add_new_storage: Tilføj nyt lager + label_automatic_folder: Ny mappe med automatisk administrerede tilladelser + label_creation_time: Oprettelsestidspunkt + label_creator: Oprettet af + label_delete_storage: Slet lager + label_edit_storage_access_management: Rediger lagerets adgangsadministration + label_edit_storage_automatically_managed_folders: Rediger lagerets automatisk administrerede mapper + label_edit_storage_host: Rediger lagerets vært + label_edit_token_exchange: Rediger konfigurationen af token-udveksling + label_existing_manual_folder: Eksisterende mappe med manuelt administrerede tilladelser + label_file_storage: Fillager + label_host: Værtens URL + label_inactive: Inaktiv label_managed_project_folders: - application_password: Application password - automatically_managed_folders: Automatically managed folders + application_password: App-adgangskode + automatically_managed_folders: Automatisk administrerede mapper label_name: Navn - label_new_file_storage: New %{provider} storage - label_new_storage: New storage - label_no_selected_folder: No selected folder - label_no_specific_folder: No specific folder - label_oauth_client_id: OAuth Client ID - label_openproject_oauth_application_id: OpenProject OAuth Client ID - label_openproject_oauth_application_secret: OpenProject OAuth Client Secret - label_project_folder: Project folder - label_provider: Provider - label_redirect_uri: Redirect URI - label_show_storage_redirect_uri: Show redirect URI + label_new_file_storage: Nyt %{provider}-lager + label_new_storage: Nyt lager + label_no_selected_folder: Ingen mappe valgt + label_no_specific_folder: Ingen bestemt mappe + label_oauth_client_id: OAuth-klient-id + label_openproject_oauth_application_id: OpenProjects OAuth-klient-id + label_openproject_oauth_application_secret: OpenProjects OAuth-klienthemmelighed + label_project_folder: Projektmappe + label_provider: Udbyder + label_redirect_uri: Omdirigerings-URI + label_show_storage_redirect_uri: Vis omdirigerings-URI label_status: Status - label_storage: Storage + label_storage: Lager label_uri: URI member_connection_status: - connected: Connected - connected_no_permissions: User role has no storages permissions - not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. - not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. - members_no_results: No members to display. - no_results: No storages set up yet. + connected: Forbundet + connected_no_permissions: Brugerens rolle har ingen tilladelser til lagre + not_connectable: Kan ikke forbindes. Lageret kræver login via en SSO-udbyder, men brugeren logger ikke ind via SSO. + not_connected: Ikke forbundet. Brugeren skal logge ind på lageret via følgende %{link}. + not_connected_sso: Endnu ikke forbundet. SSO forbinder automatisk brugeren, når vedkommende ser på filer. + members_no_results: Der er ingen medlemmer at vise. + no_results: Der er endnu ikke sat nogen lagre op. oauth_access_granted_modal: - access_granted: Access granted + access_granted: Adgang givet project_settings: - access_granted_screen_reader: Access granted. You are now ready to use %{storage} - storage_ready: You are now ready to use %{storage} + access_granted_screen_reader: Adgang givet. Du kan nu bruge %{storage} + storage_ready: Du kan nu bruge %{storage} storage_admin: - access_granted_screen_reader: Access granted. You are now ready to add projects to %{storage} - storage_ready: You are now ready to add projects to %{storage} + access_granted_screen_reader: Adgang givet. Du kan nu føje projekter til %{storage} + storage_ready: Du kan nu føje projekter til %{storage} oauth_grant_nudge_modal: - cancel_button_label: I will do it later - heading: Login to %{provider_type} required - login_button_aria_label: Login to %{storage} - login_button_label: "%{provider_type} log in" + cancel_button_label: Det gør jeg senere + heading: Login på %{provider_type} er påkrævet + login_button_aria_label: Log ind på %{storage} + login_button_label: Log ind på %{provider_type} project_settings: - description: To get access to the project folder you need to login to %{storage}. - requesting_access_to: Requesting access to %{storage} + description: Du skal logge ind på %{storage} for at få adgang til projektmappen. + requesting_access_to: Anmoder om adgang til %{storage} storage_admin: - description: In order to add projects to this storage you need to be logged into %{provider_type}. Please, log in and try again. + description: Du skal være logget ind på %{provider_type} for at føje projekter til dette lager. Log ind, og prøv igen. open_project_storage_modal: success: - subtitle: You are being redirected - title: Integration setup completed + subtitle: Du sendes videre + title: Opsætningen af integrationen er fuldført timeout: - link_text: health status of the file storage setup - subtitle: OpenProject could not provide you access to the project folder within the expected period of time. Please, try once again.

If that problem persists please contact your OpenProject administrator to check %{storages_health_link}. + link_text: tilstanden for opsætningen af fillageret + subtitle: OpenProject kunne ikke give dig adgang til projektmappen inden for den forventede tid. Prøv igen.

Hvis problemet fortsætter, så kontakt din OpenProject-administrator, så vedkommende kan tjekke %{storages_health_link}. waiting: - subtitle: One moment please, this might take some time... - title: We are setting up your permissions on the project folder. + subtitle: Et øjeblik, det kan tage lidt tid... + title: Vi er ved at sætte dine tilladelser til projektmappen op. page_titles: file_storages: - delete: Delete file storage? - subtitle: Add an external file storage in order to upload, link and manage files in work packages. + delete: Vil du slette fillageret? + subtitle: Tilføj et eksternt fillager for at overføre, linke og administrere filer i arbejdspakker. managed_project_folders: subtitle: |- - Let OpenProject create folders per project automatically. This is recommended as it ensures that every team - member always has the correct access permissions. - subtitle_short: Let OpenProject create folders per project automatically. - title: Automatically managed project folders + Lad OpenProject oprette mapper til hvert projekt automatisk. Det anbefales, fordi det sikrer, at alle teammedlemmer + altid har de rigtige adgangstilladelser. + subtitle_short: Lad OpenProject oprette mapper til hvert projekt automatisk. + title: Automatisk administrerede projektmapper project_settings: - edit: Edit the file storage to this project - members_connection_status: Members connection status - new: Add a file storage to this project + edit: Rediger fillageret i dette projekt + members_connection_status: Medlemmernes forbindelsesstatus + new: Tilføj et fillager til dette projekt project_storage_members: - subtitle_html: Check the connection status for the storage %{storage_name_link} of all project members. - title: Members connection status + subtitle_html: Tjek alle projektmedlemmers forbindelsesstatus til lageret %{storage_name_link}. + title: Medlemmernes forbindelsesstatus project_storages: - delete: Remove file storage from project? - permission_header_explanation: File permissions on external storages are applied only to folders and files within automatically managed project folders. Note that not all file permissions are supported by all storage providers. Please check the documentation on file storage permissions for more information. + delete: Vil du fjerne fillageret fra projektet? + permission_header_explanation: Filtilladelser på eksterne lagre gælder kun mapper og filer i automatisk administrerede projektmapper. Bemærk, at ikke alle lagerudbydere understøtter alle filtilladelser. Læs dokumentationen om tilladelser til fillagre for at få flere oplysninger. provider_types: - label: Provider type + label: Udbydertype nextcloud: - label_oauth_client_id: Nextcloud OAuth Client ID - label_oauth_client_secret: Nextcloud OAuth Client Secret + label_oauth_client_id: Nextclouds OAuth-klient-id + label_oauth_client_secret: Nextclouds OAuth-klienthemmelighed name: Nextcloud - name_placeholder: e.g. Nextcloud + name_placeholder: fx Nextcloud one_drive: - label_oauth_client_id: Azure OAuth Application (client) ID - label_oauth_client_secret: Azure OAuth Client Secret Value + label_oauth_client_id: Azure OAuth-programmets (klient-)id + label_oauth_client_secret: Værdi af Azure OAuth-klienthemmeligheden name: OneDrive - name_placeholder: e.g. OneDrive + name_placeholder: fx OneDrive sharepoint: - drive_description: OpenProject access-managed document library - label_oauth_client_id: Azure OAuth Application (client) ID - label_oauth_client_secret: Azure OAuth Client Secret Value + drive_description: Dokumentbibliotek med adgang administreret af OpenProject + label_oauth_client_id: Azure OAuth-programmets (klient-)id + label_oauth_client_secret: Værdi af Azure OAuth-klienthemmeligheden name: SharePoint - name_placeholder: e.g. SharePoint + name_placeholder: fx SharePoint show_attachments_toggle: - description: Deactivating this option will hide the attachments list on the work packages files tab. The files attached in the description of a work package will still be uploaded in the internal attachments storage. - label: Show attachments in the work packages files tab + description: Hvis du slår muligheden fra, skjules listen over vedhæftede filer på arbejdspakkernes fane Filer. Filer, der er vedhæftet i en arbejdspakkes beskrivelse, overføres stadig til det interne lager til vedhæftede filer. + label: Vis vedhæftede filer på arbejdspakkernes fane Filer storage_audience: - documentation_intro: Please read our documentation for details on the following options and configuration of the identity provider. + documentation_intro: Læs vores dokumentation for at få detaljer om følgende muligheder og konfigurationen af identitetsudbyderen. idp: - helptext: OpenProject will use the access token received by the identity provider during log in to authenticate requests to the storage. It will not try to obtain another token. - label: Use access token obtained during user log in + helptext: OpenProject bruger det adgangstoken, som identitetsudbyderen udstedte ved login, til at godkende forespørgsler til lageret. Der hentes ikke et andet token. + label: Brug det adgangstoken, der blev udstedt ved brugerens login manual: - helptext: OpenProject will exchange a token with the identity provider for the given audience. - label: Manually specify audience for which to exchange access token (Recommended) + helptext: OpenProject udveksler et token med identitetsudbyderen til den angivne audience. + label: Angiv manuelt den audience, som adgangstokenet skal udveksles til (anbefales) storage_list_blank_slate: - description: Add a storage to see them here. - heading: You don't have any storages yet. - successful_storage_connection: Storage connected successfully! Remember to activate the storage in the Projects tab for each desired project to use it. + description: Tilføj et lager for at se det her. + heading: Du har endnu ingen lagre. + successful_storage_connection: Lageret er forbundet! Husk at aktivere lageret på fanen Projekter for hvert projekt, der skal bruge det. upsell: one_drive: description: |- - Integrate your OneDrive drive as a file storage with OpenProject. Upload files and link them directly to - work packages in a project. - title: OneDrive integration + Integrer dit OneDrive-drev som fillager i OpenProject. Overfør filer, og link dem direkte til + arbejdspakker i et projekt. + title: OneDrive-integration sharepoint: description: |- - Integrate your SharePoint site as a file storage with OpenProject. Upload files and link them directly to - work packages in a project. - title: SharePoint integration + Integrer dit SharePoint-websted som fillager i OpenProject. Overfør filer, og link dem direkte til + arbejdspakker i et projekt. + title: SharePoint-integration diff --git a/modules/storages/config/locales/crowdin/js-da.yml b/modules/storages/config/locales/crowdin/js-da.yml index 50d895107a31..3832fe43c1f2 100644 --- a/modules/storages/config/locales/crowdin/js-da.yml +++ b/modules/storages/config/locales/crowdin/js-da.yml @@ -2,106 +2,106 @@ da: js: storages: - authentication_error: Authentication with %{storageType} failed - choose_location: Choose location - drop_files: Drop files here to upload them to %{name}. - drop_or_click_files: Drop files here or click to upload them to %{name}. + authentication_error: Godkendelsen hos %{storageType} mislykkedes + choose_location: Vælg placering + drop_files: Slip filer her for at overføre dem til %{name}. + drop_or_click_files: Slip filer her, eller klik for at overføre dem til %{name}. file_links: - already_linked_directory: This directory is already linked to this work package. - already_linked_file: This file is already linked to this work package. - download: Download %{fileName} - empty: 'Currently there are no linked files to this work package. Start linking files with the action below or from within %{storageType}. + already_linked_directory: Mappen er allerede linket til arbejdspakken. + already_linked_file: Filen er allerede linket til arbejdspakken. + download: Hent %{fileName} + empty: 'Der er i øjeblikket ingen filer linket til arbejdspakken. Begynd at linke filer med handlingen nedenfor eller fra %{storageType}. ' - link_uploaded_file_error: 'An error occurred linking the recently uploaded file ''%{fileName}'' to the work package %{workPackageId}. + link_uploaded_file_error: 'Der opstod en fejl, da den netop overførte fil ''%{fileName}'' skulle linkes til arbejdspakken %{workPackageId}. ' - open: Open file on storage - open_location: Open file in location - remove: Remove file link - remove_confirmation: 'Are you sure you want to unlink the file from this work package? Unlinking does not affect the original file and only removes the connection to this work package. + open: Åbn filen i lageret + open_location: Åbn filens placering + remove: Fjern fil-link + remove_confirmation: 'Er du sikker på, at du vil fjerne linket mellem filen og arbejdspakken? Det påvirker ikke den oprindelige fil, men fjerner kun forbindelsen til arbejdspakken. ' - remove_short: Remove link - select: Select files + remove_short: Fjern link + select: Vælg filer select_all: Vælg alle selection: - zero: Select files to link - one: Link 1 file - other: Link %{count} files + zero: Vælg filer, der skal linkes + one: Link 1 fil + other: Link %{count} filer success_create: - one: Successfully created 1 file link. - other: Successfully created %{count} file links. + one: 1 fil-link er oprettet. + other: "%{count} fil-links er oprettet." tooltip: - not_found: This file cannot be found. - not_logged_in: Please log in to the storage to access this file. - view_not_allowed: You have no permission to see this file. + not_found: Filen blev ikke fundet. + not_logged_in: Log ind på lageret for at få adgang til filen. + view_not_allowed: Du har ikke tilladelse til at se filen. upload_error: - 403: 'Your file (%{fileName}) could not be uploaded due to system restrictions. Please contact your administrator for more information. + 403: 'Din fil (%{fileName}) kunne ikke overføres på grund af begrænsninger i systemet. Kontakt din administrator for at få flere oplysninger. ' - 413: 'Your file (%{fileName}) is bigger than what OpenProject can upload to %{storageType}. You can upload it directly to %{storageType} first and then link the file. + 413: 'Din fil (%{fileName}) er større, end OpenProject kan overføre til %{storageType}. Du kan overføre den direkte til %{storageType} først og derefter linke filen. ' - 507: 'Your file (%{fileName}) is bigger than the storage quota allows. Contact your administrator to modify this quota. + 507: 'Din fil (%{fileName}) er større, end lagerets kvote tillader. Kontakt din administrator for at få kvoten ændret. ' - default: 'Your file (%{fileName}) could not be uploaded. + default: 'Din fil (%{fileName}) kunne ikke overføres. ' detail: - nextcloud: 'Please check that the latest version of the Nextcloud App "OpenProject Integration" is installed and contact your administrator for more information. + nextcloud: 'Tjek, at den nyeste version af Nextcloud-appen "OpenProject Integration" er installeret, og kontakt din administrator for at få flere oplysninger. ' files: - already_existing_body: 'A file with the name "%{fileName}" already exists in the location where you are trying to upload this file. What would you like to do? + already_existing_body: 'Der findes allerede en fil med navnet "%{fileName}" på den placering, hvor du forsøger at overføre filen. Hvad vil du gøre? ' - already_existing_header: This file already exists - cannot_create_folder: Failed to create folder. Avoid using special characters and symbols and make sure the folder does not exist already. - directory_not_writeable: You do not have permission to add files to this folder. - dragging_folder: The upload to %{storageType} does not support folders. - dragging_many_files: The upload to %{storageType} supports only one file at once. - empty_folder: This folder is empty. - empty_folder_location_hint: Click the button below to upload the file to this location. - file_not_selectable_location: Selecting a file is not possible in the process of choosing a location. - managed_project_folder_no_access: 'You have no access yet to the managed project folder. Please wait a bit and try again. + already_existing_header: Filen findes allerede + cannot_create_folder: Mappen kunne ikke oprettes. Undgå specialtegn og symboler, og sørg for, at mappen ikke allerede findes. + directory_not_writeable: Du har ikke tilladelse til at tilføje filer til mappen. + dragging_folder: Overførsel til %{storageType} understøtter ikke mapper. + dragging_many_files: Overførsel til %{storageType} understøtter kun én fil ad gangen. + empty_folder: Mappen er tom. + empty_folder_location_hint: Klik på knappen nedenfor for at overføre filen til denne placering. + file_not_selectable_location: Du kan ikke vælge en fil, mens du vælger en placering. + managed_project_folder_no_access: 'Du har endnu ikke adgang til den administrerede projektmappe. Vent lidt, og prøv igen. ' - managed_project_folder_not_available: 'The automatically managed project folder was not yet found. Please wait a bit, reload the page to fetch the newest data, and try again. + managed_project_folder_not_available: 'Den automatisk administrerede projektmappe blev endnu ikke fundet. Vent lidt, genindlæs siden for at hente de nyeste data, og prøv igen. ' - project_folder_no_access: 'You have no access to the project folder. Please, contact your administrator to get access or upload the file in another location. + project_folder_no_access: 'Du har ikke adgang til projektmappen. Kontakt din administrator for at få adgang, eller overfør filen til en anden placering. ' - upload_keep_both: Keep both - upload_replace: Replace + upload_keep_both: Behold begge + upload_replace: Erstat information: - authentication_error: The request to %{storageType} could not be authenticated, that's an error. - connection_error: 'Some %{storageType} settings are not working. Please contact your %{storageType} administrator. + authentication_error: 'Der opstod en fejl: Forespørgslen til %{storageType} kunne ikke godkendes.' + connection_error: 'Nogle indstillinger i %{storageType} virker ikke. Kontakt din administrator for %{storageType}. ' - live_data_error: Error fetching file details - live_data_error_description: 'Some %{storageType} data could not be fetched. Please try to reload this page or contact your %{storageType} administrator. + live_data_error: Fejl ved hentning af filoplysninger + live_data_error_description: 'Nogle data fra %{storageType} kunne ikke hentes. Prøv at genindlæse siden, eller kontakt din administrator for %{storageType}. ' - no_file_links: In order to link files to this work package please do it via %{storageType}. - not_logged_in: 'To add a link, see or upload files related to this work package, please login to %{storageType}. + no_file_links: Link filer til arbejdspakken via %{storageType}. + not_logged_in: 'Log ind på %{storageType} for at tilføje et link til eller se og overføre filer, der hører til arbejdspakken. ' - suggest_logout: You can try whether logging out and back in fixes this problem. - suggest_relink: You can try whether re-linking your account via the login button below fixes this problem. - link_existing_files: Link existing files - link_files_in_storage: Link files in %{storageType} - login: "%{storageType} login" - login_to: Login to %{storageType} - new_folder: New folder - no_connection: No %{storageType} connection - open_storage: Open %{storageType} - select_location: Select location + suggest_logout: Du kan prøve, om det løser problemet at logge ud og ind igen. + suggest_relink: Du kan prøve, om det løser problemet at forbinde din konto igen med login-knappen nedenfor. + link_existing_files: Link eksisterende filer + link_files_in_storage: Link filer i %{storageType} + login: Login til %{storageType} + login_to: Log ind på %{storageType} + new_folder: Ny mappe + no_connection: Ingen forbindelse til %{storageType} + open_storage: Åbn %{storageType} + select_location: Vælg placering types: - default: Storage + default: Lager nextcloud: Nextcloud one_drive: OneDrive sharepoint: SharePoint - upload_files: Upload files + upload_files: Overfør filer diff --git a/modules/team_planner/config/locales/crowdin/js-da.yml b/modules/team_planner/config/locales/crowdin/js-da.yml index 2d3dde9cabe5..dd023692e8f6 100644 --- a/modules/team_planner/config/locales/crowdin/js-da.yml +++ b/modules/team_planner/config/locales/crowdin/js-da.yml @@ -3,27 +3,27 @@ da: js: team_planner: add_assignee: Tildelt - add_existing: Add existing - add_existing_title: Add existing work packages - cannot_drag_here: Cannot move the work package due to permissions or editing restrictions. - cannot_drag_to_non_working_day: This work package cannot start/finish on a non-working day. + add_existing: Tilføj eksisterende + add_existing_title: Tilføj eksisterende arbejdspakker + cannot_drag_here: Arbejdspakken kan ikke flyttes på grund af tilladelser eller begrænsninger for redigering. + cannot_drag_to_non_working_day: Arbejdspakken kan ikke starte eller slutte på en arbejdsfri dag. create_label: Teamplanlægger - create_title: Create new team planner - drag_here_to_remove: Drag here to remove assignee and start and end dates. - eight_weeks: 8-week - four_weeks: 4-week - label_team_planner_plural: Team planners + create_title: Opret ny teamplanlægger + drag_here_to_remove: Træk hertil for at fjerne tildelt samt start- og slutdato. + eight_weeks: 8 uger + four_weeks: 4 uger + label_team_planner_plural: Teamplanlæggere modify: errors: - fallback: This work package cannot be edited. - permission_denied: You do not have the necessary permissions to modify this. - no_data: Add assignees to set up your team planner. - one_week: 1-week + fallback: Arbejdspakken kan ikke redigeres. + permission_denied: Du har ikke de nødvendige tilladelser til at ændre dette. + no_data: Tilføj personer, der skal have opgaver, for at sætte teamplanlæggeren op. + one_week: 1 uge quick_add: - empty_state: Use the search field to find work packages and drag them to the planner to assign it to someone and define start and end dates. - search_placeholder: Search... - remove_assignee: Remove assignee - today: Today - two_weeks: 2-week - unsaved_title: Unnamed team planner - work_week: Work week + empty_state: Brug søgefeltet til at finde arbejdspakker, og træk dem til planlæggeren for at tildele dem til nogen og angive start- og slutdato. + search_placeholder: Søg ... + remove_assignee: Fjern tildelt + today: I dag + two_weeks: 2 uger + unsaved_title: Unavngivet teamplanlægger + work_week: Arbejdsuge diff --git a/modules/two_factor_authentication/config/locales/crowdin/da.yml b/modules/two_factor_authentication/config/locales/crowdin/da.yml index c370a9a16345..894a3c6fff31 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/da.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/da.yml @@ -3,190 +3,190 @@ da: activerecord: attributes: two_factor_authentication/device: - channel: Channel - default: Use as default - identifier: ID + channel: Kanal + default: Brug som standard + identifier: Navn two_factor_authentication/device/sms: - phone_number: Phone number + phone_number: Telefonnummer two_factor_authentication/device/webauthn: - webauthn_external: WebAuthn ID - webauthn_public_key: WebAuthn public key + webauthn_external: WebAuthn-id + webauthn_public_key: Offentlig WebAuthn-nøgle errors: models: two_factor_authentication/device: - default_already_exists: is already set for another OTP device. + default_already_exists: er allerede angivet for en anden OTP-enhed. two_factor_authentication/device/sms: attributes: phone_number: - error_phone_number_format: must be of format +XX XXXXXXXXX + error_phone_number_format: skal have formatet +XX XXXXXXXXX models: two_factor_authentication/backup_code: - one: Backup code - other: Backup codes + one: Backup-kode + other: Backup-koder two_factor_authentication/device: - one: 2FA device - other: 2FA devices + one: 2FA-enhed + other: 2FA-enheder two_factor_authentication/device/sms: - one: Mobile phone - other: Mobile phones + one: Mobiltelefon + other: Mobiltelefoner two_factor_authentication/device/totp: - one: Authenticator application - other: Authenticator applications + one: Godkendelsesapp + other: Godkendelsesapps two_factor_authentication/device/webauthn: one: WebAuthn other: WebAuthn button_continue: Fortsæt - button_make_active: Activate - button_make_default: Mark as default + button_make_active: Aktivér + button_make_default: Markér som standard button_otp_by_sms: SMS - button_otp_by_voice: Voice call - button_resend_otp_form: Resend - field_otp: One-time password + button_otp_by_voice: Opkald + button_resend_otp_form: Send igen + field_otp: Engangsadgangskode label_confirmed: Bekræftet - label_otp_channel: Delivery channel - notice_account_has_no_phone: No cell phone number is associated with your account. - notice_account_otp_expired: The one-time password you entered expired. - notice_account_otp_invalid: Invalid one-time password. - notice_account_otp_send_failed: Your one-time password could not be sent. - notice_developer_strategy_otp: 'Developer strategy generated the following one-time password: %{token} (Channel: %{channel})' - notice_phone_number_format: 'Please enter the number in the following format: +XX XXXXXXXX.' + label_otp_channel: Leveringskanal + notice_account_has_no_phone: Der er ikke knyttet noget mobilnummer til din konto. + notice_account_otp_expired: Den engangsadgangskode, som du har angivet, er udløbet. + notice_account_otp_invalid: Ugyldig engangsadgangskode. + notice_account_otp_send_failed: Din engangsadgangskode kunne ikke sendes. + notice_developer_strategy_otp: 'Udviklerstrategien dannede følgende engangsadgangskode: %{token} (kanal: %{channel})' + notice_phone_number_format: 'Angiv nummeret i følgende format: +XX XXXXXXXX.' plugin_openproject_two_factor_authentication: - description: This OpenProject plugin authenticates your users using two-factor authentication by means of one-time password through the TOTP standard (Google Authenticator) or sent to the user's cell phone via SMS or voice call. + description: Pluginnet godkender dine brugere med to-faktor-godkendelse ved hjælp af en engangsadgangskode via TOTP-standarden (Google Authenticator) eller sendt til brugerens mobiltelefon via SMS eller opkald. name: OpenProject Two-factor authentication - text_otp_not_receive: Other verification methods - text_send_otp_again: 'Resend one-time password by:' + text_otp_not_receive: Andre bekræftelsesmetoder + text_send_otp_again: 'Send engangsadgangskoden igen via:' two_factor_authentication: admin: - all_devices_deleted: All 2FA devices of this user have been deleted - button_delete_all_devices: Delete registered 2FA devices - button_register_mobile_phone_for_user: Register mobile phone - delete_all_are_you_sure: Are you sure you want to delete all 2FA devices for this user? - no_devices_for_user: No 2FA device has been registered for this user. - only_sms_allowed: Only SMS delivery can be set up for other users. - self_edit_forbidden: You may not edit your own 2FA devices on this path. Go to My Account > Two factor authentication instead. - self_edit_path_html: To add or modify your own 2FA devices, please go to the [Two-factor authentication on your account page](self_edit_link) - text_2fa_disabled: The user did not set up a 2FA device through their 'My account page' - text_2fa_enabled: Upon every login, this user will be requested to enter a OTP token from their default 2FA device. + all_devices_deleted: Alle brugerens 2FA-enheder er slettet + button_delete_all_devices: Slet registrerede 2FA-enheder + button_register_mobile_phone_for_user: Registrer mobiltelefon + delete_all_are_you_sure: Er du sikker på, at du vil slette alle brugerens 2FA-enheder? + no_devices_for_user: Der er ikke registreret nogen 2FA-enhed for brugeren. + only_sms_allowed: Der kan kun sættes levering via SMS op for andre brugere. + self_edit_forbidden: Du kan ikke redigere dine egne 2FA-enheder her. Gå i stedet til Min konto > To-faktor-godkendelse. + self_edit_path_html: Gå til [To-faktor-godkendelse på din kontoside](self_edit_link) for at tilføje eller ændre dine egne 2FA-enheder + text_2fa_disabled: Brugeren har ikke sat en 2FA-enhed op via sin side 'Min konto' + text_2fa_enabled: Ved hvert login skal brugeren angive en engangskode fra sin standard-2FA-enhed. backup_codes: generate: - keep_safe_as_password: Important! Treat these codes as passwords. - keep_safe_warning: Either save them in your password manager, or print this page and put in a safe place. - regenerate_warning: 'Warning: If you have created backup codes before, they will be invalidated and will no longer work.' - title: Generate backup codes + keep_safe_as_password: Vigtigt! Behandl koderne som adgangskoder. + keep_safe_warning: Gem dem i din adgangskodeadministrator, eller udskriv siden, og opbevar den et sikkert sted. + regenerate_warning: 'Advarsel: Hvis du har oprettet backup-koder før, bliver de ugyldige og virker ikke længere.' + title: Generér backup-koder overview_description: | - If you are unable to access your two factor devices, you can use a backup code to regain access to your account. - Use the following button to generate a new set of backup codes. - plural: Backup codes - singular: Backup code - channel_unavailable: The delivery channel %{channel} is unavailable. + Hvis du ikke har adgang til dine to-faktor-enheder, kan du bruge en backup-kode til at få adgang til din konto igen. + Brug knappen nedenfor til at generere et nyt sæt backup-koder. + plural: Backup-koder + singular: Backup-kode + channel_unavailable: Leveringskanalen %{channel} er ikke tilgængelig. devices: - 2fa_from_input_html: Please enter the code from your %{device_name} to verify your identity. - 2fa_from_webauthn_html: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. - add_new: Add new 2FA device - button_complete_registration: Complete 2FA registration - cannot_delete_default: Cannot delete default device - confirm_default: Confirm changing default device - confirm_device: Confirm device - confirm_now: Not confirmed, click here to activate - confirm_send_failed: Confirmation of your 2FA device failed. - deletion_are_you_sure: Are you sure you want to delete this 2FA device? - failed_to_delete: Failed to delete 2FA device. - is_default_cannot_delete: The device is marked as default and cannot be deleted due to an active security policy. Mark another device as default before deleting. - make_default_are_you_sure: Are you sure you want to make this 2FA device your default? - make_default_failed: Failed to update the default 2FA device. - not_existing: No 2FA device has been registered for your account. - register: Register device - registration_complete: 2FA device registration complete! - registration_failed_token_invalid: 2FA device registration failed, the token was invalid. - registration_failed_update: 2FA device registration failed, the token was valid but the device could not be updated. + 2fa_from_input_html: Angiv koden fra din %{device_name} for at bekræfte din identitet. + 2fa_from_webauthn_html: Brug WebAuthn-enheden %{device_name}. Hvis den tilsluttes via USB, så sæt den i, og rør ved den. Klik derefter på knappen til login. + add_new: Tilføj ny 2FA-enhed + button_complete_registration: Fuldfør registrering af 2FA + cannot_delete_default: Standardenheden kan ikke slettes + confirm_default: Bekræft skift af standardenhed + confirm_device: Bekræft enhed + confirm_now: Ikke bekræftet – klik her for at aktivere + confirm_send_failed: Bekræftelsen af din 2FA-enhed mislykkedes. + deletion_are_you_sure: Er du sikker på, at du vil slette 2FA-enheden? + failed_to_delete: 2FA-enheden kunne ikke slettes. + is_default_cannot_delete: Enheden er markeret som standard og kan ikke slettes på grund af en aktiv sikkerhedspolitik. Markér en anden enhed som standard, før du sletter den. + make_default_are_you_sure: Er du sikker på, at du vil gøre 2FA-enheden til din standard? + make_default_failed: Standard-2FA-enheden kunne ikke opdateres. + not_existing: Der er ikke registreret nogen 2FA-enhed for din konto. + register: Registrer enhed + registration_complete: Registreringen af 2FA-enheden er fuldført! + registration_failed_token_invalid: Registreringen af 2FA-enheden mislykkedes, fordi tokenet var ugyldigt. + registration_failed_update: Registreringen af 2FA-enheden mislykkedes. Tokenet var gyldigt, men enheden kunne ikke opdateres. sms: - description: 'Receive 2FA code via a text message on your phone each time you log in. + description: 'Få en 2FA-kode i en SMS på din telefon, hver gang du logger ind. ' - redacted_identifier: Mobile device (%{redacted_number}) - request_2fa_identifier: "%{redacted_identifier}, we sent you an authentication code via %{delivery_channel}" - title: Mobile device - text_confirm_to_change_default_html: Please confirm changing your default device to %{new_identifier} by entering a one-time password from your current default device. - text_confirm_to_complete_html: Please complete the registration of your device %{identifier} by entering a one-time password from your default device. - text_identifier: You can give the device a custom identifier using this field. + redacted_identifier: Mobil enhed (%{redacted_number}) + request_2fa_identifier: "%{redacted_identifier}, vi har sendt dig en godkendelseskode via %{delivery_channel}" + title: Mobil enhed + text_confirm_to_change_default_html: Bekræft skiftet af din standardenhed til %{new_identifier} ved at angive en engangsadgangskode fra din nuværende standardenhed. + text_confirm_to_complete_html: Fuldfør registreringen af din enhed %{identifier} ved at angive en engangsadgangskode fra din standardenhed. + text_identifier: Du kan give enheden et selvvalgt navn i dette felt. totp: - account: Account name / Issuer - description: 'Use a one-time code generated by an authenticator like Authy or Google Authenticator. + account: Kontonavn/udsteder + description: 'Brug en engangskode, der dannes af en godkendelsesapp som Authy eller Google Authenticator. ' - provisioning_uri: Provisioning URI - question_cannot_scan: 'Unable to scan the code using your application? + provisioning_uri: Provisionerings-URI + question_cannot_scan: 'Kan du ikke scanne koden med din app? ' - secret_key: Secret key + secret_key: Hemmelig nøgle setup: | - For setting up two-factor authentication with Google Authenticator, download the application from the Apple App store or Google Play Store. - After opening the app, you can scan the following QR code to register the device. - text_cannot_scan: 'If you can''t scan the code, you can enter the entry manually using the following details: + Hvis du vil sætte to-faktor-godkendelse op med Google Authenticator, så hent appen i Apple App Store eller Google Play Butik. + Når du har åbnet appen, kan du scanne QR-koden nedenfor for at registrere enheden. + text_cannot_scan: 'Hvis du ikke kan scanne koden, kan du indtaste den manuelt med følgende oplysninger: ' - time_based: Time based - title: App-based authenticator + time_based: Tidsbaseret + title: App til godkendelse webauthn: - description: Register a FIDO2 device (like YubiKey) or the secure enclave of your mobile device. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + description: Registrer en FIDO2-enhed (fx en YubiKey) eller den sikre enklave i din mobile enhed. + further_steps: Når du har valgt et navn, kan du klikke på knappen Fortsæt. Din browser beder dig om at bruge din WebAuthn-enhed. Når du har gjort det, er enheden registreret. title: WebAuthn - error_2fa_disabled: 2FA delivery has been disabled. - error_invalid_backup_code: Invalid 2FA backup code - error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' - error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_2fa_disabled: Levering af 2FA er deaktiveret. + error_invalid_backup_code: Ugyldig 2FA-backup-kode + error_is_enforced_not_active: 'Konfigurationsfejl: To-faktor-godkendelse er gjort obligatorisk, men der er ingen aktive strategier.' + error_no_device: Der blev ikke fundet nogen registreret 2FA-enhed for brugeren, selvom installationen kræver det. + error_no_matching_strategy: Der er ingen passende 2FA-strategi til brugeren. Kontakt din administrator. forced_registration: - required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. - label_2fa_disabled: Two-factor authentication not active - label_2fa_enabled: Two-factor authentication is active - label_default_device: Default 2FA device - label_device: 2FA device - label_device_type: Device type - label_devices: 2FA devices - label_two_factor_authentication: Two-factor authentication + required_to_add_device: Administratoren har gjort to-faktor-godkendelse obligatorisk i installationen. Tilføj en metode til to-faktor-godkendelse for at logge ind. + label_2fa_disabled: To-faktor-godkendelse er ikke aktiv + label_2fa_enabled: To-faktor-godkendelse er aktiv + label_default_device: Standard-2FA-enhed + label_device: 2FA-enhed + label_device_type: Enhedstype + label_devices: 2FA-enheder + label_two_factor_authentication: To-faktor-godkendelse login: - enter_backup_code_text: Please enter a valid backup code from your list of codes in case you can no longer access your registered 2FA devices. - enter_backup_code_title: Enter backup code - other_device: Use another device or backup code + enter_backup_code_text: Angiv en gyldig backup-kode fra din liste over koder, hvis du ikke længere har adgang til dine registrerede 2FA-enheder. + enter_backup_code_title: Angiv backup-kode + other_device: Brug en anden enhed eller en backup-kode message_bird: - sms_delivery_failed: MessageBird SMS delivery failed. - voice_delivery_failed: MessageBird voice call failed. - mobile_transmit_notification: A one-time password has been sent to your cell phone. - no_valid_phone_number: No valid phone number exists. - notice_not_writable: 2FA Settings were provided through environment variables and cannot be overwritten. + sms_delivery_failed: Levering af SMS via MessageBird mislykkedes. + voice_delivery_failed: Opkald via MessageBird mislykkedes. + mobile_transmit_notification: Der er sendt en engangsadgangskode til din mobiltelefon. + no_valid_phone_number: Der findes ikke noget gyldigt telefonnummer. + notice_not_writable: Indstillingerne for 2FA er angivet med miljøvariabler og kan ikke overskrives. remember: - active_session_notice: 'Your account has an active remember cookie valid until %{expires_on}. This cookie allows you to log in without a second factor to your account until that time. + active_session_notice: 'Din konto har en aktiv cookie til at huske login, der gælder til %{expires_on}. Indtil da kan du logge ind på din konto uden anden faktor. ' - clear_cookie: Remove all remembered 2FA sessions. - cookie_removed: All remembered 2FA sessions have been removed. - dont_ask_again: Create cookie to remember 2FA authentication on this client for %{days} days. - label: Remember - other_active_session_notice: Your account has an active remember cookie on another session. + clear_cookie: Fjern alle huskede 2FA-sessioner. + cookie_removed: Alle huskede 2FA-sessioner er fjernet. + dont_ask_again: Opret en cookie, der husker 2FA-godkendelsen på denne enhed i %{days} dage. + label: Husk + other_active_session_notice: Din konto har en aktiv cookie til at huske login i en anden session. settings: - current_configuration: Current configuration - failed_to_save_settings: 'Failed to update 2FA settings: %{message}' - label_active_strategies: Active 2FA strategies - label_enforced: Enforce 2FA - label_remember: Remember 2FA login - text_configuration: 'Note: These values represent the current application-wide configuration. You cannot disable settings enforced by the configuration or change the current active strategies, since they require a server restart. + current_configuration: Nuværende konfiguration + failed_to_save_settings: 'Indstillingerne for 2FA kunne ikke opdateres: %{message}' + label_active_strategies: Aktive 2FA-strategier + label_enforced: Gør 2FA obligatorisk + label_remember: Husk 2FA-login + text_configuration: 'Bemærk: Værdierne viser den nuværende konfiguration for hele programmet. Du kan ikke deaktivere indstillinger, som konfigurationen gennemtvinger, eller ændre de aktive strategier, fordi det kræver en genstart af serveren. ' - text_configuration_guide: For more information, check the configuration guide. - text_enforced: Enable this setting to force all users to register a 2FA device on their next login. Can only be disabled when not enforced by configuration. + text_configuration_guide: Se konfigurationsvejledningen for flere oplysninger. + text_enforced: Slå indstillingen til for at kræve, at alle brugere registrerer en 2FA-enhed ved næste login. Kan kun slås fra, når konfigurationen ikke gennemtvinger den. text_remember: | - Set this to greater than zero to allow users to remember their 2FA authentication for the given number of days. - They will not be requested to re-enter it during that period. Can only be set when not enforced by configuration. - title: 2FA settings + Angiv en værdi over nul for at lade brugerne huske deres 2FA-godkendelse i det angivne antal dage. + I den periode skal de ikke angive den igen. Kan kun angives, når konfigurationen ikke gennemtvinger den. + title: Indstillinger for 2FA sns: - delivery_failed: 'SNS delivery failed:' + delivery_failed: 'Levering via SNS mislykkedes:' strategies: - resdt: SMS Rest API + resdt: SMS REST API sns: Amazon SNS - totp: Authenticator application + totp: Godkendelsesapp webauthn: WebAuthn - text_2fa_disabled: To enable two-factor authentication, use the button below to register a new 2FA device. If you already have a device, you need to make it a default. - text_2fa_enabled: Upon every login, you will be requested to enter a OTP token from your default 2FA device. - text_otp_delivery_message_sms: Your %{app_title} one-time password is %{token} - text_otp_delivery_message_voice: 'Your %{app_title} one-time password is: %{pause} %{token}. %{pause} I repeat: %{pause} %{token}' + text_2fa_disabled: Brug knappen nedenfor til at registrere en ny 2FA-enhed for at slå to-faktor-godkendelse til. Hvis du allerede har en enhed, skal du gøre den til standard. + text_2fa_enabled: Ved hvert login skal du angive en engangskode fra din standard-2FA-enhed. + text_otp_delivery_message_sms: Din engangsadgangskode til %{app_title} er %{token} + text_otp_delivery_message_voice: 'Din engangsadgangskode til %{app_title} er: %{pause} %{token}. %{pause} Jeg gentager: %{pause} %{token}' diff --git a/modules/wikis/config/locales/crowdin/da.yml b/modules/wikis/config/locales/crowdin/da.yml index 20e36874b12a..f838bc15e261 100644 --- a/modules/wikis/config/locales/crowdin/da.yml +++ b/modules/wikis/config/locales/crowdin/da.yml @@ -3,241 +3,241 @@ da: activerecord: attributes: wikis/page_link: - identifier: Identifier - provider: Wiki Provider + identifier: Id + provider: Wiki-udbyder wikis/provider: - name: Name - universal_identifier: Universal identifier + name: Navn + universal_identifier: Universelt id wikis/xwiki_provider: - authentication_method: Authentication method + authentication_method: Godkendelsesmetode authentication_methods: - oauth2_sso: Single-Sign-On through OpenID Connect Identity Provider - two_way_oauth2: Two-way OAuth 2.0 authorization code flow - token_exchange_scope: XWiki Scope - url: Instance URL - wiki_audience: XWiki Audience + oauth2_sso: Single sign-on via OpenID Connect-identitetsudbyder + two_way_oauth2: Tovejs OAuth 2.0 med Authorization Code-flow + token_exchange_scope: XWiki-scope + url: Installationens URL + wiki_audience: XWiki-audience errors: models: wikis/provider: attributes: url: - already_taken: belongs to the wiki provider that's already known as "%{name}". - wiki_provider_unreachable: could not be reached. + already_taken: tilhører den wiki-udbyder, der allerede er kendt som "%{name}". + wiki_provider_unreachable: kunne ikke nås. models: wikis/inline_page_link: - one: Inline page link - other: Inline page links + one: Sidelink i teksten + other: Sidelinks i teksten wikis/internal_provider: - one: Internal provider - other: Internal providers + one: Intern udbyder + other: Interne udbydere wikis/page_link: - one: Page link - other: Page links + one: Sidelink + other: Sidelinks wikis/provider: - one: Wiki provider - other: Wiki providers + one: Wiki-udbyder + other: Wiki-udbydere wikis/relation_page_link: - one: Relation page link - other: Relation page links + one: Relateret sidelink + other: Relaterede sidelinks wikis/xwiki_provider: - one: XWiki provider - other: XWiki providers + one: XWiki-udbyder + other: XWiki-udbydere menus: admin: - external_wiki_providers: External wiki providers - internal_wiki_provider: Project wikis - wikis: Wikis + external_wiki_providers: Eksterne wiki-udbydere + internal_wiki_provider: Projektwikier + wikis: Wikier project_settings: - wiki: Project wiki - permission_manage_wiki_page_links: Manage wiki page links + wiki: Projektwiki + permission_manage_wiki_page_links: Administrer links til wikisider wikis: admin: destroy_confirmation_dialog_component: - description_html: The wiki provider %{wiki_provider} and all the related wiki page links will be deleted. In addition, every inline wiki page link will no longer be accessible. This action is irreversible. - heading: Permanently delete this wiki provider? - title: Delete wiki provider + description_html: Wiki-udbyderen %{wiki_provider} og alle tilhørende links til wikisider slettes. Desuden er links til wikisider i teksten ikke længere tilgængelige. Handlingen kan ikke fortrydes. + heading: Vil du slette wiki-udbyderen permanent? + title: Slet wiki-udbyder forms: general_info_form_component: - provider_description: Please make sure you have administration privileges in your XWiki instance before doing the setup. + provider_description: Sørg for, at du har administratorrettigheder i din XWiki-installation, før du går i gang med opsætningen. oauth_application_form_component: - application_id: OpenProject OAuth Application ID - application_secret: OpenProject OAuth Application secret + application_id: Id for OpenProjects OAuth-program + application_secret: Hemmelighed for OpenProjects OAuth-program oauth_client_form_component: - client_id: Wiki OAuth Client ID - client_secret: Wiki OAuth Client secret + client_id: Klient-id for wikiens OAuth + client_secret: Klienthemmelighed for wikiens OAuth health_status: show: actions: - download_report: Download - rerun_checks: Re-run all checks - run_checks: Run checks now - last_check: 'Last check: %{datetime}' - no_health_report: No report available - no_health_report_description: Run the checks now for a full health status report for this wiki provider. - title: Health Report + download_report: Hent + rerun_checks: Kør alle kontroller igen + run_checks: Kør kontroller nu + last_check: 'Seneste kontrol: %{datetime}' + no_health_report: Der er ingen rapport + no_health_report_description: Kør kontrollerne nu for at få en fuld tilstandsrapport for wiki-udbyderen. + title: Tilstandsrapport internal_provider_form: - checkbox_caption: Allow projects to use project wikis along with external wiki providers - checkbox_label: Enable OpenProject project wikis + checkbox_caption: Tillad projekter at bruge projektwikier ud over eksterne wiki-udbydere + checkbox_label: Slå OpenProjects projektwikier til internal_wiki_provider: show: - description: Choose to enable or disable project wikis + description: Vælg, om projektwikier skal være slået til eller fra oauth_application_info_component: - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials in your XWiki instance and all users will have to reauthorize. Are you sure you want to proceed? - label_oauth_client_id: OAuth Client ID - replace_oauth_application: Replace OpenProject OAuth application + confirm_replace_oauth_application: De nuværende OAuth-legitimationsoplysninger nulstilles. Når du har bekræftet, skal du angive oplysningerne igen i din XWiki-installation, og alle brugere skal give tilladelse igen. Er du sikker på, at du vil fortsætte? + label_oauth_client_id: OAuth-klient-id + replace_oauth_application: Erstat OpenProjects OAuth-program oauth_client_info_component: - confirm_replace_oauth_client: This action will reset the current XWiki OAuth credentials. All users will need to reauthorize against XWiki. Are you sure you want to proceed? - label_oauth_client_id: OAuth Client ID - replace_oauth_client: Replace XWiki OAuth application + confirm_replace_oauth_client: De nuværende OAuth-legitimationsoplysninger til XWiki nulstilles. Alle brugere skal give tilladelse til XWiki igen. Er du sikker på, at du vil fortsætte? + label_oauth_client_id: OAuth-klient-id + replace_oauth_client: Erstat XWikis OAuth-program redirect_uri_info_component: - description: The redirect URI is generated once the wiki OAuth client is configured. + description: Omdirigerings-URI'en dannes, når wikiens OAuth-klient er konfigureret. label_uri: URI - show_redirect_uri: Show redirect URI + show_redirect_uri: Vis omdirigerings-URI side_panel: health_status_component: - last_check: 'Last check: %{datetime}' - open_report: Open full health report - run_checks: Run checks now - title: Health status report + last_check: 'Seneste kontrol: %{datetime}' + open_report: Åbn hele tilstandsrapporten + run_checks: Kør kontroller nu + title: Tilstandsrapport wiki_provider_list_component: - label_creation_time: Created - label_name: Name - label_provider: Provider - no_results_description: Add a wiki provider to see them here. - no_results_title: You don't have any wiki providers set up yet. + label_creation_time: Oprettet + label_name: Navn + label_provider: Udbyder + no_results_description: Tilføj en wiki-udbyder for at se den her. + no_results_title: Du har endnu ikke sat nogen wiki-udbydere op. wiki_providers: - index_description: Add an external wiki service to link work packages to existing wiki pages or create new ones directly from OpenProject. - label_add_new: Add new wiki provider - label_edit: Edit XWiki provider - label_new_provider: New XWiki provider - label_wiki_platform: Wiki provider - name_caption: Give your wiki provider a name so that users can differentiate between multiple wiki platforms. - name_placeholder: XWiki knowledge base - new_provider_html: Read our documentation on [setting up an XWiki integration](docs_url) for more information. - successful_setup: Wiki provider configured successfully! + index_description: Tilføj en ekstern wikitjeneste for at linke arbejdspakker til eksisterende wikisider eller oprette nye direkte fra OpenProject. + label_add_new: Tilføj ny wiki-udbyder + label_edit: Rediger XWiki-udbyder + label_new_provider: Ny XWiki-udbyder + label_wiki_platform: Wiki-udbyder + name_caption: Giv wiki-udbyderen et navn, så brugerne kan skelne mellem flere wikiplatforme. + name_placeholder: XWiki-vidensbase + new_provider_html: Læs vores dokumentation om [opsætning af en XWiki-integration](docs_url) for at få flere oplysninger. + successful_setup: Wiki-udbyderen er konfigureret! oauth: openproject_oauth: OpenProject OAuth - redirect_uri: Redirect URI - redirect_uri_caption: Copy this value into the Redirect URI field of your XWiki OIDC client registration. + redirect_uri: Omdirigerings-URI + redirect_uri_caption: Kopiér værdien til feltet Redirect URI i registreringen af OIDC-klienten i XWiki. sections: - general_information: General information - oauth_configuration: OAuth configuration - url_caption: The host address of your wiki platform including the https://. It should not be longer than 255 characters. + general_information: Generelle oplysninger + oauth_configuration: OAuth-konfiguration + url_caption: Wikiplatformens værtsadresse inklusive https://. Den må højst være 255 tegn lang. xwiki: oauth: - openproject_oauth_description: Allow XWiki to access OpenProject data using an OAuth application. - provider_oauth: Wiki OAuth - provider_oauth_configuration: Copy these values to the [XWiki OIDC Connection client](xwiki_oidc_link). - provider_oauth_description: Allow OpenProject to access XWiki data using OAuth. - openproject_oauth_description: Allow XWiki to access OpenProject data using an OAuth. + openproject_oauth_description: Giv XWiki adgang til data i OpenProject via et OAuth-program. + provider_oauth: Wikiens OAuth + provider_oauth_configuration: Kopiér værdierne til [OIDC Connection-klienten i XWiki](xwiki_oidc_link). + provider_oauth_description: Giv OpenProject adgang til data i XWiki via OAuth. + openproject_oauth_description: Giv XWiki adgang til data i OpenProject via OAuth. xwiki_oauth: XWiki OAuth - xwiki_oauth_description: Allow OpenProject to access XWiki data using an OAuth. + xwiki_oauth_description: Giv OpenProject adgang til data i XWiki via OAuth. buttons: - connect_account: Connect %{provider} account - done_continue: Done, continue - open_wiki: Open wiki - save_and_continue: Save and continue - wiki_page: Wiki page + connect_account: Forbind %{provider}-konto + done_continue: Færdig, fortsæt + open_wiki: Åbn wiki + save_and_continue: Gem, og fortsæt + wiki_page: Wikiside create_new_wiki_page_dialog: - title: Create new wiki page + title: Opret ny wikiside deferred_inline_page_link_macro_component: - loading: Loading… + loading: Indlæser… delete_relation_page_link_confirmation_dialog: - heading: Delete related wiki page link? - title: Delete related wiki page link + heading: Vil du slette linket til den relaterede wikiside? + title: Slet link til relateret wikiside errors: - connection_error: Could not connect to the wiki provider. - invalid_parent: The selected page is not a valid parent page. - invalid_response: The wiki provider responded unexpectedly. - missing_token: The user account is not yet connected to the wiki provider. - request_failed: The wiki provider experienced an unexpected error. - unauthorized: An authorization error occurred. + connection_error: Der kunne ikke oprettes forbindelse til wiki-udbyderen. + invalid_parent: Den valgte side er ikke en gyldig overordnet side. + invalid_response: Wiki-udbyderen svarede uventet. + missing_token: Brugerkontoen er endnu ikke forbundet med wiki-udbyderen. + request_failed: Der opstod en uventet fejl hos wiki-udbyderen. + unauthorized: Der opstod en godkendelsesfejl. health_checks: authentication: - existing_token: User token - header: Authentication - user_bound_request: User-based request authentication + existing_token: Brugertoken + header: Godkendelse + user_bound_request: Brugerbaseret godkendelse af forespørgsler base_configuration: - header: Configuration - provider_configured: Configuration complete - universal_id_known: Provider recognized + header: Konfiguration + provider_configured: Konfigurationen er fuldført + universal_id_known: Udbyderen er genkendt errors: - connection_error: OpenProject could not connect to the wiki provider. - not_configured: The connection could not be validated. Please finish configuration first. - uid_mismatch: The universal identifier reported by the wiki provider does not match the identifier that OpenProject recorded during setup. - xwiki_oauth_connection_error: OpenProject could not connect to the configured XWiki instance. - xwiki_oauth_request_error: An unexpected error occurred when trying to communicate with the XWiki instance. - xwiki_oauth_token_missing: OpenProject cannot test the user-level communication with XWiki as the user did not yet connect their XWiki account. - xwiki_oauth_unauthorized: The user token was not recognized by XWiki. + connection_error: OpenProject kunne ikke oprette forbindelse til wiki-udbyderen. + not_configured: Forbindelsen kunne ikke valideres. Gør konfigurationen færdig først. + uid_mismatch: Det universelle id, som wiki-udbyderen oplyser, svarer ikke til det id, som OpenProject registrerede under opsætningen. + xwiki_oauth_connection_error: OpenProject kunne ikke oprette forbindelse til den konfigurerede XWiki-installation. + xwiki_oauth_request_error: Der opstod en uventet fejl under kommunikationen med XWiki-installationen. + xwiki_oauth_token_missing: OpenProject kan ikke teste kommunikationen med XWiki på brugerniveau, fordi brugeren endnu ikke har forbundet sin XWiki-konto. + xwiki_oauth_unauthorized: XWiki genkendte ikke brugertokenet. index: - column_last_edited: Last edited - column_name: Wiki page - column_parent: Parent - column_project: Project - column_sub_pages: Sub-pages - filter_by_name: Filter by page name - filter_placeholder: Search by name + column_last_edited: Senest redigeret + column_name: Wikiside + column_parent: Overordnet + column_project: Projekt + column_sub_pages: Undersider + filter_by_name: Filtrér efter sidenavn + filter_placeholder: Søg efter navn menu_title: Wiki - no_results_description: No wiki pages are available. - no_results_title: No wiki pages yet + no_results_description: Der er ingen tilgængelige wikisider. + no_results_title: Der er endnu ingen wikisider queries: - all: All wiki pages - main: Main wiki pages + all: Alle wikisider + main: Primære wikisider sub_pages_count: - one: 1 sub-page - other: "%{count} sub-pages" + one: 1 underside + other: "%{count} undersider" inline_wiki_page_dialog: - title_add: Add existing wiki page - title_create: Create new wiki page + title_add: Tilføj eksisterende wikiside + title_create: Opret ny wikiside instructions: xwiki: - integration: XWiki Administration - oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [XWiki OpenProject Integration settings](xwiki_admin_link). + integration: XWiki-administration + oauth_application_details_html: Klienthemmeligheden kan ikke ses igen, når du har lukket vinduet. Kopiér værdierne til [indstillingerne for OpenProject-integrationen i XWiki](xwiki_admin_link). link_existing_wiki_page_dialog: - title: Add existing wiki page + title: Tilføj eksisterende wikiside oauth_login_component: - connect_button: Connect %{provider} account - description: Log in to %{provider} to view and manage related wiki pages from this OpenProject instance. - heading: Not connected to %{provider} + connect_button: Forbind %{provider}-konto + description: Log ind på %{provider} for at se og administrere relaterede wikisider fra denne OpenProject-installation. + heading: Ikke forbundet med %{provider} page_link_component: - add_to_related_pages: Add to related pages - remove: Remove page link + add_to_related_pages: Føj til relaterede sider + remove: Fjern sidelink page_link_forms: labels: - page_title: Title - parent: Parent - wiki_page: Wiki page + page_title: Titel + parent: Overordnet + wiki_page: Wikiside search: - no_results: No wiki pages found - placeholder: Search for a wiki page (or enter its URL) + no_results: Der blev ikke fundet nogen wikisider + placeholder: Søg efter en wikiside (eller angiv dens URL) page_links: - aria_label: A dynamic link to a wiki page placed using a macro. + aria_label: Et dynamisk link til en wikiside, der er indsat med en makro. errors: - page_access_forbidden: You do not have permission to access this wiki page - page_not_found: Linked wiki page no longer available - unexpected: An unexpected error occurred + page_access_forbidden: Du har ikke tilladelse til at åbne denne wikiside + page_not_found: Den linkede wikiside er ikke længere tilgængelig + unexpected: Der opstod en uventet fejl source: - parent: As parent + parent: Som overordnet project_settings: project_internal_wiki_component: - blankslate_description: For this instance, project wikis are disabled globally and therefore can’t be enabled per project. Please, ask your administrator to enable the global wikis in the administration settings. - blankslate_title: Project wikis are disabled globally - caption: This enables native wiki functionality for this project. Members will be able to create and read wiki pages that are stored in OpenProject. - enable: Enable the OpenProject wiki for this project + blankslate_description: Projektwikier er slået fra for hele installationen og kan derfor ikke slås til for enkelte projekter. Bed din administrator om at slå wikierne til i administrationsindstillingerne. + blankslate_title: Projektwikier er slået fra for hele installationen + caption: Slår OpenProjects egen wiki til for projektet. Medlemmerne kan oprette og læse wikisider, der gemmes i OpenProject. + enable: Slå OpenProject-wikien til for dette projekt provider_types: internal: name: OpenProject xwiki: name: XWiki relation_page_links_component: - empty_heading: No related pages - empty_text: Add wiki pages that are relevant to this work package. - link_existing: Existing wiki page - link_new: New wiki page + empty_heading: Ingen relaterede sider + empty_text: Tilføj wikisider, der er relevante for arbejdspakken. + link_existing: Eksisterende wikiside + link_new: Ny wikiside upsell: xwiki: - description: Connect XWiki with OpenProject and keep documentation and work in sync, link pages, track references and manage everything in one place. - title: XWiki Integration + description: 'Forbind XWiki med OpenProject, og hold dokumentation og arbejde synkroniseret: link sider, følg henvisninger, og styr det hele ét sted.' + title: XWiki-integration work_package_wikis_tab_component: - inline_page_links: Mentioned in description - referencing_pages: Referenced in + inline_page_links: Omtalt i beskrivelsen + referencing_pages: Henvist til i diff --git a/modules/wikis/config/locales/crowdin/js-da.yml b/modules/wikis/config/locales/crowdin/js-da.yml index dca656fb3014..71b8bdd368a6 100644 --- a/modules/wikis/config/locales/crowdin/js-da.yml +++ b/modules/wikis/config/locales/crowdin/js-da.yml @@ -25,8 +25,8 @@ da: editor: macro: wikis: - add_existing: Existing wiki page - create_new: New wiki page + add_existing: Eksisterende wikiside + create_new: Ny wikiside work_packages: tabs: - wikis: Wikis + wikis: Wikier diff --git a/modules/xls_export/config/locales/crowdin/da.yml b/modules/xls_export/config/locales/crowdin/da.yml index a80dbaef6b58..12e510630fab 100644 --- a/modules/xls_export/config/locales/crowdin/da.yml +++ b/modules/xls_export/config/locales/crowdin/da.yml @@ -1,17 +1,17 @@ --- da: - different_formats: Different formats + different_formats: Forskellige formater export: format: xls: XLS - xls_with_descriptions: XLS med beskrivelse - xls_with_relations: XLS with relations + xls_with_descriptions: XLS med beskrivelser + xls_with_relations: XLS med relationer export_to_excel: Eksporter XLS plugin_openproject_xls_export: - description: Export issue lists as Excel spreadsheets (.xls). + description: Eksportér lister som Excel-regneark (.xls). name: OpenProject XLS Export - print_with_description: Print preview with description + print_with_description: Udskriftsvisning med beskrivelse sentence_separator_or: eller xls_export: - child_of: child of - parent_of: parent of + child_of: underordnet til + parent_of: overordnet til From 4ce959d05316cf6c0ac6f00defac72e1067ac56d Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sun, 25 Oct 2026 03:15:03 +0000 Subject: [PATCH 5/7] update locales from crowdin [ci skip] --- config/locales/crowdin/da.yml | 8 +- config/locales/crowdin/js-da.yml | 26 +- .../auth_saml/config/locales/crowdin/da.yml | 110 ++--- modules/budgets/config/locales/crowdin/da.yml | 2 +- .../calendar/config/locales/crowdin/da.yml | 2 +- modules/gantt/config/locales/crowdin/da.yml | 2 +- .../config/locales/crowdin/js-da.yml | 12 +- .../config/locales/crowdin/da.yml | 110 ++--- .../ldap_groups/config/locales/crowdin/da.yml | 100 ++-- .../config/locales/crowdin/da.yml | 212 ++++----- .../config/locales/crowdin/da.yml | 436 +++++++++--------- .../storages/config/locales/crowdin/da.yml | 10 +- .../config/locales/crowdin/da.yml | 2 +- .../config/locales/crowdin/js-da.yml | 2 +- .../webhooks/config/locales/crowdin/da.yml | 82 ++-- modules/wikis/config/locales/crowdin/da.yml | 8 +- 16 files changed, 562 insertions(+), 562 deletions(-) diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 55496ad2566d..367c8b24b581 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -1132,8 +1132,8 @@ da: one: Brugerdefineret felt for grupper other: Brugerdefinerede felter for grupper health_report: - one: Tilstandsrapport - other: Tilstandsrapporter + one: Driftsstatusrapport + other: Driftsstatusrapporter issue_priority: one: Prioritet other: Prioriteter @@ -2369,7 +2369,7 @@ da: button_manage_roles: Administrer roller button_move: Flyt button_move_and_follow: Flyt og følg - button_next: Next + button_next: Næste button_print: Udskriv button_publish: Gør offentlig button_quote: Citer @@ -4320,7 +4320,7 @@ da: email_notification_settings: Indstillinger for notifikationer om lager via e-mail healthy: solved_at: løst - subject: Lageret "%{name}" fungerer igen! + subject: Lageret "%{name}" er i orden igen! summary: Problemet med din lagerintegration %{storage_name} er nu løst plaintext: healthy: diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index 515247806ae4..9a9d60c438b3 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -371,7 +371,7 @@ da: clear_selection: Ryd valg include_subprojects: Medtag alle underprojekter no_results: Ingen projekter matcher dine søgekriterier. - search_placeholder: Search projects... + search_placeholder: Søg efter projekter... selected_filter: all: Alle projekter selected: Kun valgte @@ -646,11 +646,11 @@ da: date_alerts: milestone_date: Milepælsdato overdue: Forfalden - overdue_since: for %{difference_in_days}. - property_is: is in %{difference_in_days}. - property_is_deleted: is deleted. - property_today: is today. - property_was: was %{difference_in_days} ago. + overdue_since: i %{difference_in_days}. + property_is: er om %{difference_in_days}. + property_is_deleted: er slettet. + property_today: er i dag. + property_was: var for %{difference_in_days} siden. no_unread: Ingen ulæste notifikationer reasons: assigned: Tildelt @@ -708,15 +708,15 @@ da: network_off: Der er et netværksproblem. network_on: Netværket er tilbage. Vi prøver igen. waiting_title: - timeout: Timeout + timeout: Tidsgrænse overskredet pagination: no_other_page: Du er på den eneste side. - page_navigation: Pagination navigation + page_navigation: Sidenavigation pages: page_number: Side %{number} show_per_page: Vis %{number} pr. side pages_skipped: Sider sprunget over. - per_page_navigation: Items per page selection + per_page_navigation: Valg af antal pr. side placeholders: default: "-" description: 'Beskrivelse: Klik for at redigere...' @@ -746,7 +746,7 @@ da: add_new_relation: Opret ny relation add_parent: Tilføj eksisterende overordnet add_predecessor: Tilføj forgænger - add_successor: Add successor + add_successor: Tilføj efterfølger change_parent: Skift overordnet create_new: Opret ny group_by_relation_type: Gruppér efter relationstype @@ -916,7 +916,7 @@ da: removal_label: Fjernet fra visningen i sammenligningsperioden bulk_actions: delete: Slet valgte - duplicate: Bulk duplicate + duplicate: Dupliker valgte edit: Rediger valgte move: Skift projekt for valgte button_clear: Ryd @@ -946,7 +946,7 @@ da: description_options_hide: Skjul muligheder description_options_show: Vis muligheder duplicate: - title: Duplicate work package + title: Dupliker arbejdspakke edit_attribute: "%{attribute}: Rediger" faulty_query: description: Visningen er fejlbehæftet og kunne ikke behandles. @@ -1069,7 +1069,7 @@ da: is_parent: Arbejdspakkens datoer udledes automatisk af dens underordnede. Aktivér 'Manuel planlægning' for at angive datoerne. is_switched_from_manual_to_automatic: Arbejdspakkens datoer skal måske beregnes igen, efter at du har skiftet fra manuel til automatisk planlægning, fordi den har relationer til andre arbejdspakker. sharing: - show_all_users: Show all users with whom the work package has been shared with + show_all_users: Vis alle brugere, som arbejdspakken er delt med title: Del arbejdspakke table: configure_button: Konfigurer tabellen med arbejdspakker diff --git a/modules/auth_saml/config/locales/crowdin/da.yml b/modules/auth_saml/config/locales/crowdin/da.yml index b22807bbb38b..bc2c34635fc7 100644 --- a/modules/auth_saml/config/locales/crowdin/da.yml +++ b/modules/auth_saml/config/locales/crowdin/da.yml @@ -3,27 +3,27 @@ da: activerecord: attributes: saml/provider: - allowed_clock_drift: Allowed clock drift + allowed_clock_drift: Tilladt tidsforskydning assertion_consumer_service_url: ACS (Assertion consumer service) URL authn_requests_signed: Signér SAML AuthnRequests certificate: Certifikat brugt af OpenProject til SAML-anmodninger - digest_method: Digest algoritme + digest_method: Digest-algoritme display_name: Navn format: Format icon: Tilpasset ikon - identifier: ID - idp_cert: Identitetsudbyders offentlige certifikat - idp_entity_id: Identity provider entity ID - idp_slo_service_url: IdP(Identity provider) logud endpoint - idp_sso_service_url: Identitetsudbyder login endpoint + identifier: Id + idp_cert: Identitetsudbyderens offentlige certifikat + idp_entity_id: Identitetsudbyderens entitets-id + idp_slo_service_url: Identitetsudbyderens logud-endepunkt + idp_sso_service_url: Identitetsudbyderens login-endepunkt limit_self_registration: Begræns selvregistrering - metadata_url: Identitetsudbydermetadata-URL - name_identifier_format: Navnidentifikatorformat + metadata_url: URL til identitetsudbyderens metadata + name_identifier_format: Format for navne-id private_key: Tilsvarende privat nøgle til OpenProject SAML-anmodninger scope: Omfang secret: Hemmelighed - signature_method: Signatur algoritme - sp_entity_id: Tjenesteentitets-ID + signature_method: Signaturalgoritme + sp_entity_id: Tjenestens entitets-id want_assertions_encrypted: Kræv krypterede svar want_assertions_signed: Kræv signerede svar errors: @@ -35,21 +35,21 @@ da: unmatched_private_key: tilhører ikke det givne certifikat models: saml/provider: - one: SAML provider - other: SAML providers + one: SAML-udbyder + other: SAML-udbydere saml: - delete_heading: Slet SAML-udbyder? + delete_heading: Vil du slette SAML-udbyderen? delete_title: Slet SAML-udbyder info: description: 'Brug disse parametre til at opsætte identitetsudbyderforbindelsen til OpenProject. ' - title: SAML-protokolopsætnningsparametre + title: Parametre til konfiguration af SAML-protokollen instructions: - allowed_clock_drift: 'Tolerance in seconds applied when validating the timestamps of the identity provider response. Fractions of a second are accepted. Use this only if the clocks of OpenProject and the identity provider are known to be out of sync, and keep the value as low as possible (Default: 0). + allowed_clock_drift: 'Tolerance i sekunder, der bruges ved validering af tidsstemplerne i identitetsudbyderens svar. Brøkdele af et sekund accepteres. Brug kun indstillingen, hvis det vides, at uret i OpenProject og hos identitetsudbyderen ikke går ens, og hold værdien så lav som muligt (standard: 0). ' - authn_requests_signed: 'Hvis markeret, vil OpenProject signere SAML AuthnRequest''en. Et signeringscertifikat og en privat nøgle vil skulle angives i felterne nedenfor. + authn_requests_signed: 'Når feltet er markeret, signerer OpenProject SAML-AuthnRequesten. Du skal så angive et signeringscertifikat og en privat nøgle i felterne nedenfor. ' certificate: 'Angiv det X509 PEM-formaterede certifikat brugt af OpenProject til signering af SAML-anmodninger. @@ -58,31 +58,31 @@ da: digest_method: 'Vælg digest-algoritmen til brug for SAML-anmodningssigneringen udført af OpenProject (Standard: %{default_option}). ' - display_name: 'Udbydernavnet. Dette vises som login-knappen samt på udbyderlisten. + display_name: 'Udbyderens navn. Det vises på login-knappen og i listen over udbydere. ' documentation_link: 'Se vores [dokumentation om opsætning af SAML-udbydere](docs_url) for mere information om disse opsætningsmuligheder. ' - icon: 'Angiv alternativt en offentlig URL til en ikongrafik, der vil fremgå ved siden af udbyderens navn. + icon: 'Angiv eventuelt en offentlig URL til et ikon, der vises ved siden af udbyderens navn. ' idp_cert: 'Angiv det X509 PEM-formaterede offentlige certifikat fra identitetsudbyderen. Flere certifikater kan angives ved at adskille dem med en ny linje. ' - idp_entity_id: 'Optional: Useful when the metadata URL points to a federation aggregate with a lot of entries. Enter the entity ID of your institution''s identity provider. Leave blank for single-entity metadata URLs. + idp_entity_id: 'Valgfrit: Nyttigt, når metadata-URL''en peger på en samlet federationsfil med mange poster. Angiv entitets-id''et for din institutions identitetsudbyder. Lad feltet stå tomt ved metadata-URL''er med kun én entitet. ' - idp_slo_service_url: 'URL''en til identitetsudbyder-udlogningsendepunktet. + idp_slo_service_url: 'URL''en til identitetsudbyderens logud-endepunkt. ' idp_sso_service_url: 'URL''en til identitetsudbyderens login-endepunkt. ' - limit_self_registration: 'Hvis aktiveret, kan brugere kun registrere sig vha. denne udbyder, hvis selv-registreringsindstillingen tillader dette. + limit_self_registration: 'Når indstillingen er slået til, kan brugere kun registrere sig via denne udbyder, hvis indstillingen for selvregistrering tillader det. ' - mapping: 'Opsæt kortlægningen mellem SAML-svar og brugerattributter i OpenProject. Der kan opsættes flere attributnavne at kigge efter. OpenProject vælger den første tilgængelige attribut fra SAML-svar. + mapping: 'Konfigurer tilknytningen mellem SAML-svaret og brugerattributterne i OpenProject. Du kan angive flere attributnavne, der skal søges efter. OpenProject vælger den første tilgængelige attribut i SAML-svaret. ' mapping_firstname: 'SAML-attributter fra svaret brugt til fornavnet. @@ -94,34 +94,34 @@ da: mapping_login: 'SAML-attributter fra svaret brugt til login. ' - mapping_mail: 'SAML-attributter fra svaret brugt til brugere-mailadressen. + mapping_mail: 'SAML-attributter fra svaret, der bruges til brugerens e-mailadresse. ' - mapping_uid: 'SAML-attributten til brug for det interne bruger-ID. Lad feltet stå tomt for brug af navn_id-attributten i stedet + mapping_uid: 'SAML-attribut, der skal bruges til det interne bruger-id. Lad feltet stå tomt for i stedet at bruge attributten name_id ' metadata_for_idp: 'Disse oplysninger kan blive udbedt af SAML-identitetsudbyderen. ' - metadata_none: 'Identitetsudbyderen har ikke et metadata-endepunkt eller XML-download mulighed. Dette opsættes manuelt. + metadata_none: 'Identitetsudbyderen har hverken et metadata-endepunkt eller XML, der kan hentes. Du kan konfigurere den manuelt. ' metadata_url: 'Identitetsudbyderen leverer en metadata-URL. ' - metadata_xml: 'Identitetsudbyderen leverer en metadata-XML download. + metadata_xml: 'Identitetsudbyderen tilbyder metadata-XML, der kan hentes. ' - name_identifier_format: 'Opsæt navneidentifkatorformatet til brug for SAML-udsagnet. + name_identifier_format: 'Angiv formatet for navne-id''et, der skal bruges i SAML-assertion. ' - private_key: 'Angiv den private X509 PEM-formaterede nøgle for ovenstående certifikat. Dette skal være en RSA-privatnøgle. + private_key: 'Angiv den X509 PEM-formaterede private nøgle til certifikatet ovenfor. Det skal være en privat RSA-nøgle. ' - request_uid: 'SAML-attribut til anmodning om det interne bruger-ID. Som standard bruges navn_id til dette felt. + request_uid: 'SAML-attribut, der skal anmodes om til det interne bruger-id. Som standard bruges name_id til feltet. ' - requested_attributes: 'Disse attributter føjes til SAML anmodningens-XML''en for kommunikere til identitetsudbyderen, hvilke attributterne OpenProject kræver. + requested_attributes: 'Attributterne føjes til XML''en i SAML-anmodningen for at vise identitetsudbyderen, hvilke attributter OpenProject kræver. ' requested_format: 'Formatet på den ønskede attribut. Dette bruges til at angive formatet på attributten i SAML-anmodningen. Se [dokumentation for opsætning af anmodede attributter](docs_url) for mere information. @@ -130,13 +130,13 @@ da: signature_method: 'Vælg signaturalgoritmen til brug for SAML-anmodningssigneringen udført af OpenProject (Standard: %{default_option}). ' - sp_entity_id: 'Entitets-ID for tjenesteudbyderen (SP). Sommetider også kaldet Audience. Dette er OpenProject-instansens unikke klientidentifikator. + sp_entity_id: 'Tjenesteudbyderens (SP) entitets-id. Kaldes også Audience. Det er OpenProject-installationens entydige klient-id. ' sp_metadata_endpoint: 'Dette er URL''en, hvor OpenProject SAML-metadataene er tilgængelige. Brug den evt. til opsætning af identitetsudbyderen. ' - want_assertions_encrypted: 'Hvis aktiveret, kræves det, at identitetsudbyderen krypterer udsagnssvaret vha. det certifikatpar, man leverer. + want_assertions_encrypted: 'Når indstillingen er slået til, skal identitetsudbyderen kryptere assertion-svaret med det certifikatpar, du angiver. ' want_assertions_signed: 'Hvis markeret, vil OpenProject kræve signerede svar fra identitetsudbyderen vha. dennes eget certifikatnøglepar. OpenProject vil bekræfte signaturen mod certifikatet fra basisopsætningsafsnittet. @@ -144,64 +144,64 @@ da: ' menu_title: SAML-udbydere metadata_parser: - error: 'Mislykkedes at hente identitetsudbydermetadata: %{error}' - federation_metadata: 'The metadata URL points to a federation aggregate (many identity providers). Use your institution''s direct metadata URL, or enter your institution''s IdP entity ID in the metadata form and try again. + error: 'Identitetsudbyderens metadata kunne ikke hentes: %{error}' + federation_metadata: 'Metadata-URL''en peger på en samlet federationsfil (mange identitetsudbydere). Brug din institutions direkte metadata-URL, eller angiv entitets-id''et for din institutions IdP i metadataformularen, og prøv igen. ' invalid_url: Den angivne metadata-URL er ugyldig. Angiv en HTTP(S)-URL. - metadata_too_large: The metadata file exceeds the maximum allowed size. + metadata_too_large: Metadatafilen overskrider den maksimalt tilladte størrelse. success: Opsætningen er opdateret vha. identitetsudbyderens metadata. providers: - attribute_mapping: Attribut kortlægning - attribute_mapping_text: 'Flg. felter kontrollerer, hvilke af SAML-identitetsudbyderens leverede attributter, som bruges til at angive brugerattributter i OpenProject + attribute_mapping: Tilknytning af attributter + attribute_mapping_text: 'Følgende felter styrer, hvilke attributter fra SAML-identitetsudbyderen der bruges til brugerattributterne i OpenProject ' label_add_new: Ny SAML-identitetsudbyder label_automatic_configuration: Automatisk opsætning - label_configuration_details: Identitetsudbyder endepunkter og certifikater - label_configuration_encryption: Signaturer og Kryptering - label_edit: Redigér SAML-identitetsudbyder %{name} - label_empty_description: Tilføj en udbyder for at se denne her. + label_configuration_details: Identitetsudbyderens endepunkter og certifikater + label_configuration_encryption: Signaturer og kryptering + label_edit: Rediger SAML-identitetsudbyderen %{name} + label_empty_description: Tilføj en udbyder for at se den her. label_empty_title: Ingen SAML-udbydere opsat endnu. - label_mapping: Kortlægning + label_mapping: Tilknytning label_metadata: Metadata label_metadata_endpoint: OpenProject metadata-endepunkt label_openproject_information: OpenProject-information label_requested_attribute_for: 'Anmodet attribut til: %{attribute}' - label_uid: Internt bruger-ID + label_uid: Internt bruger-id metadata: dialog: 'Dette er URL''en, hvor OpenProject SAML-metadataene er tilgængelige. Brug den evt. til opsætning af identitetsudbyderen:' no_results_table: Ingen SAML-identitetsudbydere defineret endnu. - notice_created: A new SAML identity provider was successfully created. + notice_created: Der er oprettet en ny SAML-identitetsudbyder. plural: SAML-identitetsudbydere request_attributes: format: Attributformat - legend: 'Disse attributter føjes til SAML XML-metadata for overfor den identificere udbyder at angive, hvilke attributter OpenProject kræver. Man skal muligvis stadig eksplicit opsætte sin identitetsudbyder for at sende disse attributter. Tjek relevante IdP-dokumentation. + legend: 'Attributterne føjes til SAML-metadataene i XML for at vise identitetsudbyderen, hvilke attributter OpenProject kræver. Du skal muligvis stadig konfigurere identitetsudbyderen til at sende attributterne. Se dokumentationen til din IdP. ' name: Anmodet attributnøgle title: Anmodede attributter requested_attributes: Anmodede attributter section_headers: - attributes: Egenskaber + attributes: Attributter configuration: Primær opsætning section_texts: configuration: Opsæt endepunkts-URL'erne for identitetsudbyderen, certifikaterne og yderligere SAML-indstillinger. - configuration_metadata: Denne information er forudfyldt med de leverede metadata. I de fleste tilfælde kræver de ikke redigering. + configuration_metadata: Oplysningerne er udfyldt på forhånd ud fra de angivne metadata. I de fleste tilfælde skal de ikke redigeres. display_name: Opsæt visningsnavnet på SAML-udbyderen. encryption: Opsæt udsagnssignaturer og kryptering for SAML-anmodninger og -svar. - encryption_form: Man ønsker muligvis at kryptere udsagnssvaret eller få anmodninger fra OpenProject signeret. - mapping: Justér manuelt kortlægningen mellem SAML-svar og brugerattributter i OpenProject. - metadata: Forudfyld opsætning vha. en metadata-URL eller ved at indsætte metadata-XML - metadata_form: Hvis identitetsudbyderen har et metadata-endepunkt eller XML-download, tilføj det nedenfor for at forudfylde opsætningen. + encryption_form: Du kan eventuelt kryptere assertion-svaret eller lade OpenProject signere anmodningerne. + mapping: Juster tilknytningen mellem SAML-svaret og brugerattributterne i OpenProject manuelt. + metadata: Udfyld konfigurationen på forhånd med en metadata-URL eller ved at indsætte metadata-XML + metadata_form: Hvis identitetsudbyderen har et metadata-endepunkt eller en XML-fil, som du kan hente, så tilføj det nedenfor for at udfylde konfigurationen på forhånd. metadata_form_banner: 'Redigering af metadata kan tilsidesætte eksisterende værdier i andre afsnit. ' requested_attributes: Definér det sæt attributter, der skal anmodes om i SAML-anmodningen sendt til identitetsudbyderen. - seeded_from_env: Denne udbyder blev seeded fra miljøopsætningnen. Den kan ikke redigeres. + seeded_from_env: Udbyderen er oprettet ud fra miljøkonfigurationen. Den kan ikke redigeres. singular: SAML-identitetsudbyder upsell: description: Forbind OpenProject til en SAML-identitetsudbyder - title: Single Sign-On (SSO) med SAML + title: Single sign-on (SSO) med SAML settings: - metadata_none: Metadata haves ikke + metadata_none: Jeg har ikke metadata metadata_url: Metadata-URL metadata_xml: Metadata-XML diff --git a/modules/budgets/config/locales/crowdin/da.yml b/modules/budgets/config/locales/crowdin/da.yml index 536b30656621..b003c6236e60 100644 --- a/modules/budgets/config/locales/crowdin/da.yml +++ b/modules/budgets/config/locales/crowdin/da.yml @@ -64,7 +64,7 @@ da: widgets: budget_by_cost_type: blankslate: - description: Få overblik over budgetter og omkostninger, så du nemt kan følge projektets tilstand + description: Få overblik over budgetter og omkostninger, så du nemt kan følge, hvordan det går med projektet heading: Kom i gang med projektøkonomien blankslate_zero: description: Tilføj detaljer om det planlagte budget for at se data her diff --git a/modules/calendar/config/locales/crowdin/da.yml b/modules/calendar/config/locales/crowdin/da.yml index 873d52f368aa..3840573ae82f 100644 --- a/modules/calendar/config/locales/crowdin/da.yml +++ b/modules/calendar/config/locales/crowdin/da.yml @@ -7,6 +7,6 @@ da: permission_share_calendars: Abonner på iCalendars permission_view_calendar: Vis kalendere plugin_openproject_calendar: - description: Provides calendar views. + description: Giver kalendervisninger. name: OpenProject Calendar project_module_calendar_view: Kalendere diff --git a/modules/gantt/config/locales/crowdin/da.yml b/modules/gantt/config/locales/crowdin/da.yml index a0c1aa528a03..fb721b34cbb1 100644 --- a/modules/gantt/config/locales/crowdin/da.yml +++ b/modules/gantt/config/locales/crowdin/da.yml @@ -1,3 +1,3 @@ --- da: - project_module_gantt: Gantt charts + project_module_gantt: Gantt-diagrammer diff --git a/modules/github_integration/config/locales/crowdin/js-da.yml b/modules/github_integration/config/locales/crowdin/js-da.yml index 00ab29059a4c..61509366d2d5 100644 --- a/modules/github_integration/config/locales/crowdin/js-da.yml +++ b/modules/github_integration/config/locales/crowdin/js-da.yml @@ -36,15 +36,15 @@ da: ready_for_review: markeret som klar til gennemgang tab_header: copy_menu: - description: Copy git snippets to clipboard - label: Git snippets + description: Kopiér Git-kodestykker til udklipsholderen + label: Git-kodestykker git_actions: - branch_name: Branch name - cmd: Create branch with empty commit - commit_message: Commit message + branch_name: Navn på branch + cmd: Opret branch med tomt commit + commit_message: Commit-besked copy_error: "❌ Kopiering mislykkedes!" copy_success: "✅ Kopieret!" - title: Quick snippets for Git + title: Hurtige Git-kodestykker title: Pull requests tab_prs: empty: Der er endnu ingen pull requests linket. Link en eksisterende PR ved at bruge koden OP#%{wp_id} i PR-beskrivelsen eller opret en ny PR. diff --git a/modules/ldap_departments/config/locales/crowdin/da.yml b/modules/ldap_departments/config/locales/crowdin/da.yml index ad43ec200de0..24df266d5039 100644 --- a/modules/ldap_departments/config/locales/crowdin/da.yml +++ b/modules/ldap_departments/config/locales/crowdin/da.yml @@ -4,90 +4,90 @@ da: attributes: ldap_departments/synchronized_department: dn: DN - group: Department - ldap_auth_source: LDAP connection - users_count: Members + group: Afdeling + ldap_auth_source: LDAP-forbindelse + users_count: Medlemmer ldap_departments/synchronized_tree: - base_dn: Base DN - guid_attribute: Unique identifier attribute - ldap_auth_source: LDAP connection - name: Name - ou_name_attribute: OU name attribute - structure_filter_string: Organizational unit filter - sync_users: Sync users - user_filter_string: User filter + base_dn: Base-DN + guid_attribute: Attribut for entydigt id + ldap_auth_source: LDAP-forbindelse + name: Navn + ou_name_attribute: Attribut for OU-navn + structure_filter_string: Filter for organisationsenheder + sync_users: Synkroniser brugere + user_filter_string: Brugerfilter errors: models: ldap_departments/synchronized_tree: - must_contain_base_dn: The base DN must be contained within the LDAP connection's base DN. - overlaps_other_tree: Overlaps the base DN of another synchronization on the same LDAP connection. + must_contain_base_dn: Base-DN skal ligge inden for LDAP-forbindelsens base-DN. + overlaps_other_tree: Overlapper base-DN for en anden synkronisering på samme LDAP-forbindelse. models: ldap_departments/synchronized_department: - one: Synchronized department - other: Synchronized departments + one: Synkroniseret afdeling + other: Synkroniserede afdelinger ldap_departments/synchronized_tree: - one: LDAP department synchronization - other: LDAP department synchronizations + one: Synkronisering af LDAP-afdelinger + other: Synkroniseringer af LDAP-afdelinger ee: upsell: ldap_departments: - description: Mirror your LDAP organizational unit structure into the OpenProject department hierarchy and keep department members in sync automatically. - title: LDAP department synchronization + description: Spejl strukturen af organisationsenheder i LDAP til afdelingshierarkiet i OpenProject, og hold afdelingernes medlemmer synkroniseret automatisk. + title: Synkronisering af LDAP-afdelinger ldap_departments: - label_menu_item: LDAP department synchronization - label_synchronize: Synchronize organizational units + label_menu_item: Synkronisering af LDAP-afdelinger + label_synchronize: Synkroniser organisationsenheder synchronized_departments: blankslate: - description: Run the synchronization to import the organizational units of this base DN as departments. - heading: No departments synchronized yet + description: Kør synkroniseringen for at importere organisationsenhederne under denne base-DN som afdelinger. + heading: Der er endnu ikke synkroniseret nogen afdelinger destroy: - confirmation: If you continue, %{name} is no longer managed by LDAP synchronization. - heading: Stop managing %{name}? - info: The department and its members are kept. It becomes a regular department that you can edit or delete manually. - title: Stop managing %{name} - managed_notice: Managed by LDAP synchronization - no_results: No departments have been synchronized yet. - plural: Synchronized departments - singular: Synchronized department + confirmation: Hvis du fortsætter, styres %{name} ikke længere af LDAP-synkroniseringen. + heading: Vil du stoppe styringen af %{name}? + info: Afdelingen og dens medlemmer bevares. Den bliver en almindelig afdeling, som du kan redigere eller slette manuelt. + title: Stop styringen af %{name} + managed_notice: Styres af LDAP-synkroniseringen + no_results: Der er endnu ikke synkroniseret nogen afdelinger. + plural: Synkroniserede afdelinger + singular: Synkroniseret afdeling synchronized_trees: - add_new: Add LDAP department synchronization + add_new: Tilføj synkronisering af LDAP-afdelinger blankslate: - description: Set up a synchronization to mirror your LDAP organizational unit structure into the OpenProject department hierarchy. - heading: No LDAP department synchronizations + description: Sæt en synkronisering op for at spejle strukturen af organisationsenheder i LDAP til afdelingshierarkiet i OpenProject. + heading: Ingen synkroniseringer af LDAP-afdelinger destroy: confirmation_message: - one: If you continue, the synchronization %{name} is removed and its %{count} department is no longer managed by LDAP. - other: If you continue, the synchronization %{name} is removed and its %{count} departments are no longer managed by LDAP. - heading: Remove synchronization %{name}? - info: The departments and their members are kept and become regular departments. You can edit or delete them manually afterwards under Administration → Users and permissions → Organization. - title: Remove synchronization %{name} + one: Hvis du fortsætter, fjernes synkroniseringen %{name}, og dens %{count} afdeling styres ikke længere af LDAP. + other: Hvis du fortsætter, fjernes synkroniseringen %{name}, og dens %{count} afdelinger styres ikke længere af LDAP. + heading: Vil du fjerne synkroniseringen %{name}? + info: Afdelingerne og deres medlemmer bevares og bliver almindelige afdelinger. Du kan bagefter redigere eller slette dem manuelt under Administration → Brugere og tilladelser → Organisation. + title: Fjern synkroniseringen %{name} form: - auth_source_text: Select which LDAP connection should be used. - base_dn_text: 'Enter the base DN whose organizational units should be synchronized. Its direct child OUs become top-level departments. It must be below the base DN of the selected LDAP connection. + auth_source_text: Vælg, hvilken LDAP-forbindelse der skal bruges. + base_dn_text: 'Angiv den base-DN, hvis organisationsenheder skal synkroniseres. Dens direkte underordnede OU''er bliver afdelinger på øverste niveau. Den skal ligge under base-DN for den valgte LDAP-forbindelse. ' - guid_attribute_text: 'Optional. The LDAP attribute holding a stable unique identifier (e.g. "objectGUID" or "entryUUID"). When set, departments survive OU renames and moves. Leave empty to match by DN. + guid_attribute_text: 'Valgfrit. Den LDAP-attribut, der indeholder et stabilt, entydigt id (fx "objectGUID" eller "entryUUID"). Når den er angivet, bevares afdelingerne, selvom OU''er omdøbes eller flyttes. Lad feltet stå tomt for at matche på DN. ' - ou_name_attribute_text: The LDAP attribute used to name the department (e.g. "ou"). + ou_name_attribute_text: Den LDAP-attribut, der giver afdelingen dens navn (fx "ou"). sections: - connection: LDAP connection - structure: Organizational units - users: Users - structure_filter_string_text: RFC4515 LDAP filter identifying organizational unit entries. - sync_users_text: 'If enabled, users found below the base DN are also created in OpenProject. Without it, only existing accounts are assigned to departments. + connection: LDAP-forbindelse + structure: Organisationsenheder + users: Brugere + structure_filter_string_text: LDAP-filter efter RFC 4515, der finder poster for organisationsenheder. + sync_users_text: 'Når indstillingen er slået til, oprettes brugere, der findes under base-DN, også i OpenProject. Ellers tildeles kun eksisterende konti til afdelinger. ' - user_filter_string_text: 'Optional RFC4515 LDAP filter identifying user entries. Leave empty to use the connection filter, or a generic person filter when none is set. + user_filter_string_text: 'Valgfrit LDAP-filter efter RFC 4515, der finder brugerposter. Lad feltet stå tomt for at bruge forbindelsens filter eller et generelt personfilter, hvis der ikke er angivet noget. ' - help_text: 'This module mirrors the organizational unit (OU) structure of your LDAP directory into the OpenProject department hierarchy. Each OU below the configured base DN becomes a department, and users are assigned to the department of the OU they reside in. Departments are synchronized regularly through a cron job. + help_text: 'Modulet spejler strukturen af organisationsenheder (OU''er) i dit LDAP-katalog til afdelingshierarkiet i OpenProject. Hver OU under den konfigurerede base-DN bliver en afdeling, og brugerne tildeles afdelingen for den OU, som de ligger i. Afdelingerne synkroniseres jævnligt via et cron-job. ' - no_results: No LDAP department synchronizations configured yet. - plural: LDAP department synchronizations - singular: LDAP department synchronization - synchronization_started: Synchronization started in the background. Departments will appear once it completes. + no_results: Der er endnu ikke konfigureret nogen synkroniseringer af LDAP-afdelinger. + plural: Synkroniseringer af LDAP-afdelinger + singular: Synkronisering af LDAP-afdelinger + synchronization_started: Synkroniseringen er startet i baggrunden. Afdelingerne vises, når den er færdig. plugin_openproject_ldap_departments: - description: Synchronization of LDAP organizational units into OpenProject departments. + description: Synkronisering af organisationsenheder i LDAP til afdelinger i OpenProject. name: OpenProject LDAP departments diff --git a/modules/ldap_groups/config/locales/crowdin/da.yml b/modules/ldap_groups/config/locales/crowdin/da.yml index b138d8c0abf5..5ff4b99f8e27 100644 --- a/modules/ldap_groups/config/locales/crowdin/da.yml +++ b/modules/ldap_groups/config/locales/crowdin/da.yml @@ -3,17 +3,17 @@ da: activerecord: attributes: ldap_groups/synchronized_filter: - auth_source: Auth source + auth_source: Godkendelseskilde base_dn: Søg i base DN - filter_string: LDAP filter - group_name_attribute: Group name attribute - ldap_auth_source: LDAP connection - member_lookup_attribute: Group member attribute + filter_string: LDAP-filter + group_name_attribute: Attribut for gruppenavn + ldap_auth_source: LDAP-forbindelse + member_lookup_attribute: Attribut for gruppemedlemmer sync_users: Synkroniser brugere ldap_groups/synchronized_group: - auth_source: Auth source + auth_source: Godkendelseskilde dn: DN - ldap_auth_source: LDAP connection + ldap_auth_source: LDAP-forbindelse sync_users: Synkroniser brugere errors: models: @@ -21,77 +21,77 @@ da: must_contain_base_dn: Filterbase DN skal være indeholdt i LDAP-forbindelsens base DN models: ldap_groups/synchronized_filter: - one: LDAP Group synchronization filter - other: LDAP Group synchronization filters + one: Filter til synkronisering af LDAP-grupper + other: Filtre til synkronisering af LDAP-grupper ldap_groups/synchronized_group: - one: Synchronized LDAP group - other: Synchronized LDAP groups + one: Synkroniseret LDAP-gruppe + other: Synkroniserede LDAP-grupper ee: upsell: ldap_groups: - description: Synchronize LDAP groups with OpenProject groups to manage users, change their permissions and facilitate user management across groups. - title: LDAP group synchronization + description: Synkroniser LDAP-grupper med grupper i OpenProject for at administrere brugere, ændre deres tilladelser og gøre brugeradministration på tværs af grupper nemmere. + title: Synkronisering af LDAP-grupper ldap_groups: - label_group_key: LDAP group filter key - label_menu_item: LDAP group synchronization - label_synchronize: Discover LDAP groups + label_group_key: Filternøgle for LDAP-gruppe + label_menu_item: Synkronisering af LDAP-grupper + label_synchronize: Find LDAP-grupper 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: Attribut for navn på LDAP-grupper + name_attribute_text: Den LDAP-attribut, der bruges til at navngive gruppen i OpenProject, når den oprettes af et filter synchronized_filters: - add_new: Add synchronized LDAP filter + add_new: Tilføj synkroniseret LDAP-filter destroy: - confirmation: If you continue, the synchronized filter %{name} and all groups %{groups_count} created through it will be removed. - heading: Remove synchronized filter %{name}? - removed_groups: 'Warning: This will remove the following groups from OpenProject and remove it from all projects!' - title: Remove synchronized filter %{name} - verification_html: Enter the filter name %{name} to verify the deletion. + confirmation: Hvis du fortsætter, fjernes det synkroniserede filter %{name} og alle %{groups_count} grupper, der er oprettet via det. + heading: Vil du fjerne det synkroniserede filter %{name}? + removed_groups: 'Advarsel: Følgende grupper fjernes fra OpenProject og fra alle projekter!' + title: Fjern det synkroniserede filter %{name} + verification_html: Skriv filterets navn %{name} for at bekræfte sletningen. form: base_dn_text: 'Indtast søgefasen DN for at bruge dette filter. Det skal være under basen DN for den valgte LDAP- forbindelse. Lad denne mulighed være tom for at genbruge basen DN for forbindelsen ' - filter_string_text: Enter the RFC4515 LDAP filter that returns groups in your LDAP to synchronize with OpenProject. - group_name_attribute_text: Enter the attribute of the LDAP group used for setting the OpenProject group name. - member_lookup_attribute_text: 'Leave empty to use the default reverse lookup: OpenProject searches for users whose memberOf attribute matches the group DN. This requires the memberOf attribute to be present on user entries (Active Directory, OpenLDAP with memberof overlay). Set this to the attribute name on group entries that lists member DNs to use forward lookup instead. Examples: "uniqueMember" (groupOfUniqueNames), "member" (groupOfNames). Use this for LDAP servers that do not maintain the memberOf attribute on user entries. + filter_string_text: Angiv det LDAP-filter efter RFC 4515, der returnerer de grupper i dit LDAP, som skal synkroniseres med OpenProject. + group_name_attribute_text: Angiv den attribut i LDAP-gruppen, der bruges som gruppens navn i OpenProject. + member_lookup_attribute_text: 'Lad feltet stå tomt for at bruge standardopslaget baglæns: OpenProject søger efter brugere, hvis memberOf-attribut svarer til gruppens DN. Det kræver, at brugerposterne har attributten memberOf (Active Directory, OpenLDAP med memberof-overlay). Angiv navnet på den attribut i gruppeposterne, der viser medlemmernes DN, for i stedet at slå op forlæns. Eksempler: "uniqueMember" (groupOfUniqueNames), "member" (groupOfNames). Brug det til LDAP-servere, der ikke vedligeholder memberOf-attributten på brugerposterne. ' label_n_groups_found: one: 1 gruppe fundet af filteret other: "%{count} grupper fundet af filteret" zero: Ingen grupper blev fundet af filteret - plural: LDAP Group synchronization filters - singular: LDAP Group synchronization filter + plural: Filtre til synkronisering af LDAP-grupper + singular: Filter til synkronisering af LDAP-grupper synchronized_groups: - add_new: Add synchronized LDAP group + add_new: Tilføj synkroniseret LDAP-gruppe destroy: - confirmation: If you continue, the synchronized group %{name} and all %{users_count} users synchronized through it will be removed. - heading: Remove synchronized group %{name}? - info: The OpenProject group itself and members added outside this LDAP synchronization will not be removed. - title: Remove synchronized group %{name} + confirmation: Hvis du fortsætter, fjernes den synkroniserede gruppe %{name} og alle %{users_count} brugere, der er synkroniseret via den. + heading: Vil du fjerne den synkroniserede gruppe %{name}? + info: Selve gruppen i OpenProject og medlemmer, der er tilføjet uden for denne LDAP-synkronisering, fjernes ikke. + title: Fjern den synkroniserede gruppe %{name} form: - auth_source_text: Select which LDAP connection should be used. - dn_text: Enter the full DN of the group in LDAP - group_text: Select an existing OpenProject group that members of the LDAP group shall be synchronized with + auth_source_text: Vælg, hvilken LDAP-forbindelse der skal bruges. + dn_text: Angiv gruppens fulde DN i LDAP + group_text: Vælg en eksisterende gruppe i OpenProject, som medlemmerne af LDAP-gruppen skal synkroniseres med sync_users_text: 'Hvis du aktiverer denne indstilling, vil de fundne brugere også automatisk blive oprettet i OpenProject. Uden det vil kun eksisterende konti i OpenProject blive tilføjet til grupper. ' help_text_html: | - This module allows you to set up a synchronization between LDAP and OpenProject groups. + Modulet gør det muligt at sætte en synkronisering op mellem grupper i LDAP og OpenProject.
- By default, OpenProject uses reverse lookup: it searches for users whose memberOf attribute matches the group DN. - This requires the memberOf attribute to be present on user entries (Active Directory, OpenLDAP with memberof overlay). + Som standard bruger OpenProject opslag baglæns: Det søger efter brugere, hvis memberOf-attribut svarer til gruppens DN. + Det kræver, at brugerposterne har attributten memberOf (Active Directory, OpenLDAP med memberof-overlay).
- If your LDAP server does not maintain memberOf on user entries (e.g. it uses groupOfUniqueNames with uniqueMember), - you can configure forward lookup by setting the Group member attribute on the synchronization filter. + Hvis din LDAP-server ikke vedligeholder memberOf på brugerposterne (fx fordi den bruger groupOfUniqueNames med uniqueMember), + kan du konfigurere opslag forlæns ved at angive Attribut for gruppemedlemmer i synkroniseringsfilteret.
- Groups are synchronized hourly through a cron job. - [Please see our documentation on this topic](docs_url). - no_members: This group has no synchronized members yet. - no_results: No synchronized groups found. - plural: Synchronized LDAP groups - singular: Synchronized LDAP group + Grupperne synkroniseres hver time via et cron-job. + [Læs vores dokumentation om emnet](docs_url). + no_members: Gruppen har endnu ingen synkroniserede medlemmer. + no_results: Der blev ikke fundet nogen synkroniserede grupper. + plural: Synkroniserede LDAP-grupper + singular: Synkroniseret LDAP-gruppe upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Brug synkroniserede LDAP-grupper til at administrere brugere, ændre deres tilladelser og gøre brugeradministration på tværs af grupper nemmere. plugin_openproject_ldap_groups: - description: Synchronization of LDAP group memberships. + description: Synkronisering af medlemskab af LDAP-grupper. name: OpenProject LDAP groups diff --git a/modules/openid_connect/config/locales/crowdin/da.yml b/modules/openid_connect/config/locales/crowdin/da.yml index b5714ee42e5d..3866dd7cd4a3 100644 --- a/modules/openid_connect/config/locales/crowdin/da.yml +++ b/modules/openid_connect/config/locales/crowdin/da.yml @@ -3,170 +3,170 @@ da: activerecord: attributes: openid_connect/group_link: - oidc_group_name: OpenID group identifier + oidc_group_name: OpenID-gruppe-id openid_connect/provider: - acr_values: ACR values - authorization_endpoint: Authorization endpoint + acr_values: ACR-værdier + authorization_endpoint: Autorisationsendepunkt claims: Claims - client_id: Client ID - client_secret: Client secret - display_name: Display name - end_session_endpoint: End session endpoint - grant_types_supported: Supported grant types - group_regexes: Patterns (regular expressions) - groups_claim: Groups claim + client_id: Klient-id + client_secret: Klienthemmelighed + display_name: Visningsnavn + end_session_endpoint: Endepunkt for afslutning af session + grant_types_supported: Understøttede grant-typer + group_regexes: Mønstre (regulære udtryk) + groups_claim: Claim for grupper icon: Tilpasset ikon - issuer: Issuer - jwks_uri: JWKS URI + issuer: Udsteder + jwks_uri: JWKS-URI limit_self_registration: Begræns selvregistrering metadata_url: Metadata-URL name: Navn - post_logout_redirect_uri: Post logout redirect URI - redirect_url: Redirect URL + post_logout_redirect_uri: Omdirigerings-URI efter logud + redirect_url: Omdirigerings-URL scope: Omfang secret: Hemmelighed - slug: Unique identifier - sync_groups: Synchronize groups + slug: Entydigt id + sync_groups: Synkroniser grupper tenant: Tenant - token_endpoint: Token endpoint - userinfo_endpoint: User information endpoint + token_endpoint: Token-endepunkt + userinfo_endpoint: Endepunkt for brugeroplysninger errors: models: openid_connect/provider: attributes: metadata_url: - format: Discovery endpoint URL %{message} - response_is_not_json: " does not return JSON body." - response_is_not_successful: " responds with %{status}." - response_misses_required_attributes: " does not return required attributes. Missing attributes are: %{missing_attributes}." - invalid_claims_essential: does not define a boolean at %{attribute}. - invalid_claims_location: 'contain unsupported locations: %{invalid}. Supported locations are: %{supported}.' - invalid_claims_values: does not define an array at %{attribute}. - non_object_attribute: does not define a JSON object at %{attribute}. + format: URL til discovery-endepunkt %{message} + response_is_not_json: " returnerer ikke en JSON-brødtekst." + response_is_not_successful: " svarer med %{status}." + response_misses_required_attributes: " returnerer ikke de påkrævede attributter. Disse attributter mangler: %{missing_attributes}." + invalid_claims_essential: definerer ikke en boolesk værdi ved %{attribute}. + invalid_claims_location: 'indeholder placeringer, der ikke understøttes: %{invalid}. Understøttede placeringer er: %{supported}.' + invalid_claims_values: definerer ikke et array ved %{attribute}. + non_object_attribute: definerer ikke et JSON-objekt ved %{attribute}. models: openid_connect/provider: - one: OpenID Connect provider - other: OpenID Connect providers + one: OpenID Connect-udbyder + other: OpenID Connect-udbydere openid_connect/user_token: - one: OpenID Connect token - other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + one: OpenID Connect-token + other: OpenID Connect-tokens + logout_warning: 'Du er logget ud. Indholdet af formularer, du sender, kan gå tabt. [Log ind]. ' openid_connect: - delete_heading: Delete this OpenID Connect provider? - delete_title: Delete OpenID Connect provider - group_links_heading: OpenID Connect group links + delete_heading: Vil du slette OpenID Connect-udbyderen? + delete_title: Slet OpenID Connect-udbyder + group_links_heading: Gruppelinks i OpenID Connect groups: match_preview_component: - placeholder_none: No groups currently match the pattern. - title: Extracted group names + placeholder_none: Ingen grupper matcher mønsteret i øjeblikket. + title: Udtrukne gruppenavne match_preview_dialog_component: - description: This allows you to test your regular expression pattern against sample data to verify that the group names you want extracted are indeed extracted properly. You can modify your pattern here but the test string and matches themselves will not be saved with the configuration. - group_names_description: Enter one group name per line as it would appear in the OIDC claim, to see how your regular expression patterns affect them. - group_names_label: Test group names - show_button: Test pattern - title: Test regular expressions + description: Her kan du teste dit mønster med regulære udtryk mod eksempeldata for at kontrollere, at de ønskede gruppenavne bliver udtrukket korrekt. Du kan ændre mønsteret her, men teststrengen og resultaterne gemmes ikke i konfigurationen. + group_names_description: Angiv ét gruppenavn pr. linje, som det ville stå i OIDC-claimet, for at se, hvordan dine mønstre med regulære udtryk påvirker dem. + group_names_label: Test gruppenavne + show_button: Test mønster + title: Test regulære udtryk instructions: - acr_values: 'Request non-essential claims in an easier format. See [our documentation on acr_values](docs_url) for more information. + acr_values: 'Anmod om claims, der ikke er essentielle, i et enklere format. Se [vores dokumentation om acr_values](docs_url) for at få flere oplysninger. ' - claims: 'You can request additional claims for the userinfo and id token endpoints. Please see [our OpenID connect documentation](docs_url) for more information. + claims: 'Du kan anmode om flere claims til endepunkterne for userinfo og ID-token. Se [vores dokumentation om OpenID Connect](docs_url) for at få flere oplysninger. ' - client_id: This is the client ID given to you by your OpenID Connect provider - client_secret: This is the client secret given to you by your OpenID Connect provider + client_id: Det klient-id, som du har fået af din OpenID Connect-udbyder + client_secret: Den klienthemmelighed, som du har fået af din OpenID Connect-udbyder display_name: Udbydernavnet. Dette vises som login-knappen samt på udbyderlisten. - endpoint_url: The endpoint URL given to you by the OpenID Connect provider - group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. - group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. - groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. - limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. - mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. + endpoint_url: Den endepunkts-URL, som du har fået af OpenID Connect-udbyderen + group_regexes: Ét mønster med regulære udtryk pr. linje. Læs [dokumentationen](docs_url) for at få flere oplysninger om, hvordan du gør. + group_regexes_detail: Definér eventuelt mønstre med regulære udtryk, der finder gruppenavne i claimet for grupper. Et mønster som ^Level1/Level2/([\w/]+)$ udtrækker fx gruppen “Groupname/SubGroup” fra et svar, der indeholder “Level1/Level2/GroupName/SubGroup”. Hvis intet mønster matcher, ignoreres gruppen. Lad feltet stå tomt for at synkronisere alle grupper med deres fulde gruppenavn. + group_regexes_testing: Klik på 'Test mønster' for at teste dit mønster med regulære udtryk mod eksempler på OIDC-userinfo. + group_sync: Udtræk og synkroniser automatisk oplysninger om gruppemedlemskab fra identitetsudbyderen. + groups_claim: Angiv navnet på det claim, der forventes at angive navnene på de grupper, som brugeren er medlem af. + limit_self_registration: Når indstillingen er slået til, kan brugere kun registrere sig via denne udbyder, hvis konfigurationen hos udbyderen tillader det. + mapping_admin: 'Angiv en brugerdefineret tilknytning i userinfo-svaret, der skal bruges til administratorstatus. Den forventer, at der returneres en boolesk attribut. ' - mapping_email: 'Provide a custom mapping in the userinfo response to be used for the email attribute. + mapping_email: 'Angiv en brugerdefineret tilknytning i userinfo-svaret, der skal bruges til e-mail-attributten. ' - mapping_first_name: 'Provide a custom mapping in the userinfo response to be used for the first name. + mapping_first_name: 'Angiv en brugerdefineret tilknytning i userinfo-svaret, der skal bruges til fornavnet. ' - mapping_last_name: 'Provide a custom mapping in the userinfo response to be used for the last name. + mapping_last_name: 'Angiv en brugerdefineret tilknytning i userinfo-svaret, der skal bruges til efternavnet. ' - mapping_login: 'Provide a custom mapping in the userinfo response to be used for the login attribute. + mapping_login: 'Angiv en brugerdefineret tilknytning i userinfo-svaret, der skal bruges til login-attributten. ' - metadata_none: I don't have this information - metadata_url: I have a discovery endpoint URL - oidc_information: These values are needed to configure the OpenID Connect provider. - post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. - scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. - menu_title: OpenID providers + metadata_none: Jeg har ikke disse oplysninger + metadata_url: Jeg har en URL til et discovery-endepunkt + oidc_information: Disse værdier er nødvendige for at konfigurere OpenID Connect-udbyderen. + post_logout_redirect_uri: Den URL, som OpenID Connect-udbyderen skal omdirigere til efter en anmodning om logud. + scope: Hvis du vil anmode om egne scopes, kan du angive en eller flere scope-værdier her, adskilt med mellemrum. Se [dokumentationen om OpenID Connect](docs_url) for at få flere oplysninger. + tenant: Erstat standard-tenanten med jeres egen, hvis det er relevant. Se her. + menu_title: OpenID-udbydere providers: - client_details_description: Configuration details of OpenProject as an OIDC client + client_details_description: Konfigurationsoplysninger for OpenProject som OIDC-klient custom: - name: Custom + name: Brugerdefineret google: name: Google - label_add_new: Add a new OpenID provider - label_advanced_configuration: Advanced configuration - label_attribute_mapping: Attributkortlægning + label_add_new: Tilføj en ny OpenID-udbyder + label_advanced_configuration: Avanceret konfiguration + label_attribute_mapping: Tilknytning af attributter label_automatic_configuration: Automatisk opsætning - label_client_details: Client details + label_client_details: Klientoplysninger label_configuration_details: Metadata - label_edit: Edit OpenID provider %{name} - label_empty_description: Tilføj en udbyder for at se denne her. - label_empty_title: No OpenID providers configured yet. - label_group_mapping: Group mapping - label_metadata: OpenID Connect Discovery Endpoint - label_optional_configuration: Optional configuration - label_providers: Providers + label_edit: Rediger OpenID-udbyderen %{name} + label_empty_description: Tilføj en udbyder for at se den her. + label_empty_title: Der er endnu ikke konfigureret nogen OpenID-udbydere. + label_group_mapping: Tilknytning af grupper + label_metadata: Discovery-endepunkt for OpenID Connect + label_optional_configuration: Valgfri konfiguration + label_providers: Udbydere microsoft_entra: name: Microsoft Entra - no_results_table: No providers have been defined yet. - notice_created: A new OpenID provider was successfully created. - plural: OpenID providers + no_results_table: Der er endnu ikke defineret nogen udbydere. + notice_created: Der er oprettet en ny OpenID-udbyder. + plural: OpenID-udbydere section_texts: - attribute_mapping: Configure the mapping of attributes between OpenProject and the OpenID Connect provider. - claims: Request additional claims for the ID token or userinfo response. - configuration: Configuration details of the OpenID Connect provider - configuration_metadata: The information has been pre-filled using the supplied discovery endpoint. In most cases, they do not require editing. - display_name: The display name visible to users. - group_mapping: Map group names provided by the identity provider to groups in OpenProject. - metadata: Pre-fill configuration using an OpenID Connect discovery endpoint URL - metadata_form_banner: Editing the discovery endpoint may override existing pre-filled metadata values. - metadata_form_description: If your identity provider has a discovery endpoint URL. Use it below to pre-fill configuration. - metadata_form_title: OpenID Connect Discovery endpoint + attribute_mapping: Konfigurer tilknytningen af attributter mellem OpenProject og OpenID Connect-udbyderen. + claims: Anmod om flere claims til ID-tokenet eller userinfo-svaret. + configuration: Konfigurationsoplysninger for OpenID Connect-udbyderen + configuration_metadata: Oplysningerne er udfyldt på forhånd ud fra det angivne discovery-endepunkt. I de fleste tilfælde skal de ikke redigeres. + display_name: Det visningsnavn, brugerne ser. + group_mapping: Knyt de gruppenavne, identitetsudbyderen leverer, til grupper i OpenProject. + metadata: Udfyld konfigurationen på forhånd med URL'en til et discovery-endepunkt for OpenID Connect + metadata_form_banner: Hvis du redigerer discovery-endepunktet, kan eksisterende metadataværdier, der er udfyldt på forhånd, blive overskrevet. + metadata_form_description: Hvis din identitetsudbyder har en URL til et discovery-endepunkt, så brug den nedenfor til at udfylde konfigurationen på forhånd. + metadata_form_title: Discovery-endepunkt for OpenID Connect side_panel: information_component: - backchannel_logout_url: Backchannel logout URL - singular: OpenID provider + backchannel_logout_url: URL til backchannel-logud + singular: OpenID-udbyder upsell: - description: Connect OpenProject to an OpenID connect identity provider - title: Single Sign-On (SSO) with OpenID connect + description: Forbind OpenProject med en OpenID Connect-identitetsudbyder + title: Single sign-on (SSO) med OpenID Connect setting_instructions: limit_self_registration: 'Hvis aktiveret, kan brugere kun registrere sig vha. denne udbyder, hvis selv-registreringsindstillingen tillader dette. ' settings: - endpoint_url: Endpoint URL - metadata_none: I don't have this information - metadata_url: I have a discovery endpoint URL + endpoint_url: Endepunkts-URL + metadata_none: Jeg har ikke disse oplysninger + metadata_url: Jeg har en URL til et discovery-endepunkt plugin_openproject_openid_connect: - description: Adds OmniAuth OpenID Connect strategy providers to OpenProject. + description: Tilføjer udbydere af OmniAuth OpenID Connect-strategien til OpenProject. name: OpenProject OpenID Connect provider: delete_warning: - delete_result_1: Remove the provider from the list of available providers. - delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. + delete_result_1: Fjerne udbyderen fra listen over tilgængelige udbydere. + delete_result_direct: Udbyderen er markeret som udbyder til direkte login. Indstillingen fjernes, og brugerne bliver ikke længere sendt videre til udbyderen ved login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. - other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." - zero: No users are currently using this provider. No further action is required. - input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. - irreversible_notice: Deleting an SSO provider is an irreversible action. - provider_html: 'Are you sure you want to delete the SSO provider %{name}? Be aware, that this will:' + one: Én bruger bruger stadig denne udbyder. Vedkommende skal inviteres igen eller logge ind med en anden udbyder. + other: "%{count} brugere bruger stadig denne udbyder. De skal inviteres igen eller logge ind med en anden udbyder." + zero: Ingen brugere bruger denne udbyder i øjeblikket. Der skal ikke gøres mere. + input_delete_confirmation_html: Skriv udbyderens navn %{name} for at bekræfte sletningen. + irreversible_notice: Sletning af en SSO-udbyder kan ikke fortrydes. + provider_html: 'Er du sikker på, at du vil slette SSO-udbyderen %{name}? Vær opmærksom på, at det vil:' diff --git a/modules/resource_management/config/locales/crowdin/da.yml b/modules/resource_management/config/locales/crowdin/da.yml index 9fbdfcf10f5d..829c1b507479 100644 --- a/modules/resource_management/config/locales/crowdin/da.yml +++ b/modules/resource_management/config/locales/crowdin/da.yml @@ -3,313 +3,313 @@ da: activerecord: attributes: resource_allocation: - allocated_hours: Hours - allocated_time: Allocated time - date_range: Dates - end_date: Finish date - entity: Entity - filter_name: Resource filter name - principal: Assignee - start_date: Start date - state: State - user_filter: User filter + allocated_hours: Timer + allocated_time: Fordelt tid + date_range: Datoer + end_date: Slutdato + entity: Enhed + filter_name: Navn på ressourcefilter + principal: Tildelt + start_date: Startdato + state: Tilstand + user_filter: Brugerfilter resource_planner: - date_range: Dates - default_view_class_name: Default view - end_date: Finish date - favorite: Favorite - name: Name - public: Public - start_date: Start date + date_range: Datoer + default_view_class_name: Standardvisning + end_date: Slutdato + favorite: Favorit + name: Navn + public: Offentlig + start_date: Startdato errors: models: resource_allocation: attributes: end_date: - greater_than_start_date: must be after the start date. + greater_than_start_date: skal ligge efter startdatoen. resource_planner: attributes: end_date: - greater_than_start_date: must be after the start date. - required_with_start_date: must be set when a start date is set. + greater_than_start_date: skal ligge efter startdatoen. + required_with_start_date: skal angives, når der er angivet en startdato. start_date: - required_with_end_date: must be set when a finish date is set. + required_with_end_date: skal angives, når der er angivet en slutdato. resource_work_package_list: attributes: query: - must_be_work_package_query: must be a work package query. + must_be_work_package_query: skal være en visning af arbejdspakker. models: resource_allocation: - one: Resource Allocation - other: Resource Allocations + one: Ressourcefordeling + other: Ressourcefordelinger resource_planner: - one: Resource Planner - other: Resource Planners + one: Ressourceplanlægger + other: Ressourceplanlæggere resource_user_card: - one: User card - other: User cards + one: Brugerkort + other: Brugerkort resource_user_timeline: - one: User timeline - other: User timelines + one: Tidslinje for brugere + other: Tidslinjer for brugere resource_work_package_list: - one: Work packages list - other: Work packages lists + one: Liste over arbejdspakker + other: Lister over arbejdspakker resource_work_package_timeline: - one: Work packages timeline - other: Work packages timelines - button_next: Next + one: Tidslinje for arbejdspakker + other: Tidslinjer for arbejdspakker + button_next: Næste ee: features: - resource_management: Resource management + resource_management: Ressourcestyring upsell: resource_management: - description: Plan and balance your team's workload with resource planners. Allocate people to work packages, track capacity over time and spot over- and under-allocation at a glance. - title: Resource management - label_resource_management: Resource management - permission_allocate_user_resources: Allocate user resources - permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. - permission_assign_users_to_generic_allocations: Assign users to generic allocations - permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. - permission_manage_public_resource_planners: Manage public resource planners - permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. - permission_view_resource_planners: View resource planners - permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + description: Planlæg og fordel dit teams arbejdsbyrde med ressourceplanlæggere. Fordel personer på arbejdspakker, følg kapaciteten over tid, og se over- og underbooking med det samme. + title: Ressourcestyring + label_resource_management: Ressourcestyring + permission_allocate_user_resources: Fordel brugerressourcer + permission_allocate_user_resources_explanation: Giver mulighed for at oprette, opdatere og slette ressourcefordelinger i en ressourceplanlægger. Det omfatter at tildele brugere (eller brugerfiltre) til en planlægger og at justere den fordelte tid og datoperioden. + permission_assign_users_to_generic_allocations: Tildel brugere til generiske fordelinger + permission_assign_users_to_generic_allocations_explanation: Giver mulighed for at bruge visningen Bemanding til at tildele rigtige brugere til generiske (filterbaserede) ressourcefordelinger, der endnu ikke har en bruger. Det giver ikke mulighed for at oprette eller redigere fordelinger. + permission_manage_public_resource_planners: Administrer offentlige ressourceplanlæggere + permission_manage_public_resource_planners_explanation: Giver mulighed for at oprette og administrere offentlige ressourceplanlæggere og for at se, oprette, administrere og offentliggøre egne ressourceplanlæggere. Det giver ikke adgang til at se ressourceplanlæggere, som andre brugere har oprettet, og som ikke er delt offentligt. + permission_view_resource_planners: Vis ressourceplanlæggere + permission_view_resource_planners_explanation: Giver adgang til ressourceplanlæggere. Brugeren kan oprette og administrere egne ressourceplanlæggere og se offentlige ressourceplanlæggere. Det giver ikke adgang til at se ressourceplanlæggere, som andre brugere har oprettet, og som ikke er delt offentligt. plugin_openproject_resource_management: - description: Provides resource management and capacity planning. + description: Giver ressourcestyring og kapacitetsplanlægning. name: OpenProject Resource Management - project_module_resource_management: Resource management + project_module_resource_management: Ressourcestyring resource_management: action: - delete: Delete - edit: Edit - favorite: Add to favorites - make_private: Make private - make_public: Make public - unfavorite: Remove from favorites + delete: Slet + edit: Rediger + favorite: Føj til favoritter + make_private: Gør privat + make_public: Gør offentlig + unfavorite: Fjern fra favoritter allocate_resource_dialog: kind: filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type + caption: Angiv filterkriterier ud fra brugerattributter for at oprette en pladsholder-ressource. + label: Filterkriterier + label: Fordelingstype principal: - caption: Allocate hours for a specific user. - label: User + caption: Fordel timer til en bestemt bruger. + label: Bruger missing_working_hours: - none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. - partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. + none: Den valgte bruger har ingen arbejdstid konfigureret på disse datoer og regnes derfor for at have ingen kapacitet. + partial: Den valgte bruger har ingen arbejdstid konfigureret for %{dates}, så disse dage regnes som dage uden kapacitet. outside_dates: - description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. + description: De valgte ressourcedatoer, %{resource_dates}, ligger uden for arbejdspakkens datoer, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" - description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations - schedule_availability: "%{schedule} (%{factor}% available for project work)" - schedule_change: until %{date}, then %{schedule} - schedule_note: This user works %{schedule}. - submit: Allocate overtime - title: Do you want to allocate overtime to the user? - submit: Allocate - success_message: Resource allocated. - title: Allocate resource + capacity_summary: "%{available} til rådighed · %{scheduled} planlagt" + description: Den valgte bruger, %{user}, ville blive fordelt ud over sin arbejdstid i perioden. + hidden_work: Andre fordelinger + schedule_availability: "%{schedule} (%{factor} % til rådighed for projektarbejde)" + schedule_change: til %{date}, derefter %{schedule} + schedule_note: Brugeren arbejder %{schedule}. + submit: Fordel overtid + title: Vil du fordele overtid til brugeren? + submit: Fordel + success_message: Ressourcen er fordelt. + title: Fordel ressource allocation: - hours: "%{value}h" - no_work: No work planned on this work package + hours: "%{value} t" + no_work: Der er ikke planlagt noget arbejde på arbejdspakken summary: "%{allocated} / %{scheduled}" assignment_dialog: - available: "%{hours} available" - confirm_overtime: Assign anyway - filter_criteria: Filter criteria + available: "%{hours} til rådighed" + confirm_overtime: Tildel alligevel + filter_criteria: Filterkriterier no_candidates: - description: No project member matches this allocation's filter criteria. - title: No matching members - no_schedule: This user has no work schedule set up, so we cannot determine whether this allocation fits. - overbooked_detail: This user has %{available} available in this period, the work package requires %{requested}. - requested_for: Requested for - select_user: Please select a user to assign. - submit: Assign - title: Assign %{filter_name} + description: Intet projektmedlem matcher filterkriterierne for fordelingen. + title: Ingen medlemmer matcher + no_schedule: Brugeren har ingen arbejdsplan, så vi kan ikke afgøre, om fordelingen passer. + overbooked_detail: Brugeren har %{available} til rådighed i perioden, og arbejdspakken kræver %{requested}. + requested_for: Ønsket til + select_user: Vælg en bruger, der skal tildeles. + submit: Tildel + title: Tildel %{filter_name} blankslate: - desc: Create a resource planner to start planning capacity for this project. - title: No resource planners yet + desc: Opret en ressourceplanlægger for at begynde at planlægge kapaciteten i projektet. + title: Der er endnu ingen ressourceplanlæggere configure_view_dialog: - delete_confirmation: Are you sure you want to delete this view? This cannot be undone. + delete_confirmation: Er du sikker på, at du vil slette visningen? Det kan ikke fortrydes. filter_mode: automatic: - caption: An automatically-generated list that displays items that meet criteria you define. - label: Automatically filtered - label: Item selection + caption: En automatisk dannet liste med de elementer, der opfylder de kriterier, som du fastlægger. + label: Filtreret automatisk + label: Valg af elementer manual: - caption: A custom list of items you manually add and remove. Filtering is not possible. - label: Manually hand-picked - title: Configure view + caption: En egen liste med elementer, som du selv tilføjer og fjerner. Filtrering er ikke mulig. + label: Udvalgt manuelt + title: Konfigurer visning edit_allocation_dialog: - submit: Save - success_message: Resource allocation updated. - title: Edit allocation - favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. - label_edit_resource_planner: Edit resource planner - label_new_resource_planner: New resource planner - label_resource_planner: Resource planner - label_resource_planner_plural: Resource planners + submit: Gem + success_message: Ressourcefordelingen er opdateret. + title: Rediger fordeling + favorite_caption: Gør visningen til en favorit for at føje den til den øverste del af sidepanelet. + label_edit_resource_planner: Rediger ressourceplanlægger + label_new_resource_planner: Ny ressourceplanlægger + label_resource_planner: Ressourceplanlægger + label_resource_planner_plural: Ressourceplanlæggere new_view_dialog: - title: Add View - public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. + title: Tilføj visning + public_caption: Gør visningen offentlig for alle medlemmer af projektet. Det påvirker ikke synligheden af arbejdspakker, som stadig afhænger af hver brugers tilladelser. show: - placeholder: The detailed view for this resource planner is coming soon. + placeholder: Den detaljerede visning af ressourceplanlæggeren kommer snart. sidebar: - private: Private - public: Public + private: Privat + public: Offentlig staffing: - assign: Assign user + assign: Tildel bruger blank: - description: All generic allocations in this project have a user assigned. - title: Nothing to staff + description: Alle generiske fordelinger i projektet har fået tildelt en bruger. + title: Intet at bemande columns: - dates: Dates - requested_time: Requested time - resource: Resource - work_package: Work package - context_menu_label: Allocation actions - delete_confirmation: Are you sure you want to delete this allocation? - menu_item: Staffing - starts_in_past: This allocation has already started and is still unassigned. - success_message: User assigned. - title: Staffing - sub_views: Views in this resource planner + dates: Datoer + requested_time: Ønsket tid + resource: Ressource + work_package: Arbejdspakke + context_menu_label: Handlinger for fordeling + delete_confirmation: Er du sikker på, at du vil slette fordelingen? + menu_item: Bemanding + starts_in_past: Fordelingen er allerede startet og har stadig ingen tildelt. + success_message: Brugeren er tildelt. + title: Bemanding + sub_views: Visninger i denne ressourceplanlægger timeframe: - full: From %{start} to %{end} + full: Fra %{start} til %{end} timeline: granularity: - day: Day - month: Month - week: Calendar week + day: Dag + month: Måned + week: Kalenderuge navigation: - next: Next period - previous: Previous period - today: Today + next: Næste periode + previous: Forrige periode + today: I dag subheader: - add: Add - allocate: Allocate - settings: Configure view + add: Tilføj + allocate: Fordel + settings: Konfigurer visning user_allocations_dialog: - allocate_work_package: Allocate work package - blank: This user has no allocated work packages. + allocate_work_package: Fordel arbejdspakke + blank: Brugeren har ingen fordelte arbejdspakker. other_work_packages: - one: 1 other work package - other: "%{count} other work packages" - title: Utilization + one: 1 anden arbejdspakke + other: "%{count} andre arbejdspakker" + title: Udnyttelse user_card_list: add_user_dialog: - title: Add user + title: Tilføj bruger blank: - description: There are no users matching this view's filters yet. - manual_description: No users have been added to this view yet. - title: No users to display + description: Der er endnu ingen brugere, der matcher visningens filtre. + manual_description: Der er endnu ikke føjet nogen brugere til visningen. + title: Ingen brugere at vise card: - multi_value_more: "+%{count} more" - remove: Remove user - remove_confirmation: Remove this user from the view? + multi_value_more: "+%{count} mere" + remove: Fjern bruger + remove_confirmation: Vil du fjerne brugeren fra visningen? fields: - drag_area_label: Displayed fields - input_caption: Select the fields that will be displayed in the user card for this view - input_label: Fields - input_placeholder: Add a field - working_times: Working times + drag_area_label: Viste felter + input_caption: Vælg de felter, der skal vises på brugerkortet i denne visning + input_label: Felter + input_placeholder: Tilføj et felt + working_times: Arbejdstider subheader: - resource: Resource - settings: Configure view + resource: Ressource + settings: Konfigurer visning utilization: - label: Utilization + label: Udnyttelse working_hours: - blank: No working hours configured - schedule_availability_compact: "%{schedule} (%{factor}% available)" - schedule_change_compact: until %{date}, %{schedule} + blank: Ingen arbejdstid konfigureret + schedule_availability_compact: "%{schedule} (%{factor} % til rådighed)" + schedule_change_compact: til %{date}, %{schedule} user_timeline: blank: - add_user: Add user - configure_view: Configure view - description: There are no users matching this view's filters yet. - manual_description: Add users to this view to see their allocation over time. - title: No users to display - no_work_schedule: No work schedule planned for this user - overbooked: This user is over-allocated in the selected period. + add_user: Tilføj bruger + configure_view: Konfigurer visning + description: Der er endnu ingen brugere, der matcher visningens filtre. + manual_description: Føj brugere til visningen for at se deres fordeling over tid. + title: Ingen brugere at vise + no_work_schedule: Der er ikke planlagt nogen arbejdsplan for brugeren + overbooked: Brugeren er overbooket i den valgte periode. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + range: "%{dates}: %{scheduled} planlagt, %{available} til rådighed" subheader: - add_user: Add user + add_user: Tilføj bruger view_types: resource_user_card: - caption: Create a view based on users and see their details and allocation in a list of user cards - label: Users card list + caption: Opret en visning ud fra brugere, og se deres detaljer og fordeling i en liste med brugerkort + label: Liste med brugerkort resource_user_timeline: - caption: Create a view based on users and see their allocations over time on a timeline - label: Users timeline + caption: Opret en visning ud fra brugere, og se deres fordelinger over tid på en tidslinje + label: Tidslinje for brugere resource_work_package_list: - caption: Create a view based on work packages and see its details and allocation in a list - label: Work packages list + caption: Opret en visning ud fra arbejdspakker, og se deres detaljer og fordeling i en liste + label: Liste over arbejdspakker resource_work_package_timeline: - caption: Create a view based on work packages and see their allocations over time on a timeline - label: Work packages timeline + caption: Opret en visning ud fra arbejdspakker, og se deres fordelinger over tid på en tidslinje + label: Tidslinje for arbejdspakker user_card: - caption: Create a view based on users and see their details and allocation in a list of user cards - label: Users card list + caption: Opret en visning ud fra brugere, og se deres detaljer og fordeling i en liste med brugerkort + label: Liste med brugerkort work_package_allocations_dialog: - allocate_resource: Allocate resource - context_menu_label: Allocation actions - delete_confirmation: Are you sure you want to delete this allocation? This cannot be undone. - delete_success: Resource allocation deleted. - hidden_user: Hidden user - overbooked: The user is allocated beyond their working hours during this period. - title: Allocation + allocate_resource: Fordel ressource + context_menu_label: Handlinger for fordeling + delete_confirmation: Er du sikker på, at du vil slette fordelingen? Det kan ikke fortrydes. + delete_success: Ressourcefordelingen er slettet. + hidden_user: Skjult bruger + overbooked: Brugeren er fordelt ud over sin arbejdstid i perioden. + title: Fordeling work_package_list: add_work_package_dialog: - title: Add work package + title: Tilføj arbejdspakke allocated_members: additional: "+%{count}" other_users: - one: "%{count} user" - other: "%{count} users" - unassigned: Unassigned + one: "%{count} bruger" + other: "%{count} brugere" + unassigned: Ikke tildelt allocation_placeholder: "—" blank: - description: There are no work packages matching this view's filters yet. - title: No work packages to display + description: Der er endnu ingen arbejdspakker, der matcher visningens filtre. + title: Ingen arbejdspakker at vise columns: - allocated_members: Allocated members - allocation: Allocation - dates: Dates + allocated_members: Fordelte medlemmer + allocation: Fordeling + dates: Datoer context_menu: - add_filter_criteria: Add filter criteria - add_user_group: Add user group - edit_total_work: Edit total work - label: More actions - move: Move - move_down: Move down - move_to_bottom: Move to bottom - move_to_top: Move to top - move_up: Move up - remove: Remove - remove_confirmation: Remove this work package from the view? - see_allocation: See allocation - mobile_title: Work packages - query_name: 'Resource management work packages: %{name}' + add_filter_criteria: Tilføj filterkriterier + add_user_group: Tilføj brugergruppe + edit_total_work: Rediger samlet arbejde + label: Flere handlinger + move: Flyt + move_down: Flyt ned + move_to_bottom: Flyt nederst + move_to_top: Flyt øverst + move_up: Flyt op + remove: Fjern + remove_confirmation: Vil du fjerne arbejdspakken fra visningen? + see_allocation: Se fordeling + mobile_title: Arbejdspakker + query_name: 'Arbejdspakker i ressourcestyring: %{name}' subheader: - add: Add - add_work_package: Add work package - allocate: Allocate - settings: Configure view + add: Tilføj + add_work_package: Tilføj arbejdspakke + allocate: Fordel + settings: Konfigurer visning work_package_timeline: allocation_bar: matching_members_description: - one: "%{count} member of this project matches the allocation's filter criteria." - other: "%{count} members of this project match the allocation's filter criteria." + one: "%{count} medlem af projektet matcher fordelingens filterkriterier." + other: "%{count} medlemmer af projektet matcher fordelingens filterkriterier." blank: - add_work_package: Add work package - configure_view: Configure view - description: There are no work packages matching this view's filters yet. - manual_description: Add work packages to this view to plan their allocation over time. - title: No work packages to display - query_name: 'Resource management work package timeline: %{name}' + add_work_package: Tilføj arbejdspakke + configure_view: Konfigurer visning + description: Der er endnu ingen arbejdspakker, der matcher visningens filtre. + manual_description: Føj arbejdspakker til visningen for at planlægge deres fordeling over tid. + title: Ingen arbejdspakker at vise + query_name: 'Tidslinje for arbejdspakker i ressourcestyring: %{name}' subheader: - add_work_package: Add work package + add_work_package: Tilføj arbejdspakke diff --git a/modules/storages/config/locales/crowdin/da.yml b/modules/storages/config/locales/crowdin/da.yml index d1f600010385..f19efb880e6c 100644 --- a/modules/storages/config/locales/crowdin/da.yml +++ b/modules/storages/config/locales/crowdin/da.yml @@ -387,16 +387,16 @@ da: sp_unexpected_content: Der blev fundet uventet indhold i SharePoint-dokumentbiblioteket. unknown_error: Forbindelsen kunne ikke valideres. Der opstod en ukendt fejl. Se serverens log for flere oplysninger. label_error: Fejl - label_healthy: Fungerer + label_healthy: I orden label_pending: Afventer no_report: Der er ingen rapport - no_report_description: Kør kontrollerne nu for at få en fuld tilstandsrapport for fillageret. - open_report: Åbn hele tilstandsrapporten + no_report_description: Kør kontrollerne nu for at få en fuld driftsstatusrapport for fillageret. + open_report: Åbn hele driftsstatusrapporten project_folders: subtitle: Automatisk administrerede projektmapper since: siden %{datetime} synced: 'Seneste synkronisering: %{datetime}' - title: Tilstandsrapport + title: Driftsstatusrapport health_email_notifications: description_disabled: Administratorer får ikke besked via e-mail, når der er vigtige opdateringer. description_enabled: Administratorer får besked via e-mail, når der er vigtige opdateringer. @@ -514,7 +514,7 @@ da: subtitle: Du sendes videre title: Opsætningen af integrationen er fuldført timeout: - link_text: tilstanden for opsætningen af fillageret + link_text: driftsstatus for opsætningen af fillageret subtitle: OpenProject kunne ikke give dig adgang til projektmappen inden for den forventede tid. Prøv igen.

Hvis problemet fortsætter, så kontakt din OpenProject-administrator, så vedkommende kan tjekke %{storages_health_link}. waiting: subtitle: Et øjeblik, det kan tage lidt tid... diff --git a/modules/team_planner/config/locales/crowdin/da.yml b/modules/team_planner/config/locales/crowdin/da.yml index 1932eb7ced8c..ff2138c924cd 100644 --- a/modules/team_planner/config/locales/crowdin/da.yml +++ b/modules/team_planner/config/locales/crowdin/da.yml @@ -10,7 +10,7 @@ da: permission_manage_team_planner: Administrer teamplanlægger permission_view_team_planner: Vis teamplanlægger plugin_openproject_team_planner: - description: Provides team planner views. + description: Giver visninger med teamplanlægger. name: OpenProject Team Planner project_module_team_planner_view: Teamplanlæggere team_planner: diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-da.yml b/modules/two_factor_authentication/config/locales/crowdin/js-da.yml index d57dd1def2df..1de25f15aa5b 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/js-da.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-da.yml @@ -24,4 +24,4 @@ da: js: two_factor_authentication: errors: - aborted: The authentication was cancelled. Please try again. + aborted: Godkendelsen blev annulleret. Prøv igen. diff --git a/modules/webhooks/config/locales/crowdin/da.yml b/modules/webhooks/config/locales/crowdin/da.yml index 490007913cb9..86be293b9fd2 100644 --- a/modules/webhooks/config/locales/crowdin/da.yml +++ b/modules/webhooks/config/locales/crowdin/da.yml @@ -3,78 +3,78 @@ da: activerecord: attributes: webhooks/log: - event_name: Event name - response_body: Response - response_code: Response code - url: Payload URL + event_name: Hændelsens navn + response_body: Svar + response_code: Svarkode + url: Payload-URL webhooks/webhook: - enabled: Enabled - events: Events - projects: Enabled projects - secret: Signature secret - url: Payload URL + enabled: Aktiveret + events: Hændelser + projects: Aktiverede projekter + secret: Signaturhemmelighed + url: Payload-URL models: webhooks/log: - one: Webhook log - other: Webhook logs + one: Webhook-log + other: Webhook-logge webhooks/webhook: one: Webhook other: Webhooks plugin_openproject_webhooks: - description: Provides a plug-in API to support OpenProject webhooks for better 3rd party integration. + description: Leverer et plugin-API til webhooks i OpenProject for bedre integration med tredjeparter. name: OpenProject Webhooks webhooks: outgoing: deliveries: - no_results_table: No deliveries have been made for this webhook in the past days. - time: Delivery time - title: Recent deliveries + no_results_table: Der er ikke foretaget nogen leveringer for denne webhook de seneste dage. + time: Leveringstidspunkt + title: Seneste leveringer events: - comment: Kommentér + comment: Kommentar created: Oprettet - internal_comment: Internal comment - updated: Updated - explanation_html: 'Upon the occurrence of an event like the creation of a work package or an update on a project, OpenProject will send a POST request to the configured web endpoints. Oftentimes, the event is sent after the [configured aggregation period](aggregation_path) has passed. + internal_comment: Intern kommentar + updated: Opdateret + explanation_html: 'Når der sker en hændelse, fx at en arbejdspakke oprettes eller et projekt opdateres, sender OpenProject en POST-forespørgsel til de konfigurerede web-endepunkter. Ofte sendes hændelsen først, når den [konfigurerede sammenlægningsperiode](aggregation_path) er gået. ' form: - apiv3_doc_url: For more information, visit the API documentation + apiv3_doc_url: Se API-dokumentationen for at få flere oplysninger description: - placeholder: Optional description for the webhook. + placeholder: Valgfri beskrivelse af webhooken. enabled: - description: 'When checked, the webhook will trigger on the selected events. Uncheck to disable the webhook. + description: 'Når feltet er markeret, udløses webhooken ved de valgte hændelser. Fjern markeringen for at slå webhooken fra. ' events: - title: Enabled events - introduction: 'Send a POST request to the payload URL below for any event in the project you''re subscribed to. Payload will correspond to the APIv3 representation of the object being modified. + title: Aktiverede hændelser + introduction: 'Send en POST-forespørgsel til payload-URL''en nedenfor ved enhver hændelse i det projekt, som du abonnerer på. Payloaden svarer til APIv3-repræsentationen af det objekt, der ændres. ' project_ids: - all: All projects - description: Select for which projects this webhook should be executed for. - selected: Selected projects only - title: Enabled projects + all: Alle projekter + description: Vælg, hvilke projekter webhooken skal udføres for. + selected: Kun valgte projekter + title: Aktiverede projekter secret: - description: 'If set, this secret value is used by OpenProject to sign the webhook payload. + description: 'Hvis den er angivet, bruger OpenProject denne hemmelige værdi til at signere webhookens payload. ' selected_project_ids: - title: Selected projects - label_add_new: Add new webhook - label_edit: Edit webhook + title: Valgte projekter + label_add_new: Tilføj ny webhook + label_edit: Rediger webhook label_x_events: - one: 1 event - other: "%{count} events" - zero: No events - no_results_table: No webhooks have been defined yet. + one: 1 hændelse + other: "%{count} hændelser" + zero: Ingen hændelser + no_results_table: Der er endnu ikke defineret nogen webhooks. status: - disabled: Webhook is disabled - disabled_text: Click the edit button to activate the webhook. - enabled: Webhook is enabled - enabled_text: The webhook will emit payloads for the defined events below. + disabled: Webhooken er slået fra + disabled_text: Klik på knappen Rediger for at aktivere webhooken. + enabled: Webhooken er slået til + enabled_text: Webhooken sender payloads for hændelserne nedenfor. plural: Webhooks resources: time_entry: - name: Time entry + name: Tidsregistrering singular: Webhook diff --git a/modules/wikis/config/locales/crowdin/da.yml b/modules/wikis/config/locales/crowdin/da.yml index f838bc15e261..7c51f49c20c6 100644 --- a/modules/wikis/config/locales/crowdin/da.yml +++ b/modules/wikis/config/locales/crowdin/da.yml @@ -73,8 +73,8 @@ da: run_checks: Kør kontroller nu last_check: 'Seneste kontrol: %{datetime}' no_health_report: Der er ingen rapport - no_health_report_description: Kør kontrollerne nu for at få en fuld tilstandsrapport for wiki-udbyderen. - title: Tilstandsrapport + no_health_report_description: Kør kontrollerne nu for at få en fuld driftsstatusrapport for wiki-udbyderen. + title: Driftsstatusrapport internal_provider_form: checkbox_caption: Tillad projekter at bruge projektwikier ud over eksterne wiki-udbydere checkbox_label: Slå OpenProjects projektwikier til @@ -96,9 +96,9 @@ da: side_panel: health_status_component: last_check: 'Seneste kontrol: %{datetime}' - open_report: Åbn hele tilstandsrapporten + open_report: Åbn hele driftsstatusrapporten run_checks: Kør kontroller nu - title: Tilstandsrapport + title: Driftsstatusrapport wiki_provider_list_component: label_creation_time: Oprettet label_name: Navn From 8582d582a516f19a37eba49a25fda087645113b2 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sun, 25 Oct 2026 03:47:13 +0000 Subject: [PATCH 6/7] use crowdin translations from dev --- config/locales/crowdin/af.seeders.yml | 71 +- config/locales/crowdin/af.yml | 1332 ++++++++++--- config/locales/crowdin/ar.seeders.yml | 71 +- config/locales/crowdin/ar.yml | 1610 ++++++++++++---- config/locales/crowdin/az.seeders.yml | 71 +- config/locales/crowdin/az.yml | 1308 ++++++++++--- config/locales/crowdin/be.seeders.yml | 71 +- config/locales/crowdin/be.yml | 1384 ++++++++++--- config/locales/crowdin/bg.seeders.yml | 71 +- config/locales/crowdin/bg.yml | 1344 ++++++++++--- config/locales/crowdin/ca.seeders.yml | 69 +- config/locales/crowdin/ca.yml | 1342 ++++++++++--- config/locales/crowdin/ckb-IR.seeders.yml | 71 +- config/locales/crowdin/ckb-IR.yml | 1308 ++++++++++--- config/locales/crowdin/cs.seeders.yml | 85 +- config/locales/crowdin/cs.yml | 1612 ++++++++++++---- config/locales/crowdin/da.seeders.yml | 71 +- config/locales/crowdin/da.yml | 1316 ++++++++++--- config/locales/crowdin/de.seeders.yml | 70 +- config/locales/crowdin/de.yml | 1440 +++++++++++--- config/locales/crowdin/el.seeders.yml | 71 +- config/locales/crowdin/el.yml | 1338 ++++++++++--- config/locales/crowdin/eo.seeders.yml | 71 +- config/locales/crowdin/eo.yml | 1328 ++++++++++--- config/locales/crowdin/es.seeders.yml | 89 +- config/locales/crowdin/es.yml | 1418 +++++++++++--- config/locales/crowdin/et.seeders.yml | 71 +- config/locales/crowdin/et.yml | 1344 ++++++++++--- config/locales/crowdin/eu.seeders.yml | 71 +- config/locales/crowdin/eu.yml | 1308 ++++++++++--- config/locales/crowdin/fa.seeders.yml | 83 +- config/locales/crowdin/fa.yml | 1420 +++++++++++--- config/locales/crowdin/fi.seeders.yml | 71 +- config/locales/crowdin/fi.yml | 1334 ++++++++++--- config/locales/crowdin/fil.seeders.yml | 71 +- config/locales/crowdin/fil.yml | 1336 ++++++++++--- config/locales/crowdin/fr.seeders.yml | 84 +- config/locales/crowdin/fr.yml | 1408 +++++++++++--- config/locales/crowdin/he.seeders.yml | 71 +- config/locales/crowdin/he.yml | 1402 +++++++++++--- config/locales/crowdin/hi.seeders.yml | 71 +- config/locales/crowdin/hi.yml | 1308 ++++++++++--- config/locales/crowdin/hr.seeders.yml | 71 +- config/locales/crowdin/hr.yml | 1402 +++++++++++--- config/locales/crowdin/hu.seeders.yml | 71 +- config/locales/crowdin/hu.yml | 1354 ++++++++++--- config/locales/crowdin/hy.seeders.yml | 85 +- config/locales/crowdin/hy.yml | 1408 +++++++++++--- config/locales/crowdin/id.seeders.yml | 71 +- config/locales/crowdin/id.yml | 1195 ++++++++++-- config/locales/crowdin/it.seeders.yml | 85 +- config/locales/crowdin/it.yml | 1418 +++++++++++--- config/locales/crowdin/ja.seeders.yml | 83 +- config/locales/crowdin/ja.yml | 1303 ++++++++++--- config/locales/crowdin/js-af.yml | 42 +- config/locales/crowdin/js-ar.yml | 50 +- config/locales/crowdin/js-az.yml | 42 +- config/locales/crowdin/js-be.yml | 46 +- config/locales/crowdin/js-bg.yml | 42 +- config/locales/crowdin/js-ca.yml | 48 +- config/locales/crowdin/js-ckb-IR.yml | 42 +- config/locales/crowdin/js-cs.yml | 64 +- config/locales/crowdin/js-da.yml | 42 +- config/locales/crowdin/js-de.yml | 54 +- config/locales/crowdin/js-el.yml | 44 +- config/locales/crowdin/js-eo.yml | 42 +- config/locales/crowdin/js-es.yml | 48 +- config/locales/crowdin/js-et.yml | 42 +- config/locales/crowdin/js-eu.yml | 42 +- config/locales/crowdin/js-fa.yml | 48 +- config/locales/crowdin/js-fi.yml | 42 +- config/locales/crowdin/js-fil.yml | 44 +- config/locales/crowdin/js-fr.yml | 48 +- config/locales/crowdin/js-he.yml | 44 +- config/locales/crowdin/js-hi.yml | 42 +- config/locales/crowdin/js-hr.yml | 44 +- config/locales/crowdin/js-hu.yml | 48 +- config/locales/crowdin/js-hy.yml | 48 +- config/locales/crowdin/js-id.yml | 36 +- config/locales/crowdin/js-it.yml | 48 +- config/locales/crowdin/js-ja.yml | 90 +- config/locales/crowdin/js-ka.yml | 44 +- config/locales/crowdin/js-kk.yml | 42 +- config/locales/crowdin/js-ko.yml | 40 +- config/locales/crowdin/js-li.yml | 42 +- config/locales/crowdin/js-lt.yml | 58 +- config/locales/crowdin/js-lv.yml | 44 +- config/locales/crowdin/js-mn.yml | 42 +- config/locales/crowdin/js-ms.yml | 40 +- config/locales/crowdin/js-ne.yml | 42 +- config/locales/crowdin/js-nl.yml | 46 +- config/locales/crowdin/js-no.yml | 48 +- config/locales/crowdin/js-pl.yml | 64 +- config/locales/crowdin/js-pt-BR.yml | 48 +- config/locales/crowdin/js-pt-PT.yml | 48 +- config/locales/crowdin/js-ro.yml | 54 +- config/locales/crowdin/js-ru.yml | 66 +- config/locales/crowdin/js-rw.yml | 42 +- config/locales/crowdin/js-si.yml | 44 +- config/locales/crowdin/js-sk.yml | 52 +- config/locales/crowdin/js-sl.yml | 52 +- config/locales/crowdin/js-sr.yml | 44 +- config/locales/crowdin/js-sv.yml | 48 +- config/locales/crowdin/js-th.yml | 34 +- config/locales/crowdin/js-tr.yml | 48 +- config/locales/crowdin/js-uk.yml | 64 +- config/locales/crowdin/js-uz.yml | 42 +- config/locales/crowdin/js-vi.yml | 42 +- config/locales/crowdin/js-zh-CN.yml | 40 +- config/locales/crowdin/js-zh-TW.yml | 40 +- config/locales/crowdin/ka.seeders.yml | 71 +- config/locales/crowdin/ka.yml | 1340 ++++++++++--- config/locales/crowdin/kk.seeders.yml | 71 +- config/locales/crowdin/kk.yml | 1308 ++++++++++--- config/locales/crowdin/ko.seeders.yml | 38 +- config/locales/crowdin/ko.yml | 1286 +++++++++--- config/locales/crowdin/li.seeders.yml | 71 +- config/locales/crowdin/li.yml | 1320 ++++++++++--- config/locales/crowdin/lt.seeders.yml | 85 +- config/locales/crowdin/lt.yml | 1506 ++++++++++++--- config/locales/crowdin/lv.seeders.yml | 71 +- config/locales/crowdin/lv.yml | 1402 +++++++++++--- config/locales/crowdin/mn.seeders.yml | 71 +- config/locales/crowdin/mn.yml | 1308 ++++++++++--- config/locales/crowdin/ms.seeders.yml | 46 +- config/locales/crowdin/ms.yml | 1202 ++++++++++-- config/locales/crowdin/ne.seeders.yml | 71 +- config/locales/crowdin/ne.yml | 1308 ++++++++++--- config/locales/crowdin/nl.seeders.yml | 71 +- config/locales/crowdin/nl.yml | 1356 ++++++++++--- config/locales/crowdin/no.seeders.yml | 84 +- config/locales/crowdin/no.yml | 1352 ++++++++++--- config/locales/crowdin/pl.seeders.yml | 83 +- config/locales/crowdin/pl.yml | 1702 ++++++++++++---- config/locales/crowdin/pt-BR.seeders.yml | 82 +- config/locales/crowdin/pt-BR.yml | 1410 +++++++++++--- config/locales/crowdin/pt-PT.seeders.yml | 85 +- config/locales/crowdin/pt-PT.yml | 1414 +++++++++++--- config/locales/crowdin/ro.seeders.yml | 71 +- config/locales/crowdin/ro.yml | 1442 +++++++++++--- config/locales/crowdin/ru.seeders.yml | 84 +- config/locales/crowdin/ru.yml | 1692 ++++++++++++---- config/locales/crowdin/rw.seeders.yml | 71 +- config/locales/crowdin/rw.yml | 1308 ++++++++++--- config/locales/crowdin/si.seeders.yml | 71 +- config/locales/crowdin/si.yml | 1334 ++++++++++--- config/locales/crowdin/sk.seeders.yml | 71 +- config/locales/crowdin/sk.yml | 1474 +++++++++++--- config/locales/crowdin/sl.seeders.yml | 71 +- config/locales/crowdin/sl.yml | 1476 +++++++++++--- config/locales/crowdin/sr.seeders.yml | 71 +- config/locales/crowdin/sr.yml | 1346 ++++++++++--- config/locales/crowdin/sv.seeders.yml | 75 +- config/locales/crowdin/sv.yml | 1414 +++++++++++--- config/locales/crowdin/th.seeders.yml | 71 +- config/locales/crowdin/th.yml | 1188 ++++++++++-- config/locales/crowdin/tr.seeders.yml | 85 +- config/locales/crowdin/tr.yml | 1352 ++++++++++--- config/locales/crowdin/uk.seeders.yml | 70 +- config/locales/crowdin/uk.yml | 1716 +++++++++++++---- config/locales/crowdin/uz.seeders.yml | 71 +- config/locales/crowdin/uz.yml | 1308 ++++++++++--- config/locales/crowdin/vi.seeders.yml | 85 +- config/locales/crowdin/vi.yml | 1212 ++++++++++-- config/locales/crowdin/zh-CN.seeders.yml | 81 +- config/locales/crowdin/zh-CN.yml | 1284 +++++++++--- config/locales/crowdin/zh-TW.seeders.yml | 85 +- config/locales/crowdin/zh-TW.yml | 1223 ++++++++++-- .../lib/locales/crowdin/af.ts | 122 ++ .../lib/locales/crowdin/ar.ts | 122 ++ .../lib/locales/crowdin/az.ts | 122 ++ .../lib/locales/crowdin/be.ts | 122 ++ .../lib/locales/crowdin/bg.ts | 122 ++ .../lib/locales/crowdin/ca.ts | 122 ++ .../lib/locales/crowdin/ckb-IR.ts | 122 ++ .../lib/locales/crowdin/cs.ts | 122 ++ .../lib/locales/crowdin/da.ts | 122 ++ .../lib/locales/crowdin/de.ts | 122 ++ .../lib/locales/crowdin/el.ts | 122 ++ .../lib/locales/crowdin/eo.ts | 122 ++ .../lib/locales/crowdin/es.ts | 122 ++ .../lib/locales/crowdin/et.ts | 122 ++ .../lib/locales/crowdin/eu.ts | 122 ++ .../lib/locales/crowdin/fa.ts | 122 ++ .../lib/locales/crowdin/fi.ts | 122 ++ .../lib/locales/crowdin/fil.ts | 122 ++ .../lib/locales/crowdin/fr.ts | 122 ++ .../lib/locales/crowdin/he.ts | 122 ++ .../lib/locales/crowdin/hi.ts | 122 ++ .../lib/locales/crowdin/hr.ts | 122 ++ .../lib/locales/crowdin/hu.ts | 122 ++ .../lib/locales/crowdin/hy.ts | 122 ++ .../lib/locales/crowdin/id.ts | 122 ++ .../lib/locales/crowdin/it.ts | 122 ++ .../lib/locales/crowdin/ja.ts | 122 ++ .../lib/locales/crowdin/ka.ts | 122 ++ .../lib/locales/crowdin/kk.ts | 122 ++ .../lib/locales/crowdin/ko.ts | 122 ++ .../lib/locales/crowdin/li.ts | 122 ++ .../lib/locales/crowdin/lt.ts | 122 ++ .../lib/locales/crowdin/lv.ts | 122 ++ .../lib/locales/crowdin/mn.ts | 122 ++ .../lib/locales/crowdin/ms.ts | 122 ++ .../lib/locales/crowdin/ne.ts | 122 ++ .../lib/locales/crowdin/nl.ts | 122 ++ .../lib/locales/crowdin/no.ts | 122 ++ .../lib/locales/crowdin/pl.ts | 122 ++ .../lib/locales/crowdin/pt-BR.ts | 122 ++ .../lib/locales/crowdin/pt-PT.ts | 122 ++ .../lib/locales/crowdin/pt.ts | 119 ++ .../lib/locales/crowdin/ro.ts | 122 ++ .../lib/locales/crowdin/ru.ts | 122 ++ .../lib/locales/crowdin/rw.ts | 122 ++ .../lib/locales/crowdin/si.ts | 122 ++ .../lib/locales/crowdin/sk.ts | 122 ++ .../lib/locales/crowdin/sl.ts | 122 ++ .../lib/locales/crowdin/sr.ts | 122 ++ .../lib/locales/crowdin/sv.ts | 122 ++ .../lib/locales/crowdin/th.ts | 122 ++ .../lib/locales/crowdin/tr.ts | 122 ++ .../lib/locales/crowdin/uk.ts | 122 ++ .../lib/locales/crowdin/uz.ts | 122 ++ .../lib/locales/crowdin/vi.ts | 122 ++ .../lib/locales/crowdin/zh-CN.ts | 122 ++ .../lib/locales/crowdin/zh-TW.ts | 122 ++ modules/avatars/config/locales/crowdin/af.yml | 29 +- modules/avatars/config/locales/crowdin/ar.yml | 29 +- modules/avatars/config/locales/crowdin/az.yml | 29 +- modules/avatars/config/locales/crowdin/be.yml | 29 +- modules/avatars/config/locales/crowdin/bg.yml | 29 +- modules/avatars/config/locales/crowdin/ca.yml | 29 +- .../avatars/config/locales/crowdin/ckb-IR.yml | 29 +- modules/avatars/config/locales/crowdin/cs.yml | 29 +- modules/avatars/config/locales/crowdin/da.yml | 29 +- modules/avatars/config/locales/crowdin/de.yml | 29 +- modules/avatars/config/locales/crowdin/el.yml | 29 +- modules/avatars/config/locales/crowdin/eo.yml | 29 +- modules/avatars/config/locales/crowdin/es.yml | 29 +- modules/avatars/config/locales/crowdin/et.yml | 29 +- modules/avatars/config/locales/crowdin/eu.yml | 29 +- modules/avatars/config/locales/crowdin/fa.yml | 29 +- modules/avatars/config/locales/crowdin/fi.yml | 29 +- .../avatars/config/locales/crowdin/fil.yml | 29 +- modules/avatars/config/locales/crowdin/fr.yml | 29 +- modules/avatars/config/locales/crowdin/he.yml | 29 +- modules/avatars/config/locales/crowdin/hi.yml | 29 +- modules/avatars/config/locales/crowdin/hr.yml | 29 +- modules/avatars/config/locales/crowdin/hu.yml | 29 +- modules/avatars/config/locales/crowdin/hy.yml | 29 +- modules/avatars/config/locales/crowdin/id.yml | 29 +- modules/avatars/config/locales/crowdin/it.yml | 29 +- modules/avatars/config/locales/crowdin/ja.yml | 29 +- modules/avatars/config/locales/crowdin/ka.yml | 29 +- modules/avatars/config/locales/crowdin/kk.yml | 29 +- modules/avatars/config/locales/crowdin/ko.yml | 29 +- modules/avatars/config/locales/crowdin/li.yml | 29 +- modules/avatars/config/locales/crowdin/lt.yml | 29 +- modules/avatars/config/locales/crowdin/lv.yml | 29 +- modules/avatars/config/locales/crowdin/mn.yml | 29 +- modules/avatars/config/locales/crowdin/ms.yml | 29 +- modules/avatars/config/locales/crowdin/ne.yml | 29 +- modules/avatars/config/locales/crowdin/nl.yml | 29 +- modules/avatars/config/locales/crowdin/no.yml | 29 +- modules/avatars/config/locales/crowdin/pl.yml | 29 +- .../avatars/config/locales/crowdin/pt-BR.yml | 29 +- .../avatars/config/locales/crowdin/pt-PT.yml | 29 +- modules/avatars/config/locales/crowdin/ro.yml | 29 +- modules/avatars/config/locales/crowdin/ru.yml | 29 +- modules/avatars/config/locales/crowdin/rw.yml | 29 +- modules/avatars/config/locales/crowdin/si.yml | 29 +- modules/avatars/config/locales/crowdin/sk.yml | 29 +- modules/avatars/config/locales/crowdin/sl.yml | 29 +- modules/avatars/config/locales/crowdin/sr.yml | 29 +- modules/avatars/config/locales/crowdin/sv.yml | 29 +- modules/avatars/config/locales/crowdin/th.yml | 29 +- modules/avatars/config/locales/crowdin/tr.yml | 29 +- modules/avatars/config/locales/crowdin/uk.yml | 29 +- modules/avatars/config/locales/crowdin/uz.yml | 29 +- modules/avatars/config/locales/crowdin/vi.yml | 29 +- .../avatars/config/locales/crowdin/zh-CN.yml | 29 +- .../avatars/config/locales/crowdin/zh-TW.yml | 29 +- .../backlogs/config/locales/crowdin/af.yml | 85 +- .../backlogs/config/locales/crowdin/ar.yml | 97 +- .../backlogs/config/locales/crowdin/az.yml | 85 +- .../backlogs/config/locales/crowdin/be.yml | 89 +- .../backlogs/config/locales/crowdin/bg.yml | 85 +- .../backlogs/config/locales/crowdin/ca.yml | 85 +- .../config/locales/crowdin/ckb-IR.yml | 85 +- .../backlogs/config/locales/crowdin/cs.yml | 101 +- .../backlogs/config/locales/crowdin/da.yml | 89 +- .../backlogs/config/locales/crowdin/de.yml | 89 +- .../backlogs/config/locales/crowdin/el.yml | 87 +- .../backlogs/config/locales/crowdin/eo.yml | 85 +- .../backlogs/config/locales/crowdin/es.yml | 89 +- .../backlogs/config/locales/crowdin/et.yml | 85 +- .../backlogs/config/locales/crowdin/eu.yml | 85 +- .../backlogs/config/locales/crowdin/fa.yml | 89 +- .../backlogs/config/locales/crowdin/fi.yml | 85 +- .../backlogs/config/locales/crowdin/fil.yml | 85 +- .../backlogs/config/locales/crowdin/fr.yml | 89 +- .../backlogs/config/locales/crowdin/he.yml | 87 +- .../backlogs/config/locales/crowdin/hi.yml | 85 +- .../backlogs/config/locales/crowdin/hr.yml | 87 +- .../backlogs/config/locales/crowdin/hu.yml | 85 +- .../backlogs/config/locales/crowdin/hy.yml | 89 +- .../backlogs/config/locales/crowdin/id.yml | 79 +- .../backlogs/config/locales/crowdin/it.yml | 89 +- .../backlogs/config/locales/crowdin/ja.yml | 93 +- .../backlogs/config/locales/crowdin/js-af.yml | 43 +- .../backlogs/config/locales/crowdin/js-ar.yml | 51 +- .../backlogs/config/locales/crowdin/js-az.yml | 43 +- .../backlogs/config/locales/crowdin/js-be.yml | 47 +- .../backlogs/config/locales/crowdin/js-bg.yml | 43 +- .../backlogs/config/locales/crowdin/js-ca.yml | 43 +- .../config/locales/crowdin/js-ckb-IR.yml | 43 +- .../backlogs/config/locales/crowdin/js-cs.yml | 47 +- .../backlogs/config/locales/crowdin/js-da.yml | 43 +- .../backlogs/config/locales/crowdin/js-de.yml | 43 +- .../backlogs/config/locales/crowdin/js-el.yml | 43 +- .../backlogs/config/locales/crowdin/js-eo.yml | 43 +- .../backlogs/config/locales/crowdin/js-es.yml | 43 +- .../backlogs/config/locales/crowdin/js-et.yml | 43 +- .../backlogs/config/locales/crowdin/js-eu.yml | 43 +- .../backlogs/config/locales/crowdin/js-fa.yml | 43 +- .../backlogs/config/locales/crowdin/js-fi.yml | 43 +- .../config/locales/crowdin/js-fil.yml | 43 +- .../backlogs/config/locales/crowdin/js-fr.yml | 43 +- .../backlogs/config/locales/crowdin/js-he.yml | 45 +- .../backlogs/config/locales/crowdin/js-hi.yml | 43 +- .../backlogs/config/locales/crowdin/js-hr.yml | 45 +- .../backlogs/config/locales/crowdin/js-hu.yml | 43 +- .../backlogs/config/locales/crowdin/js-hy.yml | 43 +- .../backlogs/config/locales/crowdin/js-id.yml | 41 +- .../backlogs/config/locales/crowdin/js-it.yml | 43 +- .../backlogs/config/locales/crowdin/js-ja.yml | 41 +- .../backlogs/config/locales/crowdin/js-ka.yml | 43 +- .../backlogs/config/locales/crowdin/js-kk.yml | 43 +- .../backlogs/config/locales/crowdin/js-ko.yml | 41 +- .../backlogs/config/locales/crowdin/js-li.yml | 43 +- .../backlogs/config/locales/crowdin/js-lt.yml | 47 +- .../backlogs/config/locales/crowdin/js-lv.yml | 45 +- .../backlogs/config/locales/crowdin/js-mn.yml | 43 +- .../backlogs/config/locales/crowdin/js-ms.yml | 41 +- .../backlogs/config/locales/crowdin/js-ne.yml | 43 +- .../backlogs/config/locales/crowdin/js-nl.yml | 43 +- .../backlogs/config/locales/crowdin/js-no.yml | 43 +- .../backlogs/config/locales/crowdin/js-pl.yml | 47 +- .../config/locales/crowdin/js-pt-BR.yml | 43 +- .../config/locales/crowdin/js-pt-PT.yml | 43 +- .../backlogs/config/locales/crowdin/js-ro.yml | 45 +- .../backlogs/config/locales/crowdin/js-ru.yml | 47 +- .../backlogs/config/locales/crowdin/js-rw.yml | 43 +- .../backlogs/config/locales/crowdin/js-si.yml | 43 +- .../backlogs/config/locales/crowdin/js-sk.yml | 47 +- .../backlogs/config/locales/crowdin/js-sl.yml | 47 +- .../backlogs/config/locales/crowdin/js-sr.yml | 45 +- .../backlogs/config/locales/crowdin/js-sv.yml | 43 +- .../backlogs/config/locales/crowdin/js-th.yml | 41 +- .../backlogs/config/locales/crowdin/js-tr.yml | 43 +- .../backlogs/config/locales/crowdin/js-uk.yml | 47 +- .../backlogs/config/locales/crowdin/js-uz.yml | 43 +- .../backlogs/config/locales/crowdin/js-vi.yml | 41 +- .../config/locales/crowdin/js-zh-CN.yml | 41 +- .../config/locales/crowdin/js-zh-TW.yml | 41 +- .../backlogs/config/locales/crowdin/ka.yml | 85 +- .../backlogs/config/locales/crowdin/kk.yml | 85 +- .../backlogs/config/locales/crowdin/ko.yml | 83 +- .../backlogs/config/locales/crowdin/li.yml | 85 +- .../backlogs/config/locales/crowdin/lt.yml | 89 +- .../backlogs/config/locales/crowdin/lv.yml | 87 +- .../backlogs/config/locales/crowdin/mn.yml | 85 +- .../backlogs/config/locales/crowdin/ms.yml | 79 +- .../backlogs/config/locales/crowdin/ne.yml | 85 +- .../backlogs/config/locales/crowdin/nl.yml | 87 +- .../backlogs/config/locales/crowdin/no.yml | 85 +- .../backlogs/config/locales/crowdin/pl.yml | 101 +- .../backlogs/config/locales/crowdin/pt-BR.yml | 89 +- .../backlogs/config/locales/crowdin/pt-PT.yml | 89 +- .../backlogs/config/locales/crowdin/ro.yml | 89 +- .../backlogs/config/locales/crowdin/ru.yml | 101 +- .../backlogs/config/locales/crowdin/rw.yml | 85 +- .../backlogs/config/locales/crowdin/si.yml | 85 +- .../backlogs/config/locales/crowdin/sk.yml | 89 +- .../backlogs/config/locales/crowdin/sl.yml | 89 +- .../backlogs/config/locales/crowdin/sr.yml | 87 +- .../backlogs/config/locales/crowdin/sv.yml | 89 +- .../backlogs/config/locales/crowdin/th.yml | 79 +- .../backlogs/config/locales/crowdin/tr.yml | 89 +- .../backlogs/config/locales/crowdin/uk.yml | 101 +- .../backlogs/config/locales/crowdin/uz.yml | 85 +- .../backlogs/config/locales/crowdin/vi.yml | 83 +- .../backlogs/config/locales/crowdin/zh-CN.yml | 83 +- .../backlogs/config/locales/crowdin/zh-TW.yml | 85 +- .../bim/config/locales/crowdin/af.seeders.yml | 26 +- modules/bim/config/locales/crowdin/af.yml | 2 +- .../bim/config/locales/crowdin/ar.seeders.yml | 26 +- modules/bim/config/locales/crowdin/ar.yml | 2 +- .../bim/config/locales/crowdin/az.seeders.yml | 26 +- modules/bim/config/locales/crowdin/az.yml | 2 +- .../bim/config/locales/crowdin/be.seeders.yml | 26 +- modules/bim/config/locales/crowdin/be.yml | 2 +- .../bim/config/locales/crowdin/bg.seeders.yml | 26 +- modules/bim/config/locales/crowdin/bg.yml | 2 +- .../bim/config/locales/crowdin/ca.seeders.yml | 26 +- modules/bim/config/locales/crowdin/ca.yml | 2 +- .../config/locales/crowdin/ckb-IR.seeders.yml | 26 +- modules/bim/config/locales/crowdin/ckb-IR.yml | 2 +- .../bim/config/locales/crowdin/cs.seeders.yml | 26 +- modules/bim/config/locales/crowdin/cs.yml | 2 +- .../bim/config/locales/crowdin/da.seeders.yml | 24 +- modules/bim/config/locales/crowdin/da.yml | 2 +- .../bim/config/locales/crowdin/de.seeders.yml | 44 +- modules/bim/config/locales/crowdin/de.yml | 2 +- .../bim/config/locales/crowdin/el.seeders.yml | 26 +- modules/bim/config/locales/crowdin/el.yml | 2 +- .../bim/config/locales/crowdin/eo.seeders.yml | 26 +- modules/bim/config/locales/crowdin/eo.yml | 2 +- .../bim/config/locales/crowdin/es.seeders.yml | 44 +- modules/bim/config/locales/crowdin/es.yml | 2 +- .../bim/config/locales/crowdin/et.seeders.yml | 26 +- modules/bim/config/locales/crowdin/et.yml | 2 +- .../bim/config/locales/crowdin/eu.seeders.yml | 26 +- modules/bim/config/locales/crowdin/eu.yml | 2 +- .../bim/config/locales/crowdin/fa.seeders.yml | 40 +- modules/bim/config/locales/crowdin/fa.yml | 2 +- .../bim/config/locales/crowdin/fi.seeders.yml | 26 +- modules/bim/config/locales/crowdin/fi.yml | 2 +- .../config/locales/crowdin/fil.seeders.yml | 26 +- modules/bim/config/locales/crowdin/fil.yml | 2 +- .../bim/config/locales/crowdin/fr.seeders.yml | 40 +- modules/bim/config/locales/crowdin/fr.yml | 4 +- .../bim/config/locales/crowdin/he.seeders.yml | 26 +- modules/bim/config/locales/crowdin/he.yml | 2 +- .../bim/config/locales/crowdin/hi.seeders.yml | 26 +- modules/bim/config/locales/crowdin/hi.yml | 2 +- .../bim/config/locales/crowdin/hr.seeders.yml | 26 +- modules/bim/config/locales/crowdin/hr.yml | 2 +- .../bim/config/locales/crowdin/hu.seeders.yml | 26 +- modules/bim/config/locales/crowdin/hu.yml | 2 +- .../bim/config/locales/crowdin/hy.seeders.yml | 40 +- modules/bim/config/locales/crowdin/hy.yml | 2 +- .../bim/config/locales/crowdin/id.seeders.yml | 40 +- modules/bim/config/locales/crowdin/id.yml | 2 +- .../bim/config/locales/crowdin/it.seeders.yml | 40 +- modules/bim/config/locales/crowdin/it.yml | 2 +- .../bim/config/locales/crowdin/ja.seeders.yml | 36 +- modules/bim/config/locales/crowdin/ja.yml | 2 +- .../bim/config/locales/crowdin/ka.seeders.yml | 26 +- modules/bim/config/locales/crowdin/ka.yml | 2 +- .../bim/config/locales/crowdin/kk.seeders.yml | 26 +- modules/bim/config/locales/crowdin/kk.yml | 2 +- .../bim/config/locales/crowdin/ko.seeders.yml | 40 +- modules/bim/config/locales/crowdin/ko.yml | 2 +- .../bim/config/locales/crowdin/li.seeders.yml | 26 +- modules/bim/config/locales/crowdin/li.yml | 2 +- .../bim/config/locales/crowdin/lt.seeders.yml | 40 +- modules/bim/config/locales/crowdin/lt.yml | 2 +- .../bim/config/locales/crowdin/lv.seeders.yml | 26 +- modules/bim/config/locales/crowdin/lv.yml | 2 +- .../bim/config/locales/crowdin/mn.seeders.yml | 26 +- modules/bim/config/locales/crowdin/mn.yml | 2 +- .../bim/config/locales/crowdin/ms.seeders.yml | 40 +- modules/bim/config/locales/crowdin/ms.yml | 2 +- .../bim/config/locales/crowdin/ne.seeders.yml | 26 +- modules/bim/config/locales/crowdin/ne.yml | 2 +- .../bim/config/locales/crowdin/nl.seeders.yml | 26 +- modules/bim/config/locales/crowdin/nl.yml | 2 +- .../bim/config/locales/crowdin/no.seeders.yml | 44 +- modules/bim/config/locales/crowdin/no.yml | 2 +- .../bim/config/locales/crowdin/pl.seeders.yml | 44 +- modules/bim/config/locales/crowdin/pl.yml | 2 +- .../config/locales/crowdin/pt-BR.seeders.yml | 44 +- modules/bim/config/locales/crowdin/pt-BR.yml | 2 +- .../config/locales/crowdin/pt-PT.seeders.yml | 40 +- modules/bim/config/locales/crowdin/pt-PT.yml | 2 +- .../bim/config/locales/crowdin/ro.seeders.yml | 34 +- modules/bim/config/locales/crowdin/ro.yml | 2 +- .../bim/config/locales/crowdin/ru.seeders.yml | 44 +- modules/bim/config/locales/crowdin/ru.yml | 2 +- .../bim/config/locales/crowdin/rw.seeders.yml | 26 +- modules/bim/config/locales/crowdin/rw.yml | 2 +- .../bim/config/locales/crowdin/si.seeders.yml | 26 +- modules/bim/config/locales/crowdin/si.yml | 2 +- .../bim/config/locales/crowdin/sk.seeders.yml | 26 +- modules/bim/config/locales/crowdin/sk.yml | 2 +- .../bim/config/locales/crowdin/sl.seeders.yml | 26 +- modules/bim/config/locales/crowdin/sl.yml | 2 +- .../bim/config/locales/crowdin/sr.seeders.yml | 26 +- modules/bim/config/locales/crowdin/sr.yml | 2 +- .../bim/config/locales/crowdin/sv.seeders.yml | 40 +- modules/bim/config/locales/crowdin/sv.yml | 2 +- .../bim/config/locales/crowdin/th.seeders.yml | 26 +- modules/bim/config/locales/crowdin/th.yml | 2 +- .../bim/config/locales/crowdin/tr.seeders.yml | 44 +- modules/bim/config/locales/crowdin/tr.yml | 2 +- .../bim/config/locales/crowdin/uk.seeders.yml | 40 +- modules/bim/config/locales/crowdin/uk.yml | 2 +- .../bim/config/locales/crowdin/uz.seeders.yml | 26 +- modules/bim/config/locales/crowdin/uz.yml | 2 +- .../bim/config/locales/crowdin/vi.seeders.yml | 44 +- modules/bim/config/locales/crowdin/vi.yml | 2 +- .../config/locales/crowdin/zh-CN.seeders.yml | 44 +- modules/bim/config/locales/crowdin/zh-CN.yml | 2 +- .../config/locales/crowdin/zh-TW.seeders.yml | 44 +- modules/bim/config/locales/crowdin/zh-TW.yml | 2 +- modules/budgets/config/locales/crowdin/af.yml | 4 +- modules/budgets/config/locales/crowdin/ar.yml | 4 +- modules/budgets/config/locales/crowdin/az.yml | 4 +- modules/budgets/config/locales/crowdin/be.yml | 4 +- modules/budgets/config/locales/crowdin/bg.yml | 4 +- modules/budgets/config/locales/crowdin/ca.yml | 4 +- .../budgets/config/locales/crowdin/ckb-IR.yml | 4 +- modules/budgets/config/locales/crowdin/cs.yml | 6 +- modules/budgets/config/locales/crowdin/da.yml | 4 +- modules/budgets/config/locales/crowdin/de.yml | 4 +- modules/budgets/config/locales/crowdin/el.yml | 4 +- modules/budgets/config/locales/crowdin/eo.yml | 4 +- modules/budgets/config/locales/crowdin/es.yml | 4 +- modules/budgets/config/locales/crowdin/et.yml | 4 +- modules/budgets/config/locales/crowdin/eu.yml | 4 +- modules/budgets/config/locales/crowdin/fa.yml | 4 +- modules/budgets/config/locales/crowdin/fi.yml | 4 +- .../budgets/config/locales/crowdin/fil.yml | 4 +- modules/budgets/config/locales/crowdin/fr.yml | 4 +- modules/budgets/config/locales/crowdin/he.yml | 4 +- modules/budgets/config/locales/crowdin/hi.yml | 4 +- modules/budgets/config/locales/crowdin/hr.yml | 4 +- modules/budgets/config/locales/crowdin/hu.yml | 4 +- modules/budgets/config/locales/crowdin/hy.yml | 4 +- modules/budgets/config/locales/crowdin/id.yml | 4 +- modules/budgets/config/locales/crowdin/it.yml | 4 +- modules/budgets/config/locales/crowdin/ja.yml | 4 +- modules/budgets/config/locales/crowdin/ka.yml | 4 +- modules/budgets/config/locales/crowdin/kk.yml | 4 +- modules/budgets/config/locales/crowdin/ko.yml | 4 +- modules/budgets/config/locales/crowdin/li.yml | 4 +- modules/budgets/config/locales/crowdin/lt.yml | 4 +- modules/budgets/config/locales/crowdin/lv.yml | 4 +- modules/budgets/config/locales/crowdin/mn.yml | 4 +- modules/budgets/config/locales/crowdin/ms.yml | 4 +- modules/budgets/config/locales/crowdin/ne.yml | 4 +- modules/budgets/config/locales/crowdin/nl.yml | 4 +- modules/budgets/config/locales/crowdin/no.yml | 4 +- modules/budgets/config/locales/crowdin/pl.yml | 4 +- .../budgets/config/locales/crowdin/pt-BR.yml | 4 +- .../budgets/config/locales/crowdin/pt-PT.yml | 4 +- modules/budgets/config/locales/crowdin/ro.yml | 4 +- modules/budgets/config/locales/crowdin/ru.yml | 4 +- modules/budgets/config/locales/crowdin/rw.yml | 4 +- modules/budgets/config/locales/crowdin/si.yml | 4 +- modules/budgets/config/locales/crowdin/sk.yml | 4 +- modules/budgets/config/locales/crowdin/sl.yml | 4 +- modules/budgets/config/locales/crowdin/sr.yml | 4 +- modules/budgets/config/locales/crowdin/sv.yml | 4 +- modules/budgets/config/locales/crowdin/th.yml | 4 +- modules/budgets/config/locales/crowdin/tr.yml | 4 +- modules/budgets/config/locales/crowdin/uk.yml | 4 +- modules/budgets/config/locales/crowdin/uz.yml | 4 +- modules/budgets/config/locales/crowdin/vi.yml | 4 +- .../budgets/config/locales/crowdin/zh-CN.yml | 4 +- .../budgets/config/locales/crowdin/zh-TW.yml | 4 +- modules/costs/config/locales/crowdin/af.yml | 38 +- modules/costs/config/locales/crowdin/ar.yml | 38 +- modules/costs/config/locales/crowdin/az.yml | 38 +- modules/costs/config/locales/crowdin/be.yml | 38 +- modules/costs/config/locales/crowdin/bg.yml | 38 +- modules/costs/config/locales/crowdin/ca.yml | 38 +- .../costs/config/locales/crowdin/ckb-IR.yml | 38 +- modules/costs/config/locales/crowdin/cs.yml | 38 +- modules/costs/config/locales/crowdin/da.yml | 42 +- modules/costs/config/locales/crowdin/de.yml | 40 +- modules/costs/config/locales/crowdin/el.yml | 38 +- modules/costs/config/locales/crowdin/eo.yml | 38 +- modules/costs/config/locales/crowdin/es.yml | 38 +- modules/costs/config/locales/crowdin/et.yml | 38 +- modules/costs/config/locales/crowdin/eu.yml | 38 +- modules/costs/config/locales/crowdin/fa.yml | 38 +- modules/costs/config/locales/crowdin/fi.yml | 38 +- modules/costs/config/locales/crowdin/fil.yml | 38 +- modules/costs/config/locales/crowdin/fr.yml | 38 +- modules/costs/config/locales/crowdin/he.yml | 38 +- modules/costs/config/locales/crowdin/hi.yml | 38 +- modules/costs/config/locales/crowdin/hr.yml | 38 +- modules/costs/config/locales/crowdin/hu.yml | 38 +- modules/costs/config/locales/crowdin/hy.yml | 38 +- modules/costs/config/locales/crowdin/id.yml | 38 +- modules/costs/config/locales/crowdin/it.yml | 38 +- modules/costs/config/locales/crowdin/ja.yml | 40 +- .../costs/config/locales/crowdin/js-af.yml | 2 - .../costs/config/locales/crowdin/js-ar.yml | 2 - .../costs/config/locales/crowdin/js-az.yml | 2 - .../costs/config/locales/crowdin/js-be.yml | 2 - .../costs/config/locales/crowdin/js-bg.yml | 2 - .../costs/config/locales/crowdin/js-ca.yml | 2 - .../config/locales/crowdin/js-ckb-IR.yml | 2 - .../costs/config/locales/crowdin/js-cs.yml | 2 - .../costs/config/locales/crowdin/js-da.yml | 2 - .../costs/config/locales/crowdin/js-de.yml | 2 - .../costs/config/locales/crowdin/js-el.yml | 2 - .../costs/config/locales/crowdin/js-eo.yml | 2 - .../costs/config/locales/crowdin/js-es.yml | 2 - .../costs/config/locales/crowdin/js-et.yml | 2 - .../costs/config/locales/crowdin/js-eu.yml | 2 - .../costs/config/locales/crowdin/js-fa.yml | 2 - .../costs/config/locales/crowdin/js-fi.yml | 2 - .../costs/config/locales/crowdin/js-fil.yml | 2 - .../costs/config/locales/crowdin/js-fr.yml | 2 - .../costs/config/locales/crowdin/js-he.yml | 2 - .../costs/config/locales/crowdin/js-hi.yml | 2 - .../costs/config/locales/crowdin/js-hr.yml | 2 - .../costs/config/locales/crowdin/js-hu.yml | 2 - .../costs/config/locales/crowdin/js-hy.yml | 2 - .../costs/config/locales/crowdin/js-id.yml | 2 - .../costs/config/locales/crowdin/js-it.yml | 2 - .../costs/config/locales/crowdin/js-ja.yml | 2 - .../costs/config/locales/crowdin/js-ka.yml | 2 - .../costs/config/locales/crowdin/js-kk.yml | 2 - .../costs/config/locales/crowdin/js-ko.yml | 2 - .../costs/config/locales/crowdin/js-li.yml | 2 - .../costs/config/locales/crowdin/js-lt.yml | 2 - .../costs/config/locales/crowdin/js-lv.yml | 2 - .../costs/config/locales/crowdin/js-mn.yml | 2 - .../costs/config/locales/crowdin/js-ms.yml | 2 - .../costs/config/locales/crowdin/js-ne.yml | 2 - .../costs/config/locales/crowdin/js-nl.yml | 2 - .../costs/config/locales/crowdin/js-no.yml | 2 - .../costs/config/locales/crowdin/js-pl.yml | 2 - .../costs/config/locales/crowdin/js-pt-BR.yml | 2 - .../costs/config/locales/crowdin/js-pt-PT.yml | 2 - .../costs/config/locales/crowdin/js-ro.yml | 2 - .../costs/config/locales/crowdin/js-ru.yml | 2 - .../costs/config/locales/crowdin/js-rw.yml | 2 - .../costs/config/locales/crowdin/js-si.yml | 2 - .../costs/config/locales/crowdin/js-sk.yml | 2 - .../costs/config/locales/crowdin/js-sl.yml | 2 - .../costs/config/locales/crowdin/js-sr.yml | 2 - .../costs/config/locales/crowdin/js-sv.yml | 2 - .../costs/config/locales/crowdin/js-th.yml | 2 - .../costs/config/locales/crowdin/js-tr.yml | 2 - .../costs/config/locales/crowdin/js-uk.yml | 2 - .../costs/config/locales/crowdin/js-uz.yml | 2 - .../costs/config/locales/crowdin/js-vi.yml | 2 - .../costs/config/locales/crowdin/js-zh-CN.yml | 2 - .../costs/config/locales/crowdin/js-zh-TW.yml | 2 - modules/costs/config/locales/crowdin/ka.yml | 38 +- modules/costs/config/locales/crowdin/kk.yml | 38 +- modules/costs/config/locales/crowdin/ko.yml | 38 +- modules/costs/config/locales/crowdin/li.yml | 38 +- modules/costs/config/locales/crowdin/lt.yml | 38 +- modules/costs/config/locales/crowdin/lv.yml | 38 +- modules/costs/config/locales/crowdin/mn.yml | 38 +- modules/costs/config/locales/crowdin/ms.yml | 38 +- modules/costs/config/locales/crowdin/ne.yml | 38 +- modules/costs/config/locales/crowdin/nl.yml | 38 +- modules/costs/config/locales/crowdin/no.yml | 38 +- modules/costs/config/locales/crowdin/pl.yml | 38 +- .../costs/config/locales/crowdin/pt-BR.yml | 38 +- .../costs/config/locales/crowdin/pt-PT.yml | 38 +- modules/costs/config/locales/crowdin/ro.yml | 38 +- modules/costs/config/locales/crowdin/ru.yml | 38 +- modules/costs/config/locales/crowdin/rw.yml | 38 +- modules/costs/config/locales/crowdin/si.yml | 38 +- modules/costs/config/locales/crowdin/sk.yml | 38 +- modules/costs/config/locales/crowdin/sl.yml | 38 +- modules/costs/config/locales/crowdin/sr.yml | 38 +- modules/costs/config/locales/crowdin/sv.yml | 38 +- modules/costs/config/locales/crowdin/th.yml | 38 +- modules/costs/config/locales/crowdin/tr.yml | 38 +- modules/costs/config/locales/crowdin/uk.yml | 38 +- modules/costs/config/locales/crowdin/uz.yml | 38 +- modules/costs/config/locales/crowdin/vi.yml | 38 +- .../costs/config/locales/crowdin/zh-CN.yml | 38 +- .../costs/config/locales/crowdin/zh-TW.yml | 38 +- .../documents/config/locales/crowdin/af.yml | 8 +- .../documents/config/locales/crowdin/ar.yml | 8 +- .../documents/config/locales/crowdin/az.yml | 8 +- .../documents/config/locales/crowdin/be.yml | 8 +- .../documents/config/locales/crowdin/bg.yml | 8 +- .../documents/config/locales/crowdin/ca.yml | 8 +- .../config/locales/crowdin/ckb-IR.yml | 8 +- .../documents/config/locales/crowdin/cs.yml | 12 +- .../documents/config/locales/crowdin/da.yml | 10 +- .../documents/config/locales/crowdin/de.yml | 12 +- .../documents/config/locales/crowdin/el.yml | 8 +- .../documents/config/locales/crowdin/eo.yml | 8 +- .../documents/config/locales/crowdin/es.yml | 12 +- .../documents/config/locales/crowdin/et.yml | 8 +- .../documents/config/locales/crowdin/eu.yml | 8 +- .../documents/config/locales/crowdin/fa.yml | 12 +- .../documents/config/locales/crowdin/fi.yml | 8 +- .../documents/config/locales/crowdin/fil.yml | 8 +- .../documents/config/locales/crowdin/fr.yml | 12 +- .../documents/config/locales/crowdin/he.yml | 8 +- .../documents/config/locales/crowdin/hi.yml | 8 +- .../documents/config/locales/crowdin/hr.yml | 8 +- .../documents/config/locales/crowdin/hu.yml | 12 +- .../documents/config/locales/crowdin/hy.yml | 12 +- .../documents/config/locales/crowdin/id.yml | 10 +- .../documents/config/locales/crowdin/it.yml | 10 +- .../documents/config/locales/crowdin/ja.yml | 8 +- .../documents/config/locales/crowdin/ka.yml | 8 +- .../documents/config/locales/crowdin/kk.yml | 8 +- .../documents/config/locales/crowdin/ko.yml | 8 +- .../documents/config/locales/crowdin/li.yml | 8 +- .../documents/config/locales/crowdin/lt.yml | 8 +- .../documents/config/locales/crowdin/lv.yml | 8 +- .../documents/config/locales/crowdin/mn.yml | 8 +- .../documents/config/locales/crowdin/ms.yml | 6 +- .../documents/config/locales/crowdin/ne.yml | 8 +- .../documents/config/locales/crowdin/nl.yml | 8 +- .../documents/config/locales/crowdin/no.yml | 8 +- .../documents/config/locales/crowdin/pl.yml | 16 +- .../config/locales/crowdin/pt-BR.yml | 10 +- .../config/locales/crowdin/pt-PT.yml | 12 +- .../documents/config/locales/crowdin/ro.yml | 10 +- .../documents/config/locales/crowdin/ru.yml | 16 +- .../documents/config/locales/crowdin/rw.yml | 8 +- .../documents/config/locales/crowdin/si.yml | 8 +- .../documents/config/locales/crowdin/sk.yml | 8 +- .../documents/config/locales/crowdin/sl.yml | 8 +- .../documents/config/locales/crowdin/sr.yml | 8 +- .../documents/config/locales/crowdin/sv.yml | 12 +- .../documents/config/locales/crowdin/th.yml | 6 +- .../documents/config/locales/crowdin/tr.yml | 12 +- .../documents/config/locales/crowdin/uk.yml | 14 +- .../documents/config/locales/crowdin/uz.yml | 8 +- .../documents/config/locales/crowdin/vi.yml | 10 +- .../config/locales/crowdin/zh-CN.yml | 8 +- .../config/locales/crowdin/zh-TW.yml | 10 +- .../config/locales/crowdin/af.yml | 2 +- .../config/locales/crowdin/ar.yml | 2 +- .../config/locales/crowdin/az.yml | 2 +- .../config/locales/crowdin/be.yml | 2 +- .../config/locales/crowdin/bg.yml | 2 +- .../config/locales/crowdin/ca.yml | 2 +- .../config/locales/crowdin/ckb-IR.yml | 2 +- .../config/locales/crowdin/cs.yml | 2 +- .../config/locales/crowdin/da.yml | 2 +- .../config/locales/crowdin/de.yml | 2 +- .../config/locales/crowdin/el.yml | 2 +- .../config/locales/crowdin/eo.yml | 2 +- .../config/locales/crowdin/es.yml | 2 +- .../config/locales/crowdin/et.yml | 2 +- .../config/locales/crowdin/eu.yml | 2 +- .../config/locales/crowdin/fa.yml | 2 +- .../config/locales/crowdin/fi.yml | 2 +- .../config/locales/crowdin/fil.yml | 2 +- .../config/locales/crowdin/fr.yml | 2 +- .../config/locales/crowdin/he.yml | 2 +- .../config/locales/crowdin/hi.yml | 2 +- .../config/locales/crowdin/hr.yml | 2 +- .../config/locales/crowdin/hu.yml | 2 +- .../config/locales/crowdin/hy.yml | 2 +- .../config/locales/crowdin/id.yml | 2 +- .../config/locales/crowdin/it.yml | 2 +- .../config/locales/crowdin/ja.yml | 2 +- .../config/locales/crowdin/ka.yml | 2 +- .../config/locales/crowdin/kk.yml | 2 +- .../config/locales/crowdin/ko.yml | 2 +- .../config/locales/crowdin/li.yml | 2 +- .../config/locales/crowdin/lt.yml | 2 +- .../config/locales/crowdin/lv.yml | 2 +- .../config/locales/crowdin/mn.yml | 2 +- .../config/locales/crowdin/ms.yml | 2 +- .../config/locales/crowdin/ne.yml | 2 +- .../config/locales/crowdin/nl.yml | 2 +- .../config/locales/crowdin/no.yml | 2 +- .../config/locales/crowdin/pl.yml | 2 +- .../config/locales/crowdin/pt-BR.yml | 2 +- .../config/locales/crowdin/pt-PT.yml | 2 +- .../config/locales/crowdin/ro.yml | 2 +- .../config/locales/crowdin/ru.yml | 2 +- .../config/locales/crowdin/rw.yml | 2 +- .../config/locales/crowdin/si.yml | 2 +- .../config/locales/crowdin/sk.yml | 2 +- .../config/locales/crowdin/sl.yml | 2 +- .../config/locales/crowdin/sr.yml | 2 +- .../config/locales/crowdin/sv.yml | 2 +- .../config/locales/crowdin/th.yml | 2 +- .../config/locales/crowdin/tr.yml | 2 +- .../config/locales/crowdin/uk.yml | 2 +- .../config/locales/crowdin/uz.yml | 2 +- .../config/locales/crowdin/vi.yml | 2 +- .../config/locales/crowdin/zh-CN.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- .../config/locales/crowdin/af.yml | 82 +- .../config/locales/crowdin/ar.yml | 86 +- .../config/locales/crowdin/az.yml | 82 +- .../config/locales/crowdin/be.yml | 84 +- .../config/locales/crowdin/bg.yml | 82 +- .../config/locales/crowdin/ca.yml | 82 +- .../config/locales/crowdin/ckb-IR.yml | 82 +- .../config/locales/crowdin/cs.yml | 84 +- .../config/locales/crowdin/da.yml | 82 +- .../config/locales/crowdin/de.yml | 82 +- .../config/locales/crowdin/el.yml | 82 +- .../config/locales/crowdin/eo.yml | 82 +- .../config/locales/crowdin/es.yml | 82 +- .../config/locales/crowdin/et.yml | 82 +- .../config/locales/crowdin/eu.yml | 82 +- .../config/locales/crowdin/fa.yml | 82 +- .../config/locales/crowdin/fi.yml | 82 +- .../config/locales/crowdin/fil.yml | 82 +- .../config/locales/crowdin/fr.yml | 82 +- .../config/locales/crowdin/he.yml | 83 +- .../config/locales/crowdin/hi.yml | 82 +- .../config/locales/crowdin/hr.yml | 83 +- .../config/locales/crowdin/hu.yml | 82 +- .../config/locales/crowdin/hy.yml | 82 +- .../config/locales/crowdin/id.yml | 81 +- .../config/locales/crowdin/it.yml | 82 +- .../config/locales/crowdin/ja.yml | 81 +- .../config/locales/crowdin/ka.yml | 82 +- .../config/locales/crowdin/kk.yml | 82 +- .../config/locales/crowdin/ko.yml | 81 +- .../config/locales/crowdin/li.yml | 82 +- .../config/locales/crowdin/lt.yml | 84 +- .../config/locales/crowdin/lv.yml | 83 +- .../config/locales/crowdin/mn.yml | 82 +- .../config/locales/crowdin/ms.yml | 81 +- .../config/locales/crowdin/ne.yml | 82 +- .../config/locales/crowdin/nl.yml | 82 +- .../config/locales/crowdin/no.yml | 82 +- .../config/locales/crowdin/pl.yml | 84 +- .../config/locales/crowdin/pt-BR.yml | 82 +- .../config/locales/crowdin/pt-PT.yml | 82 +- .../config/locales/crowdin/ro.yml | 83 +- .../config/locales/crowdin/ru.yml | 84 +- .../config/locales/crowdin/rw.yml | 82 +- .../config/locales/crowdin/si.yml | 82 +- .../config/locales/crowdin/sk.yml | 84 +- .../config/locales/crowdin/sl.yml | 84 +- .../config/locales/crowdin/sr.yml | 83 +- .../config/locales/crowdin/sv.yml | 82 +- .../config/locales/crowdin/th.yml | 81 +- .../config/locales/crowdin/tr.yml | 82 +- .../config/locales/crowdin/uk.yml | 84 +- .../config/locales/crowdin/uz.yml | 82 +- .../config/locales/crowdin/vi.yml | 81 +- .../config/locales/crowdin/zh-CN.yml | 81 +- .../config/locales/crowdin/zh-TW.yml | 81 +- modules/grids/config/locales/crowdin/af.yml | 2 +- modules/grids/config/locales/crowdin/ar.yml | 2 +- modules/grids/config/locales/crowdin/az.yml | 2 +- modules/grids/config/locales/crowdin/be.yml | 2 +- modules/grids/config/locales/crowdin/bg.yml | 2 +- modules/grids/config/locales/crowdin/ca.yml | 2 +- .../grids/config/locales/crowdin/ckb-IR.yml | 2 +- modules/grids/config/locales/crowdin/cs.yml | 8 +- modules/grids/config/locales/crowdin/da.yml | 4 +- modules/grids/config/locales/crowdin/de.yml | 4 +- modules/grids/config/locales/crowdin/el.yml | 2 +- modules/grids/config/locales/crowdin/eo.yml | 2 +- modules/grids/config/locales/crowdin/es.yml | 4 +- modules/grids/config/locales/crowdin/et.yml | 2 +- modules/grids/config/locales/crowdin/eu.yml | 2 +- modules/grids/config/locales/crowdin/fa.yml | 4 +- modules/grids/config/locales/crowdin/fi.yml | 2 +- modules/grids/config/locales/crowdin/fil.yml | 2 +- modules/grids/config/locales/crowdin/fr.yml | 4 +- modules/grids/config/locales/crowdin/he.yml | 2 +- modules/grids/config/locales/crowdin/hi.yml | 2 +- modules/grids/config/locales/crowdin/hr.yml | 2 +- modules/grids/config/locales/crowdin/hu.yml | 2 +- modules/grids/config/locales/crowdin/hy.yml | 4 +- modules/grids/config/locales/crowdin/id.yml | 2 +- modules/grids/config/locales/crowdin/it.yml | 4 +- modules/grids/config/locales/crowdin/ja.yml | 2 +- modules/grids/config/locales/crowdin/ka.yml | 2 +- modules/grids/config/locales/crowdin/kk.yml | 2 +- modules/grids/config/locales/crowdin/ko.yml | 2 +- modules/grids/config/locales/crowdin/li.yml | 2 +- modules/grids/config/locales/crowdin/lt.yml | 2 +- modules/grids/config/locales/crowdin/lv.yml | 2 +- modules/grids/config/locales/crowdin/mn.yml | 2 +- modules/grids/config/locales/crowdin/ne.yml | 2 +- modules/grids/config/locales/crowdin/nl.yml | 2 +- modules/grids/config/locales/crowdin/no.yml | 2 +- modules/grids/config/locales/crowdin/pl.yml | 8 +- .../grids/config/locales/crowdin/pt-BR.yml | 4 +- .../grids/config/locales/crowdin/pt-PT.yml | 4 +- modules/grids/config/locales/crowdin/ro.yml | 6 +- modules/grids/config/locales/crowdin/ru.yml | 8 +- modules/grids/config/locales/crowdin/rw.yml | 2 +- modules/grids/config/locales/crowdin/si.yml | 2 +- modules/grids/config/locales/crowdin/sk.yml | 2 +- modules/grids/config/locales/crowdin/sl.yml | 2 +- modules/grids/config/locales/crowdin/sr.yml | 2 +- modules/grids/config/locales/crowdin/sv.yml | 4 +- modules/grids/config/locales/crowdin/tr.yml | 4 +- modules/grids/config/locales/crowdin/uk.yml | 8 +- modules/grids/config/locales/crowdin/uz.yml | 2 +- modules/grids/config/locales/crowdin/vi.yml | 2 +- .../grids/config/locales/crowdin/zh-CN.yml | 4 +- .../grids/config/locales/crowdin/zh-TW.yml | 2 +- .../ldap_groups/config/locales/crowdin/af.yml | 4 +- .../ldap_groups/config/locales/crowdin/ar.yml | 4 +- .../ldap_groups/config/locales/crowdin/az.yml | 4 +- .../ldap_groups/config/locales/crowdin/be.yml | 4 +- .../ldap_groups/config/locales/crowdin/bg.yml | 4 +- .../ldap_groups/config/locales/crowdin/ca.yml | 4 +- .../config/locales/crowdin/ckb-IR.yml | 4 +- .../ldap_groups/config/locales/crowdin/cs.yml | 4 +- .../ldap_groups/config/locales/crowdin/da.yml | 2 +- .../ldap_groups/config/locales/crowdin/de.yml | 4 +- .../ldap_groups/config/locales/crowdin/el.yml | 4 +- .../ldap_groups/config/locales/crowdin/eo.yml | 4 +- .../ldap_groups/config/locales/crowdin/es.yml | 4 +- .../ldap_groups/config/locales/crowdin/et.yml | 4 +- .../ldap_groups/config/locales/crowdin/eu.yml | 4 +- .../ldap_groups/config/locales/crowdin/fa.yml | 4 +- .../ldap_groups/config/locales/crowdin/fi.yml | 4 +- .../config/locales/crowdin/fil.yml | 4 +- .../ldap_groups/config/locales/crowdin/fr.yml | 4 +- .../ldap_groups/config/locales/crowdin/he.yml | 4 +- .../ldap_groups/config/locales/crowdin/hi.yml | 4 +- .../ldap_groups/config/locales/crowdin/hr.yml | 4 +- .../ldap_groups/config/locales/crowdin/hu.yml | 6 +- .../ldap_groups/config/locales/crowdin/hy.yml | 4 +- .../ldap_groups/config/locales/crowdin/id.yml | 4 +- .../ldap_groups/config/locales/crowdin/it.yml | 4 +- .../ldap_groups/config/locales/crowdin/ja.yml | 4 +- .../ldap_groups/config/locales/crowdin/ka.yml | 4 +- .../ldap_groups/config/locales/crowdin/kk.yml | 4 +- .../ldap_groups/config/locales/crowdin/ko.yml | 4 +- .../ldap_groups/config/locales/crowdin/li.yml | 4 +- .../ldap_groups/config/locales/crowdin/lt.yml | 4 +- .../ldap_groups/config/locales/crowdin/lv.yml | 4 +- .../ldap_groups/config/locales/crowdin/mn.yml | 4 +- .../ldap_groups/config/locales/crowdin/ms.yml | 4 +- .../ldap_groups/config/locales/crowdin/ne.yml | 4 +- .../ldap_groups/config/locales/crowdin/nl.yml | 4 +- .../ldap_groups/config/locales/crowdin/no.yml | 4 +- .../ldap_groups/config/locales/crowdin/pl.yml | 4 +- .../config/locales/crowdin/pt-BR.yml | 4 +- .../config/locales/crowdin/pt-PT.yml | 4 +- .../ldap_groups/config/locales/crowdin/ro.yml | 4 +- .../ldap_groups/config/locales/crowdin/ru.yml | 4 +- .../ldap_groups/config/locales/crowdin/rw.yml | 4 +- .../ldap_groups/config/locales/crowdin/si.yml | 4 +- .../ldap_groups/config/locales/crowdin/sk.yml | 4 +- .../ldap_groups/config/locales/crowdin/sl.yml | 4 +- .../ldap_groups/config/locales/crowdin/sr.yml | 4 +- .../ldap_groups/config/locales/crowdin/sv.yml | 4 +- .../ldap_groups/config/locales/crowdin/th.yml | 4 +- .../ldap_groups/config/locales/crowdin/tr.yml | 4 +- .../ldap_groups/config/locales/crowdin/uk.yml | 4 +- .../ldap_groups/config/locales/crowdin/uz.yml | 4 +- .../ldap_groups/config/locales/crowdin/vi.yml | 4 +- .../config/locales/crowdin/zh-CN.yml | 6 +- .../config/locales/crowdin/zh-TW.yml | 6 +- modules/llm/config/locales/crowdin/af.yml | 316 +++ modules/llm/config/locales/crowdin/ar.yml | 316 +++ modules/llm/config/locales/crowdin/az.yml | 316 +++ modules/llm/config/locales/crowdin/be.yml | 316 +++ modules/llm/config/locales/crowdin/bg.yml | 316 +++ modules/llm/config/locales/crowdin/ca.yml | 316 +++ modules/llm/config/locales/crowdin/ckb-IR.yml | 316 +++ modules/llm/config/locales/crowdin/cs.yml | 316 +++ modules/llm/config/locales/crowdin/da.yml | 316 +++ modules/llm/config/locales/crowdin/de.yml | 316 +++ modules/llm/config/locales/crowdin/el.yml | 316 +++ modules/llm/config/locales/crowdin/eo.yml | 316 +++ modules/llm/config/locales/crowdin/es.yml | 316 +++ modules/llm/config/locales/crowdin/et.yml | 316 +++ modules/llm/config/locales/crowdin/eu.yml | 316 +++ modules/llm/config/locales/crowdin/fa.yml | 316 +++ modules/llm/config/locales/crowdin/fi.yml | 316 +++ modules/llm/config/locales/crowdin/fil.yml | 316 +++ modules/llm/config/locales/crowdin/fr.yml | 316 +++ modules/llm/config/locales/crowdin/he.yml | 316 +++ modules/llm/config/locales/crowdin/hi.yml | 316 +++ modules/llm/config/locales/crowdin/hr.yml | 316 +++ modules/llm/config/locales/crowdin/hu.yml | 316 +++ modules/llm/config/locales/crowdin/hy.yml | 316 +++ modules/llm/config/locales/crowdin/id.yml | 316 +++ modules/llm/config/locales/crowdin/it.yml | 316 +++ modules/llm/config/locales/crowdin/ja.yml | 316 +++ modules/llm/config/locales/crowdin/ka.yml | 316 +++ modules/llm/config/locales/crowdin/kk.yml | 316 +++ modules/llm/config/locales/crowdin/ko.yml | 316 +++ modules/llm/config/locales/crowdin/li.yml | 316 +++ modules/llm/config/locales/crowdin/lt.yml | 316 +++ modules/llm/config/locales/crowdin/lv.yml | 316 +++ modules/llm/config/locales/crowdin/mn.yml | 316 +++ modules/llm/config/locales/crowdin/ms.yml | 316 +++ modules/llm/config/locales/crowdin/ne.yml | 316 +++ modules/llm/config/locales/crowdin/nl.yml | 316 +++ modules/llm/config/locales/crowdin/no.yml | 316 +++ modules/llm/config/locales/crowdin/pl.yml | 316 +++ modules/llm/config/locales/crowdin/pt-BR.yml | 316 +++ modules/llm/config/locales/crowdin/pt-PT.yml | 316 +++ modules/llm/config/locales/crowdin/ro.yml | 316 +++ modules/llm/config/locales/crowdin/ru.yml | 316 +++ modules/llm/config/locales/crowdin/rw.yml | 316 +++ modules/llm/config/locales/crowdin/si.yml | 316 +++ modules/llm/config/locales/crowdin/sk.yml | 316 +++ modules/llm/config/locales/crowdin/sl.yml | 316 +++ modules/llm/config/locales/crowdin/sr.yml | 316 +++ modules/llm/config/locales/crowdin/sv.yml | 316 +++ modules/llm/config/locales/crowdin/th.yml | 316 +++ modules/llm/config/locales/crowdin/tr.yml | 316 +++ modules/llm/config/locales/crowdin/uk.yml | 316 +++ modules/llm/config/locales/crowdin/uz.yml | 316 +++ modules/llm/config/locales/crowdin/vi.yml | 316 +++ modules/llm/config/locales/crowdin/zh-CN.yml | 316 +++ modules/llm/config/locales/crowdin/zh-TW.yml | 316 +++ modules/meeting/config/locales/crowdin/af.yml | 51 +- modules/meeting/config/locales/crowdin/ar.yml | 51 +- modules/meeting/config/locales/crowdin/az.yml | 51 +- modules/meeting/config/locales/crowdin/be.yml | 51 +- modules/meeting/config/locales/crowdin/bg.yml | 53 +- modules/meeting/config/locales/crowdin/ca.yml | 53 +- .../meeting/config/locales/crowdin/ckb-IR.yml | 51 +- modules/meeting/config/locales/crowdin/cs.yml | 83 +- modules/meeting/config/locales/crowdin/da.yml | 49 +- modules/meeting/config/locales/crowdin/de.yml | 67 +- modules/meeting/config/locales/crowdin/el.yml | 53 +- modules/meeting/config/locales/crowdin/eo.yml | 53 +- modules/meeting/config/locales/crowdin/es.yml | 61 +- modules/meeting/config/locales/crowdin/et.yml | 53 +- modules/meeting/config/locales/crowdin/eu.yml | 51 +- modules/meeting/config/locales/crowdin/fa.yml | 61 +- modules/meeting/config/locales/crowdin/fi.yml | 51 +- .../meeting/config/locales/crowdin/fil.yml | 51 +- modules/meeting/config/locales/crowdin/fr.yml | 59 +- modules/meeting/config/locales/crowdin/he.yml | 51 +- modules/meeting/config/locales/crowdin/hi.yml | 51 +- modules/meeting/config/locales/crowdin/hr.yml | 51 +- modules/meeting/config/locales/crowdin/hu.yml | 59 +- modules/meeting/config/locales/crowdin/hy.yml | 63 +- modules/meeting/config/locales/crowdin/id.yml | 49 +- modules/meeting/config/locales/crowdin/it.yml | 61 +- modules/meeting/config/locales/crowdin/ja.yml | 57 +- modules/meeting/config/locales/crowdin/ka.yml | 53 +- modules/meeting/config/locales/crowdin/kk.yml | 51 +- modules/meeting/config/locales/crowdin/ko.yml | 53 +- modules/meeting/config/locales/crowdin/li.yml | 51 +- modules/meeting/config/locales/crowdin/lt.yml | 57 +- modules/meeting/config/locales/crowdin/lv.yml | 51 +- modules/meeting/config/locales/crowdin/mn.yml | 51 +- modules/meeting/config/locales/crowdin/ms.yml | 47 +- modules/meeting/config/locales/crowdin/ne.yml | 51 +- modules/meeting/config/locales/crowdin/nl.yml | 59 +- modules/meeting/config/locales/crowdin/no.yml | 53 +- modules/meeting/config/locales/crowdin/pl.yml | 81 +- .../meeting/config/locales/crowdin/pt-BR.yml | 61 +- .../meeting/config/locales/crowdin/pt-PT.yml | 61 +- modules/meeting/config/locales/crowdin/ro.yml | 55 +- modules/meeting/config/locales/crowdin/ru.yml | 81 +- modules/meeting/config/locales/crowdin/rw.yml | 51 +- modules/meeting/config/locales/crowdin/si.yml | 51 +- modules/meeting/config/locales/crowdin/sk.yml | 51 +- modules/meeting/config/locales/crowdin/sl.yml | 51 +- modules/meeting/config/locales/crowdin/sr.yml | 51 +- modules/meeting/config/locales/crowdin/sv.yml | 61 +- modules/meeting/config/locales/crowdin/th.yml | 41 +- modules/meeting/config/locales/crowdin/tr.yml | 61 +- modules/meeting/config/locales/crowdin/uk.yml | 81 +- modules/meeting/config/locales/crowdin/uz.yml | 51 +- modules/meeting/config/locales/crowdin/vi.yml | 49 +- .../meeting/config/locales/crowdin/zh-CN.yml | 51 +- .../meeting/config/locales/crowdin/zh-TW.yml | 51 +- .../config/locales/crowdin/af.yml | 10 +- .../config/locales/crowdin/ar.yml | 10 +- .../config/locales/crowdin/az.yml | 10 +- .../config/locales/crowdin/be.yml | 10 +- .../config/locales/crowdin/bg.yml | 10 +- .../config/locales/crowdin/ca.yml | 10 +- .../config/locales/crowdin/ckb-IR.yml | 10 +- .../config/locales/crowdin/cs.yml | 10 +- .../config/locales/crowdin/da.yml | 12 +- .../config/locales/crowdin/de.yml | 10 +- .../config/locales/crowdin/el.yml | 10 +- .../config/locales/crowdin/eo.yml | 10 +- .../config/locales/crowdin/es.yml | 10 +- .../config/locales/crowdin/et.yml | 10 +- .../config/locales/crowdin/eu.yml | 10 +- .../config/locales/crowdin/fa.yml | 10 +- .../config/locales/crowdin/fi.yml | 10 +- .../config/locales/crowdin/fil.yml | 10 +- .../config/locales/crowdin/fr.yml | 10 +- .../config/locales/crowdin/he.yml | 10 +- .../config/locales/crowdin/hi.yml | 10 +- .../config/locales/crowdin/hr.yml | 10 +- .../config/locales/crowdin/hu.yml | 10 +- .../config/locales/crowdin/hy.yml | 10 +- .../config/locales/crowdin/id.yml | 10 +- .../config/locales/crowdin/it.yml | 10 +- .../config/locales/crowdin/ja.yml | 10 +- .../config/locales/crowdin/ka.yml | 10 +- .../config/locales/crowdin/kk.yml | 10 +- .../config/locales/crowdin/ko.yml | 10 +- .../config/locales/crowdin/li.yml | 10 +- .../config/locales/crowdin/lt.yml | 10 +- .../config/locales/crowdin/lv.yml | 10 +- .../config/locales/crowdin/mn.yml | 10 +- .../config/locales/crowdin/ms.yml | 10 +- .../config/locales/crowdin/ne.yml | 10 +- .../config/locales/crowdin/nl.yml | 10 +- .../config/locales/crowdin/no.yml | 10 +- .../config/locales/crowdin/pl.yml | 10 +- .../config/locales/crowdin/pt-BR.yml | 10 +- .../config/locales/crowdin/pt-PT.yml | 10 +- .../config/locales/crowdin/ro.yml | 10 +- .../config/locales/crowdin/ru.yml | 10 +- .../config/locales/crowdin/rw.yml | 10 +- .../config/locales/crowdin/si.yml | 10 +- .../config/locales/crowdin/sk.yml | 10 +- .../config/locales/crowdin/sl.yml | 10 +- .../config/locales/crowdin/sr.yml | 10 +- .../config/locales/crowdin/sv.yml | 10 +- .../config/locales/crowdin/th.yml | 10 +- .../config/locales/crowdin/tr.yml | 10 +- .../config/locales/crowdin/uk.yml | 10 +- .../config/locales/crowdin/uz.yml | 10 +- .../config/locales/crowdin/vi.yml | 10 +- .../config/locales/crowdin/zh-CN.yml | 10 +- .../config/locales/crowdin/zh-TW.yml | 10 +- .../reporting/config/locales/crowdin/af.yml | 8 +- .../reporting/config/locales/crowdin/ar.yml | 12 +- .../reporting/config/locales/crowdin/az.yml | 8 +- .../reporting/config/locales/crowdin/be.yml | 10 +- .../reporting/config/locales/crowdin/bg.yml | 8 +- .../reporting/config/locales/crowdin/ca.yml | 8 +- .../config/locales/crowdin/ckb-IR.yml | 8 +- .../reporting/config/locales/crowdin/cs.yml | 10 +- .../reporting/config/locales/crowdin/da.yml | 8 +- .../reporting/config/locales/crowdin/de.yml | 8 +- .../reporting/config/locales/crowdin/el.yml | 8 +- .../reporting/config/locales/crowdin/eo.yml | 8 +- .../reporting/config/locales/crowdin/es.yml | 8 +- .../reporting/config/locales/crowdin/et.yml | 8 +- .../reporting/config/locales/crowdin/eu.yml | 8 +- .../reporting/config/locales/crowdin/fa.yml | 8 +- .../reporting/config/locales/crowdin/fi.yml | 8 +- .../reporting/config/locales/crowdin/fil.yml | 8 +- .../reporting/config/locales/crowdin/fr.yml | 8 +- .../reporting/config/locales/crowdin/he.yml | 9 +- .../reporting/config/locales/crowdin/hi.yml | 8 +- .../reporting/config/locales/crowdin/hr.yml | 9 +- .../reporting/config/locales/crowdin/hu.yml | 8 +- .../reporting/config/locales/crowdin/hy.yml | 8 +- .../reporting/config/locales/crowdin/id.yml | 7 +- .../reporting/config/locales/crowdin/it.yml | 8 +- .../reporting/config/locales/crowdin/ja.yml | 7 +- .../reporting/config/locales/crowdin/ka.yml | 8 +- .../reporting/config/locales/crowdin/kk.yml | 8 +- .../reporting/config/locales/crowdin/ko.yml | 7 +- .../reporting/config/locales/crowdin/li.yml | 8 +- .../reporting/config/locales/crowdin/lt.yml | 10 +- .../reporting/config/locales/crowdin/lv.yml | 9 +- .../reporting/config/locales/crowdin/mn.yml | 8 +- .../reporting/config/locales/crowdin/ms.yml | 7 +- .../reporting/config/locales/crowdin/ne.yml | 8 +- .../reporting/config/locales/crowdin/nl.yml | 8 +- .../reporting/config/locales/crowdin/no.yml | 8 +- .../reporting/config/locales/crowdin/pl.yml | 10 +- .../config/locales/crowdin/pt-BR.yml | 8 +- .../config/locales/crowdin/pt-PT.yml | 8 +- .../reporting/config/locales/crowdin/ro.yml | 11 +- .../reporting/config/locales/crowdin/ru.yml | 10 +- .../reporting/config/locales/crowdin/rw.yml | 8 +- .../reporting/config/locales/crowdin/si.yml | 8 +- .../reporting/config/locales/crowdin/sk.yml | 10 +- .../reporting/config/locales/crowdin/sl.yml | 10 +- .../reporting/config/locales/crowdin/sr.yml | 9 +- .../reporting/config/locales/crowdin/sv.yml | 8 +- .../reporting/config/locales/crowdin/th.yml | 7 +- .../reporting/config/locales/crowdin/tr.yml | 8 +- .../reporting/config/locales/crowdin/uk.yml | 10 +- .../reporting/config/locales/crowdin/uz.yml | 8 +- .../reporting/config/locales/crowdin/vi.yml | 9 +- .../config/locales/crowdin/zh-CN.yml | 7 +- .../config/locales/crowdin/zh-TW.yml | 11 +- .../config/locales/crowdin/af.yml | 59 +- .../config/locales/crowdin/ar.yml | 63 +- .../config/locales/crowdin/az.yml | 59 +- .../config/locales/crowdin/be.yml | 61 +- .../config/locales/crowdin/bg.yml | 59 +- .../config/locales/crowdin/ca.yml | 59 +- .../config/locales/crowdin/ckb-IR.yml | 59 +- .../config/locales/crowdin/cs.yml | 61 +- .../config/locales/crowdin/da.yml | 59 +- .../config/locales/crowdin/de.yml | 59 +- .../config/locales/crowdin/el.yml | 59 +- .../config/locales/crowdin/eo.yml | 59 +- .../config/locales/crowdin/es.yml | 59 +- .../config/locales/crowdin/et.yml | 59 +- .../config/locales/crowdin/eu.yml | 59 +- .../config/locales/crowdin/fa.yml | 59 +- .../config/locales/crowdin/fi.yml | 59 +- .../config/locales/crowdin/fil.yml | 59 +- .../config/locales/crowdin/fr.yml | 61 +- .../config/locales/crowdin/he.yml | 60 +- .../config/locales/crowdin/hi.yml | 59 +- .../config/locales/crowdin/hr.yml | 60 +- .../config/locales/crowdin/hu.yml | 59 +- .../config/locales/crowdin/hy.yml | 59 +- .../config/locales/crowdin/id.yml | 58 +- .../config/locales/crowdin/it.yml | 59 +- .../config/locales/crowdin/ja.yml | 58 +- .../config/locales/crowdin/js-af.yml | 11 + .../config/locales/crowdin/js-ar.yml | 11 + .../config/locales/crowdin/js-az.yml | 11 + .../config/locales/crowdin/js-be.yml | 11 + .../config/locales/crowdin/js-bg.yml | 11 + .../config/locales/crowdin/js-ca.yml | 11 + .../config/locales/crowdin/js-ckb-IR.yml | 11 + .../config/locales/crowdin/js-cs.yml | 11 + .../config/locales/crowdin/js-da.yml | 11 + .../config/locales/crowdin/js-de.yml | 11 + .../config/locales/crowdin/js-el.yml | 11 + .../config/locales/crowdin/js-eo.yml | 11 + .../config/locales/crowdin/js-es.yml | 11 + .../config/locales/crowdin/js-et.yml | 11 + .../config/locales/crowdin/js-eu.yml | 11 + .../config/locales/crowdin/js-fa.yml | 11 + .../config/locales/crowdin/js-fi.yml | 11 + .../config/locales/crowdin/js-fil.yml | 11 + .../config/locales/crowdin/js-fr.yml | 11 + .../config/locales/crowdin/js-he.yml | 11 + .../config/locales/crowdin/js-hi.yml | 11 + .../config/locales/crowdin/js-hr.yml | 11 + .../config/locales/crowdin/js-hu.yml | 11 + .../config/locales/crowdin/js-hy.yml | 11 + .../config/locales/crowdin/js-id.yml | 11 + .../config/locales/crowdin/js-it.yml | 11 + .../config/locales/crowdin/js-ja.yml | 11 + .../config/locales/crowdin/js-ka.yml | 11 + .../config/locales/crowdin/js-kk.yml | 11 + .../config/locales/crowdin/js-ko.yml | 11 + .../config/locales/crowdin/js-li.yml | 11 + .../config/locales/crowdin/js-lt.yml | 11 + .../config/locales/crowdin/js-lv.yml | 11 + .../config/locales/crowdin/js-mn.yml | 11 + .../config/locales/crowdin/js-ms.yml | 11 + .../config/locales/crowdin/js-ne.yml | 11 + .../config/locales/crowdin/js-nl.yml | 11 + .../config/locales/crowdin/js-no.yml | 11 + .../config/locales/crowdin/js-pl.yml | 11 + .../config/locales/crowdin/js-pt-BR.yml | 11 + .../config/locales/crowdin/js-pt-PT.yml | 11 + .../config/locales/crowdin/js-ro.yml | 11 + .../config/locales/crowdin/js-ru.yml | 11 + .../config/locales/crowdin/js-rw.yml | 11 + .../config/locales/crowdin/js-si.yml | 11 + .../config/locales/crowdin/js-sk.yml | 11 + .../config/locales/crowdin/js-sl.yml | 11 + .../config/locales/crowdin/js-sr.yml | 11 + .../config/locales/crowdin/js-sv.yml | 11 + .../config/locales/crowdin/js-th.yml | 11 + .../config/locales/crowdin/js-tr.yml | 11 + .../config/locales/crowdin/js-uk.yml | 11 + .../config/locales/crowdin/js-uz.yml | 11 + .../config/locales/crowdin/js-vi.yml | 11 + .../config/locales/crowdin/js-zh-CN.yml | 11 + .../config/locales/crowdin/js-zh-TW.yml | 11 + .../config/locales/crowdin/ka.yml | 59 +- .../config/locales/crowdin/kk.yml | 59 +- .../config/locales/crowdin/ko.yml | 58 +- .../config/locales/crowdin/li.yml | 59 +- .../config/locales/crowdin/lt.yml | 61 +- .../config/locales/crowdin/lv.yml | 60 +- .../config/locales/crowdin/mn.yml | 59 +- .../config/locales/crowdin/ms.yml | 58 +- .../config/locales/crowdin/ne.yml | 59 +- .../config/locales/crowdin/nl.yml | 59 +- .../config/locales/crowdin/no.yml | 59 +- .../config/locales/crowdin/pl.yml | 61 +- .../config/locales/crowdin/pt-BR.yml | 59 +- .../config/locales/crowdin/pt-PT.yml | 59 +- .../config/locales/crowdin/ro.yml | 60 +- .../config/locales/crowdin/ru.yml | 61 +- .../config/locales/crowdin/rw.yml | 59 +- .../config/locales/crowdin/si.yml | 59 +- .../config/locales/crowdin/sk.yml | 61 +- .../config/locales/crowdin/sl.yml | 61 +- .../config/locales/crowdin/sr.yml | 60 +- .../config/locales/crowdin/sv.yml | 59 +- .../config/locales/crowdin/th.yml | 58 +- .../config/locales/crowdin/tr.yml | 59 +- .../config/locales/crowdin/uk.yml | 61 +- .../config/locales/crowdin/uz.yml | 59 +- .../config/locales/crowdin/vi.yml | 58 +- .../config/locales/crowdin/zh-CN.yml | 58 +- .../config/locales/crowdin/zh-TW.yml | 58 +- .../storages/config/locales/crowdin/af.yml | 24 +- .../storages/config/locales/crowdin/ar.yml | 24 +- .../storages/config/locales/crowdin/az.yml | 24 +- .../storages/config/locales/crowdin/be.yml | 24 +- .../storages/config/locales/crowdin/bg.yml | 24 +- .../storages/config/locales/crowdin/ca.yml | 24 +- .../config/locales/crowdin/ckb-IR.yml | 24 +- .../storages/config/locales/crowdin/cs.yml | 24 +- .../storages/config/locales/crowdin/da.yml | 24 +- .../storages/config/locales/crowdin/de.yml | 24 +- .../storages/config/locales/crowdin/el.yml | 24 +- .../storages/config/locales/crowdin/eo.yml | 24 +- .../storages/config/locales/crowdin/es.yml | 24 +- .../storages/config/locales/crowdin/et.yml | 24 +- .../storages/config/locales/crowdin/eu.yml | 24 +- .../storages/config/locales/crowdin/fa.yml | 24 +- .../storages/config/locales/crowdin/fi.yml | 24 +- .../storages/config/locales/crowdin/fil.yml | 24 +- .../storages/config/locales/crowdin/fr.yml | 24 +- .../storages/config/locales/crowdin/he.yml | 24 +- .../storages/config/locales/crowdin/hi.yml | 24 +- .../storages/config/locales/crowdin/hr.yml | 24 +- .../storages/config/locales/crowdin/hu.yml | 24 +- .../storages/config/locales/crowdin/hy.yml | 24 +- .../storages/config/locales/crowdin/id.yml | 24 +- .../storages/config/locales/crowdin/it.yml | 24 +- .../storages/config/locales/crowdin/ja.yml | 184 +- .../storages/config/locales/crowdin/js-af.yml | 6 +- .../storages/config/locales/crowdin/js-ar.yml | 11 +- .../storages/config/locales/crowdin/js-az.yml | 6 +- .../storages/config/locales/crowdin/js-be.yml | 8 +- .../storages/config/locales/crowdin/js-bg.yml | 6 +- .../storages/config/locales/crowdin/js-ca.yml | 10 +- .../config/locales/crowdin/js-ckb-IR.yml | 6 +- .../storages/config/locales/crowdin/js-cs.yml | 16 +- .../storages/config/locales/crowdin/js-da.yml | 6 +- .../storages/config/locales/crowdin/js-de.yml | 10 +- .../storages/config/locales/crowdin/js-el.yml | 6 +- .../storages/config/locales/crowdin/js-eo.yml | 6 +- .../storages/config/locales/crowdin/js-es.yml | 10 +- .../storages/config/locales/crowdin/js-et.yml | 6 +- .../storages/config/locales/crowdin/js-eu.yml | 6 +- .../storages/config/locales/crowdin/js-fa.yml | 10 +- .../storages/config/locales/crowdin/js-fi.yml | 6 +- .../config/locales/crowdin/js-fil.yml | 6 +- .../storages/config/locales/crowdin/js-fr.yml | 10 +- .../storages/config/locales/crowdin/js-he.yml | 7 +- .../storages/config/locales/crowdin/js-hi.yml | 6 +- .../storages/config/locales/crowdin/js-hr.yml | 7 +- .../storages/config/locales/crowdin/js-hu.yml | 6 +- .../storages/config/locales/crowdin/js-hy.yml | 10 +- .../storages/config/locales/crowdin/js-id.yml | 3 +- .../storages/config/locales/crowdin/js-it.yml | 10 +- .../storages/config/locales/crowdin/js-ja.yml | 23 +- .../storages/config/locales/crowdin/js-ka.yml | 8 +- .../storages/config/locales/crowdin/js-kk.yml | 6 +- .../storages/config/locales/crowdin/js-ko.yml | 7 +- .../storages/config/locales/crowdin/js-li.yml | 6 +- .../storages/config/locales/crowdin/js-lt.yml | 16 +- .../storages/config/locales/crowdin/js-lv.yml | 6 +- .../storages/config/locales/crowdin/js-mn.yml | 6 +- .../storages/config/locales/crowdin/js-ms.yml | 7 +- .../storages/config/locales/crowdin/js-ne.yml | 6 +- .../storages/config/locales/crowdin/js-nl.yml | 8 +- .../storages/config/locales/crowdin/js-no.yml | 10 +- .../storages/config/locales/crowdin/js-pl.yml | 16 +- .../config/locales/crowdin/js-pt-BR.yml | 10 +- .../config/locales/crowdin/js-pt-PT.yml | 10 +- .../storages/config/locales/crowdin/js-ro.yml | 13 +- .../storages/config/locales/crowdin/js-ru.yml | 16 +- .../storages/config/locales/crowdin/js-rw.yml | 6 +- .../storages/config/locales/crowdin/js-si.yml | 6 +- .../storages/config/locales/crowdin/js-sk.yml | 8 +- .../storages/config/locales/crowdin/js-sl.yml | 8 +- .../storages/config/locales/crowdin/js-sr.yml | 7 +- .../storages/config/locales/crowdin/js-sv.yml | 10 +- .../storages/config/locales/crowdin/js-th.yml | 3 +- .../storages/config/locales/crowdin/js-tr.yml | 10 +- .../storages/config/locales/crowdin/js-uk.yml | 16 +- .../storages/config/locales/crowdin/js-uz.yml | 6 +- .../storages/config/locales/crowdin/js-vi.yml | 7 +- .../config/locales/crowdin/js-zh-CN.yml | 7 +- .../config/locales/crowdin/js-zh-TW.yml | 7 +- .../storages/config/locales/crowdin/ka.yml | 24 +- .../storages/config/locales/crowdin/kk.yml | 24 +- .../storages/config/locales/crowdin/ko.yml | 24 +- .../storages/config/locales/crowdin/li.yml | 24 +- .../storages/config/locales/crowdin/lt.yml | 24 +- .../storages/config/locales/crowdin/lv.yml | 24 +- .../storages/config/locales/crowdin/mn.yml | 24 +- .../storages/config/locales/crowdin/ms.yml | 24 +- .../storages/config/locales/crowdin/ne.yml | 24 +- .../storages/config/locales/crowdin/nl.yml | 24 +- .../storages/config/locales/crowdin/no.yml | 24 +- .../storages/config/locales/crowdin/pl.yml | 24 +- .../storages/config/locales/crowdin/pt-BR.yml | 24 +- .../storages/config/locales/crowdin/pt-PT.yml | 24 +- .../storages/config/locales/crowdin/ro.yml | 24 +- .../storages/config/locales/crowdin/ru.yml | 24 +- .../storages/config/locales/crowdin/rw.yml | 24 +- .../storages/config/locales/crowdin/si.yml | 24 +- .../storages/config/locales/crowdin/sk.yml | 24 +- .../storages/config/locales/crowdin/sl.yml | 24 +- .../storages/config/locales/crowdin/sr.yml | 24 +- .../storages/config/locales/crowdin/sv.yml | 24 +- .../storages/config/locales/crowdin/th.yml | 24 +- .../storages/config/locales/crowdin/tr.yml | 24 +- .../storages/config/locales/crowdin/uk.yml | 24 +- .../storages/config/locales/crowdin/uz.yml | 24 +- .../storages/config/locales/crowdin/vi.yml | 24 +- .../storages/config/locales/crowdin/zh-CN.yml | 24 +- .../storages/config/locales/crowdin/zh-TW.yml | 24 +- .../config/locales/crowdin/af.yml | 2 +- .../config/locales/crowdin/ar.yml | 2 +- .../config/locales/crowdin/az.yml | 2 +- .../config/locales/crowdin/be.yml | 2 +- .../config/locales/crowdin/bg.yml | 2 +- .../config/locales/crowdin/ca.yml | 2 +- .../config/locales/crowdin/ckb-IR.yml | 2 +- .../config/locales/crowdin/cs.yml | 2 +- .../config/locales/crowdin/de.yml | 2 +- .../config/locales/crowdin/el.yml | 2 +- .../config/locales/crowdin/eo.yml | 2 +- .../config/locales/crowdin/es.yml | 2 +- .../config/locales/crowdin/et.yml | 2 +- .../config/locales/crowdin/eu.yml | 2 +- .../config/locales/crowdin/fa.yml | 2 +- .../config/locales/crowdin/fi.yml | 2 +- .../config/locales/crowdin/fil.yml | 2 +- .../config/locales/crowdin/fr.yml | 2 +- .../config/locales/crowdin/he.yml | 2 +- .../config/locales/crowdin/hi.yml | 2 +- .../config/locales/crowdin/hr.yml | 2 +- .../config/locales/crowdin/hu.yml | 4 +- .../config/locales/crowdin/hy.yml | 2 +- .../config/locales/crowdin/id.yml | 2 +- .../config/locales/crowdin/it.yml | 2 +- .../config/locales/crowdin/ja.yml | 2 +- .../config/locales/crowdin/ka.yml | 2 +- .../config/locales/crowdin/kk.yml | 2 +- .../config/locales/crowdin/ko.yml | 2 +- .../config/locales/crowdin/li.yml | 2 +- .../config/locales/crowdin/lt.yml | 2 +- .../config/locales/crowdin/lv.yml | 2 +- .../config/locales/crowdin/mn.yml | 2 +- .../config/locales/crowdin/ms.yml | 2 +- .../config/locales/crowdin/ne.yml | 2 +- .../config/locales/crowdin/nl.yml | 2 +- .../config/locales/crowdin/no.yml | 2 +- .../config/locales/crowdin/pl.yml | 2 +- .../config/locales/crowdin/pt-BR.yml | 2 +- .../config/locales/crowdin/pt-PT.yml | 2 +- .../config/locales/crowdin/ro.yml | 4 +- .../config/locales/crowdin/ru.yml | 4 +- .../config/locales/crowdin/rw.yml | 2 +- .../config/locales/crowdin/si.yml | 2 +- .../config/locales/crowdin/sk.yml | 2 +- .../config/locales/crowdin/sl.yml | 2 +- .../config/locales/crowdin/sr.yml | 2 +- .../config/locales/crowdin/sv.yml | 2 +- .../config/locales/crowdin/th.yml | 2 +- .../config/locales/crowdin/tr.yml | 2 +- .../config/locales/crowdin/uk.yml | 2 +- .../config/locales/crowdin/uz.yml | 2 +- .../config/locales/crowdin/vi.yml | 2 +- .../config/locales/crowdin/zh-CN.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- .../webhooks/config/locales/crowdin/af.yml | 2 +- .../webhooks/config/locales/crowdin/ar.yml | 2 +- .../webhooks/config/locales/crowdin/az.yml | 2 +- .../webhooks/config/locales/crowdin/be.yml | 2 +- .../webhooks/config/locales/crowdin/bg.yml | 2 +- .../webhooks/config/locales/crowdin/ca.yml | 2 +- .../config/locales/crowdin/ckb-IR.yml | 2 +- .../webhooks/config/locales/crowdin/cs.yml | 2 +- .../webhooks/config/locales/crowdin/da.yml | 2 +- .../webhooks/config/locales/crowdin/de.yml | 2 +- .../webhooks/config/locales/crowdin/el.yml | 2 +- .../webhooks/config/locales/crowdin/eo.yml | 2 +- .../webhooks/config/locales/crowdin/es.yml | 2 +- .../webhooks/config/locales/crowdin/et.yml | 2 +- .../webhooks/config/locales/crowdin/eu.yml | 2 +- .../webhooks/config/locales/crowdin/fa.yml | 2 +- .../webhooks/config/locales/crowdin/fi.yml | 2 +- .../webhooks/config/locales/crowdin/fil.yml | 2 +- .../webhooks/config/locales/crowdin/fr.yml | 2 +- .../webhooks/config/locales/crowdin/he.yml | 2 +- .../webhooks/config/locales/crowdin/hi.yml | 2 +- .../webhooks/config/locales/crowdin/hr.yml | 2 +- .../webhooks/config/locales/crowdin/hu.yml | 2 +- .../webhooks/config/locales/crowdin/hy.yml | 2 +- .../webhooks/config/locales/crowdin/id.yml | 2 +- .../webhooks/config/locales/crowdin/it.yml | 2 +- .../webhooks/config/locales/crowdin/ja.yml | 2 +- .../webhooks/config/locales/crowdin/ka.yml | 2 +- .../webhooks/config/locales/crowdin/kk.yml | 2 +- .../webhooks/config/locales/crowdin/ko.yml | 2 +- .../webhooks/config/locales/crowdin/li.yml | 2 +- .../webhooks/config/locales/crowdin/lt.yml | 2 +- .../webhooks/config/locales/crowdin/lv.yml | 2 +- .../webhooks/config/locales/crowdin/mn.yml | 2 +- .../webhooks/config/locales/crowdin/ms.yml | 2 +- .../webhooks/config/locales/crowdin/ne.yml | 2 +- .../webhooks/config/locales/crowdin/nl.yml | 2 +- .../webhooks/config/locales/crowdin/no.yml | 2 +- .../webhooks/config/locales/crowdin/pl.yml | 2 +- .../webhooks/config/locales/crowdin/pt-BR.yml | 2 +- .../webhooks/config/locales/crowdin/pt-PT.yml | 2 +- .../webhooks/config/locales/crowdin/ro.yml | 2 +- .../webhooks/config/locales/crowdin/ru.yml | 2 +- .../webhooks/config/locales/crowdin/rw.yml | 2 +- .../webhooks/config/locales/crowdin/si.yml | 2 +- .../webhooks/config/locales/crowdin/sk.yml | 2 +- .../webhooks/config/locales/crowdin/sl.yml | 2 +- .../webhooks/config/locales/crowdin/sr.yml | 2 +- .../webhooks/config/locales/crowdin/sv.yml | 2 +- .../webhooks/config/locales/crowdin/th.yml | 2 +- .../webhooks/config/locales/crowdin/tr.yml | 2 +- .../webhooks/config/locales/crowdin/uk.yml | 2 +- .../webhooks/config/locales/crowdin/uz.yml | 2 +- .../webhooks/config/locales/crowdin/vi.yml | 2 +- .../webhooks/config/locales/crowdin/zh-CN.yml | 2 +- .../webhooks/config/locales/crowdin/zh-TW.yml | 2 +- modules/wikis/config/locales/crowdin/af.yml | 2 +- modules/wikis/config/locales/crowdin/ar.yml | 2 +- modules/wikis/config/locales/crowdin/az.yml | 2 +- modules/wikis/config/locales/crowdin/be.yml | 2 +- modules/wikis/config/locales/crowdin/bg.yml | 2 +- modules/wikis/config/locales/crowdin/ca.yml | 2 +- .../wikis/config/locales/crowdin/ckb-IR.yml | 2 +- modules/wikis/config/locales/crowdin/cs.yml | 2 +- modules/wikis/config/locales/crowdin/da.yml | 2 +- modules/wikis/config/locales/crowdin/de.yml | 4 +- modules/wikis/config/locales/crowdin/el.yml | 2 +- modules/wikis/config/locales/crowdin/eo.yml | 2 +- modules/wikis/config/locales/crowdin/es.yml | 4 +- modules/wikis/config/locales/crowdin/et.yml | 2 +- modules/wikis/config/locales/crowdin/eu.yml | 2 +- modules/wikis/config/locales/crowdin/fa.yml | 4 +- modules/wikis/config/locales/crowdin/fi.yml | 2 +- modules/wikis/config/locales/crowdin/fil.yml | 2 +- modules/wikis/config/locales/crowdin/fr.yml | 4 +- modules/wikis/config/locales/crowdin/he.yml | 2 +- modules/wikis/config/locales/crowdin/hi.yml | 2 +- modules/wikis/config/locales/crowdin/hr.yml | 2 +- modules/wikis/config/locales/crowdin/hu.yml | 2 +- modules/wikis/config/locales/crowdin/hy.yml | 4 +- modules/wikis/config/locales/crowdin/it.yml | 4 +- modules/wikis/config/locales/crowdin/ka.yml | 2 +- modules/wikis/config/locales/crowdin/kk.yml | 2 +- modules/wikis/config/locales/crowdin/ko.yml | 2 +- modules/wikis/config/locales/crowdin/li.yml | 2 +- modules/wikis/config/locales/crowdin/lt.yml | 2 +- modules/wikis/config/locales/crowdin/lv.yml | 2 +- modules/wikis/config/locales/crowdin/mn.yml | 2 +- modules/wikis/config/locales/crowdin/ne.yml | 2 +- modules/wikis/config/locales/crowdin/nl.yml | 2 +- modules/wikis/config/locales/crowdin/no.yml | 2 +- modules/wikis/config/locales/crowdin/pl.yml | 8 +- .../wikis/config/locales/crowdin/pt-BR.yml | 4 +- .../wikis/config/locales/crowdin/pt-PT.yml | 4 +- modules/wikis/config/locales/crowdin/ro.yml | 6 +- modules/wikis/config/locales/crowdin/ru.yml | 8 +- modules/wikis/config/locales/crowdin/rw.yml | 2 +- modules/wikis/config/locales/crowdin/si.yml | 2 +- modules/wikis/config/locales/crowdin/sk.yml | 2 +- modules/wikis/config/locales/crowdin/sl.yml | 2 +- modules/wikis/config/locales/crowdin/sr.yml | 2 +- modules/wikis/config/locales/crowdin/sv.yml | 4 +- modules/wikis/config/locales/crowdin/tr.yml | 2 +- modules/wikis/config/locales/crowdin/uk.yml | 8 +- modules/wikis/config/locales/crowdin/uz.yml | 2 +- .../wikis/config/locales/crowdin/zh-CN.yml | 2 +- .../config/locales/crowdin/zh-CN.yml | 2 +- 1561 files changed, 112276 insertions(+), 25570 deletions(-) create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/af.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ar.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/az.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/be.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/bg.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ca.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ckb-IR.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/cs.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/da.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/de.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/el.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/eo.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/es.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/et.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/eu.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/fa.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/fi.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/fil.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/fr.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/he.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/hi.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/hr.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/hu.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/hy.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/id.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/it.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ja.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ka.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/kk.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ko.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/li.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/lt.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/lv.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/mn.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ms.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ne.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/nl.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/no.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/pl.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/pt-BR.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/pt-PT.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/pt.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ro.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/ru.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/rw.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/si.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/sk.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/sl.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/sr.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/sv.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/th.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/tr.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/uk.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/uz.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/vi.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/zh-CN.ts create mode 100644 extensions/blocknote-extensions/lib/locales/crowdin/zh-TW.ts create mode 100644 modules/llm/config/locales/crowdin/af.yml create mode 100644 modules/llm/config/locales/crowdin/ar.yml create mode 100644 modules/llm/config/locales/crowdin/az.yml create mode 100644 modules/llm/config/locales/crowdin/be.yml create mode 100644 modules/llm/config/locales/crowdin/bg.yml create mode 100644 modules/llm/config/locales/crowdin/ca.yml create mode 100644 modules/llm/config/locales/crowdin/ckb-IR.yml create mode 100644 modules/llm/config/locales/crowdin/cs.yml create mode 100644 modules/llm/config/locales/crowdin/da.yml create mode 100644 modules/llm/config/locales/crowdin/de.yml create mode 100644 modules/llm/config/locales/crowdin/el.yml create mode 100644 modules/llm/config/locales/crowdin/eo.yml create mode 100644 modules/llm/config/locales/crowdin/es.yml create mode 100644 modules/llm/config/locales/crowdin/et.yml create mode 100644 modules/llm/config/locales/crowdin/eu.yml create mode 100644 modules/llm/config/locales/crowdin/fa.yml create mode 100644 modules/llm/config/locales/crowdin/fi.yml create mode 100644 modules/llm/config/locales/crowdin/fil.yml create mode 100644 modules/llm/config/locales/crowdin/fr.yml create mode 100644 modules/llm/config/locales/crowdin/he.yml create mode 100644 modules/llm/config/locales/crowdin/hi.yml create mode 100644 modules/llm/config/locales/crowdin/hr.yml create mode 100644 modules/llm/config/locales/crowdin/hu.yml create mode 100644 modules/llm/config/locales/crowdin/hy.yml create mode 100644 modules/llm/config/locales/crowdin/id.yml create mode 100644 modules/llm/config/locales/crowdin/it.yml create mode 100644 modules/llm/config/locales/crowdin/ja.yml create mode 100644 modules/llm/config/locales/crowdin/ka.yml create mode 100644 modules/llm/config/locales/crowdin/kk.yml create mode 100644 modules/llm/config/locales/crowdin/ko.yml create mode 100644 modules/llm/config/locales/crowdin/li.yml create mode 100644 modules/llm/config/locales/crowdin/lt.yml create mode 100644 modules/llm/config/locales/crowdin/lv.yml create mode 100644 modules/llm/config/locales/crowdin/mn.yml create mode 100644 modules/llm/config/locales/crowdin/ms.yml create mode 100644 modules/llm/config/locales/crowdin/ne.yml create mode 100644 modules/llm/config/locales/crowdin/nl.yml create mode 100644 modules/llm/config/locales/crowdin/no.yml create mode 100644 modules/llm/config/locales/crowdin/pl.yml create mode 100644 modules/llm/config/locales/crowdin/pt-BR.yml create mode 100644 modules/llm/config/locales/crowdin/pt-PT.yml create mode 100644 modules/llm/config/locales/crowdin/ro.yml create mode 100644 modules/llm/config/locales/crowdin/ru.yml create mode 100644 modules/llm/config/locales/crowdin/rw.yml create mode 100644 modules/llm/config/locales/crowdin/si.yml create mode 100644 modules/llm/config/locales/crowdin/sk.yml create mode 100644 modules/llm/config/locales/crowdin/sl.yml create mode 100644 modules/llm/config/locales/crowdin/sr.yml create mode 100644 modules/llm/config/locales/crowdin/sv.yml create mode 100644 modules/llm/config/locales/crowdin/th.yml create mode 100644 modules/llm/config/locales/crowdin/tr.yml create mode 100644 modules/llm/config/locales/crowdin/uk.yml create mode 100644 modules/llm/config/locales/crowdin/uz.yml create mode 100644 modules/llm/config/locales/crowdin/vi.yml create mode 100644 modules/llm/config/locales/crowdin/zh-CN.yml create mode 100644 modules/llm/config/locales/crowdin/zh-TW.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-af.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ar.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-az.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-be.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-bg.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ca.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ckb-IR.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-cs.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-da.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-de.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-el.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-eo.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-es.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-et.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-eu.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-fa.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-fi.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-fil.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-fr.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-he.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-hi.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-hr.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-hu.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-hy.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-id.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-it.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ja.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ka.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-kk.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ko.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-li.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-lt.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-lv.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-mn.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ms.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ne.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-nl.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-no.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-pl.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-pt-BR.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-pt-PT.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ro.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-ru.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-rw.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-si.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-sk.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-sl.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-sr.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-sv.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-th.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-tr.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-uk.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-uz.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-vi.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-zh-CN.yml create mode 100644 modules/resource_management/config/locales/crowdin/js-zh-TW.yml diff --git a/config/locales/crowdin/af.seeders.yml b/config/locales/crowdin/af.seeders.yml index 0a581fa20461..1b0b5bdb089d 100644 --- a/config/locales/crowdin/af.seeders.yml +++ b/config/locales/crowdin/af.seeders.yml @@ -250,70 +250,26 @@ af: In hierdie module kan jy projeknuus aan jou spanlede kommunikeer. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategorie 1 (moet verander word in Projek-instellings) queries: item_0: name: Projek plan item_1: - name: Produk agterstand + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Take boards: @@ -345,12 +301,13 @@ af: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml index 3122d087c09f..f38943a90f6b 100644 --- a/config/locales/crowdin/af.yml +++ b/config/locales/crowdin/af.yml @@ -40,7 +40,9 @@ af: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Verwyder rekening delete_confirmation: Is jy seker jy wil die rekening verwyder? deletion_info: @@ -65,7 +67,9 @@ af: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: of teken in met jou bestaande rekening + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ af: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ af: repository: Repository comment: commented: Kommentaar gelewer - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ af: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ af: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Aantal kolomme page: Bladsy row_count: Aantal rye widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ af: title: Title member: blocked: Blocked + principal_type: Member type roles: Rolle notification: read_ian: Read in-app @@ -235,6 +265,7 @@ af: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ af: ongoing: Ongoing spent_on: Datum type: Soort + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ af: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administreerder auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ af: last_name: Van ldap_auth_source: LDAP connection new_password: Nuwe wagwoord - password_confirmation: Bevestig + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ af: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ af: header_look_and_feel: Look and feel impaired: Toeganklikheid modus increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Tydsone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ af: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Ouer @@ -519,6 +565,10 @@ af: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ af: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ af: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ af: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ af: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ af: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ af: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ af: numeric: numeries (bv. ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: is al vantevore gebruik. Kies asseblief een wat verskil van jou laaste een. - other: is al vantevore gebruik. Kies asseblief een wat verskil van jou laaste %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: spesiaal (bv.'%') uppercase: grootletter (bv. 'A') password_confirmation: @@ -976,6 +1032,8 @@ af: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ af: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Werkspakket #%{id} is nie ''n geldige teiken vir hertoewysing van die tyd inskrywings nie.' @@ -1011,8 +1071,8 @@ af: template: body: 'Kontroleer asseblief die volgende velde:' header: - one: 1 fout verhoed hierdie %{model} om gestoor te word - other: "%{count} foute verhoed hierdie %{model} om gestoor te word" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ af: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ af: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ af: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ af: issue_priority: one: Prioriteit other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ af: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ af: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ af: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ af: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ af: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ af: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ af: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ af: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ af: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ af: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ af: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ af: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ af: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ af: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ af: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: tans vertoon is_inactive: tans nie vertoon show_until: Wys tot @@ -2075,7 +2256,7 @@ af: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ af: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Die konteks voorsien is nie 'n skakel na 'n hulpbron nie. - context_object_not_found: Kan nie die hulpbron gegee as die konteks vind nie. - unsupported_context: Die bron gegee word nie as konteks ondersteun nie. unable_to_create_attachment: Die aanhangsel kon nie geskep word nie unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ af: groups: Groepe hexcode: Hex kode id: ID + inexistent: Inexistent is_default: Standaardwaarde is_for_all: Vir alle projekte issue: Werkspakket @@ -2253,6 +2431,7 @@ af: updated_at: Opgedateer op updated_on: Opgedateer op uploader: Uploader + url: URL user: Gebruiker username: Username value: Waarde @@ -2267,6 +2446,29 @@ af: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ af: button_set_reminder: Set reminder button_show: Wys button_sort: Rangskik + button_stop_timer: Stop timer button_submit: Dien in button_test: Toets button_unarchive: Deargiveer @@ -2461,9 +2664,9 @@ af: text: failed: Kon nie projek "%{source_project_name}" kopieer na projek "%{target_project_name}". succeeded: Projek "%{source_project_name}" gekopieer na projek "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ af: plural: Pasgemaakte aksies custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Vir alle projekte hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ af: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ af: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ af: datetime: distance_in_words: about_x_hours: - one: ongeveer 1 uur - other: ongeveer %{count} ure + one: about %{count} hour + other: about %{count} hours about_x_months: - one: ongeveer 1 maand - other: ongeveer %{count} maande + one: about %{count} month + other: about %{count} months about_x_years: - one: ongeveer 1 jaar - other: ongeveer %{count} jare + one: about %{count} year + other: about %{count} years almost_x_years: - one: byna 1 jaar - other: byna %{count} jare + one: almost %{count} year + other: almost %{count} years half_a_minute: "'n halwe minuut" less_than_x_minutes: one: minder as 'n minuut other: minder as %{count} minute less_than_x_seconds: - one: minder as 1 sekonde - other: minder as %{count} sekondes + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: oor 1 jaar - other: oor %{count} jaar + one: over %{count} year + other: over %{count} years x_days: - one: 1 dag - other: "%{count} dae" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minuut - other: "%{count} minute" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 maand - other: "%{count} maande" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 sekonde - other: "%{count} sekondes" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ af: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ af: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ af: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ af: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ af: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ af: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ af: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ af: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ af: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ af: label_copy_target: Teiken label_copy_workflow_from: Kopieer werksvloei vanaf label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Kern weergawe label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Huidige status label_current_version: Huidige weergawe label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ af: label_custom_field_default_type: Leë tipe label_custom_field_new: Nuwe pasgemaakte veld label_custom_field_plural: Pasgemaakte velde - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ af: label_database_version: PostgreSQL version label_date: Datum label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: Vanaf label_date_from_to: Vanaf %{start} tot %{end} label_date_to: Tot label_dates: Dates + label_day: Dag label_day_plural: dae label_default: Verstek label_defaults: Defaults @@ -3596,6 +3970,7 @@ af: label_deleted_custom_field: "(pasgemaakte veld geskrap)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ af: label_float: Dryf label_folder: Folder label_follows: volg + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nuwe forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ af: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Groep + label_group_attributes_plural: Group attributes label_group_by: Groepeer volgens label_group_named: Group %{name} label_group_new: Nuwe groep @@ -3735,8 +4112,8 @@ af: label_journal_diff: Beskrywing Vergelyking label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Taal - label_language_based: Gebaseer op die gebruiker se taal label_languages: Languages label_last_activity: Last activity label_last_change_on: Laaste verandering op @@ -3758,6 +4135,7 @@ af: label_list: Lys label_loading: Laai tans... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Aangeteken as @@ -3769,6 +4147,7 @@ af: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimum grootte label_me: ek label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ af: label_menu_item_name: Naam van kieslysitem label_message: Message label_message_last: Laaste boodskap - label_message_new: Nuwe boodskap label_message_plural: Boodskappe label_message_posted: Boodskap bygevoeg label_minute_plural: minutes @@ -3799,6 +4177,7 @@ af: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Maand label_months_from: maande vanaf label_more: Meer label_more_information: More information @@ -3812,6 +4191,7 @@ af: label_my_avatar: My avatar label_my_queries: My pasgemaakte navrae label_my_security: Security + label_my_time: My time label_name: Naam label_never: Never label_new: Nuut @@ -3826,7 +4206,10 @@ af: label_news_singular: Nuus label_news_view_all: View all news label_next: Volgende + label_next_day: Next day + label_next_month: Next month label_next_week: Volgende week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Geen verandering)" label_no_data: Geen data om te wys @@ -3834,6 +4217,7 @@ af: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: niemand label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ af: label_preview: Voorskou label_preview_not_available: Preview not available label_previous: Vorige + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Vorige week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ af: label_sort_lowest: Skuif na onder label_sorted_by: sorted by %{value} label_spent_time: Tyd gespandeer + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ af: label_subtask_plural: Subtake label_summary: Opsomming label_system: Stelsel + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ af: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Tyd gespandeer + label_timer_since: Started at %{time} label_title: Titel label_today: vandag label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ af: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Weergawes @@ -4100,6 +4492,7 @@ af: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Werkspakkette wat dopgehou word @@ -4123,6 +4516,8 @@ af: label_wiki_start: Begin bladsy label_wiki_toc: Inhoudsopgawe label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Werkspakket label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ af: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projekte" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: gister label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ af: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ af: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ af: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ af: create_button: Skep dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ af: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ af: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ af: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ af: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ af: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ af: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ af: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ af: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ af: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ af: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ af: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ af: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ af: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ af: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ af: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ af: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projekte" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ af: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ af: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ af: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ af: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ af: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ af: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ af: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ af: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ af: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ af: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ af: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ af: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ af: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ af: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ af: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ af: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ af: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ af:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Gesluit - is_default: Verstek is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ af: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ af: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ af: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ af: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ af: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ af: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ af: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ af: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ af: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ af: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ af: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projekte + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ af: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ af: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ af: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ af: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ af: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ af: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ af: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ af: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: gesluit version_status_locked: locked version_status_open: maak oop versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ af: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ af: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ af: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ af: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ af: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/ar.seeders.yml b/config/locales/crowdin/ar.seeders.yml index f93b4fc26575..b9ecf7b7471a 100644 --- a/config/locales/crowdin/ar.seeders.yml +++ b/config/locales/crowdin/ar.seeders.yml @@ -250,70 +250,26 @@ ar: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: عمل المنتج المتراكم غير المنجز + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ ar: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml index 678d94e9ee38..af1384fb8796 100644 --- a/config/locales/crowdin/ar.yml +++ b/config/locales/crowdin/ar.yml @@ -40,7 +40,9 @@ ar: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: حذف الحساب delete_confirmation: هل أنت متأكد من رغبتك في إلغاء الحساب؟ deletion_info: @@ -65,7 +67,9 @@ ar: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: أو سجل دخولك من خلال حسابك الموجود مسبقا + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: الرجاء تسجيل الدخول لتفعيل حسابك. @@ -118,6 +122,8 @@ ar: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ar: repository: مستودع البيانات comment: commented: علّق - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ ar: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ ar: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: عدد الأعمدة page: 'الصفحة ' row_count: عدد الصفوف widgets: الودجات group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ar: title: Title member: blocked: Blocked + principal_type: Member type roles: دور notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ar: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ar: ongoing: Ongoing spent_on: التاريخ type: النّوع + token/base: + expires_on: Expiration date token/ical: calendar: التقويم ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ar: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: مدير النظام auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: كلمة السر الحالية department: Department @@ -410,7 +441,7 @@ ar: last_name: الاسم الأخير ldap_auth_source: اتصال LDAP new_password: كلمة مرور جديدة - password_confirmation: تأكيد + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ar: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ar: header_look_and_feel: Look and feel impaired: نمط إمكانية الدخول increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: المنطقة الزمنية warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ar: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: الجذر @@ -519,6 +565,10 @@ ar: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: يجب أن تقبل. @@ -590,6 +640,8 @@ ar: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: يجب أن يكون أصغر أو يساوي الطول الأعظم. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ar: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: هو طول خاطئ (يجب أن تكون الأحرف %{count}). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -676,6 +732,16 @@ ar: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: يجب أن تكون قيمة النهاية أكبر من قيمة البداية. outside: هو خارج الشبكة. @@ -693,6 +759,13 @@ ar: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -748,7 +821,6 @@ ar: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'لا يزال قيد الاستخدام من قبل مجموعات العمل: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -861,42 +933,26 @@ ar: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -910,12 +966,12 @@ ar: numeric: رقمية (على سبيل المثال، '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - zero: لقد تم استخدامه من قبل. الرجاء اختيار واحد مختلف عن اخر%{count}. - one: has been used before. Please choose one that is different from your last one. - two: لقد تم استخدامه من قبل. الرجاء اختيار واحد مختلف عن اخر%{count}. - few: لقد تم استخدامه من قبل. الرجاء اختيار واحد مختلف عن اخر%{count}. - many: لقد تم استخدامه من قبل. الرجاء اختيار واحد مختلف عن اخر%{count}. - other: لقد تم استخدامه من قبل. الرجاء اختيار واحد مختلف عن اخر%{count}. + zero: has been used before. Please choose one that is different from your last %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + two: has been used before. Please choose one that is different from your last %{count}. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: خاصة (مثل '%') uppercase: أحرف كبيرة (على سبيل المثال، 'A') password_confirmation: @@ -984,6 +1040,8 @@ ar: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: لا يمكن أن يكون في مشروع آخر. cannot_be_milestone: لا يمكن أن يكون معلما. @@ -1011,6 +1069,8 @@ ar: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: غير مسموح لأن لا انتقال صالح موجود من القديم إلى مركز جديد للأدوار للمستخدم الحالي. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'مجموعة العمل #%{id} ليست هدفًا صالحًا لإعادة تعيين إدخالات الوقت.' @@ -1019,12 +1079,12 @@ ar: template: body: 'من فضلك تحقّقْ من الحقول التالية:' header: - zero: أخطاء %{count} ويحظر هذا %{model} من يتم حفظها - one: 1 error prohibited this %{model} from being saved - two: أخطاء %{count} ويحظر هذا %{model} من يتم حفظها - few: أخطاء %{count} ويحظر هذا %{model} من يتم حفظها - many: أخطاء %{count} ويحظر هذا %{model} من يتم حفظها - other: أخطاء %{count} ويحظر هذا %{model} من يتم حفظها + zero: "%{count} errors prohibited this %{model} from being saved" + one: "%{count} error prohibited this %{model} from being saved" + two: "%{count} errors prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: zero: Actions @@ -1110,6 +1170,13 @@ ar: few: Authentication providers many: Authentication providers other: Authentication providers + automation: + zero: Automations + one: Automation + two: Automations + few: Automations + many: Automations + other: Automations backup: zero: Backups one: Backup @@ -1159,13 +1226,6 @@ ar: few: Comments many: Comments other: Comments - custom_action: - zero: Custom actions - one: Custom action - two: Custom actions - few: Custom actions - many: Custom actions - other: Custom actions custom_field: zero: Custom fields one: Custom field @@ -1271,6 +1331,13 @@ ar: few: Export settings many: Export settings other: Export settings + form_configuration: + zero: Forms + one: Form + two: Forms + few: Forms + many: Forms + other: Forms forum: zero: Forums one: Forum @@ -1313,6 +1380,13 @@ ar: few: Priorities many: Priorities other: Priorities + label: + zero: Labels + one: Label + two: Labels + few: Labels + many: Labels + other: Labels ldap_auth_source: zero: LDAP connections one: LDAP connection @@ -1833,7 +1907,28 @@ ar: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1866,7 +1961,11 @@ ar: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: احجز الآن @@ -1899,7 +1998,7 @@ ar: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1907,12 +2006,15 @@ ar: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1945,16 +2047,30 @@ ar: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -2059,49 +2175,49 @@ ar: parts: issues: zero: "%{count} issues" - one: 1 issue + one: "%{count} issue" two: "%{count} issues" few: "%{count} issues" many: "%{count} issues" other: "%{count} issues" jobs: zero: "%{count} jobs" - one: 1 job + one: "%{count} job" two: "%{count} jobs" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: zero: "%{count} projects" - one: 1 project + one: "%{count} project" two: "%{count} projects" few: "%{count} projects" many: "%{count} projects" other: "%{count} projects" statuses: zero: "%{count} statuses" - one: 1 status + one: "%{count} status" two: "%{count} statuses" few: "%{count} statuses" many: "%{count} statuses" other: "%{count} statuses" types: zero: "%{count} types" - one: 1 type + one: "%{count} type" two: "%{count} types" few: "%{count} types" many: "%{count} types" other: "%{count} types" users: zero: "%{count} users" - one: 1 user + one: "%{count} user" two: "%{count} users" few: "%{count} users" many: "%{count} users" other: "%{count} users" work_packages: zero: "%{count} work packages" - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" few: "%{count} work packages" many: "%{count} work packages" @@ -2171,7 +2287,7 @@ ar: caption_done: Completed caption_done_description: zero: "%{count} projects selected as scope" - one: 1 project selected as scope + one: "%{count} project selected as scope" two: "%{count} projects selected as scope" few: "%{count} projects selected as scope" many: "%{count} projects selected as scope" @@ -2239,23 +2355,57 @@ ar: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + zero: "%{count} work packages" + one: "%{count} work package" + two: "%{count} work packages" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2286,6 +2436,18 @@ ar: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -2300,7 +2462,7 @@ ar: description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: zero: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. two: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2433,7 +2595,7 @@ ar: error_used_in_past: Reserved by another project's handle history remaining_projects: zero: "... %{count} more projects" - one: "... 1 more project" + one: "... %{count} more project" two: "... %{count} more projects" few: "... %{count} more projects" many: "... %{count} more projects" @@ -2477,7 +2639,7 @@ ar: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2514,17 +2676,24 @@ ar: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: zero: "%{count} roles selected" - one: One role selected + one: "%{count} role selected" two: "%{count} roles selected" few: "%{count} roles selected" many: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2535,7 +2704,7 @@ ar: description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: zero: Remove %{count} statuses? - one: Remove 1 status? + one: Remove %{count} status? two: Remove %{count} statuses? few: Remove %{count} statuses? many: Remove %{count} statuses? @@ -2551,7 +2720,31 @@ ar: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: معروض حاليًا is_inactive: غير معروض حاليًا show_until: أظهِر حتّى @@ -2559,7 +2752,7 @@ ar: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2613,10 +2806,6 @@ ar: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: سياق المقدمة ليس ارتباط إلى مورد. - context_object_not_found: تعذر العثور على المورد نظراً للسياق. - unsupported_context: غير معتمد المورد نظراً للسياق. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2687,6 +2876,7 @@ ar: groups: المجموعات hexcode: رمز Hex id: الهوية المُعَرِّفة + inexistent: Inexistent is_default: القيمة الافتراضية is_for_all: لكافة المشاريع issue: مجموعة العمل @@ -2737,6 +2927,7 @@ ar: updated_at: تم التحديث بتاريخ updated_on: تم التحديث بتاريخ uploader: Uploader + url: URL user: المستخدم username: Username value: القيمة @@ -2751,6 +2942,29 @@ ar: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2879,6 +3093,7 @@ ar: button_set_reminder: Set reminder button_show: إظهار button_sort: فرز + button_stop_timer: Stop timer button_submit: إرسال button_test: اختبار button_unarchive: إلغاء الأرشفة @@ -2945,9 +3160,9 @@ ar: text: failed: تعذّر نسخ مشروع "%{source_project_name}" لمشروع "%{target_project_name}". succeeded: تمّ نسخ مشروع "%{source_project_name}" إلى "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2985,13 +3200,9 @@ ar: plural: إجراءات مخصصة custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: لكافة المشاريع hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -3012,7 +3223,7 @@ ar: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -3077,16 +3288,17 @@ ar: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: إنشاء ملف زبون جديد - no_results_title_text: لا يوجد حالياً ملفات للزبائن. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -3150,33 +3362,33 @@ ar: datetime: distance_in_words: about_x_hours: - zero: حوالي %{count} ساعات - one: حوالي 1 ساعات - two: حوالي %{count} ساعات - few: حوالي %{count} ساعات - many: حوالي %{count} ساعات - other: حوالي %{count} ساعات + zero: about %{count} hours + one: about %{count} hour + two: about %{count} hours + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - zero: حوالي %{count} ساعات - one: about 1 month - two: حوالي %{count} ساعات - few: حوالي %{count} ساعات - many: حوالي %{count} ساعات - other: حوالي %{count} ساعات + zero: about %{count} months + one: about %{count} month + two: about %{count} months + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - zero: حوالي %{count} سنوات - one: about 1 year - two: حوالي %{count} سنوات - few: حوالي %{count} سنوات - many: حوالي %{count} سنوات - other: حوالي %{count} سنوات + zero: about %{count} years + one: about %{count} year + two: about %{count} years + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - zero: تقريبا %{count} سنوات - one: almost 1 year - two: تقريبا %{count} سنوات - few: تقريبا %{count} سنوات - many: تقريبا %{count} سنوات - other: تقريبا %{count} سنوات + zero: almost %{count} years + one: almost %{count} year + two: almost %{count} years + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: نصف دقيقة less_than_x_minutes: zero: أقل من %{count} دقائق @@ -3186,85 +3398,85 @@ ar: many: أقل من %{count} دقائق other: أقل من %{count} دقائق less_than_x_seconds: - zero: أقل من %{count} ثواني - one: less than 1 second - two: أقل من %{count} ثواني - few: أقل من %{count} ثواني - many: أقل من %{count} ثواني - other: أقل من %{count} ثواني + zero: less than %{count} seconds + one: less than %{count} second + two: less than %{count} seconds + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - zero: على مدى %{count} سنوات - one: أكثر من 1 سنة - two: على مدى %{count} سنوات - few: على مدى %{count} سنوات - many: على مدى %{count} سنوات - other: على مدى %{count} سنوات + zero: over %{count} years + one: over %{count} year + two: over %{count} years + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - zero: "%{count} يوم" - one: 1 يوم - two: "%{count} يوم" - few: "%{count} يوم" - many: "%{count} يوم" - other: "%{count} يوم" + zero: "%{count} days" + one: "%{count} day" + two: "%{count} days" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - zero: "%{count} ساعات" - one: ساعة واحدة - two: "%{count} ساعات" - few: "%{count} ساعات" - many: "%{count} ساعات" - other: "%{count} ساعات" + zero: "%{count} hours" + one: "%{count} hour" + two: "%{count} hours" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: zero: "%{count} hrs" - one: 1 hr + one: "%{count} hr" two: "%{count} hrs" few: "%{count} hrs" many: "%{count} hrs" other: "%{count} hrs" x_minutes: - zero: دقائق %{count} - one: 1 minute - two: دقائق %{count} - few: دقائق %{count} - many: دقائق %{count} - other: دقائق %{count} + zero: "%{count} minutes" + one: "%{count} minute" + two: "%{count} minutes" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: zero: "%{count} mins" - one: 1 min + one: "%{count} min" two: "%{count} mins" few: "%{count} mins" many: "%{count} mins" other: "%{count} mins" x_months: - zero: "%{count} ساعه" - one: 1 month - two: "%{count} ساعه" - few: "%{count} ساعه" - many: "%{count} ساعه" - other: "%{count} ساعه" + zero: "%{count} months" + one: "%{count} month" + two: "%{count} months" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - zero: "%{count} ثانية" - one: 1 ثانية - two: "%{count} ثانية" - few: "%{count} ثانية" - many: "%{count} ثانية" - other: "%{count} ثانية" + zero: "%{count} seconds" + one: "%{count} second" + two: "%{count} seconds" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: zero: "%{count} s" - one: 1 s + one: "%{count} s" two: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: zero: "%{count} weeks" - one: 1 week + one: "%{count} week" two: "%{count} weeks" few: "%{count} weeks" many: "%{count} weeks" other: "%{count} weeks" x_years: zero: "%{count} years" - one: 1 year + one: "%{count} year" two: "%{count} years" few: "%{count} years" many: "%{count} years" @@ -3431,7 +3643,7 @@ ar: description_html: You have access to all %{trial_plan} features. title: zero: "%{count} days left of %{trial_plan} trial token" - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" two: "%{count} days left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" many: "%{count} days left of %{trial_plan} trial token" @@ -3780,9 +3992,182 @@ ar: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + zero: "%{count} projects" + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + zero: "%{count} types" + one: "%{count} type" + two: "%{count} types" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + zero: "%{count} variants" + one: "%{count} variant" + two: "%{count} variants" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + zero: This form is used by %{count} types. Changes apply to all of them. + one: This form is used by %{count} type. Changes apply to it. + two: This form is used by %{count} types. Changes apply to all of them. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + zero: This form is used by %{count} types and variants. Changes apply to all of them. + one: This form is used by %{count} type or variant. Changes apply to it. + two: This form is used by %{count} types and variants. Changes apply to all of them. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + zero: 'Accepted solutions:' + one: 'Accepted solution:' + two: 'Accepted solutions:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + zero: Load previous %{count} replies + one: Load previous reply + two: Load previous %{count} replies + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + zero: "%{count} participants" + one: 1 participant + two: "%{count} participants" + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3807,6 +4192,8 @@ ar: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3832,6 +4219,10 @@ ar: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3853,7 +4244,7 @@ ar: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3862,7 +4253,7 @@ ar: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3887,6 +4278,31 @@ ar: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3923,8 +4339,10 @@ ar: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3974,6 +4392,7 @@ ar: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -4126,10 +4545,10 @@ ar: label_copy_target: الهدف label_copy_workflow_from: نسخ تدفق العمل من label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: النسخة الأساسية label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: الحالة الحالية label_current_version: النسخة الحالية label_custom_comment: "%{name} comment" @@ -4153,8 +4572,6 @@ ar: label_custom_field_default_type: نوع فارغ label_custom_field_new: حقل مخصص جديد label_custom_field_plural: الحقول المخصصة - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -4163,11 +4580,12 @@ ar: label_database_version: PostgreSQL version label_date: التاريخ label_date_and_time: Date and time - label_date_format: صيغة التاريخ + label_date_and_time_formats: Date and time formats label_date_from: من label_date_from_to: من %{start} إلى %{end} label_date_to: إلى label_dates: التواريخ + label_day: اليوم label_day_plural: أيام label_default: الافتراضي label_defaults: Defaults @@ -4178,6 +4596,7 @@ ar: label_deleted_custom_field: "(حذف حقل مخصص)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -4248,6 +4667,7 @@ ar: label_float: عدد عشري label_folder: مجلد label_follows: تتبع + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: منتدى جديد label_forum_plural: منتديات @@ -4266,6 +4686,7 @@ ar: label_go_forward: Open %{module} sub-menu label_greater_or_equal: "=<" label_group: مجموعة + label_group_attributes_plural: Group attributes label_group_by: مجموعة بحسب label_group_named: Group %{name} label_group_new: مجموعة جديدة @@ -4317,8 +4738,8 @@ ar: label_journal_diff: مقارنة التوصيف label_jump_to_a_project: الانتقال بسرعة إلى مشروع... label_keyword_plural: Keywords + label_label_plural: Labels label_language: اللغة - label_language_based: استناداً إلى لغة المستخدم label_languages: Languages label_last_activity: آخر نشاط label_last_change_on: آخر تغيير في @@ -4340,6 +4761,7 @@ ar: label_list: القائمة label_loading: جاري التحميل... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: مقفل label_logged_as: تسجيل الدخول ك @@ -4351,6 +4773,7 @@ ar: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: إدارة %{vendor} مستودعات البيانات label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: الحجم الأقصى label_me: لي label_member_all_admin: "(All roles due to admin status)" @@ -4369,7 +4792,6 @@ ar: label_menu_item_name: اسم عنصر من القائمة label_message: رسالة label_message_last: الرسالة الأخيرة - label_message_new: رسالة جديدة label_message_plural: رسائل label_message_posted: تم إضافة رسالة label_minute_plural: دقائق @@ -4381,6 +4803,7 @@ ar: label_module_plural: أنماط label_modules: أنماط label_modules_and_plugins: Modules and Plugins + label_month: شهر label_months_from: أشهر من label_more: المزيد label_more_information: More information @@ -4394,6 +4817,7 @@ ar: label_my_avatar: My avatar label_my_queries: استعلاماتي المخصصة label_my_security: Security + label_my_time: My time label_name: الاسم label_never: أبداً label_new: جديد @@ -4408,7 +4832,10 @@ ar: label_news_singular: الأخبار label_news_view_all: عرض جميع الأحداث label_next: التالي + label_next_day: اليوم التالي + label_next_month: الشهر القادم label_next_week: الأسبوع القادم + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(بدون تغيير)" label_no_data: لا يوجد بيانات لعرضها @@ -4416,6 +4843,7 @@ ar: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: لا يوجد تاريخ بدء + label_no_time: لا يوجد وقت مسجل label_nobody: لا أحد label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4482,7 +4910,10 @@ ar: label_preview: معاينة label_preview_not_available: Preview not available label_previous: السابق + label_previous_day: Previous day + label_previous_month: الشهر السابق label_previous_week: الأسبوع الماضي + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " أو دعوة المستخدمين الجدد عبر البريد الالكتروني" label_principal_search: إضافة مستخدمين أو مجموعات موجودة @@ -4601,6 +5032,7 @@ ar: label_sort_lowest: الانتقال إلى الأسفل label_sorted_by: مرتبة حسب %{value} label_spent_time: الوقت المستهلك + label_stack: Stack label_start_to_end: البداية إلى النهاية label_start_to_start: البداية إلى البداية label_starts_with: starts with @@ -4620,6 +5052,7 @@ ar: label_subtask_plural: المهام الفرعية label_summary: مُلخّص label_system: نظام + label_system_or_language_default: Use system or language based default label_system_settings: إعدادات النظام label_system_storage: معلومات التخزين label_table_of_contents: Table of contents @@ -4634,6 +5067,7 @@ ar: label_time: الوقت label_time_entry_activity_plural: Spent time activities label_time_entry_plural: الوقت المستهلك + label_timer_since: Started at %{time} label_title: العنوان label_today: اليوم label_today_as_date: Select today as date. @@ -4669,7 +5103,9 @@ ar: label_user_search: البحث عن مستخدم label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: إصدار جديد label_version_plural: الإصدارات @@ -4682,6 +5118,7 @@ ar: label_videos: Videos label_view_all_revisions: عرض كافة المراجعات label_view_diff: عرض الاختلافات + label_view_mode_switcher: Change view label_view_revisions: عرض المراجعات label_view_x: 'View: %{x}' label_watched_work_packages: مجموعات العمل المراقبة @@ -4705,6 +5142,8 @@ ar: label_wiki_start: صفحة البداية label_wiki_toc: جدول المحتويات label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: مجموعة العمل label_work_package_attachments: Work package attachments @@ -4727,58 +5166,59 @@ ar: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: أسبوع العمل label_x_closed_work_packages_abbr: - one: 1 مغلقة + one: "%{count} closed" other: "%{count} مغلق" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} تعليقات" zero: no comments label_x_days: zero: "%{count} days" - one: 1 day + one: "%{count} day" two: "%{count} days" few: "%{count} days" many: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: zero: "%{count} items selected" - one: One item selected + one: "%{count} item selected" two: "%{count} items selected" few: "%{count} items selected" many: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} مفتوح" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} مشاريع" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: zero: "%{count} working days" - one: 1 working day + one: "%{count} working day" two: "%{count} working days" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: zero: 'Time off: %{count} working days' - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' two: 'Time off: %{count} working days' few: 'Time off: %{count} working days' many: 'Time off: %{count} working days' @@ -4836,7 +5276,7 @@ ar: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4893,6 +5333,8 @@ ar: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4950,7 +5392,7 @@ ar: mentioned_by: "%{user} mentioned you in a comment" more_to_see: zero: There are %{count} more work packages with notifications. - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. two: There are %{count} more work packages with notifications. few: There are %{count} more work packages with notifications. many: There are %{count} more work packages with notifications. @@ -5156,6 +5598,17 @@ ar: create_button: إنشاء dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + zero: "%{count} days (%{date})" + one: "%{count} day (%{date})" + two: "%{count} days (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -5169,10 +5622,26 @@ ar: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: الإجراء expiration: انتهاء الصلاحية @@ -5378,7 +5847,6 @@ ar: notice_principals_found_single: |- هنالك نتيجة واحدة. إضغط لتحديدها. - notice_project_cannot_update_custom_fields: 'لا يمكنك تحديث الحقول المخصصة المتوفرة للمشروع. المشروع غير صالح: %{errors}' notice_project_not_deleted: لم يتم حذف المشروع. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5388,9 +5856,6 @@ ar: notice_successful_create: إنشاء ناجح. notice_successful_delete: حذف ناجح. notice_successful_update: تحديث ناجح. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: هناك الكثير من النتائج. تضييق البحث عن طريق كتابة اسم العضو الجديد (أو المجموعة). notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -5495,7 +5960,7 @@ ar: ' confirm_revoke_my_application: zero: Do you really want to remove this application? This will revoke %{count} tokens active for it. - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. two: Do you really want to remove this application? This will revoke %{count} tokens active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. many: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5589,8 +6054,6 @@ ar: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5610,7 +6073,6 @@ ar: or: أو rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5682,8 +6144,8 @@ ar: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5708,7 +6170,7 @@ ar: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: أخبار التعليق permission_commit_access: الوصول للقراءة/الكتابة إلى المستودع (الالتزام) - permission_copy_projects: نسخ المشاريع + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: انشيئ نسخ احتياطية @@ -5741,6 +6203,7 @@ ar: permission_export_projects: Export projects permission_export_work_packages: تصدير مجموعات العمل permission_header_for_project_module_work_package_tracking: حزم العمل ومخططات Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5751,6 +6214,9 @@ ar: permission_manage_dashboards: Manage dashboards permission_manage_forums: إدارة منتديات permission_manage_members: إدارة الأعضاء + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: إدارة الأخبار permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5779,7 +6245,6 @@ ar: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: حدد وحدات المشروع permission_select_project_phases: Select project phases @@ -5813,6 +6278,16 @@ ar: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5834,7 +6309,7 @@ ar: name: OmniAuth SAML / تسجيل الدخول الموحد portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5846,7 +6321,7 @@ ar: placeholder: Search portfolios sub_items_html: zero: "%{count} sub-items" - one: "1 sub-item" + one: "%{count} sub-item" two: "%{count} sub-items" few: "%{count} sub-items" many: "%{count} sub-items" @@ -5864,7 +6339,7 @@ ar: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5876,7 +6351,7 @@ ar: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} مشاريع" zero: 0 projects destroy: @@ -5981,11 +6456,11 @@ ar: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5995,6 +6470,12 @@ ar: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: لا تتوفر حالياً أية حقول متاحة. forums: no_results_content_text: Create a new forum @@ -6092,7 +6573,7 @@ ar: nothing_affected: No fields or statuses are affected. status_count: zero: "%{count} work packages" - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" few: "%{count} work packages" many: "%{count} work packages" @@ -6100,14 +6581,14 @@ ar: table_suffix: "(table)" value_count: zero: "%{count} work packages have a value" - one: 1 work package has a value + one: "%{count} work package has a value" two: "%{count} work packages have a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: zero: "%{count} work packages will use the new configuration" - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" two: "%{count} work packages will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" @@ -6122,7 +6603,7 @@ ar: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: إنشاء إصدار جديد - no_results_title_text: لا يوجد حالياً أية إصدارات للمشروع. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -6130,15 +6611,27 @@ ar: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: تطبيق عامل التصفية الذي تم تكوينه مسبقاً configure_view: @@ -6168,7 +6661,7 @@ ar: add_reaction: Add reaction and_others: zero: and %{count} others - one: and 1 other + one: and %{count} other two: and %{count} others few: and %{count} others many: and %{count} others @@ -6283,6 +6776,51 @@ ar: warnings: cannot_annotate: هذا الملف لا يمكن أن يشرح. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + zero: "(Projects: %{projects})" + one: "(Project: %{projects})" + two: "(Projects: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + zero: "(Projects: %{projects} and %{count} others)" + one: "(Projects: %{projects} and %{count} other)" + two: "(Projects: %{projects} and %{count} others)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + zero: 'This role is still attributed to %{count} members:' + one: 'This role is still attributed to %{count} member:' + two: 'This role is still attributed to %{count} members:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + zero: "%{count} projects" + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + zero: "%{count} users" + one: "%{count} user" + two: "%{count} users" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -6294,6 +6832,19 @@ ar: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + zero: "%{count} permissions" + one: "%{count} permission" + two: "%{count} permissions" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -6398,7 +6949,7 @@ ar: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: الحد الأقصى لعدد الخطوط المختلفة المعروضة setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: عرض المشاريع الجزئية لمجموعات العمل في المشاريع الرئيسية افتراضيا + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6513,6 +7064,7 @@ ar: setting_start_of_week: Week starts on setting_sys_api_description: ويوفر خدمة ويب إدارة المستودع التكامل و إذن للمستخدم للوصول إلى المستودعات. setting_sys_api_enabled: تمكين خدمة ويب إدارة المستودع + setting_sys_api_key: API key setting_time_format: الوقت setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6565,7 +7117,7 @@ ar: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6576,6 +7128,7 @@ ar: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6667,12 +7220,12 @@ ar: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6692,8 +7245,8 @@ ar: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6701,7 +7254,7 @@ ar: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6721,6 +7274,7 @@ ar: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6777,7 +7331,7 @@ ar: section_work_week: أسبوع العمل sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6870,19 +7424,19 @@ ar:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: مغلق - is_default: الافتراضي is_readonly: للقراءة فقط + no_filter_results_title_text: No status matches the current filter. no_results_content_text: إضافة حالة جديدة no_results_title_text: لا يوجد حالياً حالات لحزمة العمل. + status_actions: Status actions support: array: sentence_connector: و skip_last_comma: خاطئ text_access_token_hint: رموز الوصول المميزة تسمح لك لمنح الوصول إلى تطبيقات خارجية للموارد في open project. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'تحليل أبعد: %{subject}' text_are_you_sure: هل أنت متأكد؟ text_are_you_sure_continue: Are you sure you want to continue? @@ -6925,12 +7479,6 @@ ar: ' text_custom_field_possible_values_info: خط واحد لكل قيمة - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6980,6 +7528,7 @@ ar: text_length_between: الطول بين %{min} و %{max} محارف. text_line_separated: القيم المتعددة المسموح بها (سطر واحد لكل قيمة). text_load_default_configuration: تحميل التكوين الافتراضي + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: لا توجد أية رموز الوصول المميزة التي يمكن تكوينها. text_no_configuration_data: لم يتم تكوين الأدوار, الأنواع, حالات مجموعات العمل وتدفقات العمل حتى الآن. فإنه ينصح بشدة تحميل التكوين الافتراضي. سوف تكون قادراً على تعديله حالما يتم التحميل. text_no_notes: لا تتوفر أية تعليقات متاحة لمجموعة العمل هذه. @@ -7081,6 +7630,72 @@ ar: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + zero: "%{names} and %{count} more" + one: "%{names} and %{count} more" + two: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -7090,14 +7705,40 @@ ar: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -7106,8 +7747,10 @@ ar: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -7136,21 +7779,21 @@ ar: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -7167,6 +7810,8 @@ ar: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -7188,6 +7833,14 @@ ar: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -7197,12 +7850,14 @@ ar: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -7216,12 +7871,12 @@ ar: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -7234,10 +7889,12 @@ ar: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: المشاريع + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -7252,51 +7909,17 @@ ar: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - zero: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - two: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - zero: "%{count} dependent types" - one: 1 dependent type - two: "%{count} dependent types" - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -7304,6 +7927,9 @@ ar: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -7312,13 +7938,14 @@ ar: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7332,12 +7959,16 @@ ar: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7346,28 +7977,61 @@ ar: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + zero: 'The type will be removed from %{count} projects:' + one: 'The type will be removed from %{count} project:' + two: 'The type will be removed from %{count} projects:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: إنشاء نوع جديد no_results_title_text: لا يوجد حالياً أي أنواع. project_variants_count: zero: "%{count} project-specific variants" - one: 1 project-specific variant + one: "%{count} project-specific variant" two: "%{count} project-specific variants" few: "%{count} project-specific variants" many: "%{count} project-specific variants" @@ -7376,7 +8040,23 @@ ar: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + zero: "%{type} without %{fields} and %{count} more fields" + one: "%{type} without %{fields} and %{count} more field" + two: "%{type} without %{fields} and %{count} more fields" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: تجاهل هذا التحذير. message: You may run into errors and degraded experience on this page. @@ -7395,22 +8075,12 @@ ar: authorization_rejected: لايسمح لك بتسجيل الدخول. blocked: مغلق مؤقتاً blocked_num_failed_logins: - zero: |- - مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - مغلق مؤقتا"(محاولات تسجيل الدخول الفاشلة%{count}) - one: مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - two: |- - مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - مغلق مؤقتا"(محاولات تسجيل الدخول الفاشلة%{count}) - few: |- - مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - مغلق مؤقتا"(محاولات تسجيل الدخول الفاشلة%{count}) - many: |- - مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - مغلق مؤقتا"(محاولات تسجيل الدخول الفاشلة%{count}) - other: |- - مغلق مؤقتا ( فشل واحد في محاولة تسجيل الدخول) - مغلق مؤقتا"(محاولات تسجيل الدخول الفاشلة%{count}) + zero: locked temporarily (%{count} failed login attempts) + one: locked temporarily (%{count} failed login attempt) + two: locked temporarily (%{count} failed login attempts) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: حذف المستخدم department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7510,7 +8180,7 @@ ar: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: انتهاء الصلاحية - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7571,7 +8241,7 @@ ar: work_days: Work days work_days_count: zero: "%{count} working days" - one: 1 working day + one: "%{count} working day" two: "%{count} working days" few: "%{count} working days" many: "%{count} working days" @@ -7581,6 +8251,12 @@ ar: version_status_locked: مقفل version_status_open: افتح versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: لا يوجد حالياً حزم عمل مخصصة لهذا الإصدار. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7752,13 +8428,15 @@ ar: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: zero: Successfully deleted %{count} work packages. - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. two: Successfully deleted %{count} work packages. few: Successfully deleted %{count} work packages. many: Successfully deleted %{count} work packages. @@ -7787,14 +8465,14 @@ ar: heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: zero: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: zero: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. @@ -7802,14 +8480,14 @@ ar: title: Delete %{count} work packages undeletable_descendants_warning: zero: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: zero: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7871,14 +8549,14 @@ ar: heading: Permanently delete this work package? hidden_descendants_only_warning: zero: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: zero: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. @@ -7886,18 +8564,174 @@ ar: title: Delete work package undeletable_descendants_warning: zero: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: zero: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + zero: "%{count} lines checked, no problems found" + one: "%{count} line checked, no problems found" + two: "%{count} lines checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + zero: View the %{count} imported work packages + one: View the imported work package + two: View the %{count} imported work packages + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + zero: "%{count} problems, all shown." + one: "%{count} problem." + two: "%{count} problems, all shown." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + zero: "%{count} lines" + one: "%{count} line" + two: "%{count} lines" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + zero: "%{count} problems" + one: "%{count} problem" + two: "%{count} problems" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7930,27 +8764,28 @@ ar: no_results_title_text: لا يوجد حاليا أي إصدارات متوفرة. x_descendants: zero: "%{count} work package descendants" - one: One descendant work package + one: "%{count} descendant work package" two: "%{count} work package descendants" few: "%{count} work package descendants" many: "%{count} work package descendants" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7960,18 +8795,33 @@ ar: few: Successfully copied workflow to %{count} roles. many: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - zero: Successfully copied workflow to %{count} types. - one: Successfully copied workflow to '%{type_name}'. - two: Successfully copied workflow to %{count} types. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + zero: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + two: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7980,12 +8830,112 @@ ar: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + zero: "%{count} projects" + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + zero: "%{count} roles" + one: "%{count} role" + two: "%{count} roles" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + zero: "%{count} types" + one: "%{count} type" + two: "%{count} types" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + zero: "%{count} variants" + one: "%{count} variant" + two: "%{count} variants" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + zero: This workflow is used by %{count} types. Changes apply to all of them. + one: This workflow is used by %{count} type. Changes apply to it. + two: This workflow is used by %{count} types. Changes apply to all of them. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + zero: This workflow is used by %{count} types and variants. Changes apply to all of them. + one: This workflow is used by %{count} type or variant. Changes apply to it. + two: This workflow is used by %{count} types and variants. Changes apply to all of them. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/az.seeders.yml b/config/locales/crowdin/az.seeders.yml index 6d00be0efe53..fdbcfc30d924 100644 --- a/config/locales/crowdin/az.seeders.yml +++ b/config/locales/crowdin/az.seeders.yml @@ -250,70 +250,26 @@ az: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ az: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml index 8ea9c34bc832..25b1bc51e6df 100644 --- a/config/locales/crowdin/az.yml +++ b/config/locales/crowdin/az.yml @@ -40,7 +40,9 @@ az: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ az: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ az: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ az: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ az: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ az: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ az: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ az: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ az: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ az: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ az: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ az: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ az: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ az: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ az: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ az: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ az: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ az: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ az: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ az: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ az: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ az: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ az: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ az: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ az: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ az: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ az: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ az: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ az: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ az: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ az: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ az: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ az: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ az: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ az: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ az: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ az: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ az: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ az: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ az: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ az: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ az: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ az: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ az: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ az: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ az: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ az: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ az: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ az: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ az: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ az: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ az: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ az: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ az: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ az: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ az: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ az: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ az: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ az: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ az: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ az: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ az: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ az: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ az: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ az: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ az: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Özəl sahələr - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ az: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ az: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ az: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ az: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ az: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ az: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ az: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ az: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ az: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: Daha çox label_more_information: More information @@ -3812,6 +4191,7 @@ az: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ az: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ az: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: başlama tarixi yoxdur + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ az: label_preview: İlkin baxılış label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ az: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ az: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ az: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ az: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ az: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ az: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ az: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ az: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ az: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ az: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ az: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ az: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ az: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ az: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ az: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ az: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ az: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ az: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ az: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ az: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ az: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ az: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ az: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ az: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ az: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ az: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ az: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ az: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ az: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ az: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ az: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ az: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ az: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ az: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ az: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ az: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ az: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ az: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ az: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ az: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ az: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ az: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ az: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ az: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ az:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ az: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ az: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ az: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ az: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ az: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ az: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ az: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ az: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ az: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ az: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ az: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ az: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ az: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ az: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ az: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ az: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ az: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ az: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ az: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ az: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ az: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ az: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ az: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ az: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/be.seeders.yml b/config/locales/crowdin/be.seeders.yml index f68754bd760a..23f73d296e7f 100644 --- a/config/locales/crowdin/be.seeders.yml +++ b/config/locales/crowdin/be.seeders.yml @@ -250,70 +250,26 @@ be: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ be: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/be.yml b/config/locales/crowdin/be.yml index 9fdad1255ebc..e4b70e2f3b94 100644 --- a/config/locales/crowdin/be.yml +++ b/config/locales/crowdin/be.yml @@ -40,7 +40,9 @@ be: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ be: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ be: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ be: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ be: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ be: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ be: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ be: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ be: ongoing: Ongoing spent_on: Дата type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ be: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ be: last_name: Прозвішча ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ be: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ be: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ be: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ be: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ be: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ be: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -674,6 +730,16 @@ be: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -691,6 +757,13 @@ be: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ be: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -859,42 +931,26 @@ be: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -908,7 +964,7 @@ be: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. few: has been used before. Please choose one that is different from your last %{count}. many: has been used before. Please choose one that is different from your last %{count}. other: has been used before. Please choose one that is different from your last %{count}. @@ -980,6 +1036,8 @@ be: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1007,6 +1065,8 @@ be: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1015,7 +1075,7 @@ be: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" few: "%{count} errors prohibited this %{model} from being saved" many: "%{count} errors prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" @@ -1080,6 +1140,11 @@ be: few: Authentication providers many: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Backup few: Backups @@ -1115,11 +1180,6 @@ be: few: Comments many: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - many: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1195,6 +1255,11 @@ be: few: Export settings many: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Forum few: Forums @@ -1225,6 +1290,11 @@ be: few: Priorities many: Priorities other: Priorities + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1617,7 +1687,28 @@ be: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1650,7 +1741,11 @@ be: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Загрузіць Enterprise edition токен. book_now: Book now @@ -1683,7 +1778,7 @@ be: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1691,12 +1786,15 @@ be: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1729,16 +1827,30 @@ be: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1842,37 +1954,37 @@ be: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" many: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" many: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" few: "%{count} statuses" many: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" many: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" many: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" @@ -1940,7 +2052,7 @@ be: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" many: "%{count} projects selected as scope" other: "%{count} projects selected as scope" @@ -2007,23 +2119,55 @@ be: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2054,6 +2198,18 @@ be: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Для атрымання дадатковай інфармацыі глядзіце нашу старонку аб інтэграцыях і плагінах. no_results_title_text: Зараз ніякіх плагінаў не ўстаноўлена. @@ -2067,7 +2223,7 @@ be: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2198,7 +2354,7 @@ be: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" many: "... %{count} more projects" other: "... %{count} more projects" @@ -2241,7 +2397,7 @@ be: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2276,15 +2432,22 @@ be: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" many: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2294,7 +2457,7 @@ be: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? few: Remove %{count} statuses? many: Remove %{count} statuses? other: Remove %{count} statuses? @@ -2309,7 +2472,31 @@ be: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2317,7 +2504,7 @@ be: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2371,10 +2558,6 @@ be: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2445,6 +2628,7 @@ be: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2495,6 +2679,7 @@ be: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2509,6 +2694,29 @@ be: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2637,6 +2845,7 @@ be: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2703,9 +2912,9 @@ be: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2743,13 +2952,9 @@ be: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2770,7 +2975,7 @@ be: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2835,16 +3040,17 @@ be: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2908,22 +3114,22 @@ be: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour few: about %{count} hours many: about %{count} hours other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month few: about %{count} months many: about %{count} months other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year few: about %{count} years many: about %{count} years other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year few: almost %{count} years many: almost %{count} years other: almost %{count} years @@ -2934,62 +3140,62 @@ be: many: less than %{count} minutes other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second few: less than %{count} seconds many: less than %{count} seconds other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year few: over %{count} years many: over %{count} years other: over %{count} years x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" many: "%{count} days" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" few: "%{count} hours" many: "%{count} hours" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" few: "%{count} hrs" many: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" few: "%{count} minutes" many: "%{count} minutes" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" few: "%{count} mins" many: "%{count} mins" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" few: "%{count} months" many: "%{count} months" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" few: "%{count} seconds" many: "%{count} seconds" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" few: "%{count} weeks" many: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" few: "%{count} years" many: "%{count} years" other: "%{count} years" @@ -3148,7 +3354,7 @@ be: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" many: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" @@ -3494,9 +3700,166 @@ be: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3521,6 +3884,8 @@ be: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3546,6 +3911,10 @@ be: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3563,7 +3932,7 @@ be: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3572,7 +3941,7 @@ be: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3597,6 +3966,31 @@ be: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3633,8 +4027,10 @@ be: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3684,6 +4080,7 @@ be: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3836,10 +4233,10 @@ be: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3863,8 +4260,6 @@ be: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Карыстальніцкія палі - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3873,11 +4268,12 @@ be: label_database_version: PostgreSQL version label_date: Дата label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3888,6 +4284,7 @@ be: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3958,6 +4355,7 @@ be: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3976,6 +4374,7 @@ be: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -4027,8 +4426,8 @@ be: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -4050,6 +4449,7 @@ be: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -4061,6 +4461,7 @@ be: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -4079,7 +4480,6 @@ be: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -4091,6 +4491,7 @@ be: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: Яшчэ label_more_information: Дадатковыя звесткі @@ -4104,6 +4505,7 @@ be: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Імя label_never: Never label_new: New @@ -4118,7 +4520,10 @@ be: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -4126,6 +4531,7 @@ be: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4192,7 +4598,10 @@ be: label_preview: Папярэдні прагляд label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4311,6 +4720,7 @@ be: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4330,6 +4740,7 @@ be: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4344,6 +4755,7 @@ be: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4379,7 +4791,9 @@ be: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4392,6 +4806,7 @@ be: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4415,6 +4830,8 @@ be: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4437,51 +4854,52 @@ be: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" many: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" many: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' many: 'Time off: %{count} working days' other: 'Time off: %{count} working days' @@ -4538,7 +4956,7 @@ be: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4595,6 +5013,8 @@ be: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4651,7 +5071,7 @@ be: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. few: There are %{count} more work packages with notifications. many: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. @@ -4844,6 +5264,15 @@ be: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4857,10 +5286,26 @@ be: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -5062,7 +5507,6 @@ be: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5072,9 +5516,6 @@ be: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -5178,7 +5619,7 @@ be: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. many: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5271,8 +5712,6 @@ be: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5292,7 +5731,6 @@ be: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5364,8 +5802,8 @@ be: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5390,7 +5828,7 @@ be: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5423,6 +5861,7 @@ be: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5433,6 +5872,9 @@ be: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5461,7 +5903,6 @@ be: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5495,6 +5936,16 @@ be: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5516,7 +5967,7 @@ be: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5527,7 +5978,7 @@ be: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" few: "%{count} sub-items" many: "%{count} sub-items" other: "%{count} sub-items" @@ -5544,7 +5995,7 @@ be: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5556,7 +6007,7 @@ be: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5661,11 +6112,11 @@ be: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5675,6 +6126,12 @@ be: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5771,18 +6228,18 @@ be: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" @@ -5796,7 +6253,7 @@ be: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5804,15 +6261,27 @@ be: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5841,7 +6310,7 @@ be: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other few: and %{count} others many: and %{count} others other: and %{count} others @@ -5965,6 +6434,41 @@ be: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5976,6 +6480,17 @@ be: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -6080,7 +6595,7 @@ be: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6195,6 +6710,7 @@ be: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6247,7 +6763,7 @@ be: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6258,6 +6774,7 @@ be: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6349,12 +6866,12 @@ be: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6374,8 +6891,8 @@ be: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6383,7 +6900,7 @@ be: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6403,6 +6920,7 @@ be: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6459,7 +6977,7 @@ be: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6552,19 +7070,19 @@ be:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6607,12 +7125,6 @@ be: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6662,6 +7174,7 @@ be: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6767,6 +7280,70 @@ be: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6776,14 +7353,40 @@ be: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6792,8 +7395,10 @@ be: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6822,21 +7427,21 @@ be: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6853,6 +7458,8 @@ be: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6874,6 +7481,14 @@ be: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6883,12 +7498,14 @@ be: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6902,12 +7519,12 @@ be: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6920,10 +7537,12 @@ be: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6938,47 +7557,17 @@ be: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6986,6 +7575,9 @@ be: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6994,13 +7586,14 @@ be: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7014,12 +7607,16 @@ be: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7028,27 +7625,58 @@ be: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" many: "%{count} project-specific variants" other: "%{count} project-specific variants" @@ -7056,7 +7684,21 @@ be: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -7075,7 +7717,7 @@ be: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) few: locked temporarily (%{count} failed login attempts) many: locked temporarily (%{count} failed login attempts) other: locked temporarily (%{count} failed login attempts) @@ -7178,7 +7820,7 @@ be: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7238,7 +7880,7 @@ be: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" @@ -7247,6 +7889,12 @@ be: version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7416,12 +8064,14 @@ be: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. many: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. @@ -7448,23 +8098,23 @@ be: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7524,26 +8174,172 @@ be: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7575,26 +8371,27 @@ be: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" few: "%{count} work package descendants" many: "%{count} work package descendants" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7602,16 +8399,31 @@ be: few: Successfully copied workflow to %{count} roles. many: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7620,12 +8432,100 @@ be: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/bg.seeders.yml b/config/locales/crowdin/bg.seeders.yml index 17139bb2d76e..043cdc8328b6 100644 --- a/config/locales/crowdin/bg.seeders.yml +++ b/config/locales/crowdin/bg.seeders.yml @@ -250,70 +250,26 @@ bg: В този модул можете да съобщавате новини за проекта на членовете на вашия екип. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Категория 1 (да се промени в настройките на проекта) queries: item_0: name: План на проекта item_1: - name: Натрупване на продукти + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Задачи boards: @@ -345,12 +301,13 @@ bg: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml index e49913d2d20e..cf1a02a37ccc 100644 --- a/config/locales/crowdin/bg.yml +++ b/config/locales/crowdin/bg.yml @@ -40,7 +40,9 @@ bg: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Изтриване на профил delete_confirmation: Наистина ли искате да изтриете акаунта? deletion_info: @@ -65,7 +67,9 @@ bg: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: или влезте със съществуващ акаунт + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Моля влезте за да активирате профила си. @@ -118,6 +122,8 @@ bg: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ bg: repository: Хранилище comment: commented: Коментирани - custom_action: - actions: Действия custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ bg: uid: "№ на клиент" emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ bg: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Брой колони page: Страница row_count: Брой редове widgets: Джаджи group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: URL адрес на идентичност organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ bg: title: Title member: blocked: Blocked + principal_type: Member type roles: Роли notification: read_ian: Read in-app @@ -235,6 +265,7 @@ bg: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ bg: ongoing: Ongoing spent_on: Дата type: Тип + token/base: + expires_on: Expiration date token/ical: calendar: Календар ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ bg: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Администратор auth_source: Authentication source + avatar_type: Avatar type consented_at: Съгласие в current_password: Текуща парола department: Department @@ -410,7 +441,7 @@ bg: last_name: Фамилно име ldap_auth_source: LDAP връзка new_password: Нова парола - password_confirmation: Потвърждение + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ bg: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ bg: header_look_and_feel: Look and feel impaired: Достъпен режим increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Часова зона warn_on_leaving_unsaved: Предупреждавайте ме при напускане на работен пакет с незаписани промени workdays: Работни дни + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ bg: title: Работни дни true: включват неработни дни journal_internal: Internal Journal + labels: Labels notify: Уведомяване observed_in_versions: Observed in versions parent: Горна категория @@ -519,6 +565,10 @@ bg: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: трябва да бъде одобрено. @@ -590,6 +640,8 @@ bg: regex_invalid: не може да бъде валидиран със съответния регулярен израз. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: не съответства на регулярния израз %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: трябва да бъде по-малка от или равна на максималната дължина. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ bg: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: е грешна дължина (трябва да бъде %{count} знаци). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ bg: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: крайната стойност трябва да е по-голяма от началната. outside: е извън мрежата. @@ -689,6 +755,13 @@ bg: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ bg: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'все още се използва от работни пакети: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ bg: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ bg: numeric: цифрова (например ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: е бил използван преди. Моля изберете такъв, който е различен от последно използваният. - other: е бил използван преди. Моля изберете такъв, който е различен от последно използваните %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: специални (например ' %') uppercase: главни (например "А") password_confirmation: @@ -976,6 +1032,8 @@ bg: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: не може да бъде в друг проект. cannot_be_milestone: не може да бъде крайъгълен камък. @@ -1003,6 +1061,8 @@ bg: status_id: status_invalid_in_type: е невалиден, тъй като текущото състояние не съществува в този тип. status_transition_invalid: е невалидно, защото не съществува валиден преход от старото към новото състояние за текущите потребителски роли. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: не може да бъде крайъгълен камък, защото този работен пакет има под-пакети. is_not_a_valid_target_for_time_entries: 'Работен пакет #%{id} не е валидна цел за преразпределяне на времевите записи.' @@ -1011,8 +1071,8 @@ bg: template: body: 'Моля проверете следните полета:' header: - one: 1 грешка забранява този %{model} да се запише - other: "%{count} грешки забраняват този %{model} да се запише" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ bg: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ bg: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ bg: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ bg: issue_priority: one: Приоритет other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ bg: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ bg: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Промяната на темата ще презапише потребителския ви стил. Тогава дизайнът ще бъде загубен. Сигурни ли сте, че искате да продължите? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ bg: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ bg: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ bg: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ bg: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ bg: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ bg: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ bg: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: За повече информация вижте нашата страница за интеграции и плъгини. no_results_title_text: В момента няма инсталирани приставки. @@ -1835,7 +1985,7 @@ bg: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ bg: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ bg: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ bg: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ bg: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ bg: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: в момента е показан is_inactive: в момента не се показват show_until: Покажи до @@ -2075,7 +2256,7 @@ bg: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ bg: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ bg: groups: Групи hexcode: Шестнадесетичен код id: ID + inexistent: Inexistent is_default: Стойност по подразбиране is_for_all: За всички проекти issue: Работен пакет @@ -2253,6 +2431,7 @@ bg: updated_at: Актуализиран на updated_on: Актуализиран на uploader: Uploader + url: URL user: Потребител username: Username value: Стойност @@ -2267,6 +2446,29 @@ bg: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Заданието е отменено поради грешка: %{message}' @@ -2395,6 +2597,7 @@ bg: button_set_reminder: Set reminder button_show: Покажи button_sort: Сортиране + button_stop_timer: Stop timer button_submit: Изпрати button_test: Тест button_unarchive: Разархивиране @@ -2461,9 +2664,9 @@ bg: text: failed: Не можа да се копира проект "%{source_project_name}" в проект "%{target_project_name}". succeeded: Копиран проект "%{source_project_name}" в "%{target_project_name}". - title: Копиране на проект "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Един обект от този тип + one: "%{count} object of this type" other: "%{count} обекти от този тип" zero: Няма обекти от този тип create_portfolio: @@ -2501,13 +2704,9 @@ bg: plural: Персонализирани действия custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: За всички проекти hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ bg: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ bg: is_enabled_globally: Активирано е глобално multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Пренареждане на стойностите по азбучен ред reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Създаване на ново персонализирано поле - no_results_title_text: В момента няма потребителски полета. text_add_new_custom_field: 'За да добавите нови потребителски полета към даден проект, първо трябва да ги създадете, преди да можете да ги добавите към този проект. ' @@ -2666,57 +2866,57 @@ bg: datetime: distance_in_words: about_x_hours: - one: около 1 час - other: около %{count} часа + one: about %{count} hour + other: about %{count} hours about_x_months: - one: за 1 месец - other: за %{count} месеца + one: about %{count} month + other: about %{count} months about_x_years: - one: за 1 година - other: за %{count} години + one: about %{count} year + other: about %{count} years almost_x_years: - one: почти 1 година - other: почти %{count} години + one: almost %{count} year + other: almost %{count} years half_a_minute: половин минута less_than_x_minutes: one: по-малко от 1 минута other: по-малко от %{count} минути less_than_x_seconds: - one: по-малко от 1 секунда - other: по-малко от %{count} секунди + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: над 1 година - other: над %{count} години + one: over %{count} year + other: over %{count} years x_days: - one: 1 ден - other: "%{count} дни" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 час - other: "%{count} часа" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr - other: "%{count} часа" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 минута - other: "%{count} минути" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 мин. - other: "%{count} минути" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 месец - other: "%{count} месеца" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 секунда - other: "%{count} секунди" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s - other: "%{count} секунди" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 week - other: "%{count} седмици" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 year - other: "%{count} години" + one: "%{count} year" + other: "%{count} years" units: day: one: day @@ -2866,7 +3066,7 @@ bg: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3204,9 +3404,150 @@ bg: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3231,6 +3572,8 @@ bg: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3256,6 +3599,10 @@ bg: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ bg: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3278,7 +3625,7 @@ bg: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Публикувайте този изглед, позволявайки на други потребители да имат достъп до вашия изглед. Потребителите с разрешение „Управление на публични изгледи“ могат да променят или премахват обществени заявки. Това не влияе на видимостта на резултатите от работния пакет в този изглед и в зависимост от техните разрешения, потребителите могат да виждат различни резултати. homescreen: @@ -3303,6 +3650,31 @@ bg: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3339,8 +3711,10 @@ bg: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3390,6 +3764,7 @@ bg: budget_deleted: Budget has been deleted dates_changed: Промяна на датите default_attribute_written: Записани атрибути само за четене + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3542,10 +3917,10 @@ bg: label_copy_target: Цел label_copy_workflow_from: Копиране на работен поток от label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Версия на ядрото label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Текущо състояние label_current_version: Настояща версия label_custom_comment: "%{name} comment" @@ -3569,8 +3944,6 @@ bg: label_custom_field_default_type: Празен тип label_custom_field_new: Ново потребителско поле label_custom_field_plural: допълнителни полета - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Потребителски настройки за експортиране на PDF label_custom_style: Дизайн label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3579,11 +3952,12 @@ bg: label_database_version: Версия на PostgreSQL label_date: Дата label_date_and_time: Дата и час - label_date_format: Формат на датата + label_date_and_time_formats: Date and time formats label_date_from: От label_date_from_to: От %{start} до %{end} label_date_to: До label_dates: Дати + label_day: Ден label_day_plural: дни label_default: По подразбиране label_defaults: Defaults @@ -3594,6 +3968,7 @@ bg: label_deleted_custom_field: "(изтрито потребителско поле)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3664,6 +4039,7 @@ bg: label_float: Плаващ label_folder: Папка label_follows: следва + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Нов форум label_forum_plural: Форуми @@ -3682,6 +4058,7 @@ bg: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Група + label_group_attributes_plural: Group attributes label_group_by: Групиране по label_group_named: Група %{name} label_group_new: Нова група @@ -3733,8 +4110,8 @@ bg: label_journal_diff: Сравнение на описание label_jump_to_a_project: Отиди на проект... label_keyword_plural: Ключови думи + label_label_plural: Labels label_language: Език - label_language_based: Въз основа на езика на потребителя label_languages: Езици label_last_activity: Последна активност label_last_change_on: 'Последна промяна на:' @@ -3756,6 +4133,7 @@ bg: label_list: Списък label_loading: Зареждане... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Заключване на потребител label_locked: locked label_logged_as: Влезли сте като @@ -3767,6 +4145,7 @@ bg: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Управлявани %{vendor} хранилища label_mapping_for: 'Картографиране за: %{attribute}' + label_markdown_version: Markdown version label_max_size: Максимален размер label_me: мен label_member_all_admin: "(Всички роли се дължат на статута на администратор)" @@ -3785,7 +4164,6 @@ bg: label_menu_item_name: Име на елемент от меню label_message: Съобщение label_message_last: Последно съобщение - label_message_new: Ново съобщение label_message_plural: Съобщения label_message_posted: Съобщение добавено label_minute_plural: минути @@ -3797,6 +4175,7 @@ bg: label_module_plural: Модули label_modules: Модули label_modules_and_plugins: Modules and Plugins + label_month: Месец label_months_from: месеца от label_more: Повече label_more_information: Повече информация @@ -3810,6 +4189,7 @@ bg: label_my_avatar: Моят аватар label_my_queries: Моите потребителски заявки label_my_security: Security + label_my_time: My time label_name: Име label_never: Никога label_new: Нов @@ -3824,7 +4204,10 @@ bg: label_news_singular: Новини label_news_view_all: Покажи всички новини label_next: Следващо + label_next_day: Next day + label_next_month: Next month label_next_week: Следващата седмица + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Без промяна)" label_no_data: Няма данни за показване @@ -3832,6 +4215,7 @@ bg: label_no_parent_group: "(No parent group)" label_no_parent_page: Няма родителска страница label_no_start_date: няма начална дата + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3898,7 +4282,10 @@ bg: label_preview: Предварителен преглед label_preview_not_available: Preview not available label_previous: Предишен + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Предишната седмица + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " или покани нови потребители по имейл" label_principal_search: Добавяне на съществуващи потребители или групи @@ -4017,6 +4404,7 @@ bg: label_sort_lowest: Премести до края label_sorted_by: сортирани по %{value} label_spent_time: Отработено време + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4036,6 +4424,7 @@ bg: label_subtask_plural: Подзадачи label_summary: Обобщение label_system: Система + label_system_or_language_default: Use system or language based default label_system_settings: Системни настройки label_system_storage: Информация за хранилището label_table_of_contents: Table of contents @@ -4050,6 +4439,7 @@ bg: label_time: Час label_time_entry_activity_plural: Прекарано време label_time_entry_plural: Отработено време + label_timer_since: Started at %{time} label_title: Заглавие label_today: днес label_today_as_date: Select today as date. @@ -4085,7 +4475,9 @@ bg: label_user_search: Търсене на потребител label_user_settings: Потребителски настройки label_users_settings: Потребителски настройки + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: Нова версия label_version_plural: Версии @@ -4098,6 +4490,7 @@ bg: label_videos: Видеоклипове label_view_all_revisions: Покажи всички ревизии label_view_diff: Прегледай различията + label_view_mode_switcher: Change view label_view_revisions: Изглед ревизии label_view_x: 'View: %{x}' label_watched_work_packages: Наблюдавани работни пакети @@ -4121,6 +4514,8 @@ bg: label_wiki_start: Начална страница label_wiki_toc: Таблица на съдържанието label_wiki_toc_empty: Съдържанието е празно, тъй като няма заглавия. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Работа label_work_package: Работен пакет label_work_package_attachments: Приложения към работния пакет @@ -4143,45 +4538,46 @@ bg: label_working_days: Working days label_working_days_and_hours: Работни дни и часове label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 затворен + one: "%{count} closed" other: "%{count} затворено" zero: 0 затворени label_x_comments: - one: 1 коментар + one: "%{count} comment" other: "%{count} коментара" zero: няма коментари label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 файл + one: "%{count} file" other: "%{count} файла" zero: няма файлове label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 отворен + one: "%{count} open" other: "%{count} отворени" zero: 0 отворени label_x_projects: - one: 1 проект + one: "%{count} project" other: "%{count} проекти" zero: няма проекти label_x_work_packages: - one: 1 работен пакет + one: "%{count} work package" other: "%{count} работни пакети" zero: Няма работни пакети label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: вчера label_zen_mode: Режим Дзен @@ -4236,7 +4632,7 @@ bg: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4293,6 +4689,8 @@ bg: you_have: Имате logo_alt_text: Лого mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Към центъра за известия @@ -4349,7 +4747,7 @@ bg: mentioned: Вие сте споменати в коментар mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4528,6 +4926,13 @@ bg: create_button: Създаване dialog_body: Този токен ще позволи на приложенията на трети страни да комуникират с вашата инстанция. За да разграничите новия API токен, дайте му име. dialog_title: Създайте нов API токен + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Неуспешно създаване на токен за достъп: %{error}' failed_to_reset_token: 'Неуспешно нулиране на токена за достъп: %{error}' @@ -4541,10 +4946,26 @@ bg: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Токени за достъп description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Действие expiration: Изтича на @@ -4746,7 +5167,6 @@ bg: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "Има намерени %{number} резултата. \n Таб, за да се фокусира първият резултат." notice_principals_found_single: "Резултатът е един. \n Таб, за да го фокусирате." - notice_project_cannot_update_custom_fields: 'Не можете да актуализирате наличните потребителски полета на проекта. Проектът е невалиден: %{errors}' notice_project_not_deleted: Проектът не е изтрит. notice_project_not_found: Проектът не е намерен. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4756,9 +5176,6 @@ bg: notice_successful_create: Успешно създаване. notice_successful_delete: Успешно изтриване. notice_successful_update: Успешно обновяване. - notice_successful_update_custom_fields_added_to_project: | - Успешна актуализация. Потребителските полета на активираните типове се активират автоматично - във формуляра на работния пакет. Вижте още. notice_to_many_principals_to_display: Има твърде много резултати. Стесните търсенето, като въведете името на нов член (или група). notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -4858,7 +5275,7 @@ bg: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4949,8 +5366,6 @@ bg: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4970,7 +5385,6 @@ bg: or: или rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5042,8 +5456,8 @@ bg: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5068,7 +5482,7 @@ bg: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5101,6 +5515,7 @@ bg: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5111,6 +5526,9 @@ bg: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5139,7 +5557,6 @@ bg: permission_save_bcf_queries: Запазване на заявките на BCF permission_save_queries: Запазване на изгледи permission_search_project: Търесене на проект - permission_select_custom_fields: Изберете потребителски полета permission_select_project_custom_fields: Избор атрибути на проекта permission_select_project_modules: Избор модули на проекта permission_select_project_phases: Select project phases @@ -5173,6 +5590,16 @@ bg: permission_work_package_assigned: Станете правоприемник/отговорник permission_work_package_assigned_explanation: Работните пакети могат да бъдат възлагани на потребители и групи, които притежават тази роля в съответния проект. placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Изтриване на заместващ потребител deletion_info: data_consequences: 'Всички повторения на потребителя на резервоар (напр. Като правоприемник, отговорник или други потребителски стойности) ще бъдат преназначени към акаунт, наречен „Изтрит потребител“. Тъй като данните от всеки изтрит акаунт се пренасочват към този акаунт, няма да е възможно да се разграничат данните, създадени от потребителя, от данните на друг изтрит акаунт. @@ -5194,7 +5621,7 @@ bg: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5205,7 +5632,7 @@ bg: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5220,7 +5647,7 @@ bg: Той може да се използва за подчертаване на работните пакети в таблицата. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5232,7 +5659,7 @@ bg: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 проект + one: "%{count} project" other: "%{count} проекти" zero: 0 projects destroy: @@ -5337,11 +5764,11 @@ bg: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5351,6 +5778,12 @@ bg: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: В момента няма налични потребителски полета. forums: no_results_content_text: Създайте нов форум @@ -5447,14 +5880,14 @@ bg: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5466,7 +5899,7 @@ bg: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Създаване на нова версия - no_results_title_text: В момента няма версии за проекта. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5474,15 +5907,27 @@ bg: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5511,7 +5956,7 @@ bg: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5631,6 +6076,31 @@ bg: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5642,6 +6112,15 @@ bg: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5746,7 +6225,7 @@ bg: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5861,6 +6340,7 @@ bg: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Час setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5913,7 +6393,7 @@ bg: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5924,6 +6404,7 @@ bg: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6015,12 +6496,12 @@ bg: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6040,8 +6521,8 @@ bg: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6049,7 +6530,7 @@ bg: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6069,6 +6550,7 @@ bg: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6125,7 +6607,7 @@ bg: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6218,19 +6700,19 @@ bg:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Изключени от тоталите is_closed: Затворен - is_default: По подразбиране is_readonly: Само за четене + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Добавяне на ново състояние no_results_title_text: Има в момента няма статуси за работни пакети. + status_actions: Status actions support: array: sentence_connector: и skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Сигурни ли сте? text_are_you_sure_continue: Are you sure you want to continue? @@ -6273,12 +6755,6 @@ bg: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6328,6 +6804,7 @@ bg: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6433,6 +6910,68 @@ bg: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6442,14 +6981,40 @@ bg: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6458,8 +7023,10 @@ bg: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6488,21 +7055,21 @@ bg: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Разрешете всички label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6519,6 +7086,8 @@ bg: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6540,6 +7109,14 @@ bg: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6549,12 +7126,14 @@ bg: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6568,12 +7147,12 @@ bg: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6586,10 +7165,12 @@ bg: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Проекти + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6604,43 +7185,17 @@ bg: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6648,6 +7203,9 @@ bg: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6656,13 +7214,14 @@ bg: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6676,12 +7235,16 @@ bg: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6690,33 +7253,74 @@ bg: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Създаване на нов тип no_results_title_text: В момента няма типове. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Игнориране на това предупреждение. message: You may run into errors and degraded experience on this page. @@ -6735,7 +7339,7 @@ bg: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6836,7 +7440,7 @@ bg: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Устройство / операционна система expires: Изтича на - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Последната връзка may_not_delete_current: Не можете да изтриете текущата си сесия. session_name: "%{browser_name} %{browser_version} на %{os_name}" @@ -6896,13 +7500,19 @@ bg: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: затворен version_status_locked: locked version_status_open: отворен versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: В момента има няма работни пакети, присвоен на тази версия. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7072,12 +7682,14 @@ bg: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7102,17 +7714,17 @@ bg: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7170,18 +7782,154 @@ bg: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7213,37 +7961,53 @@ bg: version: no_results_title_text: В момента няма налични версии. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7252,12 +8016,88 @@ bg: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/ca.seeders.yml b/config/locales/crowdin/ca.seeders.yml index 660dfbc91e5c..1f58cc78fc83 100644 --- a/config/locales/crowdin/ca.seeders.yml +++ b/config/locales/crowdin/ca.seeders.yml @@ -250,68 +250,26 @@ ca: En aquest mòdul pots comunicar notícies del projecte a nous membres de l'equip. versions: item_0: - name: Backlog d'errors - item_1: - name: Backlog del producte - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Planificació de la reunió Sprint - - _Si us plau, documenta aquí els tòpics per a la planificació de la reunió Sprint_ - - * Temps estimat (8 h). - * Input: Backlog de producte. - * Output: Backlog d'Sprint. - - * Dividit entre dos intervals de temps de 4 h: - - * El Cap de Producte presenta el [Backlog de producte]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i prioritza i explica a l'equip els objectius de l'Sprint, els quals l'equip ha d'acceptar. Conjuntament, prioritzen els tòpics del Backlog de producte que l'equip resoldrà en els següents sprints. L'equip es compromet a entregar el que s'ha acordat. - * L'equip planifica de forma autònoma (sense el Cap de Projecte) i en detall, i divideix les tasques acordades per a consolidar el [Backlog Sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - ### Reunió diària Scrum - - _Si us plau, documenta aquí els tòpics per a la reunió diària Scrum_ + ### Release 1.0 - * Ràpidament, l'estat de l'equip dia a dia. - * Temps estimat (màxim 15 min). - * Reunió a peu dret per a discutir els tòpics del [Tauler de tasques](##sprint:scrum_project__version__sprint_1).. - * Què vull assolir fins a la següent reunió diària Scrum? - * Que està bloquejant la meva feina (Impediments)? - * Scrum Master moderà i anota els [Impediments de l'Sprint](##sprint:scrum_project__version__sprint_1). - * El cap de producte pot participar per tal de mantindre's informat. + _Please document here what this release contains._ - ### Reunió de revisió de Sprint - - _Si us plau, documenta aquí els tòpics per a la reunió de revisió de Sprintg_ - - * Temps estimat (4 h). - * Un màxim d'una hora de temps de preparació per persona. - * L'equip mostra el cap de producte i altres persones interessades que s'ha aconseguit en el passat sprint. - * Important: no mostrar maquetes, pantalles o presentacions PowerPoint! Només s'han de mostrar funcionalitats del producte finalitzades i funcionals (Increments). - * Els comentaris del cap de producte, inversors i altres són benvinguts i s'inclouran en la reunió. - * Basat en les funcionalitats mostrades, el cap de producte decideix si llançar el producte o continuar desenvolupant. Això pot permetre un ROI avançat. - - ### Retrospectiva Sprint - - _Si us plau, documenta aquí els tòpics per a la reunió retrospectiva Sprintg_ - - * Temps estimat (3 h). - * Després de la revisió de Sprint Review i moderat per l'Scrum Master. - * L'equip discuteix l'sprint: que ha anat bé, que s'ha de millorar per ser més productiu en el següent sprint o inclús per fer la feina més amena. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Categoria 1 (per ser canviat en la configuració del projecte) queries: item_0: name: Pla de projecte item_1: - name: Llista de pendents del producte + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasques boards: @@ -343,12 +301,13 @@ ca: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml index b96c8e6e7bd6..93cd3d28c8d2 100644 --- a/config/locales/crowdin/ca.yml +++ b/config/locales/crowdin/ca.yml @@ -40,7 +40,9 @@ ca: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Elimina el compte delete_confirmation: Segur que vols eliminar aquest compte? deletion_info: @@ -65,7 +67,9 @@ ca: error_self_registration_limited_provider: 'El registre d''usuari està limitat per al proveïdor d''inici de sessió únic ''%{name}''. Si us plau, demaneu a un administrador que us activi el compte o que canviï el límit d''autoregistre d''aquest proveïdor. ' - login_with_auth_provider: o inicia la sessió amb el teu compte + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Si us plau, entra per activar el teu compte. @@ -118,6 +122,8 @@ ca: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ca: repository: Repositori comment: commented: Comentat - custom_action: - actions: Accions custom_field: admin_only: Admin-only allow_non_open_versions: Permet versions no obertes @@ -168,6 +172,7 @@ ca: uid: ID de Client emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Token de suport Enterprise @@ -179,20 +184,44 @@ ca: company: Empresa favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Nombre de columnes page: Pàgina row_count: Nombre de files widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: URL d'identitat organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ca: title: Title member: blocked: Blocked + principal_type: Member type roles: Rol notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ca: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ca: ongoing: En curs spent_on: Data type: Tipus + token/base: + expires_on: Expiration date token/ical: calendar: Calendari ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ca: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrador auth_source: Authentication source + avatar_type: Avatar type consented_at: Consentit a current_password: Contrassenya actual department: Department @@ -410,7 +441,7 @@ ca: last_name: Cognom ldap_auth_source: Connexió LDAP new_password: Nova contrasenya - password_confirmation: Confirmació + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ca: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ca: header_look_and_feel: Look and feel impaired: Mode d'accessibilitat increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Zona horària warn_on_leaving_unsaved: Avisa quan es deixi un paquet de treball amb canvis no desats workdays: Dies laborals + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ca: title: Dies laborals true: inclou dies no laborables journal_internal: Internal Journal + labels: Labels notify: Notifica observed_in_versions: Observed in versions parent: Pare @@ -519,6 +565,10 @@ ca: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: hauran de ser acceptats. @@ -590,6 +640,8 @@ ca: regex_invalid: no s'ha pogut validar amb l'expressió regular associada. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: no coincideix amb l'expressió regular %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: ha de ser inferior o igual a la longitud màxima. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ca: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: la longitud és incorrecta (haurien de ser %{count} caràcters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ ca: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: el valor final ha de ser major que el valor inicial. outside: és fora de la graella. @@ -689,6 +755,13 @@ ca: not_unique: ja està en ús. Si us plau, selecciona un altre nom. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ ca: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'encara en ús pels paquets de treball: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ ca: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ ca: numeric: numèric (p. ex. "1") requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: s'ha utilitzat abans. Si us plau, tria una que sigui diferent de l'anterior. - other: s'ha utilitzat abans. Si us plau tria una que sigui diferent de les anteriors %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: especials (per exemple "%") uppercase: majúscules (p. ex. ' A') password_confirmation: @@ -976,6 +1032,8 @@ ca: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: no pot estar en un altre projecte. cannot_be_milestone: no pot ser una fita. @@ -1003,6 +1061,8 @@ ca: status_id: status_invalid_in_type: és invàlid perquè l'estat actual no existeix en aquesta classe. status_transition_invalid: no és vàlida perquè no hi ha una transició vàlida des d'estat antic a nou estat per al rol de l'usuari actual. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: no pot ser una fita, ja que aquest paquet de treball compte fills. is_not_a_valid_target_for_time_entries: 'Treball paquet #%{id} no és un objectiu vàlid per a reassignar les entrades de temps.' @@ -1011,8 +1071,8 @@ ca: template: body: 'Si us plau, revisi els camps següents:' header: - one: no s'ha pogut desar aquest %{model} perquè s'ha trobat un error - other: no s'ha pogut desar aquest %{model} perquè s'han trobat %{count} errors + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ ca: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ ca: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ ca: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ ca: issue_priority: one: Prioritat other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ ca: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ ca: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Canviant el tema substituiràs el teu estil personalitzat. El disseny es perdrà. Estàs segur que vols continuar? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Carrega un token de suport de l'edició Enterprise book_now: Reserva ara @@ -1467,7 +1558,7 @@ ca: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ ca: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ ca: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ ca: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ ca: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ ca: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ ca: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Consulta la nostra pàgina d'integracions i connectors per obtenir més informació. no_results_title_text: Actualment no hi ha connectors disponibles. @@ -1835,7 +1985,7 @@ ca: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ ca: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ ca: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ ca: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ ca: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ ca: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: actualment mostrant is_inactive: no mostrats actualment show_until: Mostra fins @@ -2075,7 +2256,7 @@ ca: deleted_by_admin: Un administrador ha suprimit el fitxer en quarantena '%{filename}'. deleted_message: S'ha detectat un virus al fitxer '%{filename}'. El fitxer s'ha suprimit. not_processed_yet_message: La descàrrega està bloquejada, ja que el fitxer encara no s'ha analitzat per detectar virus. Si us plau, intenta-ho més tard. - overridden_by_admin: La quarantena per al fitxer '%{filename}' ha estat eliminada per %{user}. Ja es pot accedir al fitxer. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Contenidor delete: Suprimeix el fitxer en quarantena @@ -2129,10 +2310,6 @@ ca: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: No s'ha pogut trobar o s'ha eliminat el paquet de treball que estàs buscant. - render: - context_not_parsable: El context proporcionat no és un enllaç a un recurs. - context_object_not_found: No puc trobar el recurs proporionat com al context. - unsupported_context: El recurs proporcionat no s'admet com a context. unable_to_create_attachment: No s'ha pogut crear el fitxer adjunt unable_to_create_attachment_permissions: No s'ha pogut guardar el fitxer adjunt a causa de la falta de permisos en el sistema de fitxers user: @@ -2203,6 +2380,7 @@ ca: groups: Grups hexcode: Codi hexadecimal id: Id + inexistent: Inexistent is_default: Valor per defecte is_for_all: Per tots els projectes issue: Paquet de treball @@ -2253,6 +2431,7 @@ ca: updated_at: Actualitzat el updated_on: Actualitzat el uploader: Eina de càrrega + url: URL user: Usuari username: Nom d'usuari value: Valor @@ -2267,6 +2446,29 @@ ca: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'La feina s''ha cancel·lat a causa d''un error: %{message}' @@ -2395,6 +2597,7 @@ ca: button_set_reminder: Set reminder button_show: Mostra button_sort: Ordena + button_stop_timer: Stop timer button_submit: Enviar button_test: Prova button_unarchive: Desarxivar @@ -2461,9 +2664,9 @@ ca: text: failed: No s'ha pogut copiar el projecte "%{source_project_name}" al projecte "%{target_project_name}". succeeded: Projecte "%{source_project_name}" copiat a "%{target_project_name}". - title: Copia projecte "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Un objecte d'aquesta classe + one: "%{count} object of this type" other: "%{count} objectes d'aquesta classe" zero: No hi ha objectes d'aquesta classe create_portfolio: @@ -2501,13 +2704,9 @@ ca: plural: Accions personalitzades custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Per tots els projectes hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ ca: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ ca: is_enabled_globally: És habilitat globalment multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorganitza els valors alfabèticament reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Crea un camp personalitzat nou - no_results_title_text: Actualment no hi ha camps personalitzats. text_add_new_custom_field: 'Per afegir nous camps personalitzats a un projecte primer has de crear-los abans de poder-los afegir a aquest projecte. ' @@ -2666,56 +2866,56 @@ ca: datetime: distance_in_words: about_x_hours: - one: aproximadament una hora - other: aproximadament %{count} hores + one: about %{count} hour + other: about %{count} hours about_x_months: - one: aproximadament un mes - other: aproximadament %{count} mesos + one: about %{count} month + other: about %{count} months about_x_years: - one: aproximadament un any - other: aproximadament %{count} anys + one: about %{count} year + other: about %{count} years almost_x_years: - one: gairebé 1 any - other: gairebé %{count} anys + one: almost %{count} year + other: almost %{count} years half_a_minute: mig minut less_than_x_minutes: one: menys d'un minut other: menys de %{count} minuts less_than_x_seconds: - one: menys d'un segon - other: menys de %{count} segons + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: més d'un any - other: més de %{count} anys + one: over %{count} year + other: over %{count} years x_days: - one: Un dia - other: "%{count} dies" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hora - other: "%{count} hores" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: Un minut - other: "%{count} minuts" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: Un mes - other: "%{count} mesos" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: Un segon - other: "%{count} segons" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 any + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ ca: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3204,9 +3404,150 @@ ca: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Ara mateix no hi ha posts en aquest fòrum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3231,6 +3572,8 @@ ca: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3256,6 +3599,10 @@ ca: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ ca: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3278,7 +3625,7 @@ ca: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Publica aquesta vista permetent a altres usuaris accedir a les teves vistes. Els usuaris amb el permís per "Administrar vistes públiques" poden modificar o eliminar elements públics. Aquesta acció no afecta la visibilitat dels paquets de treball resultants en aquella vista i depenent dels permisos altres usuaris potser veuen resultats diferents. homescreen: @@ -3303,6 +3650,31 @@ ca: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: 'Llegeix sobre les noves funcions i actualitzacions del producte. ' learn_about: Learn more about all new features @@ -3339,8 +3711,10 @@ ca: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3390,6 +3764,7 @@ ca: budget_deleted: Budget has been deleted dates_changed: Les dates han canviat default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3542,10 +3917,10 @@ ca: label_copy_target: Destí label_copy_workflow_from: Copia el flux de treball des de label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Versió base label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Estat actual label_current_version: Versió actual label_custom_comment: "%{name} comment" @@ -3569,8 +3944,6 @@ ca: label_custom_field_default_type: Tipus buit label_custom_field_new: Nou camp personalitzat label_custom_field_plural: Camps personalitzats - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Disseny label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3579,11 +3952,12 @@ ca: label_database_version: Versió PostgreSQL label_date: Data label_date_and_time: Data i hora - label_date_format: Format de data + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: Des de %{start} a %{end} label_date_to: Fins label_dates: Dates + label_day: Dia label_day_plural: dies label_default: Per defecte label_defaults: Defaults @@ -3594,6 +3968,7 @@ ca: label_deleted_custom_field: "(camp personalitzat suprimit)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(opció eliminada)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3664,6 +4039,7 @@ ca: label_float: Flotant label_folder: Carpeta label_follows: segueix + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nou fòrum label_forum_plural: Fòrums @@ -3682,6 +4058,7 @@ ca: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grup + label_group_attributes_plural: Group attributes label_group_by: Agrupa per label_group_named: 'Grup: %{name}' label_group_new: Nou grup @@ -3733,8 +4110,8 @@ ca: label_journal_diff: Descripció de comparació label_jump_to_a_project: Anar al projecte... label_keyword_plural: Paraules clau + label_label_plural: Labels label_language: Idioma - label_language_based: Basat en l'idioma de l'usuari label_languages: Idiomes label_last_activity: Darrera activitat label_last_change_on: Darrer canvi en @@ -3756,6 +4133,7 @@ ca: label_list: Llista label_loading: Carregant... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Bloqueja usuari label_locked: bloquejat label_logged_as: Connectat com a @@ -3767,6 +4145,7 @@ ca: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Administrar repositoris de %{vendor} label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Mida màxima label_me: jo mateix label_member_all_admin: "(Tots els rols a causa de l'estat d'administrador)" @@ -3785,7 +4164,6 @@ ca: label_menu_item_name: Nom de l'element de menú label_message: Missatge label_message_last: Darrer missatge - label_message_new: Nou missatge label_message_plural: Missatges label_message_posted: Missatge afegit label_minute_plural: minuts @@ -3797,6 +4175,7 @@ ca: label_module_plural: Mòduls label_modules: Mòduls label_modules_and_plugins: Mòduls i Plugins + label_month: Mes label_months_from: mesos des de label_more: Més label_more_information: Més informació @@ -3810,6 +4189,7 @@ ca: label_my_avatar: El meu avatar label_my_queries: Les meves consultes personalitzades label_my_security: Security + label_my_time: My time label_name: Nom label_never: Mai label_new: Nou @@ -3824,7 +4204,10 @@ ca: label_news_singular: Nous label_news_view_all: Visualitza totes les notícies label_next: Següent + label_next_day: Next day + label_next_month: Next month label_next_week: Setmana següent + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(sense canvis)" label_no_data: No hi ha dades per mostrar @@ -3832,6 +4215,7 @@ ca: label_no_parent_group: "(No parent group)" label_no_parent_page: Sense pàgina pare label_no_start_date: no hi ha data d'inici + label_no_time: No time tracked label_nobody: ningú label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3898,7 +4282,10 @@ ca: label_preview: Previsualitzar label_preview_not_available: Previsualització no disponible label_previous: Anterior + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Setmana anterior + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " o convidar a nous usuaris per correu electrònic" label_principal_search: Afegir usuaris o grups existents @@ -4017,6 +4404,7 @@ ca: label_sort_lowest: Moure al final label_sorted_by: ordenats per %{value} label_spent_time: Temps invertit + label_stack: Stack label_start_to_end: de principi a fi label_start_to_start: de principi a principi label_starts_with: starts with @@ -4036,6 +4424,7 @@ ca: label_subtask_plural: Subtasques label_summary: Resum label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Configuració del Sistema label_system_storage: Informació d'emmagatzematge label_table_of_contents: Taula de continguts @@ -4050,6 +4439,7 @@ ca: label_time: Hora label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Temps utilitzat + label_timer_since: Started at %{time} label_title: Títol label_today: avui label_today_as_date: Select today as date. @@ -4085,7 +4475,9 @@ ca: label_user_search: Cercar per usuari label_user_settings: Configuració de l'usuari label_users_settings: Configuració d'usuaris + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edita la versió label_version_new: Nova versió label_version_plural: Versions @@ -4098,6 +4490,7 @@ ca: label_videos: Vídeos label_view_all_revisions: Mostra totes les revisions label_view_diff: Visualitza les diferències + label_view_mode_switcher: Change view label_view_revisions: Visualitzar revisions label_view_x: 'View: %{x}' label_watched_work_packages: Paquets de treball observats @@ -4121,6 +4514,8 @@ ca: label_wiki_start: Pàgina d'inici label_wiki_toc: Taula de continguts label_wiki_toc_empty: La taula de continguts està buida, ja que no hi ha cap encapçalament. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Treball label_work_package: Paquet de treball label_work_package_attachments: Fitxers adjunts del paquet de treball @@ -4143,45 +4538,46 @@ ca: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Setmana laboral label_x_closed_work_packages_abbr: - one: Un tancat + one: "%{count} closed" other: "%{count} tancats" zero: 0 tancats label_x_comments: - one: Un comentari + one: "%{count} comment" other: "%{count} comentaris" zero: sense comentaris label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} fitxers" zero: sense fitxers label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: Un obert + one: "%{count} open" other: "%{count} oberts" zero: 0 oberts label_x_projects: - one: Un projecte + one: "%{count} project" other: "%{count} projectes" zero: sense projectes label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: ahir label_zen_mode: Zen mode @@ -4235,7 +4631,7 @@ ca: start_tls: STARTTLS start_tls_description: Envia una ordre STARTTLS després de connectar amb el port LDAP estàndard. Recomanat per a connexions encriptades. tls_options: - tls_certificate_description: Si el certificat de servidor LDAP no està en els recursos de confiança d'aquest sistema, pots afegir-lo manualment aquí. Introdueix una entrada de certificat PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verifica el certificat SSL verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4292,6 +4688,8 @@ ca: you_have: Tens logo_alt_text: Logotip mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Anar al Centre de notificacions @@ -4348,8 +4746,8 @@ ca: mentioned: Has sigut mencionat en un comentari mentioned_by: "%{user} t'ha mencionat en un comentari" more_to_see: - one: Hi ha un paquet de treball més amb notificacions. - other: Hi han %{count} paquets de treball més amb notificacions. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Obre al navegador reason: assigned: Assignat @@ -4525,6 +4923,13 @@ ca: create_button: Crear dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nom del token failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Fallada al reiniciar el token d''accés: %{error}' @@ -4538,10 +4943,26 @@ ca: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Token d'accés description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Acció expiration: Caduca @@ -4747,7 +5168,6 @@ ca: notice_principals_found_single: |- S'han trobat un resultat. Prem per focalitzar-lo. - notice_project_cannot_update_custom_fields: 'No pots actualitzar els camps personalitzats disponibles del projecte. El projecte no és vàlid: %{errors}' notice_project_not_deleted: El projecte no s'ha suprimit. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4757,9 +5177,6 @@ ca: notice_successful_create: Creat correctament. notice_successful_delete: Esborrat correctament. notice_successful_update: S'ha modificat correctament. - notice_successful_update_custom_fields_added_to_project: 'Actualitzat correctament. Els camps personalitzats dels estils activats s''activen automàticament en el formulari del paquet de treball. Veure més. - - ' notice_to_many_principals_to_display: |- Hi ha massa resultats. Afini la cerca escrivint el nom del nou membre (o grup). @@ -4861,7 +5278,7 @@ ca: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4952,8 +5369,6 @@ ca: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4973,7 +5388,6 @@ ca: or: o rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5045,8 +5459,8 @@ ca: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5071,7 +5485,7 @@ ca: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comentar noticies permission_commit_access: Accés de lectura/escriptura al repositori (commit) - permission_copy_projects: Copiar projectes + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5104,6 +5518,7 @@ ca: permission_export_projects: Export projects permission_export_work_packages: Exportar paquets de treball permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5114,6 +5529,9 @@ ca: permission_manage_dashboards: Manage dashboards permission_manage_forums: Gestionar els fòrums permission_manage_members: Gestionar els membres + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Gestionar noticies permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5142,7 +5560,6 @@ ca: permission_save_bcf_queries: Save BCF queries permission_save_queries: Desar les vistes permission_search_project: Search project - permission_select_custom_fields: Selecciona camps personalitzats permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Selecciona els mòduls del projecte permission_select_project_phases: Select project phases @@ -5176,6 +5593,16 @@ ca: permission_work_package_assigned: Esdevé assignat/responsable permission_work_package_assigned_explanation: Els paquets de treball es poden assignar als usuaris i als grups que tinguin aquest rol en el seu respectiu projecte placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Elimina usuari de marcador de posició deletion_info: data_consequences: 'Tots els rols de l''usuari de marcador de posició (ex. assignat, responsable o altres valors d''usuari) seran reassignats a un compte anomenat "Usuari eliminat". Com que les dades de totes les comptes eliminades seran assignades a aquest compte no serà possible distingir les dades que l''usuari ha creat de les que altres usuaris eliminats han creat. @@ -5197,7 +5624,7 @@ ca: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5208,7 +5635,7 @@ ca: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5223,7 +5650,7 @@ ca: Pot fer-se servir per a destacar paquets de treball en la taula. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5235,7 +5662,7 @@ ca: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projecte + one: "%{count} project" other: "%{count} projectes" zero: 0 projects destroy: @@ -5340,11 +5767,11 @@ ca: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5354,6 +5781,12 @@ ca: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Actualment no hi ha cap camp personalitzat disponible. forums: no_results_content_text: Crea un fòrum nou @@ -5450,14 +5883,14 @@ ca: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5469,7 +5902,7 @@ ca: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Crear una nova versió - no_results_title_text: Actualment no hi ha cap versió per al projecte. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Gràfica de paquets de treball work_package_priorities: @@ -5477,15 +5910,27 @@ ca: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplicar filtre preconfigurat configure_view: @@ -5514,8 +5959,8 @@ ca: action_title: React add_reaction: Add reaction and_others: - one: " i 1 altre" - other: " i %{count} altres" + one: and %{count} other + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5624,6 +6069,31 @@ ca: warnings: cannot_annotate: No es poden fer notes d'aquest fitxer. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5635,6 +6105,15 @@ ca: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5739,7 +6218,7 @@ ca: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Nombre màxim de línies mostrades pels diff setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Mostrae els paquets de treball dels subprojectes en els projectes principals per defecte + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5854,6 +6333,7 @@ ca: setting_start_of_week: La setmana comença en setting_sys_api_description: La gestió del repositori per servei web proporciona integració i autorització d'usuaris per l'accés a repositoris. setting_sys_api_enabled: Activar el servei web de gestió del repositori + setting_sys_api_key: API key setting_time_format: Hora setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5906,7 +6386,7 @@ ca: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5917,6 +6397,7 @@ ca: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6008,12 +6489,12 @@ ca: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6033,8 +6514,8 @@ ca: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6042,7 +6523,7 @@ ca: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6062,6 +6543,7 @@ ca: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6118,7 +6600,7 @@ ca: section_work_week: Setmana laboral sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6211,19 +6693,19 @@ ca:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Tancat - is_default: Per defecte is_readonly: Només lectura + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Afegir un nou estat no_results_title_text: Actualment no hi ha cap estat de paquet de treball. + status_actions: Status actions support: array: sentence_connector: i skip_last_comma: fals text_access_token_hint: Els token d'accés permeten que aplicacions externes accedeixin als recursos d'OpenProject. - text_accessibility_hint: El mode d'accessibilitat està dissenyat per a usuaris cecs, amb discapacitats motores o problemes de vista. Els elements es focalitzen amb un ressaltat més evident. Si us plau, considera que el mòdul de "Backlogs" no està disponible en aquest mode. text_analyze: 'Analitzar més en profunditat: %{subject}' text_are_you_sure: N'estàs segur? text_are_you_sure_continue: Estàs segur que vols continuar? @@ -6266,12 +6748,6 @@ ca: ' text_custom_field_possible_values_info: Una línia per a cada valor - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Aquesta és la icona que apareix en el teu telèfon mòbil o tauleta quan guardes la web com a "bookmark" a la teva pantalla d''inici. Ha de ser un PNG quadrat de 180 per 180 píxels. Si us plau, assegura''t que el fons de la imatge no és transparent per un millor resultat en iOS. ' @@ -6321,6 +6797,7 @@ ca: text_length_between: Longitud entre %{min} i %{max} caràcters. text_line_separated: Es permeten diversos valors (una línia per cada valor). text_load_default_configuration: Carregar la configuració predeterminada + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: No hi ha tokens d'accés que siguin configurables. text_no_configuration_data: |- Encara no s'han configurat els rols, tipus, estats dels paquet de treball i flux de treball. @@ -6426,6 +6903,68 @@ ca: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6435,14 +6974,40 @@ ca: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6451,8 +7016,10 @@ ca: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6481,21 +7048,21 @@ ca: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6512,6 +7079,8 @@ ca: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6533,6 +7102,14 @@ ca: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6542,12 +7119,14 @@ ca: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6561,12 +7140,12 @@ ca: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6579,10 +7158,12 @@ ca: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projectes + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6597,43 +7178,17 @@ ca: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6641,6 +7196,9 @@ ca: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6649,13 +7207,14 @@ ca: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6669,12 +7228,16 @@ ca: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6683,33 +7246,74 @@ ca: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Crear un nou tipus no_results_title_text: Actualment no hi ha cap tipus. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignora aquesta advertència. message: Pots trobar errors o tenir una experiència inferior en aquesta pàgina. @@ -6728,8 +7332,8 @@ ca: authorization_rejected: No pots iniciar la sessió. blocked: bloquejat temporalment blocked_num_failed_logins: - one: bloquejat temporalment (un intent fallit de connexió) - other: bloquejat temporalment (%{count} d'intents de connexió) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Estàs a punt de canviar l'estat de "%{name}". Estàs segur que vols continuar? deleted: Usuari eliminat department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6829,7 +7433,7 @@ ca: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Dispositiu / Sistema Operatiu expires: Caduca - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: No pots eliminar la sessió actual. session_name: "%{browser_name}%{browser_version} en %{os_name}" @@ -6889,13 +7493,19 @@ ca: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: tancat version_status_locked: bloquejat version_status_open: obrir versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Actualment no hi ha cap paquet de treball assignat a aquesta versió. work_packages_in_archived_projects: La versió es comparteix amb projectes arxivats que encara tenen paquets de treball assignats a aquesta versió. Es comptabilitzen, però no apareixeran a les vistes enllaçades. @@ -7065,12 +7675,14 @@ ca: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: No s'ha pogut copiar els paquets de treball. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Els següents paquets de treball no s''han pogut desar:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendent dels seleccionats move_failed: No s'ha pogut moure els paquets de treball. @@ -7095,17 +7707,17 @@ ca: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7163,18 +7775,154 @@ ca: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7206,37 +7954,53 @@ ca: version: no_results_title_text: Hi ha actualment cap versió disponible. x_descendants: - one: Un paquet de treball descendent - other: "%{count} paquets de treball descendents" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7245,12 +8009,88 @@ ca: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Canvia els dies laborals dialog: diff --git a/config/locales/crowdin/ckb-IR.seeders.yml b/config/locales/crowdin/ckb-IR.seeders.yml index 5bb22ae5c035..1c29179a0dc2 100644 --- a/config/locales/crowdin/ckb-IR.seeders.yml +++ b/config/locales/crowdin/ckb-IR.seeders.yml @@ -250,70 +250,26 @@ ckb-IR: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ ckb-IR: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ckb-IR.yml b/config/locales/crowdin/ckb-IR.yml index 64c8dc561068..95b0454c8264 100644 --- a/config/locales/crowdin/ckb-IR.yml +++ b/config/locales/crowdin/ckb-IR.yml @@ -40,7 +40,9 @@ ckb-IR: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ ckb-IR: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ ckb-IR: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ckb-IR: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ ckb-IR: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ ckb-IR: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ckb-IR: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ckb-IR: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ckb-IR: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ckb-IR: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ ckb-IR: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ckb-IR: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ckb-IR: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ckb-IR: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ ckb-IR: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ ckb-IR: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ckb-IR: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ ckb-IR: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ ckb-IR: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ ckb-IR: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ ckb-IR: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ ckb-IR: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ ckb-IR: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ ckb-IR: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ ckb-IR: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ ckb-IR: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ ckb-IR: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ ckb-IR: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ ckb-IR: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ ckb-IR: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ ckb-IR: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ ckb-IR: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ ckb-IR: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ ckb-IR: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ ckb-IR: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ ckb-IR: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ ckb-IR: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ ckb-IR: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ ckb-IR: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ ckb-IR: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ ckb-IR: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ ckb-IR: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ ckb-IR: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ ckb-IR: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ ckb-IR: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ ckb-IR: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ ckb-IR: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ ckb-IR: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ ckb-IR: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ ckb-IR: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ ckb-IR: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ ckb-IR: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ ckb-IR: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ ckb-IR: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ ckb-IR: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ ckb-IR: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ ckb-IR: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ ckb-IR: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ ckb-IR: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ ckb-IR: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ ckb-IR: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ ckb-IR: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ ckb-IR: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ ckb-IR: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ ckb-IR: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ ckb-IR: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ ckb-IR: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ ckb-IR: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ ckb-IR: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ ckb-IR: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ ckb-IR: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ ckb-IR: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ ckb-IR: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ ckb-IR: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ ckb-IR: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ ckb-IR: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ ckb-IR: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ ckb-IR: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ ckb-IR: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ ckb-IR: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ ckb-IR: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ ckb-IR: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ ckb-IR: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ ckb-IR: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ ckb-IR: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ ckb-IR: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ ckb-IR: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ ckb-IR: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ ckb-IR: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ ckb-IR: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ ckb-IR: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ ckb-IR: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ ckb-IR: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ ckb-IR: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ ckb-IR: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ ckb-IR: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ ckb-IR: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ ckb-IR: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ ckb-IR: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ ckb-IR: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ ckb-IR: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ ckb-IR: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ ckb-IR: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ ckb-IR: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ ckb-IR: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ ckb-IR: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ ckb-IR: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ ckb-IR: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ ckb-IR: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ ckb-IR: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ ckb-IR: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ ckb-IR: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ ckb-IR: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ ckb-IR: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ ckb-IR: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ ckb-IR: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ ckb-IR: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ ckb-IR: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ ckb-IR: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ ckb-IR: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ ckb-IR: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ ckb-IR: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ ckb-IR: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ ckb-IR:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ ckb-IR: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ ckb-IR: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ ckb-IR: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ ckb-IR: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ ckb-IR: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ ckb-IR: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ ckb-IR: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ ckb-IR: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ ckb-IR: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ ckb-IR: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ ckb-IR: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ ckb-IR: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ ckb-IR: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ ckb-IR: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ ckb-IR: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ ckb-IR: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ ckb-IR: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ ckb-IR: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ ckb-IR: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ ckb-IR: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ ckb-IR: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ ckb-IR: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ ckb-IR: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ ckb-IR: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/cs.seeders.yml b/config/locales/crowdin/cs.seeders.yml index 4f9f120b16ce..d7eea25915f0 100644 --- a/config/locales/crowdin/cs.seeders.yml +++ b/config/locales/crowdin/cs.seeders.yml @@ -235,70 +235,26 @@ cs: V tomto modulu můžete sdělit zprávy o projektu členům vašeho týmu. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Schůzka plánování sprintu - - _Prosím dokumentujte zde témata na schůzce plánování Sprintu_ - - * Uložený čas (8 h) - * Vstup: backlogu produktu - * Výstup: backlog sprintu - - * Rozděleno na dvě další časová pole 4 h: - - * Vlastník produktu prezentuje [Backlog]({{opSetting:base_url}}/projekts/your-scrum-project/backlogs) a priority týmu a vysvětluje svůj orientační cíl. s nímž musí tým souhlasit. Dohromady upřednostňují témata z Nevyřízené produkty, o které se tým postará při dalším sprintu. Tým se zavazuje k diskutované zásilce. - * Tým plánuje samostatně (bez vlastníka produktu) a rozděluje úkoly z projednávaných požadavků na konsolidaci [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Denní schůzka na crum - - _Prosím zdokumentujte zde témata na denní schůzce crum schůzky_ + ### Release 1.0 - * Krátká denní schůzka o stavu týmu. - * Časové políčko (max. 15 min). - * Upřesnění schůzky k diskusi o následujících tématech z [pracovní tabule](##sprint:scrum_project__version__sprint_1). - * Co mám v plánu dělat do příštího denního drobech? - * Co zablokovalo mou práci (Impediments)? - * Mistrovství střihu droby a poznámky [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Vlastník produktu se může zúčastnit, aby zůstal informovaný. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here to the Sprint Review meeting_ - - * Time boxed (4 h). - * Nejvýše jednu hodinu přípravy na osobu. - * Tým zobrazuje vlastníka produktu a další zúčastněné osoby, čeho bylo v tomto sprintu dosaženo. - * Důležité: žádné figuríny a žádný PowerPoint! Jen hotová funkčnost produktu (Přírůstky) by měla být prokázána. - * Zpětná vazba od vlastníka produktu, zúčastněných stran a dalších je žádoucí a bude zahrnuta do další práce. - * Na základě prokázaných funkcí se vlastník produktu rozhodne žít s tímto přírůstkem nebo jej dále rozvíjet. Tato možnost umožňuje předčasnou návratnost investice. - - - ### Sprint Retrospective - - _Dokumentujte zde témata na schůzce Sprint Retrospective meeting_ - - * Uložený čas (3 h). - * Po recenzi bude upraveno Scrum Master. - * Tým diskutuje sprint: co se povedlo, co je třeba zlepšit, aby bylo produktivnější pro další sprint, nebo mít ještě více zábavy. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategorie 1 (bude změněno v nastavení projektu) queries: item_0: name: Plán projektu item_1: - name: Backlog sprintu + name: Version 1.1 item_2: - name: Sprint 2 + name: Version 1.0 item_3: name: Úkoly boards: @@ -324,18 +280,21 @@ cs: options: name: Začínáme text: | - Jsme rádi, že jste se připojili! Doporučujeme zkusit pár věcí pro začátek v OpenProject. + We are glad you joined! We suggest to try a few things to get started in OpenProject. + + _Try the following steps:_ + + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - _Vyzkoušejte následující kroky:_[Backlogs]. *Pozvěte nové členy do svého projektu*: → Jděte do [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) v projektové navigaci. - 2. *Podívejte se na nevyřízené produkty a nevyřízené záznamy*: → Přejděte do [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) v projektové navigaci. - 3. *Zobrazit tvou tabulku*: → Přejdi na [Backlogs] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klikni na šipku vpravo na Sprint → Vyberte Pracovní tabuli. - 4. *Vytvořte nový pracovní balíček*: → Přejít na [Pracovní balíčky → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Vytvořte a aktualizujte plán projektu*: → Jděte na [Plán projektu](##query:scrum_project__query__project_plan) v projektové navigaci. - 6. *Vytvoř Sprint wiki*: → Přejít na [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) a otevři wiki sprintu z nabídky vpravo v nabídce sprintu. Můžete upravit [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) na základě vašich potřeb. - 7. *Aktivujte další moduly*: → Přejít na [Nastavení projektu → modulů]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Zde najdete naši [uživatelskou příručku](https://www. penproject.org/docs/user-guide/). - Prosím, dejte nám vědět, pokud máte nějaké dotazy nebo potřebujete podporu. Kontaktujte nás: [support[at]openproject.com](mailto:support@openproject.com). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Pracovní balíčky diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index e321d803ef0c..5aef49eb0003 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -40,7 +40,9 @@ cs: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Přihlaste se prosím jako %{login} pro aktivaci vašeho účtu. + continue_with_provider: Continue with %{name} delete: Odstranit účet delete_confirmation: Jste si jisti, že chcete odstranit tento účet? deletion_info: @@ -65,7 +67,9 @@ cs: error_self_registration_limited_provider: 'Registrace uživatele je omezena pro jediného poskytovatele přihlášení ''%{name}''. Požádejte správce, aby vám účet aktivoval, nebo změňte limit registrace pro tohoto poskytovatele. ' - login_with_auth_provider: nebo se přihlaste pomocí stávajícího účtu + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Prosím přihlaste se pro aktivaci účtu. @@ -118,6 +122,8 @@ cs: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Klienti SCIM + automation: + actions: Actions calculated_value_error: customized_id: Přizpůsobené ID customized_type: Přizpůsobený typ @@ -128,8 +134,6 @@ cs: repository: Repozitář comment: commented: Komentované - custom_action: - actions: Akce custom_field: admin_only: Pouze pro správce allow_non_open_versions: Povolit neotevřené verze @@ -170,6 +174,7 @@ cs: uid: ID klienta emoji_reaction: reactable: Reagováno + reaction: Reaction enterprise_token: active_user_count_restriction: Aktivní uživatelé encoded_token: Token podpory Enterprise. @@ -181,20 +186,44 @@ cs: company: Společnost favorite: favorited: Položka + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Počet sloupců page: Stránka row_count: Počet řádků widgets: Widgety group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Adresa URL identity organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Adresa URL instance JIRA @@ -225,6 +254,7 @@ cs: title: Title member: blocked: Blocked + principal_type: Member type roles: Role notification: read_ian: Read in-app @@ -237,6 +267,7 @@ cs: position: Pozice persisted_query: filters: Filtry + group_bys: Group results by name: Název orders: Orders selects: Selects @@ -255,7 +286,7 @@ cs: enabled_modules: Povolené moduly identifier: Identifikátor latest_activity_at: Poslední aktivita - parent: Nadřazený projekt + parent: Podprojekt portfolio: Portfolio program: Program project_creation_wizard_assignee_custom_field: Assignee when submitted @@ -369,6 +400,8 @@ cs: ongoing: Probíhající spent_on: Datum type: Typ + token/base: + expires_on: Expiration date token/ical: calendar: Kalendář ical_token_query_assignment: Query assignment @@ -386,19 +419,17 @@ cs: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrátor auth_source: Zdroj ověřování + avatar_type: Avatar type consented_at: Souhlas udělen current_password: Aktuální přístupové heslo department: Oddělení @@ -412,7 +443,7 @@ cs: last_name: Příjmení ldap_auth_source: Připojení LDAP new_password: Nové heslo - password_confirmation: Potvrzení + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -421,11 +452,15 @@ cs: user_preference: auto_hide_popups: Automaticky skrýt oznámení úspěchu auto_hide_popups_caption: Pokud je tato funkce povolena, zelená oznámení úspěchu po 5 sekundách automaticky zmizí. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Upravit upozornění button_update_look_and_feel: Aktualizovat vzhled a chování button_update_user_information: Aktualizovat profil comments_sorting: Řazení Aktivit pracovního balíčku daily_reminders: Denní připomenutí + date_format: Date format disable_keyboard_shortcuts: Zakázat klávesové zkratky dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Vynutit vysoký kontrast v tmavém režimu @@ -436,13 +471,23 @@ cs: header_look_and_feel: Vzhled a chování impaired: Režim usnadnění increase_contrast: Zvýšit kontrast - increase_contrast_caption: Aktivuje režim vysokého kontrastu pro vybraný barevný režim. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Zvýšit kontrast motivu mode_guideline: Některé režimy přepíšou barvy vlastního motivu z důvodu lepší přístupnosti a čitelnosti. Chcete-li plně využít možnosti vlastního motivu, vyberte prosím režim „Světlý“. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Barevný režim + time_format: Time format time_zone: Časové pásmo warn_on_leaving_unsaved: Upozornit mě při opuštění pracovního balíčku s neuloženými změnami workdays: Pracovní dny + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Faktor dostupnosti days: Pracovní dny @@ -493,6 +538,7 @@ cs: title: Pracovní dny true: zahrnuje nepracovní dny journal_internal: Internal Journal + labels: Labels notify: Oznámit observed_in_versions: Observed in versions parent: Nadřazený @@ -521,6 +567,10 @@ cs: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: musí být přijato. @@ -592,6 +642,8 @@ cs: regex_invalid: nelze ověřit s přidruženým regulárním výrazem. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: neodpovídá regulárnímu výrazu %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: musí být menší než nebo rovno maximální délce. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -614,6 +666,10 @@ cs: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: má chybnou délku (měla by být %{count} znaků). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -676,6 +732,16 @@ cs: general_consent: Přijměte prosím smluvní podmínky. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: konečná hodnota musí být větší než počáteční hodnota. outside: je mimo mřížku. @@ -693,6 +759,13 @@ cs: not_unique: " už bylo použito. Prosím vyberte jiný název." jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -717,7 +790,7 @@ cs: format: "%{message}" taken: Nepracovní den již existuje pro %{value}. notifications: - at_least_one_channel: Pro odesílání notifikací musí být specifikován alespoň jeden kanál + at_least_one_channel: Alespoň jeden kanál pro odesílání oznámení musí být specifikován. attributes: mail_reminder_sent: set_on_creation: 'nelze nastavit na prevdivé při vytváření oznámení ' @@ -748,7 +821,6 @@ cs: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'stále používáno pracovními balíčky: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -861,42 +933,26 @@ cs: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -910,10 +966,10 @@ cs: numeric: číselné (např. 1) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: bylo již použito. Zvolte takové, které není stejné jako to poslední. - few: bylo již použito. Zvolte takové, které není stejné jako %{count} posledních. - many: bylo již použito. Zvolte takové, které není stejné jako %{count} posledních. - other: bylo již použito. Zvolte takové, které není stejné jako %{count} posledních. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: speciální (např. %) uppercase: velká písmena (například ' A') password_confirmation: @@ -982,6 +1038,8 @@ cs: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nemůže být v jiném projektu. cannot_be_milestone: nemůže být milník. @@ -1009,6 +1067,8 @@ cs: status_id: status_invalid_in_type: je neplatná, protože aktuální stav neexistuje v tomto typu. status_transition_invalid: je neplatný, protože pro role aktuálního uživatele neexistuje žádný platný přechod. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: nemůže být milníkem, protože tento pracovní balíček má potomky. is_not_a_valid_target_for_time_entries: 'Pracovní balíček #%{id} není platný cíl pro přeřazení časových záznamů.' @@ -1017,10 +1077,10 @@ cs: template: body: 'Zkontrolujte, prosím, následující pole:' header: - one: 1 chyba zabránila tomuto %{model} v uložení - few: "%{count} chyb zabránilo %{model} v uložení" - many: "%{count} chyb zabránilo %{model} v uložení" - other: "%{count} chyb zabránilo %{model} v uložení" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1082,6 +1142,11 @@ cs: few: Authentication providers many: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Backup few: Backups @@ -1117,11 +1182,6 @@ cs: few: Comments many: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - many: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1197,6 +1257,11 @@ cs: few: Export settings many: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Forum few: Forums @@ -1227,6 +1292,11 @@ cs: few: Priorities many: Priorities other: Priorities + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1268,10 +1338,10 @@ cs: many: Non-working days other: Non-working days notification: - one: Notifikace - few: Notifikací - many: Notifikací - other: Notifikace + one: Oznámení + few: Oznámení + many: Oznámení + other: Oznámení notification_setting: one: Notification setting few: Notification settings @@ -1619,7 +1689,28 @@ cs: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1652,7 +1743,11 @@ cs: tab_interface: Rozhraní tab_pdf_export_font: Písmo pro export do PDF tab_pdf_export_styles: Styly exportu do PDF - theme_warning: Změna motivu přepíše váš vlastní styl. Vzhled pak bude ztracen. Jste si jisti, že chcete pokračovat? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Nahrát podpůrný token Enterprise Edition book_now: Rezervujte nyní @@ -1685,7 +1780,7 @@ cs: import: title: Import info: - database_deprecation_html: 'Počínaje verzí OpenProject 16.0 je pro využívání OpenProjectu vyžadován PostgreSQL 16. Vaše instalace zůstane funkční i s vaší současnou databází, ale počítejte s nekompatibilitou v dalších verzích.
Připravili jsme [průvodce upgradem pro všechny způsoby instalace](upgrade_guide). Podle těchto návodů můžete kdykoli provést upgrade před vydáním další verze. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc alokátor paměti @@ -1693,12 +1788,15 @@ cs: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: Tento Jira Migrátor je v současné době v beta verzi. Momentálně podporujeme pouze Jira Server/Data Center verze 10. a 11.x. Cloudové instance nejsou v tuto chvíli podporovány. title: Beta verze - Vyzkoušejte si ji! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1731,16 +1829,30 @@ cs: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Přidat konfiguraci - button_delete_token: Smazat token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Uložit konfiguraci - delete_token_confirm: Jste si jisti, že chcete token odstranit? Tím se připojení k Jira deaktivuje. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Název - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testování konfigurace... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1844,40 +1956,40 @@ cs: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" many: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 projekt - few: "%{count} projektů" - many: "%{count} projektů" - other: "%{count} projektů" + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" statuses: - one: 1 status - few: "%{count} stavů" - many: "%{count} stavů" - other: "%{count} stavů" + one: "%{count} status" + few: "%{count} statuses" + many: "%{count} statuses" + other: "%{count} statuses" types: - one: 1 typ - few: "%{count} typy" - many: "%{count} typy" - other: "%{count} typy" + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" users: - one: 1 uživatel - few: "%{count} uživatelů" - many: "%{count} uživatelů" - other: "%{count} uživatelů" + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" work_packages: - one: 1 pracovní balíček - few: "%{count} pracovních balíčků" - many: "%{count} pracovních balíčků" - other: "%{count} pracovních balíčků" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" revert_dialog: confirm: Chápu, že tento revert trvale odstraní data description: This will delete all imported objects (including whole projects). @@ -1942,7 +2054,7 @@ cs: caption: Vyberte, co chcete importovat do OpenProjectu caption_done: Dokončeno caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" many: "%{count} projects selected as scope" other: "%{count} projects selected as scope" @@ -2009,23 +2121,55 @@ cs: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Rozhraní Jira API vrátilo chybový stav %{status}. Zkontrolujte prosím adresu URL své instance Jira a API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Chyba připojení: %{message}' error: Při testování připojení došlo k neočekávané chybě failed: 'Připojení se nezdařilo: Nelze načíst informace o serveru' invalid_url: Zadejte platnou URL adresu - missing_credentials: Pro otestování připojení zadejte URL a osobní přístupový token parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Úspěšně připojeno k %{server} (verze %{version}) - token_error: Neplatný API token. Zkontrolujte prosím vaše přihlašovací údaje v konfiguraci. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrátor - token_deleted: Token byl úspěšně odstraněn. user: unknown_name: Neznámý journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2056,6 +2200,18 @@ cs: update: failure: Konfiguraci MCP nebylo možné aktualizovat. success: Konfigurace MCP byla úspěšně aktualizována. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Pro více informací se podívejte na stránku pro integraci a pluginy. no_results_title_text: V současné době nejsou nainstalovány žádné pluginy. @@ -2069,7 +2225,7 @@ cs: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2200,10 +2356,10 @@ cs: error_unknown: Potřebuje ruční revizi error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 další projekt" + one: "... %{count} more project" few: "... %{count} more projects" many: "... %{count} more projects" - other: "... %{count} dalších projektů" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2243,7 +2399,7 @@ cs: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2278,15 +2434,22 @@ cs: ignore: Ignorovat změny save: Uložit změny a pokračovat title: Uložit změny před pokračováním? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Vybrat roli roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" many: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Stav statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2296,10 +2459,10 @@ cs: confirm: Odstranit description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Odstranit 1 stav? - few: Odstranit %{count} stavy? - many: Odstranit %{count} stavů? - other: Odstranit %{count} stavů? + one: Remove %{count} status? + few: Remove %{count} statuses? + many: Remove %{count} statuses? + other: Remove %{count} statuses? title: Remove statuses tabs: always: Default transitions @@ -2311,7 +2474,31 @@ cs: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: aktuálně zobrazené is_inactive: v současné době nejsou zobrazeny show_until: Zobrazit do @@ -2319,7 +2506,7 @@ cs: deleted_by_admin: Soubor v karanténě '%{filename}' byl odstraněn správcem. deleted_message: V souboru '%{filename}' byl zjištěn virus. Soubor byl smazán. not_processed_yet_message: Stahování je zablokováno, protože soubor ještě nebyl zkontrolován na přítomnost virů. Zkuste to prosím později. - overridden_by_admin: Karanténa pro soubor '%{filename}' byla odstraněna %{user}. Soubor je přístupný. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Kontejner delete: Odstranit soubor karantény @@ -2373,10 +2560,6 @@ cs: not_found: reminder: Připomínka, kterou hledáte, nebyla nalezena nebo byla odstraněna. work_package: Pracovní balíček, který hledáte, nebyl nalezen nebo byl odstraněn. - render: - context_not_parsable: Poskytnutý kontext není odkazem na zdroj. - context_object_not_found: Zdroj nelze najít jako kontext. - unsupported_context: Zadaný dokument není podporován jako kontext. unable_to_create_attachment: Přílohu nelze vytvořit unable_to_create_attachment_permissions: Příloha nemohla být uložena z důvodu nedostatku oprávnění souborového systému user: @@ -2447,6 +2630,7 @@ cs: groups: Skupiny hexcode: Hex kód id: ID + inexistent: Inexistent is_default: Výchozí hodnota is_for_all: Pro všechny projekty issue: Pracovní balíček @@ -2497,6 +2681,7 @@ cs: updated_at: Aktualizováno updated_on: Aktualizováno uploader: Uploader + url: URL user: Uživatel username: Uživatelské jméno value: Hodnota @@ -2511,6 +2696,29 @@ cs: ' login_and_registration: Přihlášení a registrace + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Úkol byl zrušen z důvodu chyby: %{message}' @@ -2639,6 +2847,7 @@ cs: button_set_reminder: Nastavit připomenutí button_show: Zobrazit button_sort: Řadit + button_stop_timer: Zastavit časovač button_submit: Potvrdit button_test: Test button_unarchive: Obnovit z archivu @@ -2705,9 +2914,9 @@ cs: text: failed: Nebylo možné zkopírovat projekt "%{source_project_name}" do "%{target_project_name}". succeeded: Projekt "%{source_project_name}" zkopírován do "%{target_project_name}". - title: Kopírovat projekt "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Jeden objekt tohoto typu + one: "%{count} object of this type" other: "%{count} objektů tohoto typu" zero: Žádné objekty tohoto typu create_portfolio: @@ -2745,13 +2954,9 @@ cs: plural: Vlastní akce custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Toto vlastní pole je povoleno ve všech projektech, protože je zaškrtnuta možnost "Pro všechny projekty". U jednotlivých projektů jej nelze deaktivovat. - heading: Pro všechny projekty hierarchy: subitems: - one: 1 dílčí položka + one: "%{count} sub-item" other: "%{count} dílčí položky" zero: žádné dílčí položky items: @@ -2772,7 +2977,7 @@ cs: short: Krátký název weight: Váha notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2837,16 +3042,17 @@ cs: is_enabled_globally: Globálně povoleno multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Nejprve je nutné vybrat pracovní balíček nebo projekt reorder_alphabetical: Změnit pořadí abecedně reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Pracovní pozice none: None - tab: - no_results_content_text: Vytvořit nové vlastní pole - no_results_title_text: V současné době nejsou žádná vlastní pole. text_add_new_custom_field: 'Chcete-li přidat nová vlastní pole do projektu, musíte je nejprve vytvořit, než je budete moci přidat do tohoto projektu. ' @@ -2910,25 +3116,25 @@ cs: datetime: distance_in_words: about_x_hours: - one: přibližně 1 hodinu - few: přibližně %{count} hodinami - many: přibližně %{count} hodinami - other: přibližně %{count} hodinami + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: přibližně 1 měsíc - few: přibližně %{count} měsíce - many: přibližně %{count} měsíce - other: přibližně %{count} měsíce + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: přibližně 1 rok - few: asi %{count} let - many: asi %{count} let - other: asi %{count} let + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: téměř 1 rok - few: téměř %{count} let - many: téměř %{count} let - other: téměř %{count} let + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: půl minuty less_than_x_minutes: one: méně než minutou @@ -2936,65 +3142,65 @@ cs: many: méně než %{count} minutami other: méně než %{count} minutami less_than_x_seconds: - one: méně než 1 sekundu - few: méně než %{count} sekund - many: méně než %{count} sekund - other: méně než %{count} sekund + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: přes 1 rok - few: přes %{count} let - many: přes %{count} let - other: přes %{count} let + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: 1 den - few: "%{count} dní" - many: "%{count} dní" - other: "%{count} dní" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 hodina - few: "%{count} hodin" - many: "%{count} hodin" - other: "%{count} hodin" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 h - few: "%{count} hodin" - many: "%{count} hodin" - other: "%{count} hodin" + one: "%{count} hr" + few: "%{count} hrs" + many: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: 1 minuta - few: "%{count} minuty" - many: "%{count} minut" - other: "%{count} minut" + one: "%{count} minute" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 minuta - few: "%{count} minuty" - many: "%{count} minut" - other: "%{count} minut" + one: "%{count} min" + few: "%{count} mins" + many: "%{count} mins" + other: "%{count} mins" x_months: - one: 1 měsíc - few: "%{count} měsíců" - many: "%{count} měsíců" - other: "%{count} měsíců" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekunda - few: "%{count} sekund" - many: "%{count} sekund" - other: "%{count} sekund" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: - one: 1 týden - few: "%{count} týdnů" - many: "%{count} týdnů" - other: "%{count} týdnů" + one: "%{count} week" + few: "%{count} weeks" + many: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 rok - few: "%{count} roků" - many: "%{count} roků" - other: "%{count} roků" + one: "%{count} year" + few: "%{count} years" + many: "%{count} years" + other: "%{count} years" units: day: one: den @@ -3150,7 +3356,7 @@ cs: teaser: description_html: Máte přístup ke všem funkcím %{trial_plan}. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" many: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" @@ -3496,9 +3702,166 @@ cs: selected: Vybráno include_sub_items: Zahrnout dílčí položky no_results_text: Žádné výsledky + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: V současné době nejsou k dispozici žádné příspěvky na fórum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3523,6 +3886,8 @@ cs: groups: edit: synchronized_groups: Synchronizované skupiny + form: + group_attributes: Group attributes index: description: Seskupováním uživatelů je můžete přidat jako členy do stejných projektů nebo jim přiřadit stejné globální role. memberships: @@ -3548,6 +3913,10 @@ cs: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3565,7 +3934,7 @@ cs: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3574,7 +3943,7 @@ cs: warning: Warning help_texts: views: - favoured: Označte toto zobrazení jako oblíbené a přidejte do postranního panelu vlevo. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} jsou vždy připojeny k projektu. Projekty můžete vybrat pouze zde, kde je %{plural} modul aktivní. Po vytvoření %{singular} můžete přidat pracovní balíčky z jiných projektů.\n" public: Publikujte toto zobrazení, umožňující ostatním uživatelům přístup k vašemu zobrazení. Uživatelé s oprávněním 'Spravovat veřejné zobrazení' mohou upravit nebo odebrat veřejný dotaz. To nemá vliv na viditelnost výsledků pracovního balíčku v tomto zobrazení a v závislosti na jejich oprávněních mohou uživatelé vidět různé výsledky. homescreen: @@ -3599,6 +3968,31 @@ cs: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Přečtěte si o nových funkcích a aktualizacích produktů. learn_about: Další informace o všech nových funkcích @@ -3635,8 +4029,10 @@ cs: journals: cause_descriptions: budget_deleted: Rozpočet byl odstraněn + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} změněno z %{old_value} na %{new_value}" field_removed: "%{field} odstraněno" @@ -3686,6 +4082,7 @@ cs: budget_deleted: Budget has been deleted dates_changed: Data změněna default_attribute_written: Zápis atributů pouze pro čtení + forum_message_html: "Created from forum message %{message_information}" import: Importováno meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3838,10 +4235,10 @@ cs: label_copy_target: Cíl label_copy_workflow_from: Kopírovat pracovní postup z label_copy_workflow_from_role: Kopírovat do dalších rolí - label_copy_workflow_from_type: Kopírovat do jiného typu label_core_build: Build jádra label_core_version: Verze jádra label_created_by: Vytvořil %{user} + label_criteria: Criteria label_current_status: Aktuální stav label_current_version: Aktuální verze label_custom_comment: "%{name} comment" @@ -3865,8 +4262,6 @@ cs: label_custom_field_default_type: Prázdný typ label_custom_field_new: Nové vlastní pole label_custom_field_plural: Vlastní pole - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Vlastní nastavení exportu PDF label_custom_style: Design label_custom_style_description: Vyberte si, jak bude OpenProject vypadat pomocí motivů, zvolte si výchozí barvy, které chcete v aplikaci používat, a jak budou vypadat exporty. @@ -3875,11 +4270,12 @@ cs: label_database_version: Verze PostgreSQL label_date: Datum label_date_and_time: Datum a čas - label_date_format: Formát data + label_date_and_time_formats: Date and time formats label_date_from: Od label_date_from_to: Od %{start} do %{end} label_date_to: Do label_dates: Data + label_day: Den label_day_plural: dnů label_default: Výchozí label_defaults: Výchozí @@ -3890,6 +4286,7 @@ cs: label_deleted_custom_field: "(odstraněno vlastní pole)" label_deleted_custom_item: "(smazaná položka)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organizace label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3960,6 +4357,7 @@ cs: label_float: Desetinné číslo label_folder: Složka label_follows: sleduje + label_form_configuration_plural: Forms label_formula: Vzorec label_forum_new: Nové fórum label_forum_plural: Fóra @@ -3978,6 +4376,7 @@ cs: label_go_forward: Otevřít podnabídku %{module} label_greater_or_equal: ">=" label_group: Skupina + label_group_attributes_plural: Group attributes label_group_by: Seskupit podle label_group_named: Skupina %{name} label_group_new: Nová skupina @@ -4029,8 +4428,8 @@ cs: label_journal_diff: Popis porovnání label_jump_to_a_project: Přejít na projekt... label_keyword_plural: Klíčová slova + label_label_plural: Labels label_language: Jazyk - label_language_based: Na základě jazyka uživatele label_languages: Jazyky label_last_activity: Poslední aktivita label_last_change_on: Poslední změna @@ -4052,6 +4451,7 @@ cs: label_list: Seznam label_loading: Načítání... label_locale: Jazyk a region + label_locale_based: Use default for user locale label_lock_user: Uzamknout uživatele label_locked: uzamčeno label_logged_as: Přihlášen jako @@ -4063,6 +4463,7 @@ cs: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Spravováno %{vendor} repozitářů label_mapping_for: 'Mapování pro: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximální velikost label_me: já label_member_all_admin: "(Všechny role z důvodu stavu správce)" @@ -4081,7 +4482,6 @@ cs: label_menu_item_name: Název položky menu label_message: Zpráva label_message_last: Poslední zpráva - label_message_new: Nová zpráva label_message_plural: Zprávy label_message_posted: Zpráva přidána label_minute_plural: minuty @@ -4093,6 +4493,7 @@ cs: label_module_plural: Moduly label_modules: Moduly label_modules_and_plugins: Moduly a pluginy + label_month: Měsíc label_months_from: měsíců od label_more: Více label_more_information: Více informací @@ -4106,6 +4507,7 @@ cs: label_my_avatar: Můj avatar label_my_queries: Moje vlastní dotazy label_my_security: Zabezpečení + label_my_time: My time label_name: Název label_never: Nikdy label_new: Nový @@ -4120,7 +4522,10 @@ cs: label_news_singular: Novinky label_news_view_all: Zobrazit všechny novinky label_next: Další + label_next_day: Následující den + label_next_month: Následující měsíc label_next_week: Příští týden + label_next_workweek: Příští pracovní týden label_next_year: Následující rok label_no_change_option: "(Beze změny)" label_no_data: Žádná data k zobrazení @@ -4128,6 +4533,7 @@ cs: label_no_parent_group: "(Žádná nadřazená skupina)" label_no_parent_page: Žádná nadřazená stránka label_no_start_date: žádné datum začátku + label_no_time: Není zaznamenán žádný čas label_nobody: nikdo label_non_working_days: Kalendář dostupnosti label_non_working_days_summary: Souhrn @@ -4182,7 +4588,7 @@ cs: label_permissions_report: Přehled oprávnění label_personalize_page: Přizpůsobit tuto stránku label_placeholder_user_new: '' - label_placeholder_user_plural: Placeholder uživatelé + label_placeholder_user_plural: placeholder uživatelé label_planning: Plánování label_please_login: Přihlaste se prosím label_plugins: Pluginy @@ -4194,7 +4600,10 @@ cs: label_preview: Náhled label_preview_not_available: Náhled není k dispozici label_previous: Předchozí + label_previous_day: Předchozí den + label_previous_month: Předchozí měsíc label_previous_week: Předchozí týden + label_previous_workweek: Předchozí pracovní týden label_previous_year: Předchozí rok label_principal_invite_via_email: " nebo pozvat nové uživatele e-mailem" label_principal_search: Přidat existující uživatele nebo skupiny @@ -4210,7 +4619,7 @@ cs: label_project_attribute_plural: Atributy projektu label_project_attributes_plural: Atributy projektu label_project_attributes_settings: '' - label_project_copy_notifications: Během kopírování projektu odeslat notifikace e-mailem + label_project_copy_notifications: Během kopie projektu odeslat oznámení e-mailem label_project_count: Celkový počet projektů label_project_custom_field_plural: Atributy projektu label_project_default_type: Povolit prázdný typ @@ -4313,6 +4722,7 @@ cs: label_sort_lowest: Přesunout na konec label_sorted_by: seřazeno dle %{value} label_spent_time: Strávený čas + label_stack: Stack label_start_to_end: od začátku do konce label_start_to_start: od začátku do začátku label_starts_with: začíná na @@ -4332,6 +4742,7 @@ cs: label_subtask_plural: Podúkoly label_summary: Souhrn label_system: Systém + label_system_or_language_default: Use system or language based default label_system_settings: Nastavení systému label_system_storage: Informace o úložišti label_table_of_contents: Obsah @@ -4346,6 +4757,7 @@ cs: label_time: Čas label_time_entry_activity_plural: Aktivity strávený čas label_time_entry_plural: Strávený čas + label_timer_since: Začalo v %{time} label_title: Název label_today: dnes label_today_as_date: Vyberte dnešek jako datum. @@ -4381,11 +4793,13 @@ cs: label_user_search: Vyhledat uživatele label_user_settings: Uživatelská nastavení label_users_settings: Uživatelská nastavení + label_value: Value label_value_x: 'Hodnota: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Upravit verzi label_version_new: Nová verze label_version_plural: Verze - label_version_sharing_descendants: S podprojekty + label_version_sharing_descendants: S Podprojekty label_version_sharing_hierarchy: S hierarchií projektu label_version_sharing_none: Není sdíleno label_version_sharing_system: Se všemi projekty @@ -4394,6 +4808,7 @@ cs: label_videos: Videa label_view_all_revisions: Zobrazit všechny revize label_view_diff: Zobrazit rozdíly + label_view_mode_switcher: Změnit zobrazení label_view_revisions: Zobrazit revize label_view_x: 'Zobrazení: %{x}' label_watched_work_packages: Sledované pracovní balíčky @@ -4417,6 +4832,8 @@ cs: label_wiki_start: Úvodní stránka label_wiki_toc: Obsah label_wiki_toc_empty: Obsah je prázdný, protože nejsou k dispozici žádné nadpisy. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Práce label_work_package: Pracovní balíček label_work_package_attachments: Přílohy pracovních balíčků @@ -4439,54 +4856,55 @@ cs: label_working_days: Pracovní dny label_working_days_and_hours: Pracovní dny a hodiny label_working_hours: Pracovní rozvrh + label_workweek: Pracovní týden label_x_closed_work_packages_abbr: - one: 1 uzavřeno + one: "%{count} closed" other: "%{count} uzavřených" zero: 0 uzavřeno label_x_comments: - one: 1 komentář + one: "%{count} comment" other: "%{count} komentáře" zero: žádné komentáře label_x_days: - one: 1 den - few: "%{count} dny" - many: "%{count} dní" - other: "%{count} dní" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" label_x_files: - one: 1 soubor + one: "%{count} file" other: "%{count} souborů" zero: žádné soubory label_x_items: - one: 1 položka + one: "%{count} item" other: "%{count} položek" zero: žádné položky label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" many: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 otevřený + one: "%{count} open" other: "%{count} otevřených" zero: 0 otevřených label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projektů" zero: Žádné projekty label_x_work_packages: - one: 1 pracovní balíček + one: "%{count} work package" other: " %{count} Pracovních balíčků" zero: Žádné pracovní balíčky label_x_working_days: - one: 1 pracovní den - few: "%{count} pracovních dnů" - many: "%{count} pracovních dnů" - other: "%{count} pracovních dnů" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Volno: 1 pracovní den' - few: 'Volno: %{count} pracovních dní' - many: 'Volno: %{count} pracovních dní' - other: 'Volno: %{count} pracovních dní' + one: 'Time off: %{count} working day' + few: 'Time off: %{count} working days' + many: 'Time off: %{count} working days' + other: 'Time off: %{count} working days' label_yesterday: včera label_zen_mode: Zen mód ldap_auth_sources: @@ -4540,7 +4958,7 @@ cs: start_tls: STARTTLS start_tls_description: Odešle příkaz STARTTLS po připojení ke standardnímu LDAP portu. Doporučeno pro šifrované připojení. tls_options: - tls_certificate_description: Pokud LDAP server není v důvěryhodných zdrojích tohoto systému, můžete jej přidat ručně zde. Zadejte PEM X509 certifikační řetězec. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Ověřit SSL certifikát verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4592,14 +5010,16 @@ cs: digests: including_mention_plural: včetně %{number_mentioned} zmínění including_mention_singular: včetně zmínky - unread_notification_plural: "%{number_unread} nepřečtených notifikací" - unread_notification_singular: 1 nepřečtená notifikace + unread_notification_plural: "%{number_unread} nepřečtených oznámení" + unread_notification_singular: 1 nepřečtené oznámení you_have: Máte logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: - center: Centrum notifikací + center: Centrum oznámení see_in_center: Zobrazit komentář v oznamovacím centru settings: Změnit nastavení e-mailu reminder_notifications: @@ -4649,21 +5069,21 @@ cs: text: Pro více informací zkontrolujte úložiště souborů work_packages: created_at: 'Vytvořeno v %{timestamp} uživatelem %{user} ' - login_to_see_all: Přihlaste se pro zobrazení všech notifikací. + login_to_see_all: Přihlaste se pro zobrazení všech oznámení. mentioned: Byli jste zmíněni v komentáři mentioned_by: "%{user} vás zmínil v komentáři OpenProject" more_to_see: - one: Existuje ještě 1 pracovní balíček s notifikací. - few: Existuje ještě %{count} pracovních balíčků s notifikacema. - many: Existuje ještě %{count} pracovních balíčků s notifikacema. - other: Existuje ještě %{count} pracovních balíčků s notifikacema. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + many: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Otevřít v prohlížeči reason: assigned: Přiřazen date_alert_due_date: Upozornění na datum date_alert_start_date: Upozornění na datum mentioned: Zmíněné - prefix: 'Obdrženo z důvodu nastavení notifikací: %{reason}' + prefix: 'Obdrženo z důvodu nastavení oznámení: %{reason}' reminder: Připomínka responsible: Odpovědný shared: Sdílené @@ -4825,7 +5245,7 @@ cs: aggregation: Agregace ai: Umělá Inteligence (AI) api_and_webhooks: API & Webhooky - mail_notification: E-mailové notifikace + mail_notification: E-mailová upozornění mails_and_notifications: E-maily a oznámení mcp_configurations: Protokol MCP (Model Context Protocol) text_transform_actions: Text transform actions @@ -4846,6 +5266,15 @@ cs: create_button: Vytvořit dialog_body: Tento token umožní aplikacím třetích stran komunikovat s vaší instancí. Chcete-li nový token API odlišit, pojmenujte jej. dialog_title: Vytvořit nový API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Název tokenu failed_to_create_token: 'Nepodařilo se vytvořit přístupový token: %{error}' failed_to_reset_token: 'Nepodařilo se obnovit přístupový token: %{error}' @@ -4859,10 +5288,26 @@ cs: password_confirmation_dialog: confirmation_required: Pro potvrzení této změny je třeba zadat heslo k účtu. title: Chcete-li pokračovat, potvrďte své heslo + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Přístupové tokeny description: Poskytovatelské tokeny vydává OpenProject a umožňuje tím přístup ostatním aplikacím. Klientské tokeny jsou vydávány jinými aplikacemi a umožňují OpenProjectu přistup k nim. + expired_on: Expired on %{date} headers: action: Akce expiration: Vyprší @@ -5064,7 +5509,6 @@ cs: notice_password_confirmation_failed: Zadané heslo není správné. notice_principals_found_multiple: "Nalezeno %{number} výsledků. \nStiskněte Tab pro přechod na první výsledek." notice_principals_found_single: "Existuje jeden výsledek. \n Záložka pro zaměření." - notice_project_cannot_update_custom_fields: 'Nemůžete aktualizovat dostupné vlastní pole projektu. Projekt je neplatný: %{errors}' notice_project_not_deleted: Projekt nebyl odstraněn. notice_project_not_found: Projekt nebyl nalezen. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5074,9 +5518,6 @@ cs: notice_successful_create: Úspěšně vytvořeno. notice_successful_delete: Úspěšné odstranění. notice_successful_update: Úspěšná aktualizace. - notice_successful_update_custom_fields_added_to_project: | - Úspěšná aktualizace. Vlastní pole aktivovaných typů jsou automaticky aktivována - na formuláři pracovního balíčku. Viz více. notice_to_many_principals_to_display: |- Je zde příliš mnoho výsledků. Narrow down hledání zadáním jména nového člena (nebo skupiny). @@ -5107,7 +5548,7 @@ cs: responsible: Odpovědný shared: Sdíleno watched: Sledující - send_notifications: Pro tuto akci odeslat notifikaci + send_notifications: Odeslat oznámení pro tuto akci work_packages: subject: assigned: Byli jste přiřazeni k %{work_package} @@ -5180,7 +5621,7 @@ cs: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. many: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5273,8 +5714,6 @@ cs: not_found: nenalezeno respond_to?: neimplementuje požadovanou metodu. rules: - copy_workflow_from: - workflow_missing: nemá vlastní pracovní postup. custom_field: format_not_supported: formát '%{field_format}' není podporován. item: @@ -5294,7 +5733,6 @@ cs: or: nebo rules: blueprint: Vzhled plánu - copy_workflow_from: Type for workflow copy depth: Hloubka enabled: Zapnuto item: Položka @@ -5366,8 +5804,8 @@ cs: label: Table of contents page_nr_footer: Strana %{page} z %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Atributy a popis @@ -5392,7 +5830,7 @@ cs: permission_change_work_package_status_explanation: Umožňuje změnu stavu bez oprávnění upravovat pracovní balíčky permission_comment_news: Komentování novinek permission_commit_access: Čtěte/zapisovat přístup do repozitáře (commit) - permission_copy_projects: Kopírovat projekty + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplikovat pracovní balíčky permission_create_backup: Vytvořit zálohy @@ -5425,6 +5863,7 @@ cs: permission_export_projects: Exportovat projekty permission_export_work_packages: Exportovat pracovní balíčky permission_header_for_project_module_work_package_tracking: Pracovní balíčky a Ganttovy diagramy + permission_import_work_packages: Import work packages permission_invite_members_by_email: Pozvat členy e-mailem permission_invite_members_by_email_explanation: 'Umožní uživatelům pozvat nové členy e-mailem. Pozvaní uživatelé obdrží e-mail s odkazem pro nastavení jejich hesla a aktivaci jejich účtu. Závisí na oprávnění ke správě členů @@ -5435,6 +5874,9 @@ cs: permission_manage_dashboards: Spravovat dashboardy permission_manage_forums: Správa fór permission_manage_members: Správa členů + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Spravovat novinky permission_manage_own_reminders: Vytvořit vlastní připomenutí permission_manage_own_working_times: Spravovat vlastní pracovní dobu @@ -5461,9 +5903,8 @@ cs: permission_move_work_packages: Přesun pracovních balíčků permission_project_identifier_visibility_caution: 'Caution: users with this permission can find out whether a project identifier is already taken, even by projects they cannot see. [Learn more](project_identifier_visibility_url)' permission_save_bcf_queries: Uložit dotazy BCF - permission_save_queries: Uložit zobrazení + permission_save_queries: Uložit pohled permission_search_project: Hledat projekt - permission_select_custom_fields: Vybrat vlastní pole permission_select_project_custom_fields: Vyberte atributy projektu permission_select_project_modules: Vyberte moduly projektu permission_select_project_phases: Select project phases @@ -5497,6 +5938,16 @@ cs: permission_work_package_assigned: Staňte se řešitelem/odpovědným permission_work_package_assigned_explanation: Pracovní balíčky mohou být přiřazeny uživatelům a skupinám, které tuto roli vlastní v příslušném projektu placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Odstranit placeholder uživatele deletion_info: data_consequences: 'Všechny výskyty zástupného uživatele (např. jako pověřené nebo odpovědné nebo jiné uživatelské hodnoty) budou přeřazeny na účet nazvaný "Smazaný uživatel". Vzhledem k tomu, že data každého smazaného účtu jsou znovu přiřazena k tomuto účtu, nebude možné rozlišit data, která uživatel vytvořil od dat jiného smazaného účtu. @@ -5518,7 +5969,7 @@ cs: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolií" zero: 0 portfolií filters: @@ -5529,10 +5980,10 @@ cs: label: Filtr názvů portfolia placeholder: Hledat portfolia sub_items_html: - one: "1 dílčí položka" - few: "%{count} dílčích položek" - many: "%{count} dílčích položek" - other: "%{count} dílčích položek" + one: "%{count} sub-item" + few: "%{count} sub-items" + many: "%{count} sub-items" + other: "%{count} sub-items" lists: active: Aktivní portfolia archived: Archivovaná portfolia @@ -5546,7 +5997,7 @@ cs: lze použít ke zvýraznění pracovních balíčků v tabulce. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programů" zero: 0 programů filters: @@ -5558,7 +6009,7 @@ cs: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archivovat projekt count: - one: 1 projekt + one: "%{count} project" other: "%{count} projektů" zero: 0 projektů destroy: @@ -5663,11 +6114,11 @@ cs: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: Externí úložiště souborů - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: Úložiště souborů PDF @@ -5677,6 +6128,12 @@ cs: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: V současné době nejsou k dispozici žádná vlastní pole. forums: no_results_content_text: Vytvořit nové fórum @@ -5773,18 +6230,18 @@ cs: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" @@ -5798,7 +6255,7 @@ cs: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Vytvořit novou verzi - no_results_title_text: V současné době neexistují žádné verze pro projekt. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Zobrazit pracovní balíčky work_packages_graph: Graf pracovních balíčků work_package_priorities: @@ -5806,15 +6263,27 @@ cs: status: button_edit: Upravit stav wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: Tento atribut nemá žádný text nápovědy. progress_label: "%{current} z %{total}" sections: Sekce sidebar_content_title: Obsah - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Žádost o zahájení projektu + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Použít přednastavený filtr configure_view: @@ -5843,10 +6312,10 @@ cs: action_title: Reagovat add_reaction: Přidat reakci and_others: - one: a 1 další - few: a %{count} dalšich - many: a %{count} dalšich - other: a %{count} dalšich + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others and_user: a %{user} react_with: Reagujte pomocí %{reaction} reaction_by: "%{reaction} od" @@ -5967,6 +6436,41 @@ cs: warnings: cannot_annotate: Tento soubor nelze přiřadit poznámce. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5978,6 +6482,17 @@ cs: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Matice oprávnění pro modul %{module} matrix_check_all_label: Přiřadit všechna oprávnění %{module} všem rolím @@ -6082,7 +6597,7 @@ cs: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maximální počet zobrazených řádků rozdílu setting_disable_password_login: Zakázat ověřování hesla - setting_display_subprojects_work_packages: Automaticky zobrazit úkoly podprojektu v hlavním projektu + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Formát doby trvání setting_duration_format_days_and_hours: Dny a hodiny setting_duration_format_hours_only: Pouze hodiny @@ -6197,6 +6712,7 @@ cs: setting_start_of_week: Začátek týdne setting_sys_api_description: Webová služba pro správu repositářů poskytuje integraci a uživatelskou autorizaci pro přístup k repositářům. setting_sys_api_enabled: Povolit webovou službu pro správu repositářů + setting_sys_api_key: API key setting_time_format: Čas setting_total_percent_complete_mode: Výpočet celkových hodnot hierarchie % dokončení setting_total_percent_complete_mode_simple_average: Jednoduchý průměr @@ -6249,7 +6765,7 @@ cs: description_html: 'Vyberte režim, ve kterém by měla fungovat integrace antivirového scanneru.
  • %{disabled_option}: Nahrané soubory nejsou naskenovány pro viry.
  • %{socket_option}: Nastavili jste ClamAV na stejném serveru jako OpenProject a scan daemon clamd běží na pozadí
  • %{host_option}: Vysíláte soubory do externího hostitele pro skenování virů.
' - remaining_quarantined_files_html: 'Antivirová kontrola byla zrušena. %{file_count} zůstává v karanténě. Chcete-li si prohlédnout soubory v karanténě, navštivte tento odkaz: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6260,6 +6776,7 @@ cs: ' title: Antivirová kontrola attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6313,7 +6830,7 @@ cs: language_name_being_default: "%{language_name} (výchozí)" notifications: delay_minutes_explanation: Odesílání e-mailu může být pozdrženo, aby bylo uživatelům s nakonfigurovaným v oznámení aplikace před odesláním pošty potvrzeno oznámení. Uživatelé, kteří si přečtou oznámení v aplikaci, nedostanou e-mail pro již přečtené oznámení. - events_explanation: Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože notifikace pro ně mohou být nastavena speciálně pro každého uživatele. + events_explanation: Určuje, pro kterou událost je odeslán e-mail. Pracovní balíčky jsou z tohoto seznamu vyloučeny, protože oznámení pro ně mohou být nastavena speciálně pro každého uživatele. other: Ostatní passwords: Hesla project_attributes: @@ -6351,12 +6868,12 @@ cs: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6376,8 +6893,8 @@ cs: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6385,7 +6902,7 @@ cs: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6405,6 +6922,7 @@ cs: heading: Nová fáze no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Fáze start_gate: Start gate @@ -6461,7 +6979,7 @@ cs: section_work_week: Pracovní týden sharing: count: - one: 1 uživatel + one: "%{count} user" other: "%{count} uživatelů" zero: 0 uživatelů denied: Nemáte oprávnění ke sdílení %{entities}. @@ -6554,19 +7072,19 @@ cs:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Vyloučeno z celkových hodnot is_closed: Uzavřeno - is_default: Výchozí is_readonly: Pouze pro čtení + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Přidat nový stav no_results_title_text: Momentálně zde nejsou žádné stavy pracovního balíčku. + status_actions: Status actions support: array: sentence_connector: a skip_last_comma: nepravda text_access_token_hint: Přístupové tokeny vám umožňují udělit externím aplikacím přístup ke zdrojům v OpenProject. - text_accessibility_hint: Režim přístupnosti je navržen pro uživatele, kteří jsou slepí, motoricky znevýhodněni nebo mají špatný zrak. Pro posledně jmenované prvky jsou zvlášť zvýrazněny. Upozorňujeme, že modul Backlogs není v tomto režimu k dispozici. text_analyze: 'Další analýza: %{subject}' text_are_you_sure: Jste si jisti? text_are_you_sure_continue: Jste si jisti, že chcete pokračovat? @@ -6609,12 +7127,6 @@ cs: ' text_custom_field_possible_values_info: Jeden řádek pro každou hodnotu - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Toto je ikona, která se zobrazí v mobilu nebo tabletu, když umístíte záložku na hlavní obrazovku. Musí být čtvercový obrazový soubor velikosti PNG 180 pixelů. Ujistěte se, že pozadí obrázku není transparentní, jinak bude vypadat špatně. ' @@ -6627,7 +7139,7 @@ cs: text_diff_truncated: "... Toto rozlišení bylo zkráceno, protože přesahuje maximální velikost, kterou lze zobrazit." text_email_delivery_letter_opener: Letter opener is used to render emails as files in your Rails tmp folder. Emails will automatically open in your browser if supported. text_email_delivery_not_configured: |- - Doručení e-mailu není nakonfigurováno a notifikace jsou zakázány. + Doručení e-mailu není nakonfigurováno a oznámení jsou zakázána. Nakonfigurujte váš SMTP server pro jejich povolení. text_enumeration_category_reassign_to: 'Přiřadit je k této hodnotě:' text_enumeration_destroy_question: "%{count} objektů je přiřazeno k této hodnotě." @@ -6664,6 +7176,7 @@ cs: text_length_between: Délka mezi %{min} a %{max} znaky. text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu). text_load_default_configuration: Nahrát výchozí konfiguraci + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Neexistují žádné přístupové tokeny, které by mohly být nakonfigurovány. text_no_configuration_data: |- Role, typy, stavy úkolů ani průběh práce nebyly zatím nakonfigurovány. @@ -6769,6 +7282,70 @@ cs: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6778,14 +7355,40 @@ cs: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6794,8 +7397,10 @@ cs: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6824,21 +7429,21 @@ cs: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Zakázat vše label_enable_all: Povolit vše label_toggle_template: Toggle %{template} label: Šablony pro export do PDF + order_changed: Order successfully changed. tab: Vytvořit PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6855,6 +7460,8 @@ cs: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6876,6 +7483,14 @@ cs: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6885,12 +7500,14 @@ cs: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6904,12 +7521,12 @@ cs: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6922,10 +7539,12 @@ cs: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Povolit pro všechny projekty select_projects: Vybrat projekty select_projects_description: Vyberte projekty, ve kterých chcete tento typ použít. tab: Projekty + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6940,47 +7559,17 @@ cs: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6988,6 +7577,9 @@ cs: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6996,13 +7588,14 @@ cs: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7016,12 +7609,16 @@ cs: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7030,27 +7627,58 @@ cs: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Vytvořit nový typ no_results_title_text: V současné době neexistují žádné typy. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" many: "%{count} project-specific variants" other: "%{count} project-specific variants" @@ -7058,7 +7686,21 @@ cs: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorovat toto upozornění. message: Na této stránce se mohou objevit chyby a zhoršené zkušenosti. @@ -7077,10 +7719,10 @@ cs: authorization_rejected: Nejste oprávněn se přihlásit. blocked: dočasně uzamčen blocked_num_failed_logins: - one: dočasně uzamčen (jeden pokus o přihlášení se nezdařil) - few: dočasně uzamčen (%{count} pokusů o přihlášení se nezdařilo) - many: dočasně uzamčen (%{count} pokusů o přihlášení se nezdařilo) - other: dočasně uzamčen (%{count} pokusů o přihlášení se nezdařilo) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Chystáte se změnit stav '%{name}'. Opravdu chcete pokračovat? deleted: Odstraněný uživatel department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7180,7 +7822,7 @@ cs: deletion_warning: Jste si jisti, že chcete tuto relaci zrušit? Na tomto zařízení budete odhlášeni. device: Zařízení / OS expires: Vyprší - instructions: Ke svému účtu jste přihlášeni na následujících zařízeních. Deaktivujte relace, které neznáte nebo které pocházejí ze zařízení, která neovládáte. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Poslední připojení may_not_delete_current: Aktuální relaci nelze odstranit. session_name: "%{browser_name} %{browser_version} na %{os_name}" @@ -7240,15 +7882,21 @@ cs: start_date: Datum zahájení work_days: Pracovní dny work_days_count: - one: 1 pracovní den + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" - other: "%{count} pracovní dny" + other: "%{count} working days" work_hours: Pracovní doba version_status_closed: uzavřeno version_status_locked: uzamčeno version_status_open: otevřít versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Momentálně zde nejsou žádné pracovní balíčky přiřazené k této verzi. work_packages_in_archived_projects: Verze je sdílena s archivovanými projekty, které mají stále pracovní balíčky přiřazené k této verzi. Ty jsou započítány, ale nebudou se objevovat v odkazovaných zobrazeních. @@ -7418,12 +8066,14 @@ cs: required_description: Označí tento pracovní balíček jako nevyhnutnost na související requires_description: Označí související pracovní balíček jako požadavek k tomuto work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Pracovní balíčky nelze kopírovat. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Následující pracovní balíčky nelze uložit:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. many: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. @@ -7450,23 +8100,23 @@ cs: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7526,26 +8176,172 @@ cs: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7577,26 +8373,27 @@ cs: version: no_results_title_text: V současné době nejsou k dispozici žádné verze. x_descendants: - one: Jeden potomek pracovního balíčku - few: "%{count} potomků pracovního balíčku" - many: "%{count} potomků pracovního balíčku" - other: "%{count} potomků pracovního balíčku" + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7604,16 +8401,31 @@ cs: few: Successfully copied workflow to %{count} roles. many: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7622,12 +8434,100 @@ cs: matrix_check_uncheck_all_in_row_label_html: Přepnout přechody z %{old_status} na všechny nové stavy matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Zakázat všechny přechody + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Změnit pracovní dny dialog: diff --git a/config/locales/crowdin/da.seeders.yml b/config/locales/crowdin/da.seeders.yml index 069249dcc01b..661e7722f6e3 100644 --- a/config/locales/crowdin/da.seeders.yml +++ b/config/locales/crowdin/da.seeders.yml @@ -250,70 +250,26 @@ da: I dette modul kan man kommunikere projektnyheder til sine teammedlemmer. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprintplanlægningsmøde - - _Dokumentér emnerne til sprintplanlægningsmødet her_ - - * Tidsafgrænset (8 t) - * Input: Product Backlog - * Output: Sprint Backlog - - * Opdelt i to yderligere tidsrum på 4 t: - - * Product Owner præsenterer [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) og prioriteterne for teamet og forklarer sprintmålet, som teamet skal være enigt i. Sammen prioriterer de de emner fra Product Backlog, som teamet tager sig af i den næste sprint. Teamet forpligter sig til den aftalte levering. - * Teamet planlægger selvstændigt (uden Product Owner) i detaljer og nedbryder opgaverne fra de aftalte krav til en samlet [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum-møde - - _Dokumentér emnerne til Daily Scrum-mødet her_ + ### Release 1.0 - * Kort, dagligt statusmøde i teamet. - * Tidsafgrænset (højst 15 min). - * Stand-up-møde, hvor følgende emner fra [opgavetavlen](##sprint:scrum_project__version__sprint_1) drøftes. - * Hvad planlægger jeg at gøre inden næste Daily Scrum? - * Hvad har blokeret mit arbejde (forhindringer)? - * Scrum Master leder mødet og noterer [forhindringer i sprinten](##sprint:scrum_project__version__sprint_1). - * Product Owner kan deltage for at holde sig orienteret. + _Dokumentér her, hvad denne release indeholder._ - ### Sprint Review-møde - - _Dokumentér emnerne til Sprint Review-mødet her_ - - * Tidsafgrænset (4 t). - * Højst en times forberedelse pr. person. - * Teamet viser Product Owner og andre interesserede, hvad der er nået i denne sprint. - * Vigtigt: ingen attrapper og ingen PowerPoint! Kun færdig produktfunktionalitet (increments) skal demonstreres. - * Feedback fra Product Owner, interessenter og andre er ønsket og indgår i det videre arbejde. - * Ud fra de demonstrerede funktioner beslutter Product Owner, om dette increment skal i drift eller udvikles videre. Det giver mulighed for et tidligt ROI. - - - ### Sprint Retrospective - - _Dokumentér emnerne til Sprint Retrospective-mødet her_ - - * Tidsafgrænset (3 t). - * Efter Sprint Review, ledes af Scrum Master. - * Teamet drøfter sprinten: hvad gik godt, og hvad skal forbedres for at være mere produktive i næste sprint eller have det endnu sjovere. - item_3: - name: Sprint 2 + * Arbejdspakkerne i denne release er dem med målversion 1.0. + * Release-datoen er datoen for milepælen *Release v1.0*. + * Åbn [Køreplanen]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) for at følge fremdriften i alle versioner. + * Åbn [Projektindstillinger → Versioner]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) for at knytte en anden wikiside til en version. categories: item_0: Kategori 1 (skal ændres i Projektindstillinger) queries: item_0: name: Projektplan item_1: - name: Produkt-backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Opgaver boards: @@ -345,12 +301,13 @@ da: 1. *Invitér nye medlemmer til dit projekt*: → Gå til [Medlemmer]({{opSetting:base_url}}/projects/your-scrum-project/members) i projektnavigationen. 2. *Se din Product Backlog og dine Sprint Backlogs*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i projektnavigationen. - 3. *Se din opgavetavle*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klik på højrepilen ved en sprint → Vælg [Opgavetavle](##sprint:scrum_project__version__sprint_1). - 4. *Opret en ny arbejdspakke*: → Gå til [Arbejdspakker → Opret]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Opret og opdater en projektplan*: → Gå til [Projektplan](##query:scrum_project__query__project_plan) i projektnavigationen. - 6. *Opret en sprintwiki*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs), og åbn sprintwikien fra rullemenuen til højre i en sprint. Du kan tilpasse [wikiskabelonen]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) efter behov. + 3. *Opret en sprint*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs), og klik på "+ Sprint" for at oprette en ny sprint. Flyt arbejdspakker fra backloggen til sprinten for at planlægge arbejdet. Klik på "Start sprint", når I er klar. + 4. *Se din sprinttavle*: → Gå til [Tavler]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Åbn sprintens tavle ved at klikke på sprintens navn. + 5. *Opret en ny arbejdspakke*: → Gå til [Arbejdspakker → Opret]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Opret og opdater en projektplan*: → Gå til [Projektplan](##query:scrum_project__query__project_plan) i projektnavigationen. 7. *Aktivér flere moduler*: → Gå til [Projektindstillinger → Moduler]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Her finder du vores [brugervejledninger](https://www.openproject.org/docs/user-guide/). Sig til, hvis du har spørgsmål eller brug for hjælp. Kontakt os: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 367c8b24b581..7744233f9337 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -40,7 +40,9 @@ da: view: Et dynamisk link til en visning, der er indsat med en makro. work_package: Et dynamisk link til en arbejdspakke, der er indsat med en makro. account: + already_have_an_account: Har du allerede en konto? auth_source_login_html: Log ind som %{login} for at aktivere din konto. + continue_with_provider: Fortsæt med %{name} delete: Slet konto delete_confirmation: Er du sikker på, du vil slette denne konto? deletion_info: @@ -65,7 +67,9 @@ da: error_self_registration_limited_provider: 'Brugerregistrering er begrænset for single sign-on-udbyderen ''%{name}''. Bed en administrator om at aktivere kontoen for dig eller ændre grænsen for selvregistrering for udbyderen. ' - login_with_auth_provider: eller log på med din eksisterende konto + login_title: Log ind på %{app_title} + login_with_external_account: Log ind med en ekstern konto + no_account_yet: Har du endnu ikke en konto? omniauth_direct_login_continue: Fortsæt til login omniauth_direct_login_redirecting: Du sendes videre til din identitetsudbyder … omniauth_login: Log venligst ind for at aktivere din konto. @@ -118,6 +122,8 @@ da: auth_provider: additional_form_action_urls: Ekstra tilladte URL'er til omdirigering ved login scim_clients: SCIM-klienter + automation: + actions: Handlinger calculated_value_error: customized_id: Objektets id customized_type: Objektets type @@ -128,8 +134,6 @@ da: repository: Projektarkiv comment: commented: Kommenterede - custom_action: - actions: Handlinger custom_field: admin_only: Kun for administratorer allow_non_open_versions: Tillad versioner, der ikke er åbne @@ -168,6 +172,7 @@ da: uid: Klient-id emoji_reaction: reactable: Reageret på + reaction: Reaktion enterprise_token: active_user_count_restriction: Aktive brugere encoded_token: Enterprise-supporttoken @@ -179,20 +184,44 @@ da: company: Virksomhed favorite: favorited: Element + form_configuration: + attribute_groups: Formular + description: Beskrivelse + name: Navn + type_variants: Typer og varianter, der bruger formularen + form_configuration_attribute: + attribute_key: Attribut + custom_field: Brugerdefineret felt + group: Gruppe + position: Placering + form_configuration_group: + default_key: Standardgruppe + kind: Art + label: Betegnelse + query: Forespørgsel grids/grid: column_count: Antal kolonner page: Side row_count: Antal rækker widgets: Widgets group: + avatar_color: Reservefarve + avatar_text: Avatartekst + avatar_type: Avatartype group_users: Gruppens brugere identity_url: Identitets-URL organizational_unit: Organisatorisk enhed parent: Overordnet gruppe group_detail: + avatar_color: Reservefarve + avatar_text: Avatartekst + avatar_type: Avatartype organizational_unit: Organisatorisk enhed parent: Overordnet gruppe import/jira: + auth_method: Godkendelsesmetode + basic_auth_password: Adgangskode til basic auth + basic_auth_username: Brugernavn til basic auth name: Navn på Jira-installation personal_access_token: Personligt adgangstoken url: URL til Jira-installation @@ -223,6 +252,7 @@ da: title: Titel member: blocked: Blokeret + principal_type: Medlemstype roles: Rollee notification: read_ian: Læst i appen @@ -235,6 +265,7 @@ da: position: Placering persisted_query: filters: Filtre + group_bys: Gruppér resultater efter name: Navn orders: Sortering selects: Valgte attributter @@ -332,7 +363,7 @@ da: timeline_zoom_level: Zoomniveau for Gantt-diagram timestamps: Tidsstempler for Baseline relation: - from: Sammenhørende arbejdspakker + from: Relateret arbejdspakke lag: Forsinkelse relation_type: Relationstype to: Sammenhørende arbejdspakker @@ -367,6 +398,8 @@ da: ongoing: Igangværende spent_on: Dato type: Type + token/base: + expires_on: Udløbsdato token/ical: calendar: Kalender ical_token_query_assignment: Tilknyttet visning @@ -384,19 +417,17 @@ da: type_variant: attribute_groups: Formular default_work_package_description: Standardtekst til beskrivelsen - defaults_source: Kilde til standardværdier enabled_in_new_projects: Aktiv i nye projekter - form_configuration_source: Kilde til formular + linked_aspects: Nedarvet konfiguration patterns: Mønstre - pdf_export_source: Kilde til PDF-eksport - project_attributes_source: Kilde til projektattributter project_types: Projekter, der bruger varianten variant: Variant variant_name: Navn - workflows_source: Kilde til arbejdsgange + workflow: Arbejdsgang user: admin: Administrator auth_source: Godkendelseskilde + avatar_type: Avatartype consented_at: Samtykke givet current_password: Nuværende adgangskode department: Afdeling @@ -410,7 +441,7 @@ da: last_name: Efternavn ldap_auth_source: LDAP-forbindelse new_password: Ny adgangskode - password_confirmation: Bekræftelse + password_confirmation: Bekræft adgangskode user_custom_field: custom_field_section: Afsnit user_non_working_time: @@ -419,11 +450,15 @@ da: user_preference: auto_hide_popups: Skjul meddelelser om gennemførte handlinger automatisk auto_hide_popups_caption: Når indstillingen er slået til, forsvinder de grønne meddelelser om gennemførte handlinger automatisk efter 5 sekunder. + avatar_color: Reservefarve + avatar_text: Avatartekst + avatar_type: Avatartype button_update_alerts: Opdater advarsler button_update_look_and_feel: Opdater udseende button_update_user_information: Opdater profil comments_sorting: Vis aktiviteten i arbejdspakker sorteret efter daily_reminders: Daglige påmindelser + date_format: Datoformat disable_keyboard_shortcuts: Deaktiver tastaturgenveje dismissed_enterprise_banners: Skjulte Enterprise-bannere force_dark_theme_contrast: Gennemtving høj kontrast i mørk tilstand @@ -434,13 +469,23 @@ da: header_look_and_feel: Udseende impaired: Tilgængelighedstilstand increase_contrast: Øg kontrasten - increase_contrast_caption: Slår høj kontrast til for den valgte farvetilstand. + increase_contrast_caption: Slår tilstand med høj kontrast til for den valgte farvetilstand. increase_theme_contrast: Øg temaets kontrast mode_guideline: Nogle tilstande overskriver tilpassede temafarver af hensyn til tilgængelighed og læsbarhed. Vælg Lys tilstand for fuld understøttelse af tilpassede temaer. + require_double_click_for_inline_edit: Kræv dobbeltklik for at redigere felter + require_double_click_for_inline_edit_caption: Når indstillingen er slået til, åbner et enkelt klik ikke længere et felt til redigering. Det gør det lettere at markere og kopiere tekst, fx i en arbejdspakkes beskrivelse. theme: Farvetilstand + time_format: Tidsformat time_zone: Tidszone warn_on_leaving_unsaved: Advar mig, når jeg forlader en arbejdspakke med ændringer, der ikke er gemt workdays: Arbejdsdage + user_resource: + description: Beskrivelse + name: Navn + user_filter: Brugerfilter + user_resource_detail: + description: Beskrivelse + user_filter: Brugerfilter user_working_hours: availability_factor: Tilgængelighedsfaktor days: Arbejdsdage @@ -491,6 +536,7 @@ da: title: Arbejdsdage true: medtag arbejdsfrie dage journal_internal: Intern journal + labels: Mærkater notify: Giv besked observed_in_versions: Observeret i versioner parent: Overordnet @@ -519,6 +565,10 @@ da: work_package: Arbejdspakke work_package_version: kind: Art + workflow: + description: Beskrivelse + name: Navn + type_variants: Typer og varianter, der bruger arbejdsgangen errors: messages: accepted: skal accepteres. @@ -590,6 +640,8 @@ da: regex_invalid: kunne ikke valideres med det tilknyttede regulære udtryk. regex_list_invalid: Linjerne %{invalid_lines} kunne ikke fortolkes som regulære udtryk. regex_match_failed: svarer ikke til det regulære udtryk %{expression}. + replacement_workflow_invalid: Erstatningen skal være en anden tilgængelig arbejdsgang. + replacement_workflow_required: Du skal vælge en arbejdsgang, der erstatter denne, før den kan slettes. smaller_than_or_equal_to_max_length: skal være mindre end eller lig den maksimale længde. smaller_than_or_equal_to_max_value: skal være mindre end eller lig med den største værdi. ssrf_filtered: overtræder SSRF-politikken for denne OpenProject-installation. @@ -612,6 +664,10 @@ da: user_in_ldap_managed_department: Brugeren hører til en afdeling, der styres af LDAP-synkroniseringen, og kan ikke flyttes. wrong_length: har forkert længde (burde være %{count} tegn). models: + ai/text_transform_run: + attributes: + base: + not_available: Handlingen er ikke tilgængelig. attachment: attributes: content_type: @@ -672,6 +728,16 @@ da: general_consent: Acceptér vilkår og betingelser. favorite: already_favorited: er allerede føjet til favoritter. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Der er brugt en ugyldig arbejdspakkeattribut. + attribute_unknown_name: 'Der er brugt en ugyldig arbejdspakkeattribut: %{attribute}' + duplicate_group: Gruppenavnet '%{group}' er brugt mere end én gang. Gruppenavne skal være entydige. + group_without_name: Gruppenavnet må ikke være tomt. + query_invalid: 'Den indlejrede forespørgsel ''%{group}'' er ugyldig: %{details}' + base: + default_undeletable: Standardformularen kan ikke slettes. Markér først en anden formular som standard. grids/grid: end_before_start: Slutværdien skal være større end startværdien. outside: er uden for gitteret. @@ -689,6 +755,13 @@ da: not_unique: er allerede i brug. Vælg et andet navn. jira: invalid_protocol: Angiv en gyldig protokol (http eller https) + label: + attributes: + name: + blank: Navnet må ikke være tomt. + format: "%{message}" + taken: Der findes allerede en mærkat med dette navn. Brug et andet. + too_long: Navnet er for langt (højst %{count} tegn). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ da: types: cannot_assign_multiple_variants_of_parent: Der kan kun aktiveres én variant af en type i projektet cannot_assign_variant_and_parent: 'En variant og dens overordnede type kan ikke tildeles samtidig ' - cannot_assign_variants_yet: Varianter kan endnu ikke aktiveres i et projekt. Aktivér den eksperimentelle funktion for at prøve varianter in_use_by_work_packages: 'bruges stadig af arbejdspakker: %{types}' switch_target_blank: Vælg den variant, der skal skiftes til switch_target_identical: Måltypen skal være en anden end den type, projektet bruger nu @@ -857,42 +929,26 @@ da: blank: Angiv et tokennavn format: "%{message}" in_use: Tokennavnet er allerede i brug. Vælg et andet + type: + attributes: + base: + in_use_by_work_packages: Typen kan ikke slettes, så længe arbejdspakker stadig bruger den. type_variant: attributes: - attribute_groups: - attribute_unknown: Der er brugt en ugyldig arbejdspakkeattribut. - attribute_unknown_name: 'Der er brugt en ugyldig arbejdspakkeattribut: %{attribute}' - duplicate_group: Gruppenavnet '%{group}' er brugt mere end én gang. Gruppenavne skal være entydige. - group_without_name: Gruppenavnet må ikke være tomt. - query_invalid: 'Den indlejrede forespørgsel ''%{group}'' er ugyldig: %{details}' base: - borrowed_by_variants: Kan ikke slettes, så længe konfigurationen genbruges af %{names}. is_default_variant: En types standardkonfiguration kan ikke slettes. project_variants_not_allowed: Typen tillader ikke, at der oprettes varianter i projekter. restrict_dependent_destroy: has_many: Kan ikke slettes, så længe projekter stadig bruger den. - defaults_source_id: - must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. - would_create_cycle: ville forbinde konfigurationerne i en løkke. enabled_in_new_projects: not_available_to_project_owned_variant: kan ikke angives for en variant, som et projekt ejer. taken: er allerede angivet for en anden konfiguration af denne type. - form_configuration_source_id: - must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. - would_create_cycle: ville forbinde konfigurationerne i en løkke. patterns: invalid_tokens: En eller flere attributter i feltet er ugyldige. Ret attributterne, før du gemmer. - pdf_export_source_id: - must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. - would_create_cycle: ville forbinde konfigurationerne i en løkke. - project_attributes_source_id: - must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. - would_create_cycle: ville forbinde konfigurationerne i en løkke. variant: must_belong_to_the_type: skal være en variant af denne type. - workflows_source_id: - must_be_available_to_the_variant: skal være en konfiguration, som projektet kan bruge. - would_create_cycle: ville forbinde konfigurationerne i en løkke. + workflow: + not_available_to_this_variant: skal være en arbejdsgang, som dette projekt kan bruge. user: attributes: base: @@ -906,8 +962,8 @@ da: numeric: tal (fx "1") requirements_not_met: 'Skal indeholde tegn af følgende typer: %{rules}' reused: - one: er blevet benyttet tidligere. Vælg venligst et, der er forskelligt fra dit seneste. - other: er blevet benyttet tidligere. Vælg venligst et, der er forskelligt fra dine seneste %{count}. + one: har været brugt før. Vælg en, der er forskellig fra din seneste %{count} adgangskode. + other: har været brugt før. Vælg en, der er forskellig fra dine seneste %{count} adgangskoder. special: Speciel (fx "%") uppercase: store bogstaver (f.eks. "A") password_confirmation: @@ -976,6 +1032,8 @@ da: identifier: must_not_be_changed: 'må ikke ændres manuelt. Arbejdspakkers id''er tildeles automatisk og slås op via aliastabellen, så hvis de ændres manuelt, går links og id-historikken i stykker. Er ændringen tilsigtet, så gem med `save(context: :%{context})`, og hold tabellen work_package_semantic_aliases konsistent.' semantic_identifier_incomplete: og sequence_number skal begge angives samtidig. + observed_in_versions: + error_readonly: kan ikke angives, fordi du ikke har tilladelse til at tildele versioner i dette projekt. parent: cannot_be_in_another_project: kan ikke være i et andet projekt. cannot_be_milestone: kan ikke være en milepæl. @@ -1003,6 +1061,8 @@ da: status_id: status_invalid_in_type: er ugyldig, fordi den aktuelle status ikke findes i denne type. status_transition_invalid: er ugyldig, da der mangler gyldig overførsel fra gammel til ny status for den aktuelle brugers roller. + target_versions: + error_readonly: kan ikke angives, fordi du ikke har tilladelse til at tildele versioner i dette projekt. type: cannot_be_milestone_due_to_children: kan ikke være en milepæl, fordi arbejdspakken har underordnede. is_not_a_valid_target_for_time_entries: 'Arbejdspakke # %{id} er ikke et gyldig mål for tildeling af tider.' @@ -1011,8 +1071,8 @@ da: template: body: 'Kontroller venligst følgende felter:' header: - one: 1 fejl forhindrede, at denne %{model} blev gemt - other: "%{count} fejl forhindrede, at denne %{model} blev gemt" + one: "%{count} fejl forhindrede, at %{model} blev gemt" + other: "%{count} fejl forhindrede, at %{model} blev gemt" models: action: one: Handling @@ -1050,6 +1110,9 @@ da: auth_provider: one: Godkendelsesudbyder other: Godkendelsesudbydere + automation: + one: Automatisering + other: Automatiseringer backup: one: Sikkerhedskopi other: Sikkerhedskopier @@ -1071,9 +1134,6 @@ da: comment: one: Kommentar other: Kommentarer - custom_action: - one: Brugerdefineret handling - other: Brugerdefinerede handlinger custom_field: one: Brugerdefineret felt other: Brugerdefinerede felter @@ -1119,6 +1179,9 @@ da: export_setting: one: Eksportindstilling other: Eksportindstillinger + form_configuration: + one: Formular + other: Formularer forum: one: Forum other: Fora @@ -1137,6 +1200,9 @@ da: issue_priority: one: Prioritet other: Prioriteter + label: + one: Mærkat + other: Mærkater ldap_auth_source: one: LDAP-forbindelse other: LDAP-forbindelser @@ -1355,7 +1421,7 @@ da: unsaved_changes_confirmation_message: Er du sikker på, at du vil kassere din kommentar? Det, som du har skrevet, går tabt. activity: filter: - changeset: Ændringssæt + changeset: Pakker af ændringer message: Fora news: Nyheder project_details: Projektdetaljer @@ -1401,7 +1467,28 @@ da: admin: banners: environment_configured_readonly: Værdierne er konfigureret med miljøvariabler og kan ikke redigeres her. + custom_fields: + delete_dialog_component: + heading: Vil du slette det brugerdefinerede felt %{name}? + title: Slet det brugerdefinerede felt %{name} custom_styles: + branding: + desktop: + description: Som standard bruges OpenProjects logoer, men hvis du overfører nye logoer, skifter temaet automatisk til Tilpasset tema. Vi anbefaler et logo med gennemsigtig baggrund for det bedste resultat. + title: Egne logoer til computer + mobile: + description: Som standard bruges OpenProjects logoer i browserversionen på mobil. Mobilappen opdateres ikke af denne ændring. Vi anbefaler et logo med gennemsigtig baggrund for det bedste resultat. + title: Egne logoer til mobil + modes: + dark: + description: Programmets sidehoved bliver sort. Vi anbefaler et hvidt logo på gennemsigtig baggrund. + name: Logo til mørk tilstand + light: + description: Sørg for at overføre et logo med tilstrækkelig kontrast til den valgte farve i programmets sidehoved. + name: Logo til lys tilstand + light_high_contrast: + description: Programmets sidehoved bliver gråt. Vi anbefaler et sort logo på gennemsigtig baggrund. + name: Logo til tilstand med høj kontrast color_groups: base_colors: Grundfarver main_menu: Hovedmenu i siden @@ -1434,7 +1521,11 @@ da: tab_interface: Brugerflade tab_pdf_export_font: Skrifttype til PDF-eksport tab_pdf_export_styles: Typografier til PDF-eksport - theme_warning: Ændring af temaet vil overskrive din brugerdefinerede stil. Designet vil derefter gå tabt. Er du sikker på du vil fortsætte? + theme_warning: + confirmation: Jeg forstår, at handlingen ikke kan fortrydes + description: Hvis du skifter tema, overskrives de tilpassede typografier og farver. De oprettede designværdier går tabt. + heading: Vil du skifte farvetema? + title: Skift farvetema enterprise: add_token: Overfør et supporttoken til Enterprise-udgaven book_now: Bestil nu @@ -1475,12 +1566,15 @@ da: actions: button_edit: Rediger konfiguration button_open: Åbn importkørsler + api_client: + unknown_auth_method: Ukendt godkendelsesmetode. Brug 'bearer' eller 'basic'. banner: contribution_callout: 'Hjælp os med at forbedre Jira-migreringen med din feedback og ved at donere private data. Du kan [blive en del af udviklingsfællesskabet](link) bag Jira-migreringen. ' description: Jira-migreringen er i beta. Vi understøtter i øjeblikket kun Jira Server/Data Center version 10.x og 11.x. Cloud-installationer understøttes ikke endnu. title: Beta – prøv det! + basic_auth_password_deleted: Adgangskoden til basic auth er slettet. blank: description: Konfigurer en Jira-vært for at begynde at importere elementer fra Jira til denne OpenProject-installation. title: Der er endnu ikke konfigureret nogen Jira-værter @@ -1513,16 +1607,30 @@ da: description: Jira bruger id'er for sager, der består af en projektnøgle og et løbenummer (PRJ-123). OpenProject understøtter det også, men det skal slås til [her](link). title: Projektbaserede semantiske id'er skal være slået til. form: + auth_method: + basic: + caption: Brug basic auth, hvis du bruger Jira Server version 8, eller hvis installationen er konfigureret bag en proxy. + label: Basic auth + bearer: + caption: Vi anbefaler denne godkendelsesmetode. + label: Personligt adgangstoken (PAT) button_add: Tilføj konfiguration - button_delete_token: Slet token + button_delete_basic_auth_password: Slet adgangskode til basic auth + button_delete_personal_access_token: Slet PAT button_save: Gem konfiguration - delete_token_confirm: Er du sikker på, at du vil slette tokenet? Det deaktiverer forbindelsen til Jira. + button_test_connection: Test forbindelse + delete_basic_auth_password_confirm: Er du sikker på, at du vil slette adgangskoden til basic auth? Forbindelsen til Jira bliver slået fra. + delete_personal_access_token_confirm: Er du sikker på, at du vil slette det personlige adgangstoken (PAT)? Forbindelsen til Jira bliver slået fra. + exclude_resolution_fields_caption: Du kan udelade felterne for løsning og løsningsdato fra importen for denne konfiguration. fields: + basic_auth_password: Adgangskode + basic_auth_username: Brugernavn + exclude_resolution_fields: Udelad løsningsfelter for denne konfiguration name: Navn - personal_access_token: Personligt adgangstoken + personal_access_token: Personligt adgangstoken (PAT) url: URL til Jira Server/Data Center label_testing: Tester konfigurationen … - test_configuration_caption: Du kan teste konfigurationen ved at [klikke her](test) + personal_access_token_deleted: Det personlige adgangstoken (PAT) er slettet. run: actions: button_edit: Rediger importkørsel @@ -1626,25 +1734,25 @@ da: title: Sørg for, at du har en sikkerhedskopi! parts: issues: - one: 1 sag + one: "%{count} sag" other: "%{count} sager" jobs: - one: 1 job + one: "%{count} job" other: "%{count} job" projects: - one: 1 projekt + one: "%{count} projekt" other: "%{count} projekter" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statusser" types: - one: 1 type + one: "%{count} type" other: "%{count} typer" users: - one: 1 bruger + one: "%{count} bruger" other: "%{count} brugere" work_packages: - one: 1 arbejdspakke + one: "%{count} arbejdspakke" other: "%{count} arbejdspakker" revert_dialog: confirm: Jeg forstår, at tilbageførslen sletter data permanent @@ -1710,7 +1818,7 @@ da: caption: Vælg, hvad du vil importere til OpenProject caption_done: Fuldført caption_done_description: - one: 1 projekt valgt som omfang + one: "%{count} projekt valgt som omfang" other: "%{count} projekter valgt som omfang" description: Vælg, hvilke af de data, der er hentet fra Jira-installationen, du vil importere. elements: @@ -1775,23 +1883,53 @@ da: rest_line_text: Henter vedhæftede filer for %{projects_number} projekter mere title: Hent vedhæftede filer test: - api_error: Jiras API returnerede fejlstatus %{status}. Kontrollér URL'en til din Jira-installation og API-tokenet. + api_error: Jiras API returnerede fejlstatus %{status}. Kontrollér URL'en til din Jira-installation og legitimationsoplysningerne. + basic_auth_password_invalid: Ugyldig adgangskode til basic auth. Kontrollér legitimationsoplysningerne i konfigurationen. + basic_auth_username_invalid: Ugyldigt brugernavn til basic auth. Kontrollér legitimationsoplysningerne i konfigurationen. connection_error: 'Forbindelsesfejl: %{message}' error: Der opstod en uventet fejl under test af forbindelsen failed: 'Forbindelsen mislykkedes: Serveroplysningerne kunne ikke hentes' invalid_url: Angiv en gyldig URL - missing_credentials: Angiv både URL og personligt adgangstoken for at teste forbindelsen parse_error: Svaret fra serveren kunne ikke fortolkes. Serveren er måske ikke en gyldig Jira-installation. + personal_access_token_invalid: Ugyldigt personligt adgangstoken (PAT). Kontrollér legitimationsoplysningerne i konfigurationen. success: Forbundet til %{server} (version %{version}) - token_error: Ugyldigt API-token. Kontrollér loginoplysningerne i konfigurationen. + user_is_not_admin: Ejeren af legitimationsoplysningerne er ikke administrator i Jira title: Jira-migrering - token_deleted: Tokenet er slettet. user: unknown_name: Ukendt journal_aggregation: caption_with_maximum: 'Brugerhandlinger på en arbejdspakke (ændring af beskrivelse, status eller værdier eller skrivning af kommentarer) samles, hvis de udføres inden for denne periode. Det styrer også forsinkelsen af notifikationer og [webhooks](webhook_link). Højst %{max} minutter. ' + labels: + delete_dialog_component: + confirmation: Jeg forstår, at handlingen ikke kan fortrydes + description_html: Mærkaten %{name} fjernes fra alle arbejdspakker i alle projekter. + heading: Vil du slette mærkaten? + title: Vil du slette mærkaten? + dialog_component: + create_title: Opret mærkat + rename_title: Omdøb "%{name}" + index: + description: Alle brugere, der kan redigere arbejdspakker, kan frit sætte eksisterende mærkater på arbejdspakker eller oprette nye med det samme. Det omfatter alle mærkater, som brugerne har oprettet i alle projekter. + row_component: + used_in_work_packages: + one: "%{count} arbejdspakke" + other: "%{count} arbejdspakker" + sub_header_component: + button_add: Mærkat + label_add: Tilføj mærkat + search_placeholder: Skriv her for at søge + table_component: + blank_slate: + description: Mærkater, som brugerne opretter på arbejdspakker, vises her. + title: Ingen mærkater endnu + headers: + name: Mærkat + usage: Brugt i + no_matches: + description: Prøv et andet søgeord. + title: Ingen mærkater matcher din søgning mcp_configurations: index: description: Model Context Protocol lader AI-agenter give deres brugere adgang til værktøjer og ressourcer, som denne OpenProject-installation stiller til rådighed. Funktionen er stadig i beta. @@ -1822,6 +1960,18 @@ da: update: failure: MCP-konfigurationen kunne ikke opdateres. success: MCP-konfigurationen er opdateret. + members: + index: + blank_description: Intet medlemskab matcher det aktuelle filter. + blank_title: Ingen medlemskaber + filter_label: Søg efter brugere + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Medlemskaber + placeholder_users: + index: + blank_description: Ingen pladsholder-bruger matcher det aktuelle filter. + blank_title: Ingen pladsholder-brugere plugins: no_results_content_text: Se vores side om integrationer og plugins for at få flere oplysninger. no_results_title_text: Der er i øjeblikket ikke installeret nogen plugins. @@ -1835,7 +1985,7 @@ da: confirm_button: Frigiv id description: Frigivelse af projekt-id'et kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. description_with_work_packages: - one: Frigivelse af projekt-id'et (og dets ene arbejdspakke-id) kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. + one: Frigivelse af projekt-id'et (og dets %{count} arbejdspakke-id) kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. other: Frigivelse af projekt-id'et (og dets %{count} arbejdspakke-id'er) kan ikke fortrydes. Eksterne links og integrationer, der bruger det, holder op med at virke, og navnet bliver ledigt for nye projekter. heading: Vil du frigive "%{identifier}"? title: Frigiv id @@ -1964,7 +2114,7 @@ da: error_unknown: Skal gennemses manuelt error_used_in_past: Er reserveret, fordi et andet projekt tidligere har brugt det remaining_projects: - one: "… 1 projekt mere" + one: "… %{count} projekt mere" other: "… %{count} projekter mere" banner: existing_identifiers_notice: 'De eksisterende id''er for %{project_count} projekter opfylder ikke kravene til projektbaserede semantiske id''er. OpenProject kan opdatere dem automatisk, så de bliver gyldige som i eksemplerne nedenfor. Klik på ''Konvertér id''er'' for at opdatere id''erne for alle projekter på denne måde og slå projektbaserede semantiske id''er til. @@ -2038,13 +2188,20 @@ da: ignore: Ignorer ændringer save: Gem ændringer, og fortsæt title: Vil du gemme ændringerne, før du fortsætter? + read_only: + edit_action: Rediger arbejdsgang + text_html: 'Du bruger en eksisterende arbejdsgang. Hvis du vil lave ændringer, så rediger den oprindelige arbejdsgang, eller klik på + %{action} ovenfor for at oprette en ny. + + ' role_selector: label: 'Rolle: %{role}' no_role: Vælg rolle roles: - one: Én rolle valgt + one: "%{count} rolle valgt" other: "%{count} roller valgt" title: Vælg roller + with_transitions: Med overgange + without_transitions: Uden overgange status_button: Status statuses_dialog: caption: Tilføj eller fjern de statusser, som du vil knytte til typen. Hvis du fjerner en status, slettes også den tilknyttede arbejdsgang. @@ -2054,7 +2211,7 @@ da: confirm: Fjern description: Hvis du fjerner disse statusser, er de ikke længere tilgængelige for typen, og eksisterende arbejdsgange slettes. Er du sikker på, at du vil fortsætte? heading: - one: Vil du fjerne 1 status? + one: Vil du fjerne %{count} status? other: Vil du fjerne %{count} statusser? title: Fjern statusser tabs: @@ -2067,7 +2224,31 @@ da: assignee: Ekstra overgange, der er tilgængelige for den, der er tildelt arbejdspakken. author: Ekstra overgange, der er tilgængelige for arbejdspakkens forfatter. menu_label: Viste overgange + workflow_button: Arbejdsgang + ai: + text_transform: + errors: + connection_failed: AI-tjenesten kunne ikke nås. + not_available: AI-assistenten er ikke tilgængelig. + timeout: AI-tjenesten svarede ikke i tide. + upstream_error: AI-tjenesten returnerede en fejl. + pane: + cancel: Annuller + close: Luk + copied: Kopieret + copy: Kopiér + discard: Kassér + editor_gone: Editoren er ikke længere åben, så teksten kan ikke erstattes. Du kan stadig kopiere den. + failed_title: Genereringen mislykkedes + generating: Genererer … + replace: Erstat + selection_gone: Den markerede tekst findes ikke længere, så den kan ikke erstattes. Du kan stadig kopiere den. + stopped_description: Svaret blev blokeret, før det var færdigt, så den delvise tekst er kasseret. + stopped_title: Genereringen stoppede + title: AI-resultat + try_again: Prøv igen announcements: + content: Indhold is_active: vises i øjeblikket is_inactive: vises ikke i øjeblikket show_until: Vis indtil @@ -2129,10 +2310,6 @@ da: not_found: reminder: Påmindelsen, som du leder efter, findes ikke eller er slettet. work_package: Arbejdspakken, som du leder efter, findes ikke eller er slettet. - render: - context_not_parsable: Den anviste sammenhæng er ikke et link til en ressource. - context_object_not_found: Kan ikke finde ressourcen, der ar angivet som sammenhæng. - unsupported_context: Den givne ressource understøttes ikke som korrekt sammenhæng. unable_to_create_attachment: Den vedhæftede fil kunne ikke oprettes unable_to_create_attachment_permissions: Den vedhæftede fil kunne ikke gemmes, fordi der mangler tilladelser i filsystemet user: @@ -2203,6 +2380,7 @@ da: groups: Grupper hexcode: Hexkode id: Id + inexistent: Findes ikke is_default: Forhåndsvalgt værdi is_for_all: For alle projekter issue: Arbejdspakke @@ -2253,6 +2431,7 @@ da: updated_at: Opdateret den updated_on: Opdateret den uploader: Overført af + url: URL user: Bruger username: Brugernavn value: Værdi @@ -2267,6 +2446,29 @@ da: ' login_and_registration: Login og registrering + automations: + actions: + add: Tilføj handling + assigned_to: + executing_user_value: "(Tildel til den bruger, der udfører)" + name: Handlinger + conditions: Betingelser + edit: Rediger automatiseringen %{name} + new: Ny automatisering + plural: Automatiseringer + summary: + if: Hvis + none: Ingen + then: Så + title: Oversigt + when: Når + trigger: Udløser + triggers: + button: + button_label: Knappens tekst + label: Tryk på knap + more_coming: OpenProject tilføjer snart flere typer udløsere. + name: Udløsere background_jobs: status: cancelled_due_to: 'Jobbet blev annulleret på grund af en fejl: %{message}' @@ -2395,6 +2597,7 @@ da: button_set_reminder: Angiv påmindelse button_show: Vis button_sort: Sorter + button_stop_timer: Stop stopur button_submit: Indsend button_test: Test button_unarchive: Udpak @@ -2461,9 +2664,9 @@ da: text: failed: Kunne ikke kopiere projektet "%{source_project_name}" til projektet "%{target_project_name}". succeeded: Kopierede projektet "%{source_project_name}" til "%{target_project_name}". - title: Kopiér projektet "%{source_project_name}" + title: Dupliker projektet "%{source_project_name}" x_objects_of_this_type: - one: Et objekt af denne type + one: "%{count} objekt af denne type" other: "%{count} objekter af denne type" zero: Ingen objekter af denne type create_portfolio: @@ -2501,13 +2704,9 @@ da: plural: Brugerdefinerede handlinger custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Det brugerdefinerede felt er aktiveret i alle projekter, fordi indstillingen "For alle projekter" er markeret. Det kan ikke deaktiveres for enkelte projekter. - heading: For alle projekter hierarchy: subitems: - one: 1 underelement + one: "%{count} underelement" other: "%{count} underelementer" zero: ingen underelementer items: @@ -2528,7 +2727,7 @@ da: short: Kort navn weight: Vægt notice: - remember_items_and_projects: Husk at angive elementer og projekter for det brugerdefinerede felt på de respektive faner. + remember_items_and_projects: Husk at angive elementer for det brugerdefinerede felt og at sørge for, at det bruges i mindst ét projekt. role_assignment: description: Du kan automatisk give en bestemt projektrolle til alle brugere, der er tildelt denne projektattribut, uanset hvilken rolle brugeren oprindelig har i projektet. dialog: @@ -2593,16 +2792,17 @@ da: is_enabled_globally: Er aktiveret globalt multi_value_more: other: og %{count} mere + no_results_title_text: Der er i øjeblikket ingen brugerdefinerede felter. no_role_assigment: Ingen rolletildeling + overview: + description: 'I OpenProject kan du tilføje brugerdefinerede felter til arbejdspakker, brugerprofiler og endda tidsregistreringer. Indstillingerne er flyttet til de respektive afsnit:' + heading: Indstillingerne er flyttet placeholder_version_select: Der skal først vælges en arbejdspakke eller et projekt reorder_alphabetical: Sortér værdierne alfabetisk reorder_confirmation: 'Advarsel: Den nuværende rækkefølge af de tilgængelige værdier og alle værdier, der ikke er gemt, går tabt. Er du sikker på, at du vil fortsætte?' semantic_keys: job_title: Stillingsbetegnelse none: Ingen - tab: - no_results_content_text: Oprette en ny brugerdefineret felt - no_results_title_text: Der er i øjeblikket ingen brugerdefinerede felter. text_add_new_custom_field: 'For at tilføje nye brugerdefinerede felter til et projekt, skal du først oprette dem, før du kan føje dem til dette projekt. ' @@ -2666,56 +2866,56 @@ da: datetime: distance_in_words: about_x_hours: - one: ca. 1 time - other: ca. %{count} timer + one: cirka %{count} time + other: cirka %{count} timer about_x_months: - one: ca. 1 måned - other: ca. %{count} måneder + one: cirka %{count} måned + other: cirka %{count} måneder about_x_years: - one: ca. 1 år - other: ca. %{count} år + one: cirka %{count} år + other: cirka %{count} år almost_x_years: - one: knap 1 år - other: knap %{count} år + one: næsten %{count} år + other: næsten %{count} år half_a_minute: et halvt minut less_than_x_minutes: one: under ét minut other: færre end %{count} minutter less_than_x_seconds: - one: under 1 sekund - other: færre end %{count} sekunder + one: mindre end %{count} sekund + other: mindre end %{count} sekunder over_x_years: - one: over 1 år - other: flere end %{count} år + one: over %{count} år + other: over %{count} år x_days: - one: 1 dag + one: "%{count} dag" other: "%{count} dage" x_hours: - one: 1 time + one: "%{count} time" other: "%{count} timer" x_hours_abbreviated: - one: 1 t + one: "%{count} t" other: "%{count} t" x_minutes: - one: 1 minut - other: "%{count} minutte" + one: "%{count} minut" + other: "%{count} minutter" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} min" x_months: - one: 1 måned + one: "%{count} måned" other: "%{count} måneder" x_seconds: - one: 1 sekund + one: "%{count} sekund" other: "%{count} sekunder" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 uge + one: "%{count} uge" other: "%{count} uger" x_years: - one: 1 år + one: "%{count} år" other: "%{count} år" units: day: @@ -2866,7 +3066,7 @@ da: teaser: description_html: Du har adgang til alle funktioner i %{trial_plan}. title: - one: Én dag tilbage af prøvetokenet til %{trial_plan} + one: "%{count} dag tilbage af prøvetokenet til %{trial_plan}" other: "%{count} dage tilbage af prøvetokenet til %{trial_plan}" trial: already_retrieved: 'Dit Enterprise-prøvetoken er allerede hentet. Se efter tokenet i dine e-mails, hvor det er vedhæftet. Kontakt vores supportteam, hvis du har brug for et nyt. @@ -3206,9 +3406,150 @@ da: selected: Valgte include_sub_items: Medtag underelementer no_results_text: Ingen resultater + form_configurations: + button: Formular + change: + select: + caption: Typen viser sine arbejdspakker med attributgrupperne fra den formular, som du vælger her. + label: Formular + placeholder: Vælg en formular … + title: Skift formular + default: + label: Standard + mark: Markér som standard + marked: "%{name} er nu standardformularen. Nye typer bruger den." + name: Standardformular + form: + copy_from: + caption: Den nye formular begynder med en kopi af den valgte formulars attributgrupper. + label: Kopiér fra + placeholder: Vælg en formular … + description: + caption: Tilføj en kort beskrivelse af, hvor og hvordan formularen skal bruges. + label: Beskrivelse + edit_title: Rediger formular + name: + caption: Vælg et navn, så du senere kan genkende formularen andre steder. + label: Formularens navn + new_title: Opret formular + index: + actions: + edit: Rediger formular + menu: Handlinger for %{name} + rename: Rediger navn og beskrivelse + blank_slate: + description: Opret en formular for at definere de attributgrupper, som en type eller variant viser på sine arbejdspakker. + filtered_description: Ingen formular matcher de aktuelle filtre. + filtered_title: Ingen formularer matcher + title: Ingen formularer + columns: + name: Formularens navn + projects: Projekter + types_and_variants: Typer og varianter + description: Alle navngivne formularer til arbejdspakker i denne installation og de typer og varianter, der bruger dem. + filters: + name: Formular + name_placeholder: Filtrér efter formularens navn eller beskrivelse … + projects_placeholder: Filtrér projekter … + projects_count: + one: "%{count} projekt" + other: "%{count} projekter" + types_and_variants_count: "%{types} (herunder %{variants})" + types_count: + one: "%{count} type" + other: "%{count} typer" + variants_count: + one: "%{count} variant" + other: "%{count} varianter" + name: + fallback: Formular + implicit: Formularen %{name} + selector: + default: "(Standard)" + prefix: Formular + same_as_type: "(samme som typen)" + title: Vælg formular + start: + copy: + caption: Begynd med en eksisterende formular, tilpas den, som du vil, og gem den som en ny formular. + label: Begynd med en kopi af en eksisterende formular + missing: Vælg den formular, der skal kopieres, eller begynd i stedet fra bunden. + label: Udgangspunkt + scratch: + caption: Tag udgangspunkt i standardattributgrupperne, og placer dem, som du vil. + label: Begynd fra bunden + title: Konfigurer en ny formular + tab: + read_only: + banner_html: 'Du bruger en eksisterende formular. Hvis du vil lave ændringer, så rediger den oprindelige formular, eller klik på + Formular ovenfor for at oprette en ny. + + ' + edit_action: Rediger formular + usage: + dialog: + button: Vis afhængige typer + caption_html: Formularen %{name} bruges i følgende typer og varianter. + title: Formular brugt i typer + variant_of: Variant af %{type} + variants: Varianter + unused: Ingen type eller variant bruger endnu formularen. + used_by_types: + one: Formularen bruges af %{count} type. Ændringer gælder for den. + other: Formularen bruges af %{count} typer. Ændringer gælder for dem alle. + used_by_variants: + one: Formularen bruges af %{count} type eller variant. Ændringer gælder for den. + other: Formularen bruges af %{count} typer og varianter. Ændringer gælder for dem alle. + wizard: + choice: + existing: + caption: Brug en eksisterende formular til typen med et foruddefineret sæt attributgrupper. + label: Brug en eksisterende formular + new: + caption: Sæt attributgrupperne sammen i en ny formular til typen. + label: Konfigurer en ny formular forums: + index: + could_not_be_moved: Forummet kunne ikke flyttes. + forum_actions: Handlinger for forum + no_results_title_text: Der er i øjeblikket ingen fora. show: - no_results_title_text: Der er i øjeblikket ingen indlæg til forummet. + last_reply: Seneste svar + new_topic: Ny tråd + no_results_title_text: Ingen tråde endnu + sort: + fewest_replies: Færrest svar + most_replies: Flest svar + newest: Nyeste + oldest: Ældste + oldest_activity: Ældste aktivitet + recent_activity: Seneste aktivitet + topic: Tråd + topic: + accept_as_solution: Acceptér som løsning + accepted_solution: Accepteret løsning + accepted_solutions_banner: + one: 'Accepteret løsning:' + other: 'Accepterede løsninger:' + add_work_package: Tilføj ny arbejdspakke + edit_message: Rediger indlæg + gap: + load_previous: + one: Indlæs forrige svar + other: Indlæs de forrige %{count} svar + load_previous_page: Indlæs de forrige %{count} svar (af %{total}) + message_actions: Handlinger for indlæg + participants: + one: 1 deltager + other: "%{count} deltagere" + quote_message: Citér indlæg + remove_as_solution: Fjern som løsning + replies: + one: 1 svar + other: "%{count} svar" + zero: Ingen svar endnu + started_html: Startet %{time} + view_work_package: Vis %{id} + with_accepted_solution: Med accepteret løsning general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ da: groups: edit: synchronized_groups: Synkroniserede grupper + form: + group_attributes: Gruppeattributter index: description: Når du samler brugere i grupper, kan du føje dem til de samme projekter som medlemmer eller give dem de samme globale roller. memberships: @@ -3258,6 +3601,10 @@ da: leave_project: Forlad projektet no_favorite_projects: Du har ingen favoritprojekter. title: Projekter + whats_new: + title: Nyt i %{version} + unread: Ulæst + view_release_video: Se videoen om versionen health_reports: common: checks: @@ -3280,7 +3627,7 @@ da: warning: Advarsel help_texts: views: - favoured: Markér visningen som favorit, og føj den til panelet med gemte visninger til venstre. + favoured: Markér visningen som favorit, og føj den til sidepanelet med gemte visninger til venstre. project: "%{plural} hører altid til et projekt. Du kan kun vælge projekter, hvor modulet %{plural} er aktivt. Når du har oprettet en %{singular}, kan du tilføje arbejdspakker fra andre projekter.\n" public: Offentliggør visningen, så andre brugere kan få adgang til den. Brugere med tilladelsen 'Administrer offentlige visninger' kan ændre eller fjerne offentlige visninger. Det påvirker ikke, hvilke arbejdspakker der kan ses i visningen, og afhængigt af deres tilladelser kan brugerne se forskellige resultater. homescreen: @@ -3305,6 +3652,31 @@ da: line_6: Brug datobeskeder i Community-udgaven. new_features_title: 'Versionen indeholder en række nye funktioner og forbedringer, fx: + ' + '18_0': + new_features_list: + line_0: + description: Brug dem med fælles og projektspecifikke arbejdsgange og formularer + title: Typevarianter + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprintrapporter med mange nye diagrammer + title: Agil rapportering + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Opsummer tekst, skift format, byg på skabeloner + title: AI-teksthandlinger + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Opret og genbrug mærkater + title: Mærkater + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Konfigurer eller uddeleger brugerdefinerede felter pr. projekt + title: Projektspecifikke værdier + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'Versionen indeholder en række nye funktioner og forbedringer, fx: + ' header: Læs om nye funktioner og produktopdateringer. learn_about: Læs mere om alle de nye funktioner @@ -3341,8 +3713,10 @@ da: journals: cause_descriptions: budget_deleted: Budgettet er slettet + forum_message_deleted: "(slettet)" import: changed_with_diff: "%{field} ændret (%{link})" + csv: fra CSV deleted_with_diff: "%{field} slettet (%{link})" field_changed: "%{field} ændret fra %{old_value} til %{new_value}" field_removed: "%{field} fjernet" @@ -3392,6 +3766,7 @@ da: budget_deleted: Budgettet er slettet dates_changed: Datoer ændret default_attribute_written: Skrivebeskyttede attributter skrevet + forum_message_html: "Oprettet ud fra meddelelse i forum %{message_information}" import: Importeret meeting_agenda_item_added_html: "Tilføjet til mødet %{meeting_title_information}" meeting_agenda_item_added_template_html: "Tilføjet til %{meeting_title_information}" @@ -3506,7 +3881,7 @@ da: label_change_view_all: Se alle ændringer label_changes_details: Detaljer for alle ændringer label_changeset_id: Changeset-id - label_changeset_plural: Ændringssæt + label_changeset_plural: Pakker af ændringer label_changeset_versions: Changeset-versioner label_check_uncheck_all_in_column: Markér/Afmarkér alle i kolonnen label_check_uncheck_all_in_row: Markér/Afmarkér alle i rækken @@ -3544,10 +3919,10 @@ da: label_copy_target: Mål label_copy_workflow_from: Kopier arbejdsgang fra label_copy_workflow_from_role: Kopiér til andre roller - label_copy_workflow_from_type: Kopiér til en anden type label_core_build: Kerne-build label_core_version: Kerneversion label_created_by: Oprettet af %{user} + label_criteria: Kriterier label_current_status: Nuværende status label_current_version: Nuværende version label_custom_comment: "%{name}-kommentar" @@ -3571,8 +3946,6 @@ da: label_custom_field_default_type: Tom typebetegnelse label_custom_field_new: Nyt selvvalgt felt label_custom_field_plural: Selvvalgte felter - label_custom_logo: Eget logo til computer - label_custom_logo_mobile: Eget logo til mobil label_custom_pdf_export_settings: Brugerdefinerede indstillinger for PDF-eksport label_custom_style: Design label_custom_style_description: Vælg, hvordan OpenProject skal se ud for dig med temaer, vælg de standardfarver, der skal bruges i programmet, og hvordan eksporter skal se ud. @@ -3581,11 +3954,12 @@ da: label_database_version: PostgreSQL version label_date: Dato label_date_and_time: Dato og klokkeslæt - label_date_format: Datoformat + label_date_and_time_formats: Dato- og tidsformater label_date_from: Fra label_date_from_to: Fra %{start} til %{end} label_date_to: Til label_dates: Datoer + label_day: Dag label_day_plural: dage label_default: Forhåndsvalgt label_defaults: Standardværdier @@ -3596,6 +3970,7 @@ da: label_deleted_custom_field: "(slettet selvvalgt felt)" label_deleted_custom_item: "(slettet element)" label_deleted_custom_option: "(slettet valgmulighed)" + label_deleted_label: "(slettet mærkat)" label_deleted_version: "(slettet version)" label_departments: Organisation label_departments_description_html: 'Definer virksomhedens struktur ved at oprette afdelinger og underafdelinger i et hierarki. Så kan du afspejle rapporteringslinjer og bevare et klart, struktureret overblik over organisationen i OpenProject. Du kan også importere en eksisterende organisationsstruktur via [LDAP-synkronisering af afdelinger](ldap_docs_article). @@ -3666,6 +4041,7 @@ da: label_float: Flyd label_folder: Mappe label_follows: følger + label_form_configuration_plural: Formularer label_formula: Formel label_forum_new: Nyt forum label_forum_plural: Fora @@ -3684,6 +4060,7 @@ da: label_go_forward: Åbn undermenuen %{module} label_greater_or_equal: ">=" label_group: Gruppe + label_group_attributes_plural: Gruppeattributter label_group_by: Gruppér efter label_group_named: Gruppe %{name} label_group_new: Ny gruppe @@ -3735,8 +4112,8 @@ da: label_journal_diff: Sammenligning af beskrivelser label_jump_to_a_project: Gå til et projekt... label_keyword_plural: Nøgleord + label_label_plural: Mærkater label_language: Sprog - label_language_based: Baseret på brugerens sprog label_languages: Sprog label_last_activity: Seneste aktivitet label_last_change_on: Senest ændret den @@ -3758,6 +4135,7 @@ da: label_list: Liste label_loading: Henter... label_locale: Sprog og område + label_locale_based: Brug standarden for brugerens sprog label_lock_user: Lås bruger label_locked: Spærret label_logged_as: Logget ind som @@ -3769,6 +4147,7 @@ da: label_managed_by_ldap: Administreres af LDAP-synkronisering label_managed_repositories_vendor: Administrerede %{vendor} repositorier label_mapping_for: 'Tilknytning for: %{attribute}' + label_markdown_version: Markdown-version label_max_size: Maksimal størrelse label_me: mig label_member_all_admin: "(Alle roller på grund af administratorstatus)" @@ -3787,7 +4166,6 @@ da: label_menu_item_name: Navn på menupunkt label_message: Besked label_message_last: Seneste meddelelse - label_message_new: Ny meddelelse label_message_plural: Meddelelser label_message_posted: Meddelelse tilføjet label_minute_plural: minutter @@ -3799,6 +4177,7 @@ da: label_module_plural: Moduler label_modules: Moduler label_modules_and_plugins: Moduler og plugins + label_month: Måned label_months_from: måneder fra label_more: mere label_more_information: Flere oplysninger @@ -3812,6 +4191,7 @@ da: label_my_avatar: Min avatar label_my_queries: Mine selvvalgte forespørgsler label_my_security: Sikkerhed + label_my_time: Min tid label_name: Navn label_never: Aldrig label_new: Ny @@ -3826,7 +4206,10 @@ da: label_news_singular: Nyheder label_news_view_all: Se alle nyheder label_next: Næste + label_next_day: Næste dag + label_next_month: Næste måned label_next_week: Næste uge + label_next_workweek: Næste arbejdsuge label_next_year: Næste år label_no_change_option: "(Ingen ændringer)" label_no_data: Ingen data at vise @@ -3834,6 +4217,7 @@ da: label_no_parent_group: "(Ingen overordnet gruppe)" label_no_parent_page: Ingen overordnet side label_no_start_date: ingen startdato + label_no_time: Ingen tid registreret label_nobody: ingen label_non_working_days: Tilgængelighedskalender label_non_working_days_summary: Oversigt @@ -3900,7 +4284,10 @@ da: label_preview: Forhåndsvisning label_preview_not_available: Forhåndsvisning ikke tilgængelig label_previous: Foregående + label_previous_day: Forrige dag + label_previous_month: Forrige måned label_previous_week: Foregående uge + label_previous_workweek: Forrige arbejdsuge label_previous_year: Forrige år label_principal_invite_via_email: " eller invitér nye brugere via e-mail" label_principal_search: Tilføj eksisterende brugere eller grupper @@ -4019,6 +4406,7 @@ da: label_sort_lowest: Flyt til bunden label_sorted_by: er sorteret efter %{value} label_spent_time: Anvendt tid + label_stack: Stak label_start_to_end: start til slut label_start_to_start: Start til start label_starts_with: starter med @@ -4038,6 +4426,7 @@ da: label_subtask_plural: Underopgaver label_summary: Opsummering label_system: System + label_system_or_language_default: Brug systemets eller sprogets standard label_system_settings: Systemindstillinger label_system_storage: Lagringsoplysninger label_table_of_contents: Indholdsfortegnelse @@ -4052,6 +4441,7 @@ da: label_time: Tidspunkt label_time_entry_activity_plural: Aktiviteter for anvendt tid label_time_entry_plural: Anvendt tid + label_timer_since: Startede %{time} label_title: Titel label_today: i dag label_today_as_date: Vælg dags dato. @@ -4087,7 +4477,9 @@ da: label_user_search: Søg efter bruger label_user_settings: Brugerindstillinger label_users_settings: Indstillinger for brugere + label_value: Værdi label_value_x: 'Værdi: %{x}' + label_version_custom_field_plural: Brugerdefinerede felter for versioner label_version_edit: Rediger version label_version_new: Ny version label_version_plural: Versioner @@ -4100,6 +4492,7 @@ da: label_videos: Videoer label_view_all_revisions: Se alle revisioner label_view_diff: Se forskelle + label_view_mode_switcher: Skift visning label_view_revisions: Se ændringer label_view_x: 'Vis: %{x}' label_watched_work_packages: Arbejdspakker, der er tilset @@ -4123,6 +4516,8 @@ da: label_wiki_start: Startside label_wiki_toc: Indholdsfortegnelse label_wiki_toc_empty: Indholdsfortegnelsen er tom, fordi der ikke er nogen overskrifter. + label_with_criteria: Med kriterier + label_without_criteria: Uden kriterier label_work: Arbejde label_work_package: Arbejdspakke label_work_package_attachments: Vedhæftede filer på arbejdspakken @@ -4145,45 +4540,46 @@ da: label_working_days: Arbejdsdage label_working_days_and_hours: Arbejdsdage og -timer label_working_hours: Arbejdstid + label_workweek: Arbejdsuge label_x_closed_work_packages_abbr: - one: 1 lukket + one: "%{count} lukket" other: "%{count} lukkede" zero: 0 lukkede label_x_comments: - one: 1 kommentar + one: "%{count} kommentar" other: "%{count} kommentarer" zero: ingen kommentarer label_x_days: - one: 1 dag + one: "%{count} dag" other: "%{count} dage" label_x_files: - one: 1 fil + one: "%{count} fil" other: "%{count} filer" zero: ingen filer label_x_items: - one: 1 element + one: "%{count} element" other: "%{count} elementer" zero: ingen elementer label_x_items_selected: - one: Ét element valgt + one: "%{count} element valgt" other: "%{count} elementer valgt" label_x_open_work_packages_abbr: - one: 1 åben + one: "%{count} åben" other: "%{count} åbne" zero: 0 åbne label_x_projects: - one: 1 projekt + one: "%{count} projekt" other: "%{count} projekter" zero: ingen projekter label_x_work_packages: - one: 1 arbejdspakke + one: "%{count} arbejdspakke" other: "%{count} arbejdspakker" zero: Ingen arbejdspakker label_x_working_days: - one: 1 arbejdsdag + one: "%{count} arbejdsdag" other: "%{count} arbejdsdage" label_x_working_days_time_off: - one: 'Fravær: 1 arbejdsdag' + one: 'Fravær: %{count} arbejdsdag' other: 'Fravær: %{count} arbejdsdage' label_yesterday: I går label_zen_mode: Zen-tilstand @@ -4294,6 +4690,8 @@ da: you_have: Du har logo_alt_text: Logo mention: + message_body: "%{user_name} omtalte dig:" + message_subject: "%{user_name} omtalte dig i %{subject}" subject: "%{user_name} omtalte dig i %{id} - %{subject}" notification: center: Til notifikationscentret @@ -4350,7 +4748,7 @@ da: mentioned: Du er blevet omtalt i en kommentar mentioned_by: "%{user} omtalte dig i en kommentar" more_to_see: - one: Der er 1 arbejdspakke mere med notifikationer. + one: Der er %{count} arbejdspakke mere med notifikationer. other: Der er %{count} arbejdspakker mere med notifikationer. open_in_browser: Åbn i browser reason: @@ -4529,6 +4927,13 @@ da: create_button: Opret dialog_body: Tokenet lader tredjepartsprogrammer kommunikere med din installation. Giv det nye API-token et navn, så du kan kende det fra andre. dialog_title: Opret nyt API-token + expires_on_caption: Tokenet er gyldigt til og med den valgte dag. + expiry_custom: Brugerdefineret dato + expiry_label: Udløb + expiry_never: Udløber ikke + expiry_preset: + one: "%{count} dag (%{date})" + other: "%{count} dage (%{date})" name_label: Tokennavn failed_to_create_token: 'Adgangstokenet kunne ikke oprettes: %{error}' failed_to_reset_token: 'Adgangstokenet kunne ikke nulstilles: %{error}' @@ -4542,10 +4947,26 @@ da: password_confirmation_dialog: confirmation_required: Du skal angive adgangskoden til din konto for at bekræfte ændringen. title: Bekræft din adgangskode for at fortsætte + timer: + stop: Stop + tracking: Tidtagning + work: + actions: + assign_to_me: Tildel arbejdspakken til mig + delete_time_entry: Slet tidsregistrering + edit_time_entry: Rediger tidsregistrering + log_time_from_allocation: Registrer tid ud fra fordeling + open_project: Åbn projekt + open_work_package: Åbn arbejdspakke + entries_filter: + all: Alle registreringer + allocated: Kun fordelinger + logged: Kun registreret tid my_account: access_tokens: access_tokens: Adgangstokens description: Udbydertokens udstedes af OpenProject og giver andre programmer adgang til OpenProject. Klienttokens udstedes af andre programmer og giver OpenProject adgang til dem. + expired_on: Udløb den %{date} headers: action: Handling expiration: Udløber @@ -4747,7 +5168,6 @@ da: notice_password_confirmation_failed: Den indtastede adgangskode er forkert. notice_principals_found_multiple: "Der blev fundet %{number} resultater. \n Tryk på Tab for at gå til det første resultat." notice_principals_found_single: "Der er ét resultat. \n Tryk på Tab for at gå til det." - notice_project_cannot_update_custom_fields: 'Du kan ikke opdatere projektets tilgængelige brugerdefinerede felter. Projektet er ugyldigt: %{errors}' notice_project_not_deleted: Projektet blev ikke slettet. notice_project_not_found: Projektet blev ikke fundet. notice_requires_enterprise_token: Enterprise-tokenet mangler eller giver ikke adgang til denne side. @@ -4757,9 +5177,6 @@ da: notice_successful_create: Oprettelse gennemført. notice_successful_delete: Sletning gennemført. notice_successful_update: Opdatering gennemført. - notice_successful_update_custom_fields_added_to_project: | - Opdateringen lykkedes. De brugerdefinerede felter for de aktiverede typer aktiveres automatisk - i formularen til arbejdspakker. Se mere. notice_to_many_principals_to_display: |- Der er for mange resultater. Indsnævr søgningen ved at indtste navnet på det nye medlem (eller gruppe). @@ -4861,7 +5278,7 @@ da: ' confirm_revoke_my_application: - one: Vil du virkelig fjerne programmet? Det tilbagekalder ét aktivt token for det. + one: Vil du virkelig fjerne programmet? Det tilbagekalder %{count} aktivt token for det. other: Vil du virkelig fjerne programmet? Det tilbagekalder %{count} aktive tokens for det. empty_application_lists: Der er ikke registreret nogen OAuth-programmer. flows: @@ -4950,8 +5367,6 @@ da: not_found: blev ikke fundet. respond_to?: implementerer ikke den påkrævede metode. rules: - copy_workflow_from: - workflow_missing: har ingen egen arbejdsgang. custom_field: format_not_supported: formatet '%{field_format}' understøttes ikke. item: @@ -4971,7 +5386,6 @@ da: or: eller rules: blueprint: Skabelon for mønster - copy_workflow_from: Type at kopiere arbejdsgang fra depth: Dybde enabled: Aktiveret item: Element @@ -5069,7 +5483,7 @@ da: permission_change_work_package_status_explanation: Giver mulighed for at skifte status uden tilladelsen Rediger arbejdspakker permission_comment_news: Kommenter nyheder permission_commit_access: Læse- og skriveadgang til repository (commit) - permission_copy_projects: Kopiér projekter + permission_copy_projects: Dupliker projekter permission_copy_projects_explanation: 'I skabelonprojekter har tilladelsen en ekstra funktion: Den giver mulighed for at oprette nye projekter ud fra skabelonen.' permission_copy_work_packages: Dupliker arbejdspakker permission_create_backup: Opret sikkerhedskopier @@ -5102,6 +5516,7 @@ da: permission_export_projects: Eksportér projekter permission_export_work_packages: Eksportér arbejdspakker permission_header_for_project_module_work_package_tracking: Arbejdspakker og Gantt-diagrammer + permission_import_work_packages: Importér arbejdspakker permission_invite_members_by_email: Inviter medlemmer via e-mail permission_invite_members_by_email_explanation: 'Giver brugerne mulighed for at invitere nye medlemmer via e-mail. Inviterede brugere får en e-mail med et link, hvor de kan angive deres adgangskode og aktivere deres konto. Kræver tilladelsen til at administrere medlemmer @@ -5112,6 +5527,9 @@ da: permission_manage_dashboards: Administrer dashboards permission_manage_forums: Administrer fora permission_manage_members: Administrer medlemmer + permission_manage_members_explanation: 'Advarsel: Brugere med denne tilladelse kan tildele en hvilken som helst projektrolle til et hvilket som helst medlem, også roller med tilladelser, som de ikke selv har. Det gælder også deres egne roller, så brugerne kan give sig selv flere tilladelser i projektet. + + ' permission_manage_news: Administrer nyheder permission_manage_own_reminders: Opret egne påmindelser permission_manage_own_working_times: Administrer egen arbejdstid @@ -5140,7 +5558,6 @@ da: permission_save_bcf_queries: Gem BCF-visninger permission_save_queries: Gem visninger permission_search_project: Søg i projekt - permission_select_custom_fields: Vælg brugerdefinerede felter permission_select_project_custom_fields: Vælg projektattributter permission_select_project_modules: Vælg projektmoduler permission_select_project_phases: Vælg projektfaser @@ -5174,6 +5591,16 @@ da: permission_work_package_assigned: Kan være tildelt/ansvarlig permission_work_package_assigned_explanation: Arbejdspakker kan tildeles brugere og grupper, der har denne rolle i det pågældende projekt placeholder_users: + criteria: + activate: Aktivér filterkriterier + activate_caption: 'Giver mulighed for at tilføje et sæt filtre til pladsholder-brugeren, der beskriver, hvilke brugere der passer til kriterierne. + + ' + enable: Find brugere ud fra kriterier + enable_caption: Beskriv, hvilken slags bruger pladsholderen står for, så der kan foreslås brugere, der passer. + matching_users: Brugere, der opfylder filterkriterierne + no_matching_users: Ingen brugere opfylder kriterierne. + show_all_matching_users: Vis alle %{count} brugere, der passer delete_tooltip: Slet pladsholder-bruger deletion_info: data_consequences: 'Alle forekomster af pladsholder brugeren (f.eks. som modtager, ansvarlig eller andre brugerværdier) vil blive omfordelt til en konto kaldet "Slettet bruger". Da dataene for hver slettet konto er omfordelt til denne konto, vil det ikke være muligt at skelne de data, brugeren har oprettet fra data fra en anden slettet konto. @@ -5195,7 +5622,7 @@ da: name: OmniAuth SAML / Single sign-on portfolio: count: - one: 1 portefølje + one: "%{count} portefølje" other: "%{count} porteføljer" zero: 0 porteføljer filters: @@ -5206,7 +5633,7 @@ da: label: Filter for porteføljenavn placeholder: Søg efter porteføljer sub_items_html: - one: "1 underelement" + one: "%{count} underelement" other: "%{count} underelementer" lists: active: Aktive porteføljer @@ -5221,7 +5648,7 @@ da: Den kan bruges til at fremhæve arbejdspakker i tabellen. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programmer" zero: 0 programmer filters: @@ -5233,7 +5660,7 @@ da: confirmation_message: Hvis projektet arkiveres, bliver det og alle dets underliggende projekter utilgængelige for alle brugere i installationen. Arkiverede projekter kan gendannes. title: Arkivér projekt count: - one: 1 projekt + one: "%{count} projekt" other: "%{count} projekter" zero: 0 projekter destroy: @@ -5338,11 +5765,11 @@ da: no_status_when_submitted: Anmodning om projektinitiering kunne ikke aktiveres, fordi arbejdspakketypen %{type} skal have mindst én tilknyttet status. Aktivér mindst én statusarbejdsgang for arbejdspakketypen. no_work_package_type: Anmodning om projektinitiering kunne ikke aktiveres, fordi den kræver mindst én aktiv arbejdspakketype, og projektet har ingen. Føj mindst én arbejdspakketype til projektet. export: - description_attachment_export: Det dannede dokument gemmes som en vedhæftet PDF på arbejdspakken til dokumentet. - description_file_link_export: Arbejdspakken til dokumentet får et fil-link til en PDF i et eksternt fillager. Det kræver et fungerende fillager med automatisk administrerede projektmapper til dette projekt. I øjeblikket understøttes kun Nextcloud-fillagre. + description_attachment_export: Det dannede artefakt gemmes som en vedhæftet PDF på artefaktets arbejdspakke. + description_file_link_export: Artefaktets arbejdspakke får et fil-link til en PDF i et eksternt fillager. Det kræver et fungerende fillager med automatisk administrerede projektmapper til dette projekt. I øjeblikket understøttes kun Nextcloud-fillagre. description_file_storage_selection: Vælg, hvilket af de konfigurerede eksterne fillagre der skal bruges. external_file_storage: Eksternt fillager - label_artifact_export: Eksport af dokumentet + label_artifact_export: Eksport af artefakt label_attachment_export: Gem som vedhæftet fil på arbejdspakken label_file_link_export: Overfør filen til eksternt fillager, og tilføj et fil-link til arbejdspakken pdf_file_storage: Fillager til PDF @@ -5352,6 +5779,12 @@ da: ' custom_fields: + changes_heading: Vigtige ændringer + changes_text: 'Fra og med version 18.0 aktiveres og deaktiveres brugerdefinerede felter ikke længere pr. projekt. De indgår i formularer, som typer og varianter bruger. Listen nedenfor viser de brugerdefinerede felter på dette projekts arbejdspakker og de varianter, der indeholder dem. + + ' + column_name: Brugerdefineret felt + column_variants: Varianter no_results_title_text: Der er i øjeblikket ingen brugerdefinerede felter tilgængelige. forums: no_results_content_text: Opret et nyt forum @@ -5448,14 +5881,14 @@ da: new_heading: Felter, der bliver tilgængelige nothing_affected: Ingen felter eller statusser påvirkes. status_count: - one: 1 arbejdspakke + one: "%{count} arbejdspakke" other: "%{count} arbejdspakker" table_suffix: "(tabel)" value_count: - one: 1 arbejdspakke har en værdi + one: "%{count} arbejdspakke har en værdi" other: "%{count} arbejdspakker har en værdi" work_packages: - one: 1 arbejdspakke kommer til at bruge den nye konfiguration + one: "%{count} arbejdspakke kommer til at bruge den nye konfiguration" other: "%{count} arbejdspakker kommer til at bruge den nye konfiguration" success: Projektet bruger nu %{type}. target_label: Variant @@ -5467,7 +5900,7 @@ da: variants_not_allowed: Typen tillader ikke, at der oprettes varianter i projekter. versions: no_results_content_text: Opret en ny version - no_results_title_text: Der er i øjeblikket ingen versioner til projektet. + no_results_title_text: Der blev ikke fundet nogen versioner i projektet, der matcher filterkriterierne. show_work_packages: Vis arbejdspakker work_packages_graph: Graf over arbejdspakker work_package_priorities: @@ -5475,15 +5908,27 @@ da: status: button_edit: Rediger status wizard: - create_artifact_storage_error: Dokumentet kunne ikke gemmes i fillageret - create_artifact_work_package_error: Arbejdspakken til dokumentet kunne ikke oprettes + create_artifact_storage_error: Artefaktet kunne ikke gemmes i fillageret + create_artifact_work_package_error: Artefaktets arbejdspakke kunne ikke oprettes no_custom_fields_html: Projektet har ingen projektattributter aktiveret til guiden. Aktivér mindst én i projektindstillingerne. no_help_text: Der er ikke defineret nogen hjælpetekst til attributten. progress_label: "%{current} af %{total}" sections: Afsnit sidebar_content_title: Indhold - success: Projektattributterne er gemt, og arbejdspakken til dokumentet er oprettet. + success: Projektattributterne er gemt, og artefaktets arbejdspakke er oprettet. title: Anmodning om projektinitiering + pwa: + offline: + body: "%{app_title} genindlæses automatisk, så snart forbindelsen er tilbage." + headline: Du er offline + headline_online: Du er online igen + reloading: Genindlæser … + retry: Prøv igen + retrying: Prøver igen … + status_checking: Tjekker din forbindelse … + status_restored: Forbindelsen er genoprettet. Genindlæser … + status_still: Stadig offline. Vi prøver igen om lidt. + title: Offline queries: apply_filter: Tildel filter som specificeret på forhånd configure_view: @@ -5512,7 +5957,7 @@ da: action_title: Reagér add_reaction: Tilføj reaktion and_others: - one: og 1 anden + one: og %{count} anden other: og %{count} andre and_user: og %{user} react_with: Reagér med %{reaction} @@ -5628,6 +6073,31 @@ da: warnings: cannot_annotate: Denne fil kan ikke kommenteres. roles: + delete_dialog: + confirm: Er du sikker på, at du vil slette rollen? + entry_projects: + one: "(Projekt: %{projects})" + other: "(Projekter: %{projects})" + entry_projects_truncated: + one: "(Projekter: %{projects} og %{count} andet)" + other: "(Projekter: %{projects} og %{count} andre)" + heading: + one: 'Rollen er stadig tildelt %{count} medlem:' + other: 'Rollen er stadig tildelt %{count} medlemmer:' + heading_unused: Er du sikker på, at du vil slette rollen "%{name}"? + losing_project_access: + one: Af disse brugere mister %{count} adgangen til projekter, hvor det var den eneste rolle. Er du sikker på, at du vil slette rollen? + other: Af disse brugere mister %{count} adgangen til projekter, hvor det var deres eneste rolle. Er du sikker på, at du vil slette rollen? + zero: Ingen af disse brugere mister adgangen til nogen af deres projekter. Er du sikker på, at du vil slette rollen? + show_memberships: Vis alle medlemskaber med rollen + summary: "%{users} i %{projects}" + summary_projects: + one: "%{count} projekt" + other: "%{count} projekter" + summary_users: + one: "%{count} bruger" + other: "%{count} brugere" + title: Slet rolle edit: default_for_new_projects_warning: 'Rollen er konfigureret som den standardrolle, som brugere uden administratorrettigheder får, når de opretter et projekt. Fjern ikke følgende tilladelser, ellers kan dem, der opretter projekter, ikke gøre opsætningen af deres nye projekter færdig:' index: @@ -5639,6 +6109,15 @@ da: permissions: section_check_all_label: Tildel alle tilladelser i %{module} section_uncheck_all_label: Fjern alle tilladelser i %{module} + permissions_dialog: + edit_permissions: Rediger rollens tilladelser + no_permissions: Rollen giver ingen tilladelser. + permission_count: + one: "%{count} tilladelse" + other: "%{count} tilladelser" + preview_action: Vis tilladelser + preview_aria_label: Vis tilladelserne for %{role} + title: Tilladelser for "%{name}" report: matrix_caption: Matrix over tilladelser for modulet %{module} matrix_check_all_label: Tildel alle tilladelser i %{module} til alle roller @@ -5743,7 +6222,7 @@ da: setting_default_projects_wiki: Aktivér som standard wiki-funktionen for nye projekter setting_diff_max_lines_displayed: Højeste antal viste linjer for afvigelser setting_disable_password_login: Deaktiver godkendelse med adgangskode - setting_display_subprojects_work_packages: Vælg altid at vise underprojekters arbejdspakker ved hovedprojektet + setting_display_subprojects_work_packages: Vis som standard underprojekters arbejdspakker i hovedprojekter setting_duration_format: Format for varighed setting_duration_format_days_and_hours: Dage og timer setting_duration_format_hours_only: Kun timer @@ -5858,6 +6337,7 @@ da: setting_start_of_week: Ugen begynder setting_sys_api_description: Repositorieadministration-webtjenesten sørger for integration og brugertilladelse for adgang til repositorier. setting_sys_api_enabled: Aktiver repositorieadministrations-webtjeneste + setting_sys_api_key: API-nøgle setting_time_format: Tidspunkt setting_total_percent_complete_mode: Beregning af samlet % færdigt i hierarkier setting_total_percent_complete_mode_simple_average: Simpelt gennemsnit @@ -5921,6 +6401,7 @@ da: ' title: Virusscanning attachments: + attachment_max_size_env_caption: Værdien er angivet med miljøvariabler og kan ikke ændres her. Rediger miljøvariablerne direkte for at ændre den. show_work_package_attachments: 'Deaktiverer du denne indstilling, skjules listen over vedhæftede filer på arbejdspakkernes fane Filer i nye projekter. Filer, der er vedhæftet i en arbejdspakkes beskrivelse, overføres stadig til det interne lager for vedhæftede filer. ' @@ -6012,12 +6493,12 @@ da: confirmation_message: Guiden til anmodning om projektinitiering vil ikke længere være tilgængelig for nye projekter, der bygger på denne skabelon. Projektledere og projektejere skal selv konfigurere og udfylde de relevante oplysninger i projektoversigten. heading: Vil du deaktivere denne anmodning om projektinitiering? title: Deaktiver anmodning om projektinitiering - header_description: 'OpenProject kan danne en trinvis guide, der hjælper projektledere med at udfylde en anmodning om projektinitiering. Du kan vælge, hvilke projektattributter der skal med, og få dannet en PDF som resultat. + header_description: 'OpenProject kan danne en trinvis guide, der hjælper projektledere med at udfylde en anmodning om projektinitiering. Du kan vælge, hvilke projektattributter der skal med, og få dannet et PDF-artefakt som resultat. ' name: - artifact_name: Dokumentets navn - artifact_name_caption: Vælg det navn for dokumentet, som jeres projektmodel anbefaler. + artifact_name: Artefaktets navn + artifact_name_caption: Vælg det navn for artefaktet, som jeres projektmodel anbefaler. options: project_creation_wizard: Guide til oprettelse af projekt project_initiation_request: Anmodning om projektinitiering @@ -6037,8 +6518,8 @@ da: Du har indsendt en anmodning om projektinitiering for **%{project_name}**. Den afventer nu gennemsyn. Klik på linket nedenfor for at gå til arbejdspakken med din anmodning. confirmation_email_text: Tekst i e-mailen med bekræftelse - description: Når en bruger indsender en anmodning om projektinitiering, oprettes en ny arbejdspakke med anmodningen vedhæftet som PDF-fil. Indstillingerne nedenfor bestemmer type, status og tildelt for den nye arbejdspakke. - description_template: "**Arbejdspakken blev oprettet automatisk, da arbejdsgangen %{wizard_name} blev fuldført.** Der er dannet en PDF med alle indsendte oplysninger, og den er vedhæftet arbejdspakken til reference og revision. Hvis du har brug for at opdatere eller gennemgå initieringstrinene igen, kan du altid åbne guiden igen via linket nedenfor:\n" + description: Når en bruger indsender en anmodning om projektinitiering, oprettes en ny arbejdspakke med anmodningens artefakt vedhæftet som PDF-fil. Indstillingerne nedenfor bestemmer type, status og tildelt for den nye arbejdspakke. + description_template: "**Arbejdspakken blev oprettet automatisk, da arbejdsgangen %{wizard_name} blev fuldført.** Der er dannet et PDF-artefakt med alle indsendte oplysninger, og det er vedhæftet arbejdspakken til reference og revision. Hvis du har brug for at opdatere eller gennemgå initieringstrinene igen, kan du altid åbne guiden igen via linket nedenfor:\n" send_confirmation_email: Send en e-mail med bekræftelse til den bruger, der indsendte anmodningen om projektinitiering status_when_submitted: Status ved indsendelse status_when_submitted_caption: Den status, som den dannede arbejdspakke skifter til, når anmodningen er indsendt. @@ -6046,7 +6527,7 @@ da: work_package_comment_caption: Den tildelte, der er valgt ovenfor, bliver automatisk @omtalt i kommentaren. work_package_comment_default: En anmodning om projektinitiering for **%{project_name}** er indsendt og afventer gennemsyn. work_package_type: Arbejdspakketype - work_package_type_caption: Den arbejdspakketype, der skal bruges til at gemme det færdige dokument. + work_package_type_caption: Den arbejdspakketype, der skal bruges til at gemme det færdige artefakt. wizard_status_button: project_creation_wizard: Åbn guiden til oprettelse af projekt project_initiation_request: Åbn anmodning om projektinitiering @@ -6066,6 +6547,7 @@ da: heading: Ny fase no_gate: Ingen fase-gate non_defined: Der er ikke defineret nogen faser. + order_changed: Rækkefølgen er ændret. phase_gates: Fase-gates section_header: Faser start_gate: Fase-gate ved start @@ -6122,7 +6604,7 @@ da: section_work_week: Arbejdsuge sharing: count: - one: 1 bruger + one: "%{count} bruger" other: "%{count} brugere" zero: 0 brugere denied: Du har ikke tilladelse til at dele %{entities}. @@ -6215,19 +6697,19 @@ da:
Bemærk: Nedarvede værdier (fx fra underordnede eller relationer) gælder fortsat. index: + could_not_be_moved: Statussen kunne ikke flyttes. headers: - excluded_from_totals: Udeladt fra totaler is_closed: Lukket - is_default: Forhåndsvalgt is_readonly: Skrivebeskyttet + no_filter_results_title_text: Ingen status matcher det aktuelle filter. no_results_content_text: Tilføj en ny status no_results_title_text: Der er i øjeblikket ingen statusser for arbejdspakker. + status_actions: Handlinger for status support: array: sentence_connector: og skip_last_comma: forkert text_access_token_hint: Adgangstegn tillader dig at tildele eksterne applikationer adgang til ressourcer i OpenProject. - text_accessibility_hint: Tilgængelighedstilstanden er beregnet til brugere, der er blinde, har motoriske handicap eller dårligt syn. For de sidstnævnte bliver elementer med fokus fremhævet særligt. Bemærk, at modulet Backlogs ikke er tilgængeligt i denne tilstand. text_analyze: 'Yderligere gennemgang: %{subject}' text_are_you_sure: Er du sikker? text_are_you_sure_continue: Er du sikker på, at du vil fortsætte? @@ -6270,12 +6752,6 @@ da: ' text_custom_field_possible_values_info: Én linje for hver værdi - text_custom_logo_instructions: 'Logoet skaleres automatisk, så det passer i sidehovedet. Det bedste resultat får du ved at overføre et hvidt logo på et gennemsigtigt billede på 130×47 px. Du kan lægge så meget luft ind i billedet, som du vil. - - ' - text_custom_logo_mobile_instructions: 'Logoet skaleres automatisk, så det passer i sidehovedet. Det bedste resultat får du ved at overføre et hvidt logo på et gennemsigtigt billede på 130×33 px. Du kan lægge så meget luft ind i billedet, som du vil. - - ' text_custom_touch_icon_instructions: 'Det er det ikon, der vises på din mobil eller tablet, når du lægger et bogmærke på hjemmeskærmen. Det skal være en kvadratisk PNG-billedfil på 180 × 180 pixel. Sørg for, at billedets baggrund ikke er gennemsigtig, ellers ser det dårligt ud på iOS. ' @@ -6325,6 +6801,7 @@ da: text_length_between: Længde mellem %{min} og %{max} tegn. text_line_separated: Flere værdier tilladt (én linje for hver værdi). text_load_default_configuration: Hent forhåndsvalgt opsætning + text_markdown_login_required: Log ind, eller send en X-OpenProject-API-Key-header for at læse dokumentet. text_no_access_tokens_configurable: Der er ingen adgangstegn, som kan konfigureres. text_no_configuration_data: Roller, typer, statusser for arbejdspakker og arbejdsgange er endnu ikke sat op. Det anbefales stærkt at hente forhåndsopsætningen. Du vil kunne ændre den når den er indlæst. text_no_notes: Der er ingen kommentarer tilgængelige til denne arbejdspakke. @@ -6428,6 +6905,68 @@ da: tree_view: label_empty_sub_tree: Ingen elementer types: + aspect_descriptions: + defaults: + type: Angiv skabelonteksten til beskrivelsen for denne type, og vælg, om emner skrives af brugerne eller dannes automatisk. + variant: Angiv skabelonteksten til beskrivelsen for denne variant, og vælg, om emner skrives af brugerne eller dannes automatisk. + details: + type: Angiv typens grundlæggende egenskaber, fx navn, farve og hvordan den vises i projekter. Projektets medlemmer ser altid dette navn, også når projektet bruger en variant. + variant: Giv varianten et navn, så administratorer kan skelne den fra andre varianter. Projektets medlemmer ser ikke dette navn, men den overordnede types navn. + form_configuration: + existing: + type: Det er de felter, som projektets medlemmer ser, når de opretter eller redigerer en arbejdspakke af denne type. Du kan deaktivere felter, som du vil skjule. + variant: Det er de felter, som projektets medlemmer ser, når de opretter eller redigerer en arbejdspakke af denne variant. Du kan deaktivere felter, som du vil skjule. + new: + type: Det er de felter, som projektets medlemmer ser, når de opretter eller redigerer en arbejdspakke af denne type. Du bestemmer selv rækkefølgen og grupperingen. + variant: Det er de felter, som projektets medlemmer ser, når de opretter eller redigerer en arbejdspakke af denne variant. Du bestemmer selv rækkefølgen og grupperingen. + pdf: Vælg, hvilke PDF-skabeloner der er tilgængelige, når der dannes PDF'er af arbejdspakker, der bruger disse indstillinger. Hver skabelon bestemmer layoutet, og hvilke attributter der står i PDF'en. Den første skabelon på listen er standard. + project_attributes: Vælg, hvilke projektattributter der vises i arbejdspakker. Projektmedlemmer med tilladelse kan se og redigere dem på arbejdspakkens fane Projektattributter. + projects: + type: Vælg de projekter, hvor typen skal være tilgængelig. + variant: Vælg de projekter, hvor varianten skal være tilgængelig. I disse projekter erstatter variantens indstillinger den overordnede types. + variants: Se alle typens varianter, også dem, som projektadministratorer har oprettet i deres projekter. + workflows: Definer, hvilke statusskift hver rolle kan foretage i arbejdspakker af denne type. Arbejdsgange kan deles mellem typer og varianter. + comparison: + action: Sammenlign varianter + blankslate: + description: Tilføj en ekstra variant til typen for at se, hvad der adskiller dem. + title: Der er endnu intet at sammenligne + description: Sammenlign typens varianter med den overordnede type. + labels: + duplicate: Mulig dublet + duplicate_of: Konfigureret præcis som %{names} + duplicate_of_more: + one: "%{names} og %{count} mere" + other: "%{names} og %{count} mere" + parent_type: Overordnet type + same_as_type: Samme som den overordnede type + rows: + form: + fields: Felter + groups: Afsnit + required: Heraf påkrævet + same_as_base: Samme som den overordnede type + scope: + availability: Tilgængelig for + enabled_in_new_projects: Aktiv i nye projekter + projects: Projekter + workflows: + roles: Involverede roller + same_as_base: Samme som den overordnede type + statuses: Statusser + transitions: Overgange + sections: + configuration: Oversigt over konfiguration + form: Formular + scope: Omfang + workflows: Arbejdsgange + title: Sammenlign varianter + title_for_type: Sammenlign varianter af %{name} + values: + global: Alle projekter + inheriting_from: Nedarver fra + project_specific: Projektspecifik ([%{project}](project_url)) + same_as_base: Identisk med den overordnede type creation_wizard: add_variant: Tilføj en variant til %{name} create_type: Opret type @@ -6437,14 +6976,40 @@ da: finish: Afslut placeholder_description: Dette trin bliver snart tilgængeligt. progress_label: Trin %{number} af %{total} + start: + next_heading: Hvad sker der nu? + submit: Start + type: + heading: Opret en ny type + lead_html: Du er ved at oprette en ny arbejdspakketype i installationen. En type er en slags arbejdspakke, fx Fejl, Opgave eller Milepæl, med sin egen formular, arbejdsgang og egne indstillinger. + next_steps: Du konfigurerer typen i de næste trin og vælger de indstillinger, der passer bedst til dine behov. Når typen findes, kan du oprette varianter af den for at tilpasse enkelte indstillinger uden at oprette en ny type. + objects_description: Formular og arbejdsgange er selvstændige objekter, der kan deles mellem flere typer og varianter. Du kan vælge et eksisterende, oprette et nyt ud fra en kopi eller begynde fra bunden. + objects_title: Objekter + options_heading: Indstillinger og objekter + options_intro: En type består af to slags byggesten. + settings_description: Detaljer, standardværdier, projektattributter, projekter og PDF-eksport hører til selve typen. Du konfigurerer dem direkte for denne type. + settings_title: Indstillinger + variant: + heading: Opret en ny variant + inherit_description: Varianten bruger den overordnede types indstillinger. Ændringer i den overordnede type slår automatisk igennem i varianten. + inherit_title: Brug de samme indstillinger som typen + lead_html: Du er ved at oprette en ny variant af %{type_name} i installationen. En variant er en alternativ udgave af en arbejdspakketype. Den begynder med den oprindelige types konfiguration og lader dig tilpasse enkelte indstillinger uden at oprette en helt ny type. + manual_description: Begynd med en kopi af den overordnede types nuværende indstillinger, og tilpas dem uafhængigt, eller begynd fra bunden. Ændringer i den overordnede type påvirker ikke denne konfiguration. + manual_title: Manuel konfiguration + next_steps: Du konfigurerer varianten i de næste trin og vælger de indstillinger, der passer bedst til dine behov. + objects_description: Arbejdsgange og formularer er selvstændige objekter, der kan deles mellem flere typer og varianter. Du kan vælge en eksisterende arbejdsgang eller formular, oprette en ny ud fra en kopi eller begynde fra bunden. + objects_heading: Genbrug arbejdsgang og formular + options_heading: Genbrug eller tilpas indstillinger + options_intro: For de fleste indstillinger kan du vælge, om den overordnede types konfiguration skal bruges, eller om du vil konfigurere dem selv. Formular og arbejdsgange håndteres for sig nedenfor. steps: defaults: Standardværdier details: Detaljer form_configuration: Formular - pdf: Generering af PDF + pdf: Generér PDF project_attributes: Projektattributter projects: Projekter - workflows: Arbejdsgange + start: Start + workflows: Arbejdsgang success: Oprettet. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6453,8 +7018,10 @@ da: caption: Definer et mønster med refererede attributter og tekst, så arbejdspakkernes emner dannes automatisk. Brugerne kan ikke redigere emnerne manuelt. label: Automatisk dannede emner description: - caption: Angiv den tekst, der indsættes i beskrivelsesfeltet i alle nye arbejdspakker af denne type. - label: Standardtekst til beskrivelse + caption: + type: Teksten indsættes som standard i beskrivelsen af alle nye arbejdspakker af denne type. + variant: Teksten indsættes som standard i beskrivelsen af alle nye arbejdspakker af denne variant. + label: Skabelon for beskrivelse manually_editable_subjects: caption: Brugerne kan frit skrive og redigere arbejdspakkernes emner manuelt. label: Manuelt redigerbare emner @@ -6483,21 +7050,21 @@ da: file_link: caption: Den dannede PDF overføres til projektets automatisk administrerede Nextcloud-lager og linkes fra arbejdspakken. Arbejdspakker i projekter uden et sådant lager springes over. label: Overfør filen til eksternt fillager, og tilføj et fil-link til arbejdspakken - intro: Dan automatisk en PDF af arbejdspakker af denne type, hver gang deres status ændres. - invalid_mode: Ugyldig tilstand for automatisk PDF-eksport. - label: Automatisk PDF-eksport + intro: Dan automatisk et PDF-artefakt af arbejdspakker af denne type, hver gang deres status ændres. + invalid_mode: Ugyldig tilstand for automatisk eksport af artefakter. + label: Automatisk eksport af artefakter off_mode: caption: Der dannes ingen PDF automatisk. label: Fra - section_title: Automatisk PDF-eksport + section_title: Automatisk eksport af artefakter unavailable: ikke tilgængelig, fordi der ikke er konfigureret noget automatisk administreret Nextcloud-lager - intro: Vælg, hvilke af de tilgængelige skabeloner der skal aktiveres for denne type. Skabelonen bestemmer layoutet og de attributter, der vises i den eksporterede PDF af en arbejdspakke af typen. Den første skabelon på listen er valgt som standard. pdf_export_templates: actions: label_disable_all: Deaktiver alle label_enable_all: Aktivér alle label_toggle_template: Slå %{template} til eller fra label: Skabeloner til PDF-eksport + order_changed: Rækkefølgen er ændret. tab: Generér PDF templates: readonly_error: Kan ikke ændres, så længe den er knyttet til en kildetype. @@ -6514,6 +7081,8 @@ da: confirm_delete_group: Er du sikker på, at du vil slette afsnittet? Handlingen kan ikke fortrydes automatisk. confirm_reset: Er du sikker på, at du vil nulstille formularen? custom_field: Brugerdefineret felt + defaults_not_generated: + already_configured: Formularen har allerede grupper eller attributter. delete_group: Slet afsnit drag_to_activate: Træk felter herfra for at aktivere dem drag_to_reorder: Træk for at ændre rækkefølgen @@ -6535,6 +7104,14 @@ da: query_group_label: Tabel med relaterede arbejdspakker remove_attribute: Fjern fra afsnit rename_group: Omdøb afsnit + required: + already_required_globally: Det brugerdefinerede felt er påkrævet for alle typer. + for_variant: Påkrævet i denne type + globally: Påkrævet + globally_hint: Det ændres på det brugerdefinerede felt + mark: Gør påkrævet i denne type + not_a_custom_field: Kun et brugerdefineret felt kan gøres påkrævet for en enkelt type. + unmark: Gør ikke påkrævet i denne type reset_description: 'Attributterne sættes tilbage til deres standardgruppe, og ALLE brugerdefinerede felter deaktiveres. ' @@ -6544,12 +7121,14 @@ da: tab: Formular untitled_group: Unavngiven gruppe overview: + caption: Varianter kan enten bruge indstillingerne fra den oprindelige type, eller du kan konfigurere dem anderledes manuelt. Tabellen viser, hvor konfigurationen af hver indstilling kommer fra. configuration_mode: Konfigurationstilstand - dependents: Afhængige typer og varianter mode: always_manual: Altid manuel - inheriting_from_html: Nedarver fra %{source_name} + inheriting_from_html: Bruger det samme som typen (%{source_name}) manual: Manuelt konfigureret + using_form_html: Bruger formularen %{name} + using_workflow_html: Bruger arbejdsgangen %{name} settings: Indstillinger tab: Oversigt project_attributes: @@ -6563,12 +7142,12 @@ da: manual: description: Når du [opretter projektattributter](administration_url), vises de her og kan føjes til en type. title: Ingen tilgængelige projektattributter - description: Vælg de projektattributter, der skal aktiveres for denne arbejdspakketype. Aktiverede projektattributter vises på en separat fane i arbejdspakker af typen. Brugere med de nødvendige tilladelser kan se og redigere attributterne dér. disabled: Deaktiveret exclusions: attribute_label: Nedarv %{attribute} filter: Søg efter afsnit eller navn tab: Projektattributter + project_specific_variant_suffix: "(Projektspecifik variant)" projects: actions: confirm_remove: Vil du fjerne typen %{type} fra %{project}? @@ -6581,10 +7160,12 @@ da: empty_state: description: Tilføj et projekt for at bruge konfigurationen dér. no_results: Ingen projekter matcher. + title: Bruges endnu ikke i noget projekt enable_all: Aktivér for alle projekter select_projects: Vælg projekter select_projects_description: Vælg de projekter, hvor du vil bruge typen. tab: Projekter + variant_column: Variant eller type reuse_mode: copy: confirm_dialog: @@ -6599,43 +7180,17 @@ da: title: Kopiér konfiguration invalid_source: Konfigurationen kan ikke kopieres fra den valgte type. Vælg en anden kildetype. success: Konfigurationen er kopieret. - dependents: - blank: - description: Ingen anden type eller variant nedarver fra denne konfiguration - title: Ingen afhængige typer - description: - one: Følgende konfiguration nedarves af 1 anden type eller variant. Ændringer, som du laver her, påvirker også den afhængige. - other: Følgende konfiguration nedarves af %{count} andre typer eller varianter. Ændringer, som du laver her, påvirker også de afhængige. - dialog: - description: Disse typer og varianter nedarver konfigurationen af dette afsnit. En ændring, som du laver her, gælder dem alle. - direct_heading: Direkte afhængige - indirect_heading: Afhængige via andre typer - title: Afhængige typer - variant_of_html: Variant af %{type_name} - variant_of_via_html: Variant af %{type_name}, nedarver via %{source_name} - via_html: Nedarver via %{source_name} - title: - one: 1 afhængig type - other: "%{count} afhængige typer" - view: Vis afhængige typer exclusions: not_inherited: Konfigurationen er ikke nedarvet, så der er intet at udelade. Rediger i stedet konfigurationen direkte. unknown_aspect: Ukendt konfigurationsafsnit "%{aspect}". inherited: - change_source: Skift kildetype configure_manually: Konfigurer manuelt confirm_dialog: - change_source: - description_html: Når du skifter kildetypen til %{source_name}, overskriver du de aktuelle indstillinger og kan påvirke eksisterende oplysninger i arbejdspakker af denne type. - heading: Vil du skifte kildetype? - title: Skift kildetype check_box: Jeg forstår, at dette overskriver de aktuelle indstillinger from_manual: description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. heading: Vil du skifte konfigurationstilstand? title: Skift konfigurationstilstand - description: Konfigurationen nedarves fra kildetypen [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Konfigurationen nedarves fra kildetypen %{source_name}%{source_suffix}. dialog: description: Nedarv konfigurationen fra en kildetype. Ny konfiguration, der føjes til kilden, gælder også her. source_label: Kildetype @@ -6643,6 +7198,9 @@ da: submit: Skift title: Nedarv fra en anden type invalid_source: Konfigurationen kan ikke nedarves fra den valgte type. Vælg en anden kildetype. + mode_description: Varianten bruger de samme indstillinger som typen ([%{source_name}](source_url)). Ændringer dér slår automatisk igennem her. + mode_description_unlinked: Varianten bruger de samme indstillinger som typen. Ændringer dér slår automatisk igennem her. + mode_label: Brug de samme indstillinger som typen success: Konfigurationstilstanden er skiftet. title: Nedarvet konfiguration manual: @@ -6651,13 +7209,14 @@ da: description: Alle de aktuelt valgte indstillinger overskrives, og det kan påvirke eksisterende oplysninger i arbejdspakker af denne type. heading: Vil du skifte konfigurationstilstand? title: Skift konfigurationstilstand - copy_from_type: Kopiér fra en anden type description: Ingen indstillinger nedarves. Du kan stadig kopiere indstillingerne fra en anden type én gang. dialog: submit: Skift title: Konfigurer manuelt - inherit_from_type: Nedarv fra en anden type + inherit_from_type: Nedarv fra overordnet invalid_mode: Den valgte tilstand er ikke tilgængelig for denne konfiguration. Vælg en anden tilstand. + mode_description: Konfigurer siden manuelt. Ændringer i den overordnede type påvirker den ikke længere. + mode_label: Konfigurer siden manuelt modes: copy: caption: Start med en kopi af de indstillinger, som konfigurationen nedarver nu. Kopien tages én gang. @@ -6671,12 +7230,16 @@ da: success: Konfigurationstilstanden er skiftet. title: Manuel konfiguration parent_suffix: " (overordnet)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Du kan oprette varianter for at tilbyde forskellige udgaver af typen til forskellige projekter.
Hver variant kan nedarve, kopiere eller have sin egen konfiguration af standardskabelon, brugerdefinerede felter, arbejdsgange og præferencer. ' title: Der findes ingen varianter af denne type + created_by_migration_filter: + all: Alle + migrated: Migreret created_in_html: Oprettet i %{project} delete: description: Projekter, der bruger varianten, skiftes til den variant, som du vælger nedenfor, før varianten slettes. @@ -6685,33 +7248,74 @@ da: filter_no_results: Ingen varianter matcher filteret global_section: description: Disse varianter er tilgængelige i alle projekter. - title: Varianter + title: Globale varianter project_specific_section: description: Disse varianter er kun tilgængelige i de projekter, hvor de blev oprettet. title: Projektspecifikke varianter workflow: - tab: Arbejdsgange + tab: Arbejdsgang index: add_variant: Tilføj en variant til %{name} add_variant_action: Tilføj variant + convert_to_global: Konvertér til global variant + convert_to_global_dialog: + confirm: Konvertér + text: 'Den projektspecifikke variant bliver global og tilgængelig for alle projekter. Projektadministratoren kan ikke længere redigere den. + + ' + workflow_text: 'Dens arbejdsgang "%{name}" hører til dette projekt og bliver også global. + + ' + convert_to_global_notice: "%{name} er nu en global variant." + convert_to_global_rename: + confirm: Konvertér + text: Der findes allerede en global variant med dette navn. Vælg et andet navn. + title: Vælg et andet navn til varianten + created_by_migration: Migreret + delete: + description: Typen slettes permanent. Handlingen kan ikke fortrydes. + description_with_variants: Typen og alle dens varianter slettes permanent. Handlingen kan ikke fortrydes. + heading: Vil du slette typen '%{name}'? + projects: + one: 'Typen fjernes fra %{count} projekt:' + other: 'Typen fjernes fra %{count} projekter:' + title: Slet type description: 'Hvert konfigurationsområde i typer og varianter kan konfigureres uafhængigt, nedarves fra en anden type med enkelte dele udeladt eller knyttes helt til en kilde. ' duplicate_name: Kopi af %{name} duplicate_notice: "%{name} er duplikeret." enabled_in_new_projects: Aktiv i nye projekter + filter: Filtrér efter navn + filter_no_results: Ingen typer matcher filteret make_default: Aktivér i nye projekter make_default_notice: "%{name} er nu aktiveret i nye projekter." + migrated_variants_banner: + text: 'Nogle varianter blev oprettet automatisk ved migreringen til 18.0 for at bevare projektspecifikke konfigurationer af brugerdefinerede felter. De er markeret som "%{label}". Hvis du vil fjerne dem, så lad de berørte projekter bruge en anden variant eller type, og slet derefter den migrerede variant. [Læs mere om varianter](docs_url). + + ' no_results_content_text: Opret en ny type no_results_title_text: Der er i øjeblikket ingen typer. project_variants_count: - one: 1 projektspecifik variant + one: "%{count} projektspecifik variant" other: "%{count} projektspecifikke varianter" remove_default: Aktivér ikke i nye projekter remove_default_notice: "%{name} aktiveres ikke længere i nye projekter." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} uden %{fields}" + variant_name_truncated: + one: "%{type} uden %{fields} og %{count} felt mere" + other: "%{type} uden %{fields} og %{count} felter mere" milestone_indicator: Milepæl + patterns: + formats: + hierarchy_default: Standard (betegnelse og kort navn) + hierarchy_label: Kun betegnelse + hierarchy_short: Kun kort navn + weighted_item_list_default: Standard (betegnelse og vægt) + weighted_item_list_weight: Kun vægt unsupported_browser: close_warning: Ignorer advarslen. message: Du kan opleve fejl og en ringere oplevelse på denne side. @@ -6730,8 +7334,8 @@ da: authorization_rejected: Du har ikke adgang til at logge ind. blocked: Midlertid spærret blocked_num_failed_logins: - one: midlertidigt låst (ét mislykket log ind-forsøg) - other: midlertidigt låst (%{count} mislykkede log ind-forsøg) + one: midlertidigt låst (%{count} mislykket loginforsøg) + other: midlertidigt låst (%{count} mislykkede loginforsøg) confirm_status_change: Du er ved at ændre status for '%{name}'. Er du sikker på, at du vil fortsætte? deleted: Slettet bruger department_ldap_managed_caption: Afdelingen styres af LDAP-synkroniseringen og kan ikke ændres her. @@ -6891,13 +7495,19 @@ da: start_date: Startdato work_days: Arbejdsdage work_days_count: - one: 1 arbejdsdag + one: "%{count} arbejdsdag" other: "%{count} arbejdsdage" work_hours: Arbejdstimer version_status_closed: lukket version_status_locked: Spærret version_status_open: åbn versions: + filter_status_labels: + closed: Lukket + locked: Låst + open: Åben + index: + filter_label: Søg efter versioner overview: no_results_title_text: Der er i øjeblikket ingen arbejdspakker tildelt versionen. work_packages_in_archived_projects: Versionen er delt med arkiverede projekter, der stadig har arbejdspakker tildelt versionen. De tælles med, men vises ikke i de tilknyttede visninger. @@ -7067,12 +7677,14 @@ da: required_description: Markerer denne arbejdspakke som en forudsætning for den relaterede requires_description: Markerer den relaterede arbejdspakke som en forudsætning for denne work_packages: + assign_to_me: + success: "%{work_package} er nu tildelt dig." bulk: copy_failed: Arbejdspakkerne kunne ikke kopieres. could_not_be_deleted: 'Følgende arbejdspakker kunne ikke slettes:' could_not_be_saved: 'Følgende arbejdspakker kunne ikke gemmes:' deletion_successful: - one: 1 arbejdspakke er slettet. + one: "%{count} arbejdspakke er slettet." other: "%{count} arbejdspakker er slettet." descendant: underliggende arbejdspakke til en valgt move_failed: Arbejdspakkerne kunne ikke flyttes. @@ -7097,17 +7709,17 @@ da: description_with_visible_descendants: Er du sikker på, at du vil slette de valgte arbejdspakker og alle synlige underliggende arbejdspakker? heading: Vil du slette disse %{count} arbejdspakker permanent? hidden_descendants_only_warning: - one: Der er én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. + one: Der er %{count} underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. other: Der er %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men alle hierarkiske relationer fjernes. hidden_descendants_warning: - one: Alle synlige underliggende arbejdspakker fjernes. Der er dog én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. + one: Alle synlige underliggende arbejdspakker fjernes. Der er dog %{count} underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men relationen fjernes. other: Alle synlige underliggende arbejdspakker fjernes. Der er dog %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men alle hierarkiske relationer fjernes. title: Slet %{count} arbejdspakker undeletable_descendants_warning: - one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. + one: Du kan ikke slette %{count} underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser. De bevares, men alle hierarkiske relationer fjernes. undeletable_descendants_warning_html: - one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. + one: Du kan ikke slette %{count} underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser i %{projects}. De bevares, men alle hierarkiske relationer fjernes. datepicker_modal: banner: @@ -7165,18 +7777,154 @@ da: description: Er du sikker på, at du vil slette "%{name}"? heading: Vil du slette arbejdspakken permanent? hidden_descendants_only_warning: - one: Arbejdspakken har én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. + one: Arbejdspakken har %{count} underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. other: Arbejdspakken har %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men den hierarkiske relation fjernes. hidden_descendants_warning: - one: Alle synlige underliggende arbejdspakker slettes. Arbejdspakken har dog én underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. + one: Alle synlige underliggende arbejdspakker slettes. Arbejdspakken har dog %{count} underliggende arbejdspakke, som du ikke kan se. Den slettes ikke, men den hierarkiske relation fjernes. other: Alle synlige underliggende arbejdspakker slettes. Arbejdspakken har dog %{count} underliggende arbejdspakker, som du ikke kan se. De slettes ikke, men den hierarkiske relation fjernes. title: Slet arbejdspakke undeletable_descendants_warning: - one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. + one: Du kan ikke slette %{count} underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser. Den bevares, men den hierarkiske relation fjernes. other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser. De bevares, men alle hierarkiske relationer fjernes. undeletable_descendants_warning_html: - one: Du kan ikke slette én underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. + one: Du kan ikke slette %{count} underliggende arbejdspakke, fordi du mangler de nødvendige tilladelser i %{projects}. Den bevares, men den hierarkiske relation fjernes. other: Du kan ikke slette %{count} underliggende arbejdspakker, fordi du mangler de nødvendige tilladelser i %{projects}. De bevares, men alle hierarkiske relationer fjernes. + import: + check_file: Kontrollér filen + checking_file: Kontrollerer %{filename} + clear: Ryd + csv: + file: + empty: Filen er tom. + expired: Filen er ikke længere tilgængelig. Overfør den igen. + expired_named: "%{filename} er ikke længere tilgængelig. En kontrolleret fil gemmes nogle timer, så denne skal overføres igen. Den kontrolleres en gang til, før noget oprettes." + invalid_encoding: Linje %{line} indeholder byte, der ikke er gyldig UTF-8 eller UTF-16. Gem filen igen som CSV (UTF-8/UTF-16), og overfør den nye fil. + malformed: Filen kunne ikke læses som CSV. Linje %{line} åbner et anførselstegn, der aldrig lukkes. + missing: Vælg en CSV-fil, der skal overføres. + no_rows: Filen har kolonneoverskrifter, men ingen linjer under dem. + too_large: Filen fylder %{size}. Den største fil, som denne installation tager imod, er %{limit}. Fordel linjerne på flere filer, eller bed en administrator om at hæve grænsen. + too_large_before_upload: Filen er større end de %{limit}, som denne installation tager imod. Fordel linjerne på flere filer, eller bed en administrator om at hæve grænsen. + too_many_rows: Filen har flere linjer, end der kan importeres på én gang. Grænsen er %{limit}. + format: + unknown: Det er ikke en CSV-fil i UTF-8/UTF-16. Kommer den fra et regneark, så gem den igen som CSV (UTF-8/UTF-16), og overfør den nye fil. + wrong_encoding: Filen er kodet i %{encoding}, ikke UTF-8 eller UTF-16. Vælg formatet CSV UTF-8/UTF-16, når du gemmer, og overfør den så igen. + header: + ambiguous: og %{other} betyder begge %{attribute}. Behold én af dem. + duplicate: står mere end én gang. Behold én af dem. + status_based: kan ikke importeres, når fremdriften beregnes ud fra status. En administrator kan ændre det under Administration, Arbejdspakker, Opfølgning på fremdrift. + unknown: kan ikke importeres. + unknown_with_suggestion: kan ikke importeres. Mente du %{suggestion}? + unnamed: Kolonnen har intet navn. Giv den et navn, eller fjern kolonnen. + job: + checking: Kontrollerer filen + importing: Importerer filen + row: + created_after_updated: må ikke være senere end værdien i Opdateret den. + fractional_percentage: skal være et helt antal procent, fx 50. + future_timestamp: må ikke ligge i fremtiden. + invalid_date: skal være en dato skrevet som ÅÅÅÅ-MM-DD. + invalid_timestamp: skal være en dato og et klokkeslæt skrevet som ÅÅÅÅ-MM-DDTHH:MM:SSZ. + not_created: kunne ikke oprettes, og der blev ikke angivet nogen årsag. + too_many_cells: har %{count} celler, men overskriften har %{expected}. En værdi, der indeholder skilletegnet, skal stå i anførselstegn. + unknown: findes ikke. + unknown_in_project: findes ikke i dette projekt. + unknown_user: svarer ikke til en bruger. Brug den e-mailadresse, som brugeren logger ind med. + template: + example_category: Dokumentation + example_version: '1.0' + examples: + one: + description: Beskriv, hvad den nye side skal kunne. + subject: Skriv dokumentationen + two: + description: Fejlen opstår, efter at en nulstilling af adgangskoden er mislykkedes. + subject: Ret loginfejlen + view_name: CSV-import %{datetime} + download_template: Hent skabelonen + drop_or_click: Slip en CSV-fil her, eller klik for at vælge en. + dry_run_caption: Hver linje valideres og rapporteres, men intet oprettes. Anbefales til en fil, som du ikke har importeret før. + dry_run_label: Kontrollér først filen uden at importere + file_label: CSV-fil + guidance: + column_reference: Læs mere her + columns_html: "%{link} med de kolonneoverskrifter, som importen kræver, og udfyld den med arbejdspakkernes data." + limits_html: Den importerede CSV-fil skal være gemt i UTF-8/UTF-16 og må højst have %{lines} linjer og fylde %{size}. + names_html: Kolonneoverskrifterne og værdierne i hver arbejdspakkeattribut skal svare til eksisterende værdier. Brugerattributter skal svare til en eksisterende e-mailadresse. %{link} + title: Før du begynder + import_file: Importér fil + importing_file: Importerer %{filename} + intro: Opret mange arbejdspakker på én gang ud fra en CSV-fil. Eksisterende arbejdspakker ændres ikke. + menu_title: Import af arbejdspakker + report: + announcement: + checked: Filen er kontrolleret. Rapporten står nedenfor. + file_rejected: Filen blev ikke importeret. Rapporten fortæller, hvad der er galt med kolonneoverskrifterne. + imported: Importen er færdig. Rapporten står nedenfor. + rows_rejected: Intet blev importeret. Rapporten viser problemerne. + checked: + heading: Klar til import + import: Importér %{work_packages} + kept: Den kontrollerede fil gemmes nogle timer, så den behøver ikke at blive overført igen for at blive importeret. + text: Der er endnu ikke oprettet noget. Gennemse oversigten nedenfor, og importér derefter. + title: + one: "%{count} linje kontrolleret, ingen problemer fundet" + other: "%{count} linjer kontrolleret, ingen problemer fundet" + download_problems: Hent som CSV + file_rejected: + heading: Overskriftslinje + line: linje 1 i %{filename} + nothing: Intet blev importeret. Ret filen, og overfør den igen. + text: Ret overskrifterne i filen, og overfør den igen. + title: Kolonneoverskrifterne kunne ikke læses + headline: + accounts: + label: Konti + subtitle: tildelt, ansvarlig og forfatter + dated: + label: Linjer med datoer + subtitle: en start- eller slutdato + types: + label: Typer + subtitle: brugt i denne fil + work_packages: + label: Arbejdspakker + subtitle: én for hver linje + imported: + again: Importér en anden fil + heading: Oversigt over importen + link: + one: Se den importerede arbejdspakke + other: Se de %{count} importerede arbejdspakker + notifications: Der blev ikke sendt notifikationer om disse arbejdspakker. + text_html: Importeret fra %{filename} den %{date} kl. %{time}. + title: "%{work_packages} oprettet" + problems: + all: + one: "%{count} problem." + other: "%{count} problemer, alle vist." + capped: "%{count} problemer, de første %{shown} vist. Hent listen for at se dem alle." + heading: Problemer + rows_rejected: + text: Alt blev rullet tilbage. Ret linjerne nedenfor, og overfør filen igen. + title: 'Intet blev importeret: %{problems} i %{lines}' + table: + attribute: Kolonne + available: Tilgængelige værdier + column: Kolonne + empty: tom + header: Overskrift + message: Problem + row: Linje + value: Værdi + x_lines: + one: "%{count} linje" + other: "%{count} linjer" + x_problems: + one: "%{count} problem" + other: "%{count} problemer" + run_failed: Kørslen blev ikke færdig, og intet blev oprettet. Overfør filen igen. + running_note: Importen kører i baggrunden. Luk ikke siden. + title: Importér arbejdspakker move: bulk_current_type_not_available_in_target_project: 'Arbejdspakkernes eller deres underliggende arbejdspakkers typer er ikke aktiveret i målprojektet. Aktivér de manglende typer i målprojektet, hvis typerne skal forblive uændrede. Ellers skal du vælge en tilgængelig type i målprojektet på listen. @@ -7208,37 +7956,53 @@ da: version: no_results_title_text: Der er i øjeblikket ingen versioner. x_descendants: - one: Én underliggende arbejdspakke + one: "%{count} underliggende arbejdspakke" other: "%{count} underliggende arbejdspakker" workflows: + change: + confirm: + consequence: Eksisterende arbejdspakker med disse statusser påvirkes ikke. De bliver i deres nuværende status, men det er ikke længere muligt at skifte til disse statusser. + description: 'Følgende statusser findes ikke i den arbejdsgang, som du har valgt ("%{name}"):' + description_blank: Den nye arbejdsgang har ingen overgange. Alle statusovergange for %{type} fjernes. + description_empty: Den arbejdsgang, som du har valgt ("%{name}"), har ingen overgange. Alle statusovergange for %{type} fjernes. + title: Vil du bruge en anden arbejdsgang til %{name}? + select: + caption: Typen bruger statusovergangene fra den arbejdsgang, som du vælger her. + label: Arbejdsgang + placeholder: Vælg en arbejdsgang … + title: Skift arbejdsgang copies: form: - mode: - from_role: - caption: Kopiér den aktuelle arbejdsgang til en eller flere roller i samme arbejdspakketype. Hvis den valgte rolle allerede har en arbejdsgang, overskrives den. - label: Kopiér til andre roller - from_type: - caption: Kopiér den aktuelle arbejdsgang til en anden arbejdspakketype. Hvis den valgte type allerede har en arbejdsgang, overskrives den. Det gælder alle roller. - label: Kopiér til en anden type - source_role_id: - label: Kilderolle target_role_ids: label: Målroller - target_variant_ids: - label: Måltyper from_roles: create: notice: one: Arbejdsgangen er kopieret til rollen '%{role_name}'. other: Arbejdsgangen er kopieret til %{count} roller. - from_variants: - create: - notice: - one: Arbejdsgangen er kopieret til '%{type_name}'. - other: Arbejdsgangen er kopieret til %{count} typer. new: - title: Kopiér arbejdsgangen fra "%{source_type}" + dialog_title: Kopiér arbejdsgangen fra "%{source}" + delete: + body_in_use: + one: Arbejdsgangen bruges i øjeblikket af %{count} type eller variant. Vælg en ny arbejdsgang, der skal erstatte den. + other: Arbejdsgangen bruges i øjeblikket af %{count} typer og varianter. Vælg en ny arbejdsgang, der skal erstatte den. + body_not_in_use: Arbejdsgangen slettes permanent. Handlingen kan ikke fortrydes. + button: Slet arbejdsgang + confirmation_checkbox_label: Jeg forstår, at handlingen ikke kan fortrydes. + no_replacement: Arbejdsgangen er i brug og kan ikke slettes, fordi der ikke er nogen anden arbejdsgang, der kan erstatte den. + replace_caption: Den valgte arbejdsgang anvendes på alle de typer og varianter, der står ovenfor. + replace_label: Erstat med arbejdsgang + replace_placeholder: Vælg en arbejdsgang + title: Vil du slette arbejdsgangen %{name}? form: + copy_from: + caption: Den nye arbejdsgang begynder med en kopi af den valgte arbejdsgangs statusovergange. + label: Kopiér fra + placeholder: Vælg en arbejdsgang … + description: + caption: Tilføj en kort beskrivelse af, hvor og hvordan arbejdsgangen skal bruges. + label: Beskrivelse + edit_title: Rediger arbejdsgang matrix_caption: Matrix for arbejdsgang matrix_caption_assignee: Matrix for arbejdsgang for tildelte matrix_caption_author: Matrix for arbejdsgang for forfatteren @@ -7247,12 +8011,88 @@ da: matrix_check_uncheck_all_in_row_label_html: Slå overgange fra %{old_status} til alle nye statusser til eller fra matrix_checkbox_label: Tillad overgang fra %{old_status} til %{new_status} matrix_uncheck_all_label: Tillad ingen overgange + name: + caption: Vælg et navn, så du senere kan genkende arbejdsgangen andre steder. + label: Arbejdsgangens navn + new_title: Opret arbejdsgang index: + actions: + create: Arbejdsgang + edit: Rediger overgange + menu: Handlinger for %{name} + rename: Rediger navn og beskrivelse + blank_slate: + description: Opret en arbejdsgang for at definere de statusovergange, som en type eller variant må bruge. + filtered_description: Ingen arbejdsgang matcher de aktuelle filtre. + filtered_title: Ingen arbejdsgange matcher + title: Ingen arbejdsgange + columns: + name: Arbejdsgangens navn + projects: Projekter + roles: Roller + types_and_variants: Typer og varianter + description: Alle navngivne sæt af statusovergange i denne installation og de typer og varianter, der bruger dem. + filters: + name: Arbejdsgang + name_placeholder: Filtrér efter arbejdsgangens navn eller beskrivelse … + projects_placeholder: Filtrér projekter … + projects_count: + one: "%{count} projekt" + other: "%{count} projekter" + roles_count: + one: "%{count} rolle" + other: "%{count} roller" type_filter: label: Filtrér efter typenavn … + types_and_variants_count: "%{types} (herunder %{variants})" + types_count: + one: "%{count} type" + other: "%{count} typer" + variants_count: + one: "%{count} variant" + other: "%{count} varianter" + name: + fallback: Arbejdsgang + implicit: Arbejdsgangen %{name} page_headers: index_component: description: Konfigurer statusovergange for hver arbejdspakketype. + selector: + prefix: Arbejdsgang + same_as_type: "(samme som typen)" + title: Vælg arbejdsgang + start: + copy: + caption: Begynd med en eksisterende arbejdsgang, tilpas den, som du vil, og gem den som en ny arbejdsgang. + label: Begynd med en kopi af en eksisterende arbejdsgang + missing: Vælg den arbejdsgang, der skal kopieres, eller begynd i stedet fra bunden. + label: Udgangspunkt + scratch: + caption: Begynd med en tom arbejdsgang, og opbyg den manuelt. + label: Begynd fra bunden + title: Ny arbejdsgang + usage: + dialog: + button: Vis afhængige typer + caption_html: Arbejdsgangen %{name} bruges i følgende typer og varianter. + title: Arbejdsgang brugt i typer + variant_of: Variant af %{type} + variants: Varianter + unused: Ingen type eller variant bruger endnu arbejdsgangen. + used_by_types: + one: Arbejdsgangen bruges af %{count} type. Ændringer gælder for den. + other: Arbejdsgangen bruges af %{count} typer. Ændringer gælder for dem alle. + used_by_variants: + one: Arbejdsgangen bruges af %{count} type eller variant. Ændringer gælder for den. + other: Arbejdsgangen bruges af %{count} typer og varianter. Ændringer gælder for dem alle. + wizard: + choice: + existing: + caption: Brug en eksisterende arbejdsgang til typen med et foruddefineret sæt statusovergange for et sæt roller. + label: Brug en eksisterende arbejdsgang + new: + caption: Definer manuelt en ny arbejdsgang til typen ved at vælge, hvilke statusovergange der er tilladt for hvilke roller. + label: Konfigurer en ny arbejdsgang working_days: change_button: Skift arbejdsdage dialog: diff --git a/config/locales/crowdin/de.seeders.yml b/config/locales/crowdin/de.seeders.yml index aa9511d1cac6..5d4a08dc87c9 100644 --- a/config/locales/crowdin/de.seeders.yml +++ b/config/locales/crowdin/de.seeders.yml @@ -250,70 +250,26 @@ de: In diesem Modul können Sie Projektnachrichten an Ihre Teammitglieder weiterleiten. versions: item_0: - name: Bug Backlog - item_1: - name: Produkt Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Version 1.0 content: | - ### Sprint Planungsmeeting - - _Bitte dokumentieren Sie hier Themen zum Sprint Planungsmeeting_ - - * Zeitrahmen (8 Stunden) - * Eingabe: Produkt-Backlog - * Ausgabe: Sprint-Backlog - - * Aufgeteilt in zwei zusätzliche Zeitfelder von 4 Stunden: - - * Der Product Owner stellt das [Produkt-Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) und die Prioritäten dem Team vor und erklärt das Sprint-Ziel. Dem muss das Team zustimmen. Gemeinsam priorisieren sie die Themen aus dem Produkt-Backlog, um die sich das Team im nächsten Sprint kümmern wird. Das Team verpflichtet sich zur diskutierten Auslieferung. - * Das Team plant eigenständig (ohne den Produkteigentümer) und unterteilt die Aufgaben aus den diskutierten Anforderungen zur Konsolidierung eines [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Tägliches Scrum Meeting + ### Release 1.0 - _Bitte dokumentieren Sie hier Themen zum täglichen Scrum Meeting_ + _Bitte dokumentieren Sie hier, was diese Version enthält._ - * Kurze, tägliche Status-Sitzung des Teams. - * Zeitrahmen (max. 15 Minuten). - * Stand-up-Meeting, um die folgenden Themen vom [Task Board](##sprint:scrum_project__version__sprint_1). - * Was mache ich bis zum nächsten täglichen Scrum? - * Was hat meine Arbeit blockiert (Impediments)? - * Scrum Master moderiert [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Der Product Owner kann optional teilnehmen, um auf dem Laufenden zu bleiben. - - ### Sprint Review Meeting - - _Bitte dokumentieren Sie hier Themen zum Sprint Review Meeting_ - - * Zeitrahmen (4 Stunden). - * Maximal eine Stunde Vorbereitungszeit pro Person. - * Das Team zeigt dem Product Owner und anderen beteiligten Personen (Stakeholder), was in diesem Sprint erreicht wurde. - * Wichtig: Keine Attrappen und kein PowerPoint! - * Feedback von Product Ownern, Stakeholdern und anderen ist gewünscht und wird in die weitere Arbeit aufgenommen. - * Basierend auf den nachgewiesenen Funktionalitäten entscheidet sich der Product Owner, diesen Stand abzunehmen oder weiterzuentwickeln. Diese Möglichkeit ermöglicht eine frühzeitige ROI. - - - ### Sprint Retrospektive - - _Bitte dokumentieren Sie hier Themen zum Sprint Retrospektive Meeting_ - - * Zeitrahmen (3 h). - * Erfolgt nach dem Sprint Review und wird vom Scrum Master moderiert. - * Das Team diskutiert den Sprint: Was gut gelaufen ist sowie was verbessert werden muss, um für den nächsten Sprint produktiver zu sein oder sogar noch mehr Spaß zu haben. - item_3: - name: Sprint 2 + * Die Arbeitspakete dieses Releases sind diejenigen mit der Version 1.0. + * Das Veröffentlichungsdatum ist das Datum des Meilensteins *Version v1.0*. + * Öffnen Sie die [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap), um den Fortschritt aller Versionen zu verfolgen. + * Öffnen Sie [Projekteinstellungen → Versionen]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions), um eine andere Wiki-Seite mit einer Version zu verknüpfen. categories: item_0: Kategorie 1 (zu ändern in den Projekteinstellungen) queries: item_0: name: Projektplan item_1: - name: Produkt-Backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Aufgaben boards: @@ -345,10 +301,10 @@ de: 1. *Laden Sie neue Mitglieder zu Ihrem Projekt ein*: → Gehen Sie zu [Mitglieder]({{opSetting:base_url}}/projects/your-scrum-project/members) in der Projektnavigation. 2. *Sehen Sie sich das Product Backlog und Sprint Backlog an*: → Navigieren Sie zu [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in der Projektnavigation. - 3. *Betrachten Sie das Taskboard*: → Wechseln Sie zu [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klicken Sie auf den Pfeil auf der rechten Seiten des Sprints → Wählen Sie [Taskboard](##sprint:scrum_project__version__sprint_1). - 4. *Erstellen Sie ein neues Arbeitspaket*: → Gehen Sie zu [Arbeitspakete → Erstellen]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Erstellen und aktualisieren Sie einen Projektplan*: → Gehen Sie zu [Projektplan](##query:scrum_project__query__project_plan) in der Projektnavigation. - 6. *Erstellen Sie ein Sprint-Wiki*: → Navigieren Sie zu [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) und öffnen Sie das Sprint-Wiki aus dem rechten Dropdown-Menü des Sprints. Sie können das [Wiki Template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) basierend auf Ihren Anforderungen bearbeiten. + 3. *Erstellen sie einen Sprint*: → Wechseln Sie zu [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) und klicken Sie auf "+ Sprint" um einen neuen Sprint zu erstellen. Weisen sie Arbeitspakete vom Backlog dem Sprint zu um die anstehende Arbeit zu planen. Klicken Sie auf "Start sprint" wenn sie bereit sind. + 4. *Betrachten Sie ihr Sprint-Board*: → Gehen Sie zu [Boards]({{opSetting:base_url}}/projects/your-scrum-project/boards) → Klicken Sie auf den Namen des Boards. + 5. *Erstellen Sie ein neues Arbeitspaket*: → Gehen Sie zu [Arbeitspakete → Erstellen]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Erstellen und aktualisieren Sie einen Projektplan*: → Gehen Sie zu [Projektplan](##query:scrum_project__query__project_plan) in der Projektnavigation. 7. *Aktivieren Sie zusätzliche Module*: → Wechseln Sie zu [Projektkonfiguration → Module]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). Zusätzlich finden Sie hier unser [Nutzungshandbuch](https://www.openproject.org/de/docs/nutzungshandbuch/). diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index e7321c9465e4..50020586dec9 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -40,7 +40,9 @@ de: view: Ein dynamischer Link zu einer Ansicht, der mithilfe eines Makros eingefügt wurde. work_package: Ein dynamischer Link auf ein Arbeitspaket, der mithilfe eines Makros eingefügt wurde. account: + already_have_an_account: You already have an account? auth_source_login_html: Bitte melden Sie sich als %{login} an um Ihr Konto zu aktivieren. + continue_with_provider: Continue with %{name} delete: Konto löschen delete_confirmation: Sind Sie sicher, dass Sie das Konto löschen wollen? deletion_info: @@ -65,7 +67,9 @@ de: error_self_registration_limited_provider: 'Die Benutzerregistrierung ist für den Single Sign-On Provider ''%{name}'' eingeschränkt. Bitten Sie einen Administrator, das Konto für Sie zu aktivieren oder die Konfiguration der Selbstregistrierung für diesen Anbieter zu ändern. ' - login_with_auth_provider: oder melden Sie sich mit einem bestehenden Konto an + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Weiter zur Anmeldung omniauth_direct_login_redirecting: Sie werden zu Ihrem SSO-Anbieter weitergeleitet… omniauth_login: Bitte loggen Sie sich ein um Ihr Konto zu aktivieren. @@ -118,6 +122,8 @@ de: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM-Clients + automation: + actions: Actions calculated_value_error: customized_id: Benutzerdefinierte ID customized_type: Benutzerdefinierter typ @@ -128,8 +134,6 @@ de: repository: Projektarchiv comment: commented: Kommentiert - custom_action: - actions: Aktionen custom_field: admin_only: Nur für Administratoren allow_non_open_versions: Erlaube nicht-offene Versionen @@ -168,6 +172,7 @@ de: uid: Client-ID emoji_reaction: reactable: Reagiert am + reaction: Reaction enterprise_token: active_user_count_restriction: Aktive Nutzer encoded_token: Enterprise edition Support Token @@ -179,20 +184,44 @@ de: company: Unternehmen favorite: favorited: Favorisiert + form_configuration: + attribute_groups: Form + description: Beschreibung + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribut + custom_field: Benutzerdefiniertes Feld + group: Gruppe + position: Position + form_configuration_group: + default_key: Standardgruppe + kind: Art + label: Bezeichnung + query: Abfrage grids/grid: column_count: Anzahl der Spalten page: Seite row_count: Anzahl der Zeilen widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Benutzer der Gruppe identity_url: Identity URL organizational_unit: Organisationseinheit parent: Übergeordnete Gruppe group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organisationseinheit parent: Übergeordnete Gruppe import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Name der Jira-Instanz personal_access_token: Persönlicher Zugangs-Token url: URL der Jira-Instanz @@ -223,6 +252,7 @@ de: title: Titel member: blocked: Gesperrt + principal_type: Mitgliedschaftstyp roles: Rollen notification: read_ian: In-App lesen @@ -235,6 +265,7 @@ de: position: Position persisted_query: filters: Filter + group_bys: Gruppiere Ergebnisse nach name: Name orders: Sortierungen selects: Ausgewählte Attribute @@ -307,7 +338,7 @@ de: project_type: variant: Variante query: - child_work_packages: Unteraufgaben + child_work_packages: Kinder column_names: Spalten columns: Spalten display_representation: Anzeigemodus @@ -367,6 +398,8 @@ de: ongoing: Fortlaufend spent_on: Datum type: Art + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Zuordnung der Abfrage @@ -384,19 +417,17 @@ de: type_variant: attribute_groups: Formular default_work_package_description: Standardtext für Beschreibung - defaults_source: Standardquelle enabled_in_new_projects: Aktiv in neuen Projekten - form_configuration_source: Formularquelle + linked_aspects: Vererbte Konfiguration patterns: Muster - pdf_export_source: Quelle für den PDF-Export - project_attributes_source: Quelle der Projektattribute project_types: Projekte mit dieser Variante variant: Variante variant_name: Name - workflows_source: Quelle für Workflows + workflow: Workflow user: admin: Administrator auth_source: Authentifizierungsquelle + avatar_type: Avatar type consented_at: Eingewilligt am current_password: Aktuelles Passwort department: Abteilung @@ -410,7 +441,7 @@ de: last_name: Nachname ldap_auth_source: LDAP-Verbindung new_password: Neues Kennwort - password_confirmation: Bestätigung + password_confirmation: Password confirmation user_custom_field: custom_field_section: Abschnitt user_non_working_time: @@ -419,11 +450,15 @@ de: user_preference: auto_hide_popups: Erfolgsbannern automatisch ausblenden auto_hide_popups_caption: Wenn diese Funktion aktiviert ist, verschwinden die grünen Erfolgsbanner automatisch nach 5 Sekunden. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Warnmeldungen aktualisieren button_update_look_and_feel: Erscheinungsbild und Bedienverhalten aktualisieren button_update_user_information: Profil aktualisieren comments_sorting: Arbeits­paket­aktivität anzeigen, sortiert nach daily_reminders: Tägliche Erinnerungen + date_format: Date format disable_keyboard_shortcuts: Tastaturkürzel deaktivieren dismissed_enterprise_banners: Ausgeblendete Unternehmensbanner force_dark_theme_contrast: Hohen Kontrast im Dunkel-Modus erzwingen @@ -434,13 +469,23 @@ de: header_look_and_feel: Erscheinungsbild und Bedienverhalten impaired: Für die barrierefreie Nutzung optimierte Oberfläche increase_contrast: Kontrast erhöhen - increase_contrast_caption: Aktiviere hohen Kontrast für den gewählten Farbmodus. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Kontrast erhöhen mode_guideline: Einige Modi überschreiben benutzerdefinierte Theme-Farben zur Verbesserung von Barrierefreiheit und Lesbarkeit. Bitte wählen Sie den Hellmodus für die vollständige Unterstützung Ihres benutzerdefinierten Themes. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Farbmodus + time_format: Time format time_zone: Zeitzone warn_on_leaving_unsaved: Beim Verlassen einer Arbeitspaket-Seite mit ungespeichertem Text warnen workdays: Arbeitstage + user_resource: + description: Beschreibung + name: Name + user_filter: Benutzerfilter + user_resource_detail: + description: Beschreibung + user_filter: Benutzerfilter user_working_hours: availability_factor: Verfügbarkeitsfaktor days: Arbeitstage @@ -491,6 +536,7 @@ de: title: Werktage true: Mit Wochenenden journal_internal: Internes Journal + labels: Bezeichnungen notify: Benachrichtigung observed_in_versions: Festgestellt in Versionen parent: Übergeordnetes Arbeitspaket @@ -519,6 +565,10 @@ de: work_package: Arbeitspaket work_package_version: kind: Art + workflow: + description: Beschreibung + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: muss akzeptiert werden. @@ -590,6 +640,8 @@ de: regex_invalid: konnte nicht mit dem zugehörigen regulären Ausdruck überprüft werden. regex_list_invalid: Die Zeilen %{invalid_lines} konnten nicht als regulärer Ausdruck gelesen werden. regex_match_failed: stimmt nicht mit dem regulären Ausdruck %{expression} überein. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: muss kleiner als oder gleich der maximalen Länge sein. smaller_than_or_equal_to_max_value: muss kleiner oder gleich dem maximal erlaubtem Wert sein. ssrf_filtered: verstößt gegen die SSRF-Richtlinien dieser OpenProject Instanz. @@ -612,6 +664,10 @@ de: user_in_ldap_managed_department: Dieser Benutzer gehört zu einer Abteilung, die über die LDAP synchronisiert wird, und kann nicht verschoben werden. wrong_length: hat die falsche Länge (muss genau %{count} Zeichen haben). models: + ai/text_transform_run: + attributes: + base: + not_available: Diese Aktion ist nicht verfügbar. attachment: attributes: content_type: @@ -672,6 +728,16 @@ de: general_consent: Bitte akzeptieren Sie die Nutzungs- und Vertragsbedingungen. favorite: already_favorited: wurde bereits favorisiert. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Ungültige Arbeitspaket-Attribute verwendet. + attribute_unknown_name: 'Ungültige Arbeitspaket-Attribute verwendet: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Gruppenname darf nicht leer sein. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: der Endwert muss größer sein als der Startwert. outside: ist außerhalb des Rasters. @@ -689,6 +755,13 @@ de: not_unique: ist bereits in Gebrauch. Bitte wählen Sie einen anderen Namen aus. jira: invalid_protocol: Bitte geben Sie ein gültiges Protokoll an (http oder https) + label: + attributes: + name: + blank: Name darf nicht leer sein. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ de: types: cannot_assign_multiple_variants_of_parent: Nur eine einzige Variante eines Typs kann im Projekt aktiv sein cannot_assign_variant_and_parent: 'Eine Variante und deren übergeordnete Variante können nicht beide aktiv sein ' - cannot_assign_variants_yet: Varianten können derzeit noch nicht auf Projektebene aktiviert werden. Aktivieren Sie das Feature Flag, um Varianten auszuprobieren in_use_by_work_packages: 'wird noch genutzt von folgenden Arbeitspaketen: %{types}' switch_target_blank: Wählen Sie die Variante aus, zu der Sie wechseln möchten switch_target_identical: Der Zieltyp muss sich von dem Typ unterscheiden, den das Projekt derzeit verwendet @@ -857,42 +929,26 @@ de: blank: Bitte geben Sie einen Namen für den Token an format: "%{message}" in_use: Dieser Token-Name ist bereits in Verwendung, bitte wählen Sie einen anderen + type: + attributes: + base: + in_use_by_work_packages: Dieser Typ kann nicht gelöscht werden, während Arbeitspakete ihn noch verwenden. type_variant: attributes: - attribute_groups: - attribute_unknown: Ungültige Arbeitspaket-Attribute verwendet. - attribute_unknown_name: 'Ungültige Arbeitspaket-Attribute verwendet: %{attribute}' - duplicate_group: Der Gruppen-Name '%{group}' wird mehr als einmal verwendet. Gruppen-Namen müssen eindeutig sein. - group_without_name: Gruppenname darf nicht leer sein. - query_invalid: 'Die eingebettete Ansicht ''%{group}'' ist ungültig: %{details}' base: - borrowed_by_variants: Kann nicht gelöscht werden, solange die Konfiguration noch von %{names} verwendet wird. is_default_variant: Die Standardkonfiguration eines Typs kann nicht gelöscht werden. project_variants_not_allowed: Bei diesem Typ ist die Erstellung von Varianten innerhalb von Projekten nicht zulässig. restrict_dependent_destroy: has_many: Kann nicht gelöscht werden, solange es noch in Projekten verwendet wird. - defaults_source_id: - must_be_available_to_the_variant: muss sich um eine Konfiguration handeln, die dieses Projekt verwenden kann. - would_create_cycle: würde diese Konfigurationen zu einer Schleife verbinden. enabled_in_new_projects: not_available_to_project_owned_variant: kann nicht für eine Variante festgelegt werden, die zu einem Projekt gehört. taken: ist bereits für eine andere Variante dieses Typs aktiv. - form_configuration_source_id: - must_be_available_to_the_variant: muss sich um eine Konfiguration handeln, die dieses Projekt verwenden kann. - would_create_cycle: würde diese Konfigurationen zu einer Schleife verbinden. patterns: invalid_tokens: Ein oder mehrere Attribute des Feldes sind ungültig. Bitte korrigieren Sie die Attribute vor dem Speichern. - pdf_export_source_id: - must_be_available_to_the_variant: Es muss sich um eine Konfiguration handeln, die dieses Projekt verwenden kann. - would_create_cycle: würde diese Konfigurationen zu einer Schleife verbinden. - project_attributes_source_id: - must_be_available_to_the_variant: muss sich um eine Konfiguration handeln, die dieses Projekt verwenden kann. - would_create_cycle: würde diese Konfigurationen zu einer Schleife verbinden. variant: must_belong_to_the_type: muss eine Variante dieses Typs sein. - workflows_source_id: - must_be_available_to_the_variant: muss sich um eine Konfiguration handeln, die dieses Projekt verwenden kann. - would_create_cycle: würde diese Konfigurationen zu einer Schleife verbinden. + workflow: + not_available_to_this_variant: muss ein Workflow sein, den dieses Projekt nutzen kann. user: attributes: base: @@ -906,8 +962,8 @@ de: numeric: Ziffern (z.B. '1') requirements_not_met: 'Muss Zeichen der folgenden Klassen enthalten: %{rules}' reused: - one: wurde schon benutzt. Bitte wählen Sie ein Passwort, das sich von dem letzten unterscheidet. - other: wurde bereits verwendet. Bitte wählen Sie eines, das sich von Ihren letzten %{count} unterscheidet. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: Sonderzeichen (z.B. '%') uppercase: Großbuchstaben (z.B. 'A') password_confirmation: @@ -976,6 +1032,8 @@ de: identifier: must_not_be_changed: 'darf nicht manuell geändert werden. Arbeitspaket-Kennungen werden automatisch zugewiesen und über eine Alias-Tabelle aufgelöst. Eine manuelle Änderung führt daher zum Bruch von Verknüpfungen und zur Unterbrechung der Identifikator-Historie. Sollte diese Änderung beabsichtigt sein, speichern Sie sie mit `save(context: :%{context})` und sorgen Sie dafür, dass die Tabelle „work_package_semantic_aliases“ konsistent bleibt.' semantic_identifier_incomplete: und sequence_number müssen beide gleichzeitig gesetzt werden. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: darf nicht in einem anderen Projekt sein. cannot_be_milestone: darf kein Meilenstein sein. @@ -1003,16 +1061,18 @@ de: status_id: status_invalid_in_type: ist ungültig, da der aktuelle Status nicht in diesem Typ vorhanden ist. status_transition_invalid: ist ungültig, da kein valider Übergang vom alten zum neuen Status für die aktuelle Rolle des Nutzers existiert. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: - cannot_be_milestone_due_to_children: kann kein Meilenstein werden, da dieses Arbeitspaket Unteraufgaben besitzt. + cannot_be_milestone_due_to_children: kann kein Meilenstein werden, da dieses Arbeitspaket Unterelemente besitzt. is_not_a_valid_target_for_time_entries: 'Arbeitspaket #%{id} ist kein gültiges Ziel für die Zuordnung der Zeiterfassungseinträge.' readonly_status: Das Arbeitspaket befindet sich in einem schreibgeschützten Status, so dass seine Attribute nicht geändert werden können. target_versions_only_allow_single_value: Zielversionen können nur einen einzigen Wert enthalten. template: body: 'Bitte überprüfen Sie die folgenden Felder:' header: - one: 'Dieses %{model}-Objekt konnte nicht gespeichert werden: 1 Fehler.' - other: "%{count} Fehler haben das Speichern dieses %{model} verhindert" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Aktion @@ -1050,6 +1110,9 @@ de: auth_provider: one: Authentifizierungsanbieter other: Authentifizierungsanbieter + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ de: comment: one: Kommentar other: Kommentare - custom_action: - one: Benutzerdefinierte Aktion - other: Benutzerdefinierte Aktionen custom_field: one: Benutzerdefiniertes Feld other: Benutzerdefinierte Felder @@ -1119,6 +1179,9 @@ de: export_setting: one: Exporteinstellungen other: Exporteinstellungen + form_configuration: + one: Form + other: Forms forum: one: Forum other: Foren @@ -1137,6 +1200,9 @@ de: issue_priority: one: Priorität other: Prioritäten + label: + one: Label + other: Labels ldap_auth_source: one: LDAP-Verbindung other: LDAP-Verbindungen @@ -1401,7 +1467,28 @@ de: admin: banners: environment_configured_readonly: Diese Werte werden über Umgebungsvariablen konfiguriert und können hier nicht bearbeitet werden. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Logo für dunklen Modus + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Logo für hellen Modus + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: Logo für Hochkontrastmodus color_groups: base_colors: Grundfarben main_menu: Haupt-Seitenmenü @@ -1434,9 +1521,13 @@ de: tab_interface: Benutzeroberfläche tab_pdf_export_font: Schriftart für den PDF-Export tab_pdf_export_styles: PDF-Exportstile - theme_warning: Das Ändern des Themes wird Ihr benutzerdefiniertes Design überschreiben. Alle Änderungen werden dann verloren gehen. Sind Sie sicher, dass Sie fortfahren möchten? + theme_warning: + confirmation: Mir ist klar, dass dieser Vorgang nicht rückgängig gemacht werden kann + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Farbschema ändern? + title: Farbschema ändern enterprise: - add_token: Enterprise-Edition Support Token hochladen + add_token: Enterprise edition Support Token hochladen book_now: Jetzt buchen buttons: contact: Kontaktieren Sie uns für eine Demo @@ -1453,9 +1544,9 @@ de: enterprise_link: Klicken Sie hier für weitere Informationen. get_quote: Angebot anfordern order: Enterprise on-premises bestellen - paste: Enterprise-Edition Support Token hier einfügen + paste: Enterprise edition Support Token hier einfügen replace_token: Aktuellen Enterprise edition Support Token ersetzen - required_for_feature: Dieses Add-on ist nur mit einem aktiven Enterprise-Edition Support-Token verfügbar. + required_for_feature: Dieses Add-on ist nur mit einem aktiven Enterprise edition Support-Token verfügbar. start_trial: Kostenlose Testversion starten status: expired: Abgelaufen @@ -1467,7 +1558,7 @@ de: import: title: Import info: - database_deprecation_html: 'Ab OpenProject 16.0 ist PostgreSQL 16 erforderlich, um OpenProject zu verwenden. Ihre Installation bleibt mit Ihrer aktuellen Datenbank funktionsfähig, aber rechnen Sie mit Inkompatibilitäten in zukünftigen Versionen.
Wir haben [Upgrade-Anleitungen für alle Installationsmethoden](upgrade_guide) vorbereitet. Sie können das Upgrade jederzeit vor der nächsten Version durchführen, indem Sie die Anleitungen befolgen. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc Speicher allocator @@ -1475,12 +1566,15 @@ de: actions: button_edit: Konfiguration bearbeiten button_open: Offene Importe + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Bitte helfen Sie uns, den Jira Migrator mit Ihrem Feedback und Ihren privaten Datenspenden zu verbessern. Sie können [der Entwicklergemeinschaft](link) des Jira Migrator beitreten. ' description: Dieser Jira Migrator befindet sich derzeit in der Beta-Phase. Wir unterstützen derzeit nur Jira Server/Data Center Versionen 10.x und 11.x. Cloud-Instanzen werden derzeit nicht unterstützt. title: Beta - Probieren Sie es aus! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Konfigurieren Sie einen Jira-Host, um mit dem Import von Elementen aus Jira in diese OpenProject-Instanz zu beginnen. title: Noch keine Jira-Hosts konfiguriert @@ -1513,16 +1607,30 @@ de: description: Jira verwendet Ticketkennungen, die aus einem Projektschlüssel und einer Sequenznummer bestehen (PRJ-123). OpenProject unterstützt dies ebenfalls, die Funktion muss aber [hier aktiviert werden](link). title: Projektspezifische semantische Kennungen müssen aktiviert sein. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Konfiguration hinzufügen - button_delete_token: Token löschen + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Konfiguration speichern - delete_token_confirm: Sind Sie sicher, dass Sie das Token löschen möchten? Dies wird die Verbindung zu Jira deaktivieren. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Persönlicher Zugangs-Token + personal_access_token: Personal access token (PAT) url: Jira Server/Datencenter URL label_testing: Teste Konfiguration... - test_configuration_caption: Sie können die Konfiguration testen, indem sie [hier klicken](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Import bearbeiten @@ -1626,26 +1734,26 @@ de: title: Bitte stellen Sie sicher, dass Sie ein Backup haben! parts: issues: - one: 1 Ticket - other: "%{count} Tickets" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 Projekt - other: "%{count} Projekte" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 Status - other: "%{count} Statusse" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 Typ - other: "%{count} Typen" + one: "%{count} type" + other: "%{count} types" users: - one: 1 Konto - other: "%{count} Konten" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 Arbeitspaket - other: "%{count} Arbeitspakete" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Mir ist bewusst, dass diese Rückgängigmachung die Daten dauerhaft löscht description: Dadurch werden alle importierten Objekte (einschließlich ganzer Projekte) gelöscht. @@ -1710,8 +1818,8 @@ de: caption: Wählen Sie, was Sie in OpenProject importieren möchten caption_done: Abgeschlossen caption_done_description: - one: 1 Projekt als Umfang ausgewählt - other: "%{count} Projekte als Anwendungsbereich ausgewählt" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Wählen Sie aus den verfügbaren Daten, die Sie aus der Host-Jira-Instanz abrufen, die Daten aus, die Sie importieren möchten. elements: custom_fields: Ein Teil der benutzerdefinierten Felder @@ -1775,23 +1883,53 @@ de: rest_line_text: Downloading attachments for %{projects_number} more projects title: Anhänge herunterladen test: - api_error: Jira API hat den Fehlerstatus %{status} zurückgegeben. Bitte überprüfen Sie die URL Ihrer Jira-Instanz und Ihr API-Token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Verbindungsfehler: %{message}' error: Beim Testen der Verbindung ist ein unerwarteter Fehler aufgetreten failed: 'Verbindung fehlgeschlagen: Serverinformationen können nicht abgerufen werden' invalid_url: Bitte eine gültige URL eingeben - missing_credentials: Bitte geben Sie sowohl URL als auch Persönliches Zugangs-Token an, um die Verbindung zu testen parse_error: Die Antwort des Servers konnte nicht gelesen werden. Der Server ist möglicherweise keine gültige Jira-Instanz. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Erfolgreich verbunden mit %{server} (Version %{version}) - token_error: Ungültiger API-Token. Bitte überprüfen Sie Ihre Zugangsdaten in der Konfiguration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token wurde erfolgreich gelöscht. user: unknown_name: Unbekannt journal_aggregation: caption_with_maximum: 'Benutzeraktionen an einem Arbeitspaket (Ändern der Beschreibung, des Status, der Werte oder Schreiben von Kommentaren) werden gruppiert, wenn sie innerhalb dieses Zeitraums durchgeführt werden. Sie steuert auch die Verzögerungen bei Benachrichtigungen und [webhook](webhook_link). Der maximal zulässige Wert ist %{max} Minuten. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Diese Bezeichnung löschen? + title: Diese Bezeichnung löschen? + dialog_component: + create_title: Bezeichnung erstellen + rename_title: "„%{name}“ umbenennen" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} Arbeitspaket" + other: "%{count} Arbeitspakete" + sub_header_component: + button_add: Bezeichnung + label_add: Bezeichnung hinzufügen + search_placeholder: Zum Suchen hier eingeben + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: Noch keine Bezeichnungen + headers: + name: Bezeichnung + usage: Verwendet in + no_matches: + description: Versuchen Sie es mit einem anderen Suchbegriff. + title: No labels match your search mcp_configurations: index: description: Das Model Context Protocol ermöglicht es KI-Agenten, ihren Nutzern Tools und Ressourcen bereitzustellen, die diese OpenProject-Instanz zur Verfügung stellt. Die Funktion befindet sich noch in der Beta-Phase. @@ -1822,6 +1960,18 @@ de: update: failure: Die MCP-Konfiguration konnte nicht aktualisiert werden. success: Die MCP-Konfiguration wurde erfolgreich aktualisiert. + members: + index: + blank_description: Keine Mitgliedschaft entspricht dem aktuellen Filter. + blank_title: Keine Mitgliedschaften + filter_label: Benutzer suchen + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Mitgliedschaften + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Weitere Informationen finden Sie auf unserer Seite für Integrationen und Plugins. no_results_title_text: Es sind derzeit keine Plugins installiert. @@ -1835,8 +1985,8 @@ de: confirm_button: Kennung freigeben description: Die Freigabe dieser Kennung kann nicht rückgängig gemacht werden. Externe Links und Integrationen, die diese Kennung verwenden, werden nicht mehr aufgelöst, und der Name wird für neue Projekte verfügbar, die ihn beansprucht. description_with_work_packages: - one: Die Freigabe dieser Kennung (und einer zugehörigen Arbeitspaketkennung) kann nicht rückgängig gemacht werden. Externe Links und Integrationen, die diese Kennung verwenden, werden nicht mehr aufgelöst, und der Name wird für neue Projekte verfügbar, die ihn beansprucht. - other: Die Freigabe dieser Kennung (und %{count} zugehörigen Arbeitspaketkennungen) kann nicht rückgängig gemacht werden. Externe Links und Integrationen, die diese Kennung verwenden, werden nicht mehr aufgelöst, und der Name wird für neue Projekte verfügbar, die ihn beansprucht. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: '"%{identifier}" freigeben?' title: Kennung freigeben empty_body: Wenn sich die Projektkennung ändert, wird die vorherige Kennung hier angezeigt, damit Sie diese freigeben können, sobald es sicher ist. @@ -1964,8 +2114,8 @@ de: error_unknown: Benötigt manuelle Überprüfung error_used_in_past: Reserviert durch eine frühere Kennung eines anderen Projekts remaining_projects: - one: "... 1 weiteres Projekt" - other: "... %{count} weitere Projekte" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Vorhandene Kennungen für %{project_count} Projekte entsprechen nicht den Anforderungen für projektbasierte alphanumerische Bezeichner. OpenProject kann diese automatisch aktualisieren, so dass sie wie in den folgenden Beispielen gültig sind. Klicken Sie auf ''Kennung konvertieren'', um die Kennungen für alle Projekte auf diese Weise zu aktualisieren und projektbasierte alphanumerische Bezeichner zu aktivieren. @@ -2005,7 +2155,7 @@ de: types_caption: Fügen Sie Arbeitspakettypen hinzu, für die diese Aktion verfügbar sein soll. Alle verfügbaren Varianten eines Typs werden automatisch hinzugefügt. usage_scope_caption: 'Sie können festlegen, wo diese Aktion sichtbar sein soll: überall (einschließlich Kommentaren, Wikis und benutzerdefinierten Feldern), für alle Arten von Arbeitspaketen oder für bestimmte Arten von Arbeitspaketen.' index: - description: Mit Textumwandlungsaktionen stehen Ihnen LLM-gestützte Aktionen zum Verfassen, Organisieren und Überprüfen von Texten zur Verfügung, in jedem Rich-Text-Editor zur Verfügung, beispielsweise bei Arbeitspaketbeschreibungen, Kommentaren und Wiki-Seiten. Sie erstellen neue Aktionen anhand Ihrer eigenen Eingabeaufforderungen und Anweisungen. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Aktion label_aria_add_action: Text-Bearbeitungs-Aktion hinzufügen index_component: @@ -2038,13 +2188,20 @@ de: ignore: Änderungen ignorieren save: Änderungen speichern und fortfahren title: Änderungen speichern, bevor Sie fortfahren? + read_only: + edit_action: Workflow bearbeiten + text_html: 'Sie verwenden einen bestehenden Workflow. Um Änderungen vorzunehmen, bearbeiten Sie entweder den ursprünglichen Workflow oder klicken Sie oben auf „+ %{action}“ , um einen neuen zu erstellen. + + ' role_selector: label: 'Rolle: %{role}' no_role: Rolle auswählen roles: - one: Eine Rolle ausgewählt - other: "%{count} Rollen ausgewählt" + one: "%{count} role selected" + other: "%{count} roles selected" title: Rollen auswählen + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Status hinzufügen oder entfernen, die Sie mit diesem Typ verknüpfen möchten. Das Entfernen eines Status löscht auch den damit verbundenen Workflow. @@ -2054,8 +2211,8 @@ de: confirm: Entfernen description: Wenn Sie diese Status entfernen, stehen sie für diesen Typ nicht mehr zur Verfügung und bestehende Workflows werden gelöscht. Sind Sie sicher, dass Sie fortfahren möchten? heading: - one: Diesen Status entfernen? - other: "%{count} Status entfernen?" + one: Remove %{count} status? + other: Remove %{count} statuses? title: Status entfernen tabs: always: Standard-Übergänge @@ -2067,7 +2224,31 @@ de: assignee: Zusätzliche Übergänge, die dem zugewiesenen Benutzer des Arbeitspakets zur Verfügung stehen. author: Zusätzliche Übergänge, die dem Author des Arbeitspakets zur Verfügung stehen. menu_label: Dargestellte Übergänge + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: Der KI-Dienst konnte nicht erreicht werden. + not_available: Der KI-Assistent ist nicht verfügbar. + timeout: Der KI-Dienst hat nicht rechtzeitig geantwortet. + upstream_error: Der KI-Dienst hat eine Fehlermeldung zurückgegeben. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Inhalt is_active: derzeit angezeigt is_inactive: derzeit nicht angezeigt show_until: Anzeigen bis @@ -2075,7 +2256,7 @@ de: deleted_by_admin: Die unter Quarantäne gestellte Datei '%{filename}' wurde von einem Administrator gelöscht. deleted_message: In der Datei '%{filename}' wurde ein Virus entdeckt. Die Datei wurde gelöscht. not_processed_yet_message: Das Herunterladen ist blockiert, da die Datei noch nicht auf Viren gescannt wurde. Bitte versuchen Sie es später noch einmal. - overridden_by_admin: Die Quarantäne für die Datei '%{filename}' wurde von %{user} entfernt. Auf die Datei kann nun zugegriffen werden. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Unter Quarantäne gestellte Datei löschen @@ -2129,10 +2310,6 @@ de: not_found: reminder: Die Erinnerung konnte nicht gefunden werden oder wurde gelöscht. work_package: Das von Ihnen gesuchte Arbeitspaket konnte nicht gefunden werden oder wurde gelöscht. - render: - context_not_parsable: Der übergebene Kontext ist kein Link zu einer Ressource. - context_object_not_found: Die als Kontext übergebene Ressource konnte nicht gefunden werden. - unsupported_context: Die übergebene Ressource wird nicht als Kontext unterstützt. unable_to_create_attachment: Der Anhang konnte nicht erstellt werden unable_to_create_attachment_permissions: Der Anhang konnte aufgrund fehlender Dateisystemberechtigungen nicht gespeichert werden user: @@ -2203,6 +2380,7 @@ de: groups: Gruppen hexcode: Fabcode (Hex) id: ID + inexistent: Existiert nicht is_default: Standardwert is_for_all: Für alle Projekte issue: Arbeitspaket @@ -2253,6 +2431,7 @@ de: updated_at: Aktualisiert am updated_on: Aktualisiert am uploader: Bereitgestellt von + url: URL user: Benutzer username: Benutzername value: Wert @@ -2267,6 +2446,29 @@ de: ' login_and_registration: Anmeldung und Registrierung + automations: + actions: + add: Aktion hinzufügen + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Aktionen + conditions: Bedingungen + edit: Automatisierung %{name} bearbeiten + new: Neue Automatisierung + plural: Automatisierungen + summary: + if: Falls + none: Keine + then: Dann + title: Zusammenfassung + when: Wann + trigger: Auslöser + triggers: + button: + button_label: Button label + label: Tastendruck + more_coming: OpenProject will add more trigger types soon. + name: Auslöser background_jobs: status: cancelled_due_to: 'Job wurde aufgrund eines Fehlers abgebrochen: %{message}' @@ -2395,6 +2597,7 @@ de: button_set_reminder: Erinnerung einrichten button_show: Anzeigen button_sort: Sortierung + button_stop_timer: Timer stoppen button_submit: OK button_test: Testen button_unarchive: Entarchivieren @@ -2461,9 +2664,9 @@ de: text: failed: Das Projekt "%{source_project_name}" konnte nicht nach "%{target_project_name}" kopiert werden. succeeded: Das Projekt "%{source_project_name}" wurde nach "%{target_project_name}" kopiert. - title: Projekt "%{source_project_name} " kopieren + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Ein Objekt dieses Typs + one: "%{count} object of this type" other: '"%{count}" Ein Objekt dieses Typs' zero: Kein Inhalt dieser Art. create_portfolio: @@ -2501,13 +2704,9 @@ de: plural: Benutzerdefinierte Aktionen custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Dieses Projekt-Attribut ist in allen Projekten aktiviert, da die Option "Für alle Projekte" aktiviert ist. Es kann nicht für einzelne Projekte deaktiviert werden. - heading: Für alle Projekte hierarchy: subitems: - one: 1 Unterelement + one: "%{count} sub-item" other: "%{count} Unterelemente" zero: keine Unterelemente items: @@ -2528,7 +2727,7 @@ de: short: Kurzname weight: Gewichtung notice: - remember_items_and_projects: Denken Sie daran, Einträge und Projekte in den jeweiligen Registerkarten für dieses benutzerdefinierte Feld festzulegen. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Sie können jedem Benutzer, dem dieses Projektattribut zugewiesen wurde, automatisch eine bestimmte Projektrolle zuweisen, unabhängig von der ursprünglichen Rolle dieses Benutzers in diesem Projekt. dialog: @@ -2593,16 +2792,17 @@ de: is_enabled_globally: Für alle Projekte aktiviert multi_value_more: other: und %{count} weitere + no_results_title_text: There are currently no custom fields. no_role_assigment: Keine Rollenzuweisung + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Einstellungen verschoben placeholder_version_select: Zunächst muss ein Arbeitspaket oder ein Projekt ausgewählt werden reorder_alphabetical: Alphabetisch umsortieren reorder_confirmation: 'Warnung: Die aktuelle Reihenfolge der verfügbaren Werte sowie alle nicht gespeicherten Werte gehen verloren. Sind Sie sicher, dass Sie fortfahren möchten?' semantic_keys: job_title: Stellenbezeichnung none: Keine - tab: - no_results_content_text: Neues benutzerdefiniertes Feld anlegen - no_results_title_text: Zur Zeit existieren keine benutzerdefinierten Felder. text_add_new_custom_field: 'Um neue benutzerdefinierte Felder einem Projekt zuzuweisen, müssen Sie diese erst global erstellen, um Sie dann an dieser Stelle aktivieren zu können. ' @@ -2666,57 +2866,57 @@ de: datetime: distance_in_words: about_x_hours: - one: etwa 1 Stunde - other: etwa %{count} Stunden + one: about %{count} hour + other: about %{count} hours about_x_months: - one: etwa 1 Monat - other: etwa %{count} Monate + one: about %{count} month + other: about %{count} months about_x_years: - one: etwa 1 Jahr - other: etwa %{count} Jahre + one: about %{count} year + other: about %{count} years almost_x_years: - one: fast 1 Jahr - other: fast %{count} Jahre + one: almost %{count} year + other: almost %{count} years half_a_minute: eine halbe Minute less_than_x_minutes: one: weniger als 1 Minute other: weniger als %{count} Minuten less_than_x_seconds: - one: weniger als eine Sekunde - other: weniger als %{count} Sekunden + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: mehr als ein Jahr - other: mehr als %{count} Jahre + one: over %{count} year + other: over %{count} years x_days: - one: 1 Tag - other: "%{count} Tage" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 Stunde - other: "%{count} Stunden" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 Std. - other: "%{count} Std." + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 Minute - other: "%{count} Minuten" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 Min. - other: "%{count} Min." + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 Monat - other: "%{count} Monate" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 Sekunde - other: "%{count} Sekunden" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 Sek. - other: "%{count} Sek." + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 Woche - other: "%{count} Wochen" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 Jahr - other: "%{count} Jahre" + one: "%{count} year" + other: "%{count} years" units: day: one: Tag @@ -2866,8 +3066,8 @@ de: teaser: description_html: Sie haben Zugriff auf alle Funktionen von %{trial_plan}. title: - one: Ein Tag des %{trial_plan} Test-Token verbleibend - other: "%{count} verbleibende Tage des %{trial_plan} Test-Tokens" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Ihr Test-Enterprise-Token wurde bereits abgerufen. Bitte überprüfen Sie Ihre E-Mails auf das beigefügte Enterprise-Token. Bitte wenden Sie sich an unser Support-Team, wenn Sie Hilfe benötigen. @@ -3020,7 +3220,7 @@ de: error_custom_option_not_found: Option ist nicht vorhanden. error_enterprise_activation_user_limit: Ihr Konto konnte nicht aktiviert werden (Nutzerlimit erreicht). Bitte kontaktieren Sie Ihren Administrator um Zugriff zu erhalten. error_enterprise_plan_needed: Sie benötigen den Enterprise-Plan %{plan}, um diese Aktion durchzuführen. - error_enterprise_token_invalid_domain: Die Enterprise-Edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected}). + error_enterprise_token_invalid_domain: Die Enterprise edition ist nicht aktiv. Die aktuelle Domain (%{actual}) entspricht nicht dem erwarteten Hostnamen (%{expected}). error_external_authentication_failed_message: 'Die externe Authentifizierung ist fehlgeschlagen: %{message}' error_failed_to_delete_entry: Fehler beim Löschen dieses Eintrags. error_in_dependent: 'Fehler beim Versuch, abhängiges Objekt zu ändern: %{dependent_class} #%{related_id} - %{related_subject}: %{error}' @@ -3204,9 +3404,150 @@ de: selected: Ausgewählt include_sub_items: Unterelemente einbeziehen no_results_text: Keine Ergebnisse + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Standard + mark: Als Standard festlegen + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Kopieren von + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Beschreibung + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Aktionen für %{name} + rename: Name und Beschreibung bearbeiten + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projekte + types_and_variants: Typen und Varianten + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Projekte filtern … + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (einschließlich %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Standard)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Startpunkt + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Von Grund auf neu beginnen + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variante von %{type} + variants: Varianten + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Zur Zeit existieren keine Forumseinträge für dieses Forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3231,6 +3572,8 @@ de: groups: edit: synchronized_groups: Synchronisierte Gruppen + form: + group_attributes: Group attributes index: description: Durch die Gruppierung von Benutzern können Sie diese den gleichen globalen Rollen oder den gleichen Projekten als Mitglieder zuweisen. memberships: @@ -3256,6 +3599,10 @@ de: leave_project: Projekt verlassen no_favorite_projects: Sie haben keine favorisierten Projekte. title: Projekte + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ de: summary: failure: Einige Überprüfungen sind fehlgeschlagen und das System funktioniert nicht wie erwartet. success: Alle Verbindungen und Systeme funktionieren wie erwartet. - warning: Einige Überprüfungen ergaben eine Warnung. Dies kann zu unerwartetem Verhalten führen. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Fehlgeschlagen @@ -3278,7 +3625,7 @@ de: warning: Warnung help_texts: views: - favoured: Markiert diese Ansicht als Favorit und fügt sie der linken Seitenleiste hinzu. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} sind immer einem Projekt zugeordnet. Sie können hier nur Projekte auswählen, bei denen das %{plural} -Modul aktiv ist. Nach dem Erstellen eines %{singular} können Sie Arbeitspakete aus anderen Projekten hinzufügen.\n" public: Veröffentlichen Sie diese Ansicht und erlauben Sie anderen Benutzern, auf sie zuzugreifen. Benutzer mit der Berechtigung "Öffentliche Ansichten verwalten" können öffentliche Abfragen ändern oder entfernen. Dies hat keinen Einfluss auf die Sichtbarkeit von Arbeitspaketen in dieser Ansicht und je nach Berechtigung, können Benutzer unterschiedliche Ergebnisse sehen. homescreen: @@ -3303,6 +3650,31 @@ de: line_6: Datumsbenachrichtigungen in der Community Edition verwenden. new_features_title: 'Dieses Release enthält verschiedene neue Funktionen und Verbesserungen, wie z. B: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Lesen Sie über neue Funktionen und Updates. learn_about: Erfahren Sie mehr über die neuen Funktionen @@ -3339,8 +3711,10 @@ de: journals: cause_descriptions: budget_deleted: Budget wurde gelöscht + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} geändert (%{link})" + csv: aus CSV deleted_with_diff: "%{field} gelöscht (%{link})" field_changed: "%{field} geändert von %{old_value} zu %{new_value}" field_removed: "%{field} entfernt" @@ -3354,7 +3728,7 @@ de: meeting_series_backlog_html: Backlog der Terminserie %{link} meeting_series_template_html: Vorlage der Terminserie %{link} meeting_template_html: Besprechungsvorlage %{link} - progress_mode_changed_to_status_based: Fortschrittberechnung wurde auf Status-bezogen gesetzt + progress_mode_changed_to_status_based: Fortschrittberechnung wurde auf Status-basiert gesetzt status_excluded_from_totals_set_to_false_message: jetzt in den Gesamtwerten der Hierarchie enthalten status_excluded_from_totals_set_to_true_message: jetzt von den Hierarchie-Gesamtwerten ausgeschlossen status_percent_complete_changed: "% abgeschlossen von %{old_value}% auf %{new_value} % geändert" @@ -3390,6 +3764,7 @@ de: budget_deleted: Budget wurde gelöscht dates_changed: Datum geändert default_attribute_written: Nur-Lese-Attribute wurde geschrieben + forum_message_html: "Created from forum message %{message_information}" import: Importiert meeting_agenda_item_added_html: "Zur Besprechung hinzugefügt %{meeting_title_information}" meeting_agenda_item_added_template_html: "Hinzugefügt zu %{meeting_title_information}" @@ -3542,10 +3917,10 @@ de: label_copy_target: Ziel label_copy_workflow_from: Workflow kopieren von label_copy_workflow_from_role: In andere Rollen kopieren - label_copy_workflow_from_type: In einen anderen Typ kopieren label_core_build: Core-Buildinformation label_core_version: Core Version label_created_by: Erstellt von %{user} + label_criteria: Kriterium label_current_status: Gegenwärtiger Status label_current_version: Gegenwärtige Version label_custom_comment: "%{name} Kommentar" @@ -3569,8 +3944,6 @@ de: label_custom_field_default_type: Leerer Typ label_custom_field_new: Neues benutzerdefiniertes Feld label_custom_field_plural: Benutzerdefinierte Felder - label_custom_logo: Benutzerdefiniertes Logo Desktop - label_custom_logo_mobile: Benutzerdefiniertes Logo Mobilgerät label_custom_pdf_export_settings: Benutzerdefinierte PDF-Export-Einstellungen label_custom_style: Design label_custom_style_description: Wählen Sie über Design und Farben aus, wie die OpenProject Benutzeroberfläche und Exporte aussehen sollen. @@ -3579,11 +3952,12 @@ de: label_database_version: PostgreSQL-Version label_date: Datum label_date_and_time: Datum und Zeit - label_date_format: Datumsformat + label_date_and_time_formats: Date and time formats label_date_from: Von label_date_from_to: von %{start} bis %{end} label_date_to: Bis label_dates: Daten + label_day: Tag label_day_plural: Tagen label_default: Standard label_defaults: Standardwerte @@ -3594,6 +3968,7 @@ de: label_deleted_custom_field: "(gelöschtes benutzerdefiniertes Feld)" label_deleted_custom_item: "(gelöschter Eintrag)" label_deleted_custom_option: "(gelöschte Option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(gelöschte Version)" label_departments: Organisation label_departments_description_html: 'Definieren Sie die Struktur Ihres Unternehmens, indem Sie Abteilungen und Unterabteilungen in hierarchischer Form anlegen. So können Sie Berichtslinien abbilden und einen klaren, strukturierten Überblick über Ihre Organisation in OpenProject behalten. Sie können auch eine bestehende Organisationsstruktur über [eine synchronisierte LDAP-Abteilung](ldap_docs_article) importieren. @@ -3629,7 +4004,7 @@ de: label_end_to_start: Ende - Anfang label_enterprise: Enterprise label_enterprise_active_users: "%{current}/%{limit} gebuchte aktive Nutzer" - label_enterprise_edition: Enterprise Edition + label_enterprise_edition: Enterprise edition label_enterprise_support: Enterprise Support label_enumeration_new: Neuer Aufzählungswert label_enumeration_value: Aufzählungswert @@ -3664,6 +4039,7 @@ de: label_float: Gleitkommazahl label_folder: Ordner label_follows: folgt + label_form_configuration_plural: Forms label_formula: Formel label_forum_new: Neues Forum label_forum_plural: Foren @@ -3682,6 +4058,7 @@ de: label_go_forward: Öffne %{module} Untermenü label_greater_or_equal: ">=" label_group: Gruppe + label_group_attributes_plural: Gruppenattribute label_group_by: Gruppieren nach label_group_named: Gruppe %{name} label_group_new: Neue Gruppe @@ -3733,8 +4110,8 @@ de: label_journal_diff: Beschreibungsvergleich label_jump_to_a_project: Zu einem Projekt springen... label_keyword_plural: Schlüsselwörter + label_label_plural: Bezeichnungen label_language: Sprache - label_language_based: Sprachabhängig label_languages: Sprachen label_last_activity: Letzte Aktivität label_last_change_on: Letzte Änderung am @@ -3756,6 +4133,7 @@ de: label_list: Liste label_loading: Lade... label_locale: Sprache und Region + label_locale_based: Use default for user locale label_lock_user: Benutzer sperren label_locked: gesperrt label_logged_as: Angemeldet als @@ -3767,6 +4145,7 @@ de: label_managed_by_ldap: Verwaltet durch LDAP-Synchronisation label_managed_repositories_vendor: Verwaltete %{vendor} Projektarchive label_mapping_for: 'Zuordnung für: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximale Größe label_me: ich label_member_all_admin: "(Alle Rollen, da Administrator)" @@ -3785,7 +4164,6 @@ de: label_menu_item_name: Name des Menüpunktes label_message: Nachricht label_message_last: Letzter Forenbeitrag - label_message_new: Neues Thema label_message_plural: Forenbeiträge label_message_posted: Forenbeitrag hinzugefügt label_minute_plural: Minuten @@ -3797,6 +4175,7 @@ de: label_module_plural: Module label_modules: Module label_modules_and_plugins: Module und Plugins + label_month: Monat label_months_from: Monate ab label_more: Mehr label_more_information: Weitere Informationen @@ -3810,6 +4189,7 @@ de: label_my_avatar: Mein Avatar label_my_queries: Meine Berichte label_my_security: Sicherheit + label_my_time: My time label_name: Name label_never: Nie label_new: Neu @@ -3824,7 +4204,10 @@ de: label_news_singular: Neuigkeit label_news_view_all: Alle Neuigkeiten anzeigen label_next: Weiter + label_next_day: Nächster Tag + label_next_month: Nächster Monat label_next_week: Woche vor + label_next_workweek: Nächste Arbeitswoche label_next_year: Nächstes Jahr label_no_change_option: "(Keine Änderung)" label_no_data: Es sind keine Daten vorhanden @@ -3832,6 +4215,7 @@ de: label_no_parent_group: "(Keine übergeordnete Gruppe)" label_no_parent_page: Keine übergeordnete Seite label_no_start_date: kein Startdatum + label_no_time: Keine Zeit erfasst label_nobody: Niemand label_non_working_days: Verfügbarkeitskalender label_non_working_days_summary: Zusammenfassung @@ -3898,7 +4282,10 @@ de: label_preview: Vorschau label_preview_not_available: Vorschau nicht verfügbar label_previous: Zurück + label_previous_day: Vorheriger Tag + label_previous_month: Vorheriger Monat label_previous_week: Woche zurück + label_previous_workweek: Vorherige Arbeitswoche label_previous_year: Letztes Jahr label_principal_invite_via_email: " oder Nutzer per E-Mail einladen" label_principal_search: Vorhandene Benutzer / Gruppen hinzufügen @@ -4017,6 +4404,7 @@ de: label_sort_lowest: Nach ganz unten verschieben label_sorted_by: sortiert nach %{value} label_spent_time: Aufgewendete Zeit + label_stack: Stapel label_start_to_end: Anfang bis Ende label_start_to_start: Anfang bis Anfang label_starts_with: beginnt mit @@ -4036,6 +4424,7 @@ de: label_subtask_plural: Unteraufgaben label_summary: Zusammenfassung label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: Systemkonfiguration label_system_storage: Speicherinformation label_table_of_contents: Inhaltsverzeichnis @@ -4050,6 +4439,7 @@ de: label_time: Zeit label_time_entry_activity_plural: Zeitbuchung-Aktivität label_time_entry_plural: Aufgewendete Zeit + label_timer_since: Begonnen um %{time} label_title: Titel label_today: heute label_today_as_date: Heute als Datum wählen. @@ -4085,7 +4475,9 @@ de: label_user_search: Nach Benutzer suchen label_user_settings: Benutzereinstellungen label_users_settings: Benutzereinstellungen + label_value: Value label_value_x: 'Wert: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Version bearbeiten label_version_new: Neue Version label_version_plural: Versionen @@ -4098,6 +4490,7 @@ de: label_videos: Videos label_view_all_revisions: Alle Revisionen anzeigen label_view_diff: Unterschiede anzeigen + label_view_mode_switcher: Ansicht ändern label_view_revisions: Revisionen anzeigen label_view_x: 'Ansicht: %{x}' label_watched_work_packages: Beobachtete Arbeitspakete @@ -4121,6 +4514,8 @@ de: label_wiki_start: Hauptseite label_wiki_toc: Inhaltsverzeichnis label_wiki_toc_empty: Inhaltsverzeichnis ist leer, da keine Überschriften vorhanden sind. + label_with_criteria: Mit Kriterien + label_without_criteria: Ohne Kriterien label_work: Aufwand label_work_package: Arbeitspaket label_work_package_attachments: Anhänge des Arbeitspakets @@ -4143,46 +4538,47 @@ de: label_working_days: Arbeitstage label_working_days_and_hours: Arbeitstage und -stunden label_working_hours: Arbeitszeiten + label_workweek: Arbeitswoche label_x_closed_work_packages_abbr: - one: 1 geschlossen + one: "%{count} closed" other: "%{count} geschlossen" zero: keine geschlossen label_x_comments: - one: Ein Kommentar + one: "%{count} comment" other: "%{count} Kommentare" zero: Keine Kommentare label_x_days: - one: 1 Tag - other: "%{count} Tage" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 Datei + one: "%{count} file" other: "%{count} Dateien" zero: keine Dateien label_x_items: - one: 1 Element + one: "%{count} item" other: "%{count} Elemente" zero: keine Elemente label_x_items_selected: - one: Ein Element ausgewählt - other: "%{count} Elemente ausgewählt" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 offen + one: "%{count} open" other: "%{count} offen" zero: Keine offenen label_x_projects: - one: Ein Projekt + one: "%{count} project" other: "%{count} Projekte" zero: Keine Projekte label_x_work_packages: - one: 1 Arbeitspaket + one: "%{count} work package" other: "%{count} Arbeitspakete" zero: Keine Arbeitspakete label_x_working_days: - one: 1 Arbeitstag - other: "%{count} Arbeitstage" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Freie Zeit: 1 Arbeitstag' - other: 'Freie Zeit: %{count} Arbeitstage' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: gestern label_zen_mode: Zen-Modus ldap_auth_sources: @@ -4235,7 +4631,7 @@ de: start_tls: STARTTLS start_tls_description: Sendet einen STARTTLS-Befehl nach der Verbindung zum Standard-LDAP-Port. Empfohlen für verschlüsselte Verbindungen. tls_options: - tls_certificate_description: Wenn sich das LDAP-Server-Zertifikat nicht in den vertrauenswürdigen Quellen dieses Systems befindet, können Sie es hier manuell hinzufügen. Fügen Sie an dieser Stelle ein oder mehrere PEM X509 Zertifkate ein. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL-Zertifikat überprüfen verify_peer_description_html: 'Aktiviert die strikte SSL-Überprüfung der vertrauenswürdigen Zertifikatskette.
Warnung: Ausstellen dieser Option deaktiviert die SSL-Überprüfung des LDAP-Serverzertifikats. Ihre Verbindung wird anfällig für Man-In-The-Middle (MITM) Angriffe. @@ -4292,6 +4688,8 @@ de: you_have: Sie haben logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} erwähnte Sie in %{id} - %{subject}" notification: center: Zur Benachrichtigungszentrale @@ -4348,8 +4746,8 @@ de: mentioned: Sie wurden in einem Kommentar erwähnt mentioned_by: "%{user} hat Sie in einem Kommentar erwähnt" more_to_see: - one: Es gibt ein weiteres Arbeitspaket mit Benachrichtigungen. - other: Es gibt %{count} weitere Arbeitspakete mit Benachrichtigungen. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Im Browser öffnen reason: assigned: Zugewiesen @@ -4527,6 +4925,13 @@ de: create_button: Anlegen dialog_body: Dieses Token ermöglicht es Anwendungen von Drittanbietern, mit Ihrer Instanz zu kommunizieren. Um das neue API-Token zu unterscheiden, geben Sie ihm bitte einen Namen. dialog_title: Einen API-Token erstellen + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token-Name failed_to_create_token: 'Zugriffstoken konnte nicht erstellt werden: %{error}' failed_to_reset_token: 'Zusatztoken konnte nicht zurückgesetzt werden: %{error}' @@ -4540,10 +4945,26 @@ de: password_confirmation_dialog: confirmation_required: Sie müssen Ihr Passwort eingeben, um diese Änderung zu bestätigen. title: Bestätigen Sie Ihr Passwort um fortzufahren + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Arbeitspaket mir zuweisen + delete_time_entry: Zeiteintrag löschen + edit_time_entry: Zeiteintrag bearbeiten + log_time_from_allocation: Log time from allocation + open_project: Projekt öffnen + open_work_package: Arbeitspaket öffnen + entries_filter: + all: Alle Einträge + allocated: Allocations only + logged: Nur erfasste Zeit my_account: access_tokens: access_tokens: Zugriffstokens description: Provider-Tokens werden von OpenProject ausgestellt und ermöglichen anderen Anwendungen den Zugriff darauf. Client-Tokens werden von anderen Anwendungen ausgestellt und ermöglichen OpenProject den Zugriff auf sie. + expired_on: Expired on %{date} headers: action: Aktion expiration: Läuft aus @@ -4749,7 +5170,6 @@ de: notice_principals_found_single: |- Es wurde ein Ergebnis gefunden. Drücke Tab um es zu fokussieren. - notice_project_cannot_update_custom_fields: 'Sie können die benutzerdefinierten Felder dieses Projekts nicht aktualisieren. Das Projekt ist ungültig: %{errors}' notice_project_not_deleted: Das Projekt wurde nicht gelöscht. notice_project_not_found: Projekt nicht gefunden. notice_requires_enterprise_token: Kein Enterprise-Token vorhanden oder das vorhandene Token erlaubt keinen Zugriff auf diese Seite. @@ -4759,9 +5179,6 @@ de: notice_successful_create: Erfolgreich angelegt. notice_successful_delete: Erfolgreich gelöscht. notice_successful_update: Erfolgreich aktualisiert. - notice_successful_update_custom_fields_added_to_project: | - Erfolgreich aktualisiert. Die benutzerdefinierten Felder der aktivierten Typen werden automatisch - im Arbeitspaket-Formular aktiviert. Siehe mehr. notice_to_many_principals_to_display: |- Es gibt zu viele Treffer. Bitte engen Sie die Suche ein, indem sie den Namen der Person (oder der Gruppe) eingeben. @@ -4863,8 +5280,8 @@ de: ' confirm_revoke_my_application: - one: Möchten Sie diese Anwendung wirklich entfernen? Dies wird einen aktiven Token widerrufen. - other: Möchten Sie diese Anwendung wirklich entfernen? Dies wird %{count} aktive Token widerrufen. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Es wurden noch keine OAuth-Anwendungen registriert. flows: authorization_code: Autorisierungs-Code Anmeldefluss @@ -4954,8 +5371,6 @@ de: not_found: nicht gefunden. respond_to?: die erforderliche Methode nicht implementiert. rules: - copy_workflow_from: - workflow_missing: hat keinen eigenen Workflow. custom_field: format_not_supported: format '%{field_format}' wird nicht unterstützt. item: @@ -4975,7 +5390,6 @@ de: or: oder rules: blueprint: Blaupause für Muster - copy_workflow_from: Typ für Workflow-Kopie depth: Tiefe enabled: Aktiviert item: Element @@ -5047,8 +5461,8 @@ de: label: Inhaltsverzeichnis page_nr_footer: Seite %{page} von %{total} template_artefact: - caption: Details zum Arbeitspaket, dargestellt als PMflex-Artefakt. - label: PMflex-Artefakt + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Alle Attribute, die in der aktuellen Formularkonfiguration des Standardtemplates vorhanden sind. label: Attribute und Beschreibung @@ -5073,7 +5487,7 @@ de: permission_change_work_package_status_explanation: Ermöglicht das Ändern des Status ohne Berechtigung Arbeitspakete zu bearbeiten permission_comment_news: Nachricht kommentieren permission_commit_access: Lese- und Schreibzugriff auf Projektarchiv (Commit) - permission_copy_projects: Projekte kopieren + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'Bei Vorlagenprojekten hat diese Berechtigung eine weitere Funktion: Sie ermöglicht die Erstellung neuer Projekte, die von der Vorlage abgeleitet sind.' permission_copy_work_packages: Arbeitspakete duplizieren permission_create_backup: Backups erstellen @@ -5106,6 +5520,7 @@ de: permission_export_projects: Projekte exportieren permission_export_work_packages: Arbeitspakete exportieren permission_header_for_project_module_work_package_tracking: Arbeitspakete und Gantt-Diagramme + permission_import_work_packages: Arbeitspakete importieren permission_invite_members_by_email: Mitglieder per E-Mail einladen permission_invite_members_by_email_explanation: 'Ermöglicht es Benutzern, neue Mitglieder per E-Mail einzuladen. Eingeladene Benutzer erhalten eine E-Mail mit einem Link, über den sie ihr Passwort festlegen und ihr Konto aktivieren können. Abhängig von der Berechtigung zur Mitgliederverwaltung @@ -5116,6 +5531,9 @@ de: permission_manage_dashboards: Dashboards verwalten permission_manage_forums: Foren verwalten permission_manage_members: Mitglieder verwalten + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Nachricht verwalten permission_manage_own_reminders: Eigene Erinnerungen erstellen permission_manage_own_working_times: Eigene Arbeitszeiten verwalten @@ -5144,7 +5562,6 @@ de: permission_save_bcf_queries: BCF-Abfragen speichern permission_save_queries: Ansichten speichern permission_search_project: Projekt suchen - permission_select_custom_fields: Benutzerdefinierte Felder verwalten permission_select_project_custom_fields: Projektattribute auswählen permission_select_project_modules: Projektmodule auswählen permission_select_project_phases: Projektphase auswählen @@ -5178,6 +5595,16 @@ de: permission_work_package_assigned: Zugewiesener/Verantwortlicher werden permission_work_package_assigned_explanation: Arbeitspakete können Benutzern und Gruppen im Besitz dieser Rolle in dem jeweiligen Projekt zugeordnet werden placeholder_users: + criteria: + activate: Filterkriterien aktivieren + activate_caption: 'Diesem Platzhalternutzer kann eine Reihe von Filtern hinzuzufügen, um die möglichen Benutzer zu definieren, die den gewünschten Kriterien entsprechen. + + ' + enable: Benutzer nach Kriterien zuordnen + enable_caption: Beschreiben Sie die Art von Nutzer, für die dieser Platzhalter steht, damit passende Nutzer dafür vorgeschlagen werden können. + matching_users: Benutzer, die die Filterkriterien erfüllen + no_matching_users: Kein Benutzer passt zu diesen Kriterien. + show_all_matching_users: Zeige alle %{count} passenden Benutzer delete_tooltip: Platzhalter löschen deletion_info: data_consequences: 'Alle Vorkommnisse des Platzhalter-Benutzers (z.B. als zugewiesene Person, Verantwortlicher oder andere Benutzerwerte) werden einem Konto mit dem Namen "Gelöschter Benutzer" zugewiesen. Da die Daten jedes gelöschten Kontos diesem Konto zugewiesen werden, wird es nicht möglich sein, die Daten dieses Benutzers von den Daten eines anderen gelöschten Kontos zu unterscheiden. @@ -5199,7 +5626,7 @@ de: name: OmniAuth SAML / Single-Sign An portfolio: count: - one: Ein Portfolio + one: "%{count} portfolio" other: "%{count} Portfolios" zero: Keine Portfolios filters: @@ -5210,8 +5637,8 @@ de: label: Portfolio-Namensfilter placeholder: Portfolios suchen sub_items_html: - one: "1 Unterelement" - other: "%{count} Unterelemente" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Aktive Portfolios archived: Archivierte Portfolios @@ -5225,7 +5652,7 @@ de: ' program: count: - one: 1 Programm + one: "%{count} program" other: "%{count} Programme" zero: 0 Programme filters: @@ -5237,7 +5664,7 @@ de: confirmation_message: Durch die Archivierung dieses Projekts werden dieses Projekt und alle daraus abgeleiteten Projekte für alle Benutzer dieser Instanz nicht mehr verfügbar sein. Archivierte Projekte können wiederhergestellt werden. title: Projekt archivieren count: - one: 1 Projekt + one: "%{count} project" other: "%{count} Projekte" zero: 0 Projekte destroy: @@ -5342,11 +5769,11 @@ de: no_status_when_submitted: Der Antrag auf Projektinitiierung konnte nicht aktiviert werden, da für den Arbeitspaket-Typ %{type} mindestens ein Status erforderlich ist, der mit ihm verknüpft ist. Bitte aktivieren Sie mindestens einen Status-Workflow für diesen Arbeitspaket-Typ. no_work_package_type: Die Anfrage zur Projektinitiierung konnte nicht aktiviert werden, da dafür mindestens ein aktiver Arbeitspaket-Typ erforderlich ist und dieses Projekt keinen hat. Bitte fügen Sie diesem Projekt mindestens einen Arbeitspaket-Typ hinzu. export: - description_attachment_export: Das erstellte Artefakt wird als PDF-Anhang zum Artefakt-Arbeitspaket gespeichert. - description_file_link_export: Das erstellte Arbeitspaket enthält einen Dateilink zu einer PDF-Datei, die in einem externen Dateispeicher gespeichert ist. Erfordert einen aktiven Dateispeicher mit automatisch verwalteten Projektordnern. Im Moment werden nur Nextcloud-Dateispeicher unterstützt. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Wählen Sie, welcher der konfigurierten externen Dateispeicher verwendet werden soll. external_file_storage: Externe Dateispeicher - label_artifact_export: Artefakt-Export + label_artifact_export: Artifact export label_attachment_export: Als Dateianhang des Arbeitspakets speichern label_file_link_export: Datei in externen Dateispeicher hochladen und Dateilink zum Arbeitspaket hinzufügen pdf_file_storage: PDF-Datei-Speicherort @@ -5356,6 +5783,12 @@ de: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Derzeit stehen keine benutzerdefinierten Felder zur Verfügung. forums: no_results_content_text: Neues Forum erstellen @@ -5452,15 +5885,15 @@ de: new_heading: Felder, die verfügbar werden nothing_affected: Es sind keine Felder oder Status betroffen. status_count: - one: 1 Arbeitspaket - other: "%{count} Arbeitspakete" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(Tabelle)" value_count: - one: 1 Arbeitspaket hat einen Wert - other: "%{count} Arbeitspakete haben einen Wert" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 Arbeitspaket wird die neue Konfiguration verwenden - other: "%{count} Arbeitspakete verwenden die neue Konfiguration" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Das Projekt nutzt nun %{type}. target_label: Variante title: "%{type}: Variante wechseln" @@ -5471,7 +5904,7 @@ de: variants_not_allowed: Bei diesem Typ ist die Erstellung von Varianten innerhalb von Projekten nicht zulässig. versions: no_results_content_text: Neue Version erstellen - no_results_title_text: Derzeit gibt es keine Versionen für das Projekt. + no_results_title_text: Für dieses Projekt wurden keine Versionen gefunden, die den Filterkriterien entsprechen. show_work_packages: Arbeitspakete anzeigen work_packages_graph: Arbeitspaket-Graph work_package_priorities: @@ -5479,15 +5912,27 @@ de: status: button_edit: Status bearbeiten wizard: - create_artifact_storage_error: Artefakt konnte nicht im Dateispeicher gespeichert werden - create_artifact_work_package_error: Arbeitspaket für das Artefakt der Anfrage konnte nicht erstellt werden + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Für dieses Projekt sind keine Projektattribute für den Assistenten aktiviert. Bitte aktivieren Sie mindestens eines davon in den Projekteinstellungen. no_help_text: Für dieses Feld ist kein Hilfetext definiert. progress_label: "%{current} von %{total}" sections: Abschnitte sidebar_content_title: Inhalt - success: Projektattribute gespeichert und Artefakt der Anfrage als Arbeitspaket erstellt. + success: Project attributes saved and artifact work package created successfully. title: Projektinitiierungsantrag + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: vorkonfigurierten Filter anwenden configure_view: @@ -5516,8 +5961,8 @@ de: action_title: Reagieren add_reaction: Reaktion hinzufügen and_others: - one: und ein weiterer - other: und %{count} weitere + one: and %{count} other + other: and %{count} others and_user: und %{user} react_with: Mit %{reaction} reagieren reaction_by: "%{reaction} von" @@ -5612,7 +6057,7 @@ de: not_available: Genutzter Festplattenspeicher ist nicht für dieses Projektarchiv verfügbar. oauth_application_details_html: 'Der Client Geheimcode wird nach dem Schließen dieses Fensters nicht mehr zugänglich sein. Bitte kopieren Sie diese Werte in die Nextcloud OpenProject Integrationseinstellungen:' oauth_application_details_link_text: Zu den Einstellungen gehen - setup_documentation_details: 'Wenn Sie Hilfe bei der Konfiguration eines neuen Dateispeichers benötigen, konsultieren Sie bitte die Dokumentation: ' + setup_documentation_details: 'Wenn Sie Hilfe bei der Konfiguration eines neuen Datei-Speichers benötigen, konsultieren Sie bitte die Dokumentation: ' setup_documentation_details_link_text: Dateispeicher einrichten show_warning_details: Um diesen Dateispeicher nutzen zu können, müssen Sie das Modul und den spezifischen Speicher in den Projekteinstellungen jedes gewünschten Projekts aktivieren. update_timeout: |- @@ -5636,6 +6081,31 @@ de: warnings: cannot_annotate: Diese Datei kann nicht kommentiert werden. roles: + delete_dialog: + confirm: Sind Sie sicher, dass Sie diese Rolle löschen möchten? + entry_projects: + one: "(Projekt: %{projects})" + other: "(Projekte: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Bist du sicher, dass Sie die Rolle „%{name}“ löschen möchten? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Von diesen Benutzern verliert %{count} den Zugriff auf Projekte, in denen dies ihre einzige Rolle war. Möchten Sie diese Rolle wirklich löschen? + zero: Keiner dieser Benutzer wird den Zugriff auf seine Projekte verlieren. Möchten Sie diese Rolle wirklich löschen? + show_memberships: Zeige alle Mitgliedschaften mit dieser Rolle + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Rolle löschen edit: default_for_new_projects_warning: 'Diese Rolle ist als Standardrolle für diejenigen Benutzer konfiguriert, die ein Projekt erstellen und keine Administratoren sind. Entfernen Sie die folgenden Berechtigungen nicht, sonst können die Projekt-Ersteller die Einrichtung ihrer neu erstellten Projekte nicht abschließen:' index: @@ -5647,6 +6117,15 @@ de: permissions: section_check_all_label: Alle %{module} Berechtigungen zuweisen section_uncheck_all_label: Alle %{module} Berechtigungen zuweisen + permissions_dialog: + edit_permissions: Rollenberechtigungen bearbeiten + no_permissions: Diese Rolle gewährt keinerlei Berechtigungen. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Berechtigungen anzeigen + preview_aria_label: Berechtigungen von %{role} anzeigen + title: Berechtigungen von „%{name}“ report: matrix_caption: Berechtigungsmatrix für das Modul %{module} matrix_check_all_label: Alle %{module} Berechtigungen zuweisen @@ -5751,7 +6230,7 @@ de: setting_default_projects_wiki: Aktiviere Wiki-Funktionalität für neue Projekte standardmäßig setting_diff_max_lines_displayed: Maximale Anzahl anzuzeigender Diff-Zeilen setting_disable_password_login: Passwort-Authentifizierung deaktivieren - setting_display_subprojects_work_packages: Arbeitspakete von Unterprojekten im Hauptprojekt anzeigen + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Anzeige der Dauer setting_duration_format_days_and_hours: Tage und Stunden setting_duration_format_hours_only: Nur Stunden @@ -5866,6 +6345,7 @@ de: setting_start_of_week: Wochenanfang am setting_sys_api_description: Der Web-Service für Projektarchiv-Verwaltung erlaubt Integration und Nutzer-Autorisierung für den Zugriff auf Projektarchive. setting_sys_api_enabled: Den Web-Service zur Projektarchiv-Verwaltung aktivieren + setting_sys_api_key: API-Schlüssel setting_time_format: Zeit setting_total_percent_complete_mode: Berechnung des Gesamtwerts % abgeschlossen in Hierarchien setting_total_percent_complete_mode_simple_average: Einfacher Durchschnitt @@ -5918,7 +6398,7 @@ de: description_html: 'Wählen Sie den Betriebsmodus für die Integration des Antiviren-Scanners aus.
  • %{disabled_option}: Hochgeladene Dateien werden nicht auf Viren gescannt.
  • %{socket_option}: Sie haben ClamAV auf demselben Server wie OpenProject eingerichtet und der Scan-Daemon clamd läuft im Hintergrund
  • %{host_option}: Sie streamen Dateien an einen externen Virenscanner.
' - remaining_quarantined_files_html: 'Die Virenprüfung wurde deaktiviert. %{file_count} verbleiben in Quarantäne. Um die unter Quarantäne gestellten Dateien zu überprüfen, besuchen Sie bitte diesen Link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Die Virenprüfung wurde erfolgreich aktiviert. Es gibt %{file_count} , die bis zum aktuellen Zeitpunkt hochgeladen wurden und noch gescannt werden müssen. Dieser Vorgang wird im Hintergrund ausgeführt. Die Dateien bleiben während des Scans zugänglich. @@ -5929,6 +6409,7 @@ de: ' title: Virenscan attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Wenn Sie diese Option deaktivieren, wird die Liste der Anhänge auf dem Dateien Tab von Arbeitspaketen für neue Projekte ausgeblendet. Die Dateien, die in der Beschreibung eines Arbeitspakets angehängt sind, werden weiterhin in den internen Speicher für Anhänge hochgeladen. ' @@ -6020,12 +6501,12 @@ de: confirmation_message: Der Projektinitiierungsantrag wird für neue Projekte, die auf dieser Vorlage basieren, nicht mehr verfügbar sein. Projektmanager und Projektverantwortliche müssen die entsprechenden Informationen in der Projektübersicht manuell konfigurieren und ausfüllen. heading: Diesen Projektinitiationsantrag deaktivieren? title: Projektinitiierungsantrag deaktivieren - header_description: 'OpenProject kann einen Schritt-für-Schritt-Assistenten erstellen, der beim Ausfüllen eines Projektinitiierungsantrags unterstützt. Sie können die abgefragten Projektattribute wählen und ein Artefakt als Ergebnis erzeugen lassen. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Name des Artefakts - artifact_name_caption: Wählen Sie den Namen für dieses Artefakt, passend zu Ihrer Projektmanagement-Methodik. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Projekterstellungs-Assistent project_initiation_request: Projektinitiierungsantrag @@ -6045,8 +6526,8 @@ de: Sie haben einen Antrag auf Projektinitiierung für **%{project_name}** eingereicht. Dieser wartet nun auf seine Überprüfung. Klicken Sie auf den untenstehenden Link, um das Arbeitspaket mit Ihrem Antrag aufzurufen. confirmation_email_text: Text der Bestätigungs-E-Mail - description: Wenn ein Benutzer eine Anfrage zur Projektinitiierung einreicht, wird ein neues Arbeitspaket erstellt, an das ein Artefakt der Anfrage als PDF-Datei angehängt wird. Die folgenden Einstellungen definieren den Typ, den Status und den Empfänger für dieses neue Arbeitspaket. - description_template: "**Dieses Arbeitspaket wurde automatisch nach Abschluss des %{wizard_name} Workflows erstellt.** Ein PDF-Artefakt mit allen eingereichten Informationen wurde generiert und zu Referenz- und Prüfzwecken an dieses Arbeitspaket angehängt. Wenn Sie die Einleitungsschritte aktualisieren oder erneut ausführen müssen, können Sie den Assistenten jederzeit über den unten stehenden Link erneut öffnen:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Senden Sie eine Bestätigungs-E-Mail an den Benutzer, der den Projektinitiierungsantrag gestellt hat status_when_submitted: Status bei Einreichung status_when_submitted_caption: Der Status, in den das erstellte Arbeitspaket übergeht, sobald der Antrag eingereicht wird. @@ -6054,7 +6535,7 @@ de: work_package_comment_caption: Der oben ausgewählte Empfänger wird automatisch in dem Kommentar @erwähnt. work_package_comment_default: Ein Antrag auf Projektinitiierung für **%{project_name}** wurde eingereicht und wartet auf seine Prüfung. work_package_type: Arbeitspaket-Typ - work_package_type_caption: Der Arbeitspaket-Typ, der zum Speichern des Artefakts verwendet wird. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Projekterstellungs-Assistent öffnen project_initiation_request: Projektinitiierungsantrag öffnen @@ -6074,6 +6555,7 @@ de: heading: Neue Phase no_gate: Kein Gate non_defined: Derzeit sind keine Phasen definiert. + order_changed: Reihenfolge erfolgreich geändert. phase_gates: Phasen Gates section_header: Phasen start_gate: Gate zum Beginn @@ -6130,7 +6612,7 @@ de: section_work_week: Arbeitswoche sharing: count: - one: 1 Benutzer + one: "%{count} user" other: "%{count} Benutzer" zero: 0 Benutzer denied: Sie haben keine Berechtigung, %{entities} zu teilen. @@ -6220,19 +6702,19 @@ de:
Hinweis: Vererbte Attribute (z.B. von Unteraufgaben oder Relationen) werden auch auf Arbeitspakete in diesen Status angewandt. index: + could_not_be_moved: Status konnte nicht verschoben werden. headers: - excluded_from_totals: Von Gesamtsumme auschließen is_closed: Erledigt - is_default: Standard is_readonly: Schreibgeschützt + no_filter_results_title_text: Kein Status entspricht dem aktuellen Filter. no_results_content_text: Neuen Status hinzufügen no_results_title_text: Derzeit gibt es keine Arbeitspaket-Status. + status_actions: Statusaktionen support: array: sentence_connector: und skip_last_comma: 'true' text_access_token_hint: Zugangs-Tokens erlauben es externen Applikationen Zugriff auf OpenProject zu erhalten. - text_accessibility_hint: Der barrierefreie Modus richtet sich an Benutzer, die motorisch eingeschränkt, blind oder sehbehindert sind. Für letztere werden selektierte Elemente mit einem Rahmen hervorgehoben. Bitte beachten Sie, dass das Backlog-Modul bei aktiviertem barrierefreien Modus nicht verfügbar ist. text_analyze: 'Weiter analysieren: %{subject}' text_are_you_sure: Sind Sie sicher? text_are_you_sure_continue: Sind Sie sicher, dass Sie fortfahren möchten? @@ -6275,12 +6757,6 @@ de: ' text_custom_field_possible_values_info: Eine Zeile pro Wert - text_custom_logo_instructions: 'Das Logo passt sich automatisch an die Kopfzeile an. Die besten Ergebnisse erzielen Sie, wenn Sie ein weißes Logo auf ein transparentes 130×47px großes Bild hochladen. Sie können innerhalb des Bildes so viel Abstand einfügen, wie Sie möchten. - - ' - text_custom_logo_mobile_instructions: 'Das Logo passt sich automatisch an die Kopfzeile an. Die besten Ergebnisse erzielen Sie, wenn Sie ein weißes Logo auf ein transparentes 130×33px großes Bild hochladen. Sie können innerhalb des Bildes so viel Abstand einfügen, wie Sie möchten. - - ' text_custom_touch_icon_instructions: 'Dieses Symbol wird auf Ihrem Mobilgerät oder Tablet angezeigt, wenn Sie ein Lesezeichen dieser OpenProject-Instanz erstellen. Es muss ein quadratisches 180 x 180 Pixel großes PNG sein. Der Hintergrund sollte nicht transparent sein, da dies auf iOS-Geräten nicht optimal dargestellt wird. ' @@ -6330,6 +6806,7 @@ de: text_length_between: Länge zwischen %{min} und %{max} Zeichen. text_line_separated: Mehrere Werte sind erlaubt (eine Zeile pro Wert). text_load_default_configuration: Standard-Konfiguration laden + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Es existieren keine Zugangs-Tokens, die konfiguriert werden können. text_no_configuration_data: Rollen, Typen, Arbeitspaket-Status und Workflows wurden noch nicht konfiguriert. Es wird empfohlen die Standard-Konfiguration zu laden. Sobald die Konfiguration geladen ist, kann diese geändert werden. text_no_notes: Es sind keine Kommentare für dieses Arbeitspaket vorhanden. @@ -6433,6 +6910,68 @@ de: tree_view: label_empty_sub_tree: Keine Einträge types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Varianten vergleichen + blankslate: + description: Fügen Sie eine zweite Variante hinzu, um zu sehen, worin sie sich unterscheiden. + title: Es gibt noch nichts zu vergleichen + description: Vergleichen Sie die Varianten dieses Typs mit dem übergeordneten Typ. + labels: + duplicate: Mögliches Duplikat + duplicate_of: Genau so konfiguriert wie %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Übergeordneter Typ + same_as_type: Entspricht dem übergeordneten Typ + rows: + form: + fields: Felder + groups: Abschnitte + required: Davon erforderlich + same_as_base: Entspricht dem übergeordneten Typ + scope: + availability: Verfügbar für + enabled_in_new_projects: Aktiv in neuen Projekten + projects: Projekte + workflows: + roles: Teilnehmende Rollen + same_as_base: Entspricht dem übergeordneten Typ + statuses: Status + transitions: Übergänge + sections: + configuration: Konfigurationsübersicht + form: Formular + scope: Scope + workflows: Workflows + title: Varianten vergleichen + title_for_type: Varianten von %{name} vergleichen + values: + global: Alle Projekte + inheriting_from: Erbt von + project_specific: Projektspezifisch ([%{project}](project_url)) + same_as_base: Identisch zum übergeordneten Typ creation_wizard: add_variant: Variante zu %{name} hinzufügen create_type: Typ erstellen @@ -6442,14 +6981,40 @@ de: finish: Beenden placeholder_description: Dieser Schritt wird in Kürze verfügbar sein. progress_label: Schritt %{number} von %{total} + start: + next_heading: What happens next? + submit: Beginn + type: + heading: Neuen Typ erstellen + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Neue Variante erstellen + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Standardwerte details: Details form_configuration: Formular - pdf: PDF-Erstellung + pdf: Generate PDF project_attributes: Projektattribute projects: Projekte - workflows: Workflows + start: Beginn + workflows: Workflow success: Erfolgreich angelegt. edit: breadcrumb_variant: 'Variante: %{name}' @@ -6458,8 +7023,10 @@ de: caption: 'Definieren Sie ein Schema aus referenzierten Attributen und Freitext für die automatische Generierung von Arbeitspakettiteln. Nutzer: innen können diese nicht manuell editieren.' label: Automatisch generierte Titel description: - caption: Fügen Sie den Text ein, der in das Beschreibungsfeld aller neuen Arbeitspakete dieses Typs eingefügt werden soll. - label: Standardbeschreibungstext + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: 'Nutzer: innen können die Titel der Arbeitspakete ohne Einschränkungen manuell eingeben und bearbeiten.' label: Manuell bearbeitbare Titel @@ -6490,21 +7057,21 @@ de: file_link: caption: Die erstellte PDF-Datei wird in den automatisch verwalteten Nextcloud-Speicher des Projekts hochgeladen und vom Arbeitspaket aus verlinkt. Arbeitspakete in Projekten ohne einen solchen Speicher werden übersprungen. label: Datei in externen Dateispeicher hochladen und Dateilink zum Arbeitspaket hinzufügen - intro: Automatisch ein PDF-Artefakt eines Arbeitspakets dieses Typs generieren, wenn sich dessen Status ändert. - invalid_mode: Ungültiger Artefakt-Exportmodus. - label: Automatischer Export von Artefakten + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Es wird kein PDF automatisch generiert. label: Aus - section_title: Automatischer Export von Artefakten + section_title: Automatic artifact export unavailable: Nicht verfügbar, es ist kein automatisch verwalteter Nextcloud-Speicher konfiguriert - intro: Wählen Sie aus den verfügbaren Vorlagen diejenige aus, die Sie für diesen Typ aktivieren möchten. Die Vorlage bestimmt das Design und die Attribute, die in der exportierten PDF-Datei eines Arbeitspakets mit diesem Typ sichtbar sind. Die erste Vorlage in der Liste ist standardmäßig ausgewählt. pdf_export_templates: actions: label_disable_all: Alles deaktivieren label_enable_all: Alles aktivieren label_toggle_template: "%{template} umschalten" label: PDF-Exportvorlagen + order_changed: Reihenfolge erfolgreich geändert. tab: PDF generieren templates: readonly_error: Kann nicht geändert werden, solange eine Verknüpfung zu einem Quelltyp besteht. @@ -6521,6 +7088,8 @@ de: confirm_delete_group: Sind Sie sicher, dass Sie diesen Abschnitt löschen möchten? Diese Aktion kann nicht automatisch rückgängig gemacht werden. confirm_reset: Sind Sie sicher, dass Sie das Formular zurücksetzen möchten? custom_field: Benutzerdefiniertes Feld + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Abschnitt löschen drag_to_activate: Felder aus diesem Bereich herausziehen, um sie zu aktivieren drag_to_reorder: Ziehen zum Neuordnen @@ -6542,6 +7111,14 @@ de: query_group_label: Zugehörige Arbeitspaket-Tabelle remove_attribute: Aus Abschnitt entfernen rename_group: Abschnitt umbenennen + required: + already_required_globally: Dieses benutzerdefinierte Feld ist für alle Typen ein Pflichtfeld. + for_variant: Bei diesem Typ erforderlich + globally: Erforderlich + globally_hint: Ändern Sie dies im benutzerdefinierten Feld + mark: Bei diesem Typ erforderlich + not_a_custom_field: Nur ein benutzerdefiniertes Feld kann für einen einzelnen Typ als Pflichtfeld festgelegt werden. + unmark: Bei diesem Typ kein Pflichtfeld reset_description: 'Dadurch werden die Attribute auf ihre Standardgruppe zurückgesetzt und ALLE benutzerdefinierten Felder deaktiviert. ' @@ -6551,12 +7128,14 @@ de: tab: Formular untitled_group: Unbenannte Gruppe overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Konfigurationsmodus - dependents: Abhängige Typen und Varianten mode: always_manual: Immer manuell - inheriting_from_html: Vererbt von %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manuell konfiguriert + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Einstellungen tab: Übersicht project_attributes: @@ -6570,12 +7149,12 @@ de: manual: description: Sobald Sie [Projektattribute anlegen](administration_url), werden diese hier angezeigt und können einem Typ hinzugefügt werden. title: Es sind keine Projektattribute verfügbar - description: Wählen Sie die Projektattribute aus, die Sie für diesen Arbeitspaket-Typ anzeigen möchten. Diese Attribute werden in einem separaten Tab in Arbeitspaketen dieses Typs angezeigt. Benutzer mit den erforderlichen Berechtigungen können diese Attribute dort einsehen und bearbeiten. disabled: Deaktiviert exclusions: attribute_label: "%{attribute} erben" filter: Nach Abschnitt oder Name suchen tab: Projektattribute + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Den Typ %{type} von %{project} entfernen? @@ -6588,10 +7167,12 @@ de: empty_state: description: Fügen Sie ein Projekt hinzu, das diese Konfiguration verwendet. no_results: Keine übereinstimmenden Projekte. + title: Not used in any project yet enable_all: Für alle Projekte aktivieren select_projects: Projekt auswählen select_projects_description: Wählen Sie die Projekte aus, in denen Sie diesen Typ verwenden möchten. tab: Projekte + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6606,43 +7187,17 @@ de: title: Konfiguration kopieren invalid_source: Die Konfiguration kann nicht vom ausgewählten Typ kopiert werden. Bitte wählen Sie einen anderen Quelltyp aus. success: Die Konfiguration wurde kopiert. - dependents: - blank: - description: Kein anderer Typ oder Variante erbt von dieser Konfiguration - title: Keine abhängigen Typen - description: - one: Die folgende Konfiguration wird von einem anderen Typen oder Varianten geerbt. Alle Änderungen, die Sie hier vornehmen, betreffen auch den Abhängigen. - other: Die folgende Konfiguration wird von%{count} anderen Typen oder Varianten geerbt. Alle Änderungen, die Sie hier vornehmen, betreffen auch den Abhängigen. - dialog: - description: Diese Typen und Varianten übernehmen die Konfiguration dieses Abschnitts. Eine Änderung, die Sie hier vornehmen, gilt für alle diese Typen und Varianten. - direct_heading: Direkt Abhängige - indirect_heading: Indirekt Abhängige über andere Typen - title: Abhängige Typen - variant_of_html: Variante von %{type_name} - variant_of_via_html: Variante von %{type_name}, vererbt über %{source_name} - via_html: Vererbung über %{source_name} - title: - one: 1 abhängiger Typ - other: "%{count} abhängige Typen" - view: Abhängige Typen ansehen exclusions: not_inherited: Diese Konfiguration wird geerbt, sodass nichts auszuschließen ist. Bearbeiten Sie die Konfiguration stattdessen direkt. unknown_aspect: Unbekannter Konfigurationsabschnitt "%{aspect}". inherited: - change_source: Quellentyp ändern configure_manually: Manuell konfigurieren confirm_dialog: - change_source: - description_html: Durch das Wechseln des Quelltyps von %{source_name} überschreiben Sie die aktuellen Einstellungen und beeinflussen möglicherweise vorhandene Informationen zu den Arbeitspaketen dieses Typs. - heading: Quellentyp ändern? - title: Quellentyp ändern check_box: Ich verstehe, dass dies die aktuellen Einstellungen überschreibt from_manual: description: Alle derzeit ausgewählten Einstellungen werden überschrieben. Das kann sich auf die bereits vorhandene Informationen zu den Arbeitspaketen dieses Typs auswirken. heading: Konfigurationsmodus wechseln? title: Konfigurationsmodus wechseln - description: Diese Konfiguration wird vom Quelltyp [%{source_name}](source_url)%{source_suffix} geerbt. - description_unlinked: Diese Konfiguration wird vom Quelltyp %{source_name}%{source_suffix} geerbt. dialog: description: Diese Konfiguration wird von einem Quelltyp geerbt. Jede Änderung der Konfiguration der Quelle gilt auch hier. source_label: Quellentyp @@ -6650,6 +7205,9 @@ de: submit: Wechseln title: Von einem anderen Typ erben invalid_source: Die Konfiguration kann nicht vom ausgewählten Typ geerbt werden. Bitte wählen Sie einen anderen Quelltyp aus. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: Der Konfigurationsmodus wurde gewechselt. title: Vererbte Konfiguration manual: @@ -6658,13 +7216,14 @@ de: description: Alle derzeit ausgewählten Einstellungen werden überschrieben. Das kann sich auf die bereits vorhandene Informationen zu den Arbeitspaketen dieses Typs auswirken. heading: Konfigurationsmodus wechseln? title: Konfigurationsmodus wechseln - copy_from_type: Von einem anderen Typ kopieren description: Es werden keine Einstellungen geerbt. Sie können die Einstellungen jedoch einmalig von einem anderen Typ kopieren. dialog: submit: Wechseln title: Manuell konfigurieren - inherit_from_type: Von einem anderen Typ erben + inherit_from_type: Inherit from parent invalid_mode: Der ausgewählte Modus ist für diese Konfiguration nicht verfügbar. Bitte wählen Sie einen anderen Modus aus. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Beginnen Sie mit einer einmaligen Kopie der Einstellungen, die diese Konfiguration derzeit übernimmt. @@ -6678,12 +7237,16 @@ de: success: Der Konfigurationsmodus wurde gewechselt. title: Manuelle Konfiguration parent_suffix: " (übergeordneter Typ)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Sie können Varianten erstellen, um das Verhalten dieses Typs zwischen Projekten ändern zu können.
Jede Variante kann die Standardvorlage, benutzerdefinierte Felder, Workflows und Einstellungen von anderen übernehmen oder über eine eigene, individuelle Konfiguration verfügen. ' title: Keine Varianten für diesen Typ vorhanden + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Erstellt in %{project} delete: description: Die Projekte, die diese Variante verwenden, werden auf die von Ihnen unten ausgewählte Variante umgestellt, bevor die Variante gelöscht wird. @@ -6692,33 +7255,74 @@ de: filter_no_results: Keine Varianten entsprechen diesem Filter global_section: description: Diese Varianten sind in allen Projekten verfügbar. - title: Varianten + title: Globale Varianten project_specific_section: description: Diese Varianten sind nur innerhalb der Projekte verfügbar, in denen sie erstellt wurden. title: Projektspezifische Varianten workflow: - tab: Workflows + tab: Workflow index: add_variant: Variante zu %{name} hinzufügen add_variant_action: Variante hinzufügen + convert_to_global: In globale Variante umwandeln + convert_to_global_dialog: + confirm: Umwandeln + text: 'Dadurch wird diese projektspezifische Variante zu einer globalen Variante, die für alle Projekte verfügbar ist. Der Projektadministrator kann sie dann nicht mehr bearbeiten. + + ' + workflow_text: 'Der Workflow "%{name}" gehört zu diesem Projekt und wird ebenfalls global. + + ' + convert_to_global_notice: "%{name} ist jetzt eine globale Variante." + convert_to_global_rename: + confirm: Umwandeln + text: Eine globale Variante mit diesem Namen existiert bereits. Bitte wählen Sie einen anderen Namen. + title: Wählen Sie einen anderen Namen für diese Variante + created_by_migration: Migrated + delete: + description: Der Typ wird endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. + description_with_variants: Der Typ und alle seine Varianten werden endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. + heading: Typ "%{name}" löschen? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Typ löschen description: 'Typen und Varianten ermöglichen flexible Konfiguration der Darstellung und Verhalten von Arbeitspaketen. Formulare, Workflows und weitere Bereiche können hierbei in einem Typ definiert und von beliebig vielen Varianten wiederverwendet werden. Jeder Bereich kann hierbei pro Variante individuell konfiguriert werden. ' duplicate_name: Kopie von %{name} duplicate_notice: "%{name} wurde dupliziert." enabled_in_new_projects: Aktiv in neuen Projekten + filter: Filter by name + filter_no_results: No types match this filter make_default: In neuen Projekten aktivieren make_default_notice: "%{name} ist nun in neuen Projekten aktiviert." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Neuen Typ erstellen no_results_title_text: Derzeit gibt es keine Typen. project_variants_count: - one: 1 projektspezifische Variante - other: "%{count} projektspezifische Varianten" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: In neuen Projekten nicht aktivieren remove_default_notice: "%{name} ist in neuen Projekten nicht länger aktiviert." type_label: Typ variant_label: Variante + migration: + variant_name: "%{type} ohne %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Meilenstein + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Nur Bezeichnung + hierarchy_short: Short only + weighted_item_list_default: Standard (Bezeichnung und Gewichtung) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Diese Warnung ignorieren. message: Sie werden deshalb auf dieser Seite eventuell Fehler feststellen oder Ihr Benutzererlebnis wird eingeschränkt sein. @@ -6737,8 +7341,8 @@ de: authorization_rejected: Sie dürfen sich nicht einloggen. blocked: temporär gesperrt blocked_num_failed_logins: - one: temporär gesperrt (ein fehlgeschlagener Loginversuch) - other: temporär gesperrt (%{count} fehlgeschlagene Loginversuche) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Sie sind dabei den Status von '%{name}' zu ändern. Möchten Sie wirklich fortfahren? deleted: Gelöschter Nutzer department_ldap_managed_caption: Diese Abteilung wird über die LDAP synchronisiert und kann nicht manuell geändert werden. @@ -6838,7 +7442,7 @@ de: deletion_warning: Sind Sie sicher, dass Sie diese Sitzung widerrufen möchten? Sie werden auf diesem Gerät abgemeldet. device: Gerät / Betriebssystem expires: Läuft aus - instructions: Sie sind über die folgenden Geräte bei Ihrem Konto angemeldet. Widerrufen Sie Sitzungen, die Sie nicht kennen oder von Geräten, die Sie nicht kontrollieren. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Letzte Anmeldung may_not_delete_current: Sie können Ihre aktuelle Sitzung nicht löschen. session_name: "%{browser_name} %{browser_version} unter %{os_name}" @@ -6898,13 +7502,19 @@ de: start_date: Gültig ab work_days: Arbeitstage work_days_count: - one: 1 Arbeitstag - other: "%{count} Arbeitstage" + one: "%{count} working day" + other: "%{count} working days" work_hours: Arbeitsstunden version_status_closed: geschlossen version_status_locked: gesperrt version_status_open: offen versions: + filter_status_labels: + closed: Geschlossen + locked: Gesperrt + open: Offen + index: + filter_label: Versionen suchen overview: no_results_title_text: Derzeit sind keine Arbeitspakete dieser Version zugewiesen. work_packages_in_archived_projects: Die Version wird mit archivierten Projekten geteilt, die immer noch Arbeitspakete auf diese Version zugewiesen haben. Die Arbeitspakete werden beim Zählen berücksichtigt, erscheinen aber nicht in den verknüpften Ansichten. @@ -6934,7 +7544,7 @@ de: warning_user_limit_reached_admin_html: 'Das Hinzufügen zusätzlicher Benutzer überschreitet das aktuelle Benutzerlimit. Bitte [aktualisieren Sie Ihr Abonnement](upgrade_url) um sicherzustellen, dass externe Benutzer auf diese Instanz zugreifen können. ' - warning_user_limit_reached_instructions: 'Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise Edition Plan upzugraden und weitere Nutzer hinzuzufügen. + warning_user_limit_reached_instructions: 'Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise edition Plan upzugraden und weitere Nutzer hinzuzufügen. ' wiki: @@ -7014,7 +7624,7 @@ de: blocked_by_description: Dieses Arbeitspaket kann erst geschlossen werden, nachdem das verknüpfte Arbeitspaket geschlossen wurde blocked_description: Dieses Arbeitspaket kann erst geschlossen werden, nachdem das verknüpfte Arbeitspaket geschlossen wurde blocks_description: Das verknüpfte Arbeitspaket kann erst geschlossen werden, wenn dieses Arbeitspaket geschlossen ist - child: Unteraufgabe + child: Kind child_description: Macht das zugehörige Arbeitspaket zu einer Unteraufgabe des aktuellen (übergeordneten) Arbeitspakets duplicated_by_description: Das zugehörige Arbeitspaket ist eine Kopie dieses Arbeitspakets duplicated_description: Das zugehörige Arbeitspaket ist eine Kopie dieses Arbeitspakets @@ -7072,13 +7682,15 @@ de: required_description: Markiert dieses Arbeitspaket als Voraussetzung für das verknüpfte Arbeitspaket requires_description: Markiert das verknüpfte Arbeitspaket als Voraussetzung für dieses Arbeitspaket work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Die Arbeitspakete konnten nicht kopiert werden. could_not_be_deleted: 'Die folgenden Arbeitspakete konnten nicht gelöscht werden:' could_not_be_saved: 'Die folgenden Arbeitspakete konnten nicht gespeichert werden:' deletion_successful: - one: 1 Arbeitspaket wurde erfolgreich gelöscht. - other: "%{count} Arbeitspaket wurde erfolgreich gelöscht." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: untergeordnetes Arbeitspaket eines ausgewählten Arbeitspaketes move_failed: Die Arbeitspakete konnten nicht verschoben werden. none_could_be_saved: Keines der %{total} Arbeitspakete konnte aktualisiert werden. @@ -7102,18 +7714,18 @@ de: description_with_visible_descendants: Sind Sie sicher, dass Sie die ausgewählten Arbeitspakete und alle sichtbaren untergeordneten Elemente löschen möchten? heading: Diese %{count} Arbeitspakete unwiderruflich löschen? hidden_descendants_only_warning: - one: Dieses Arbeitspaket hat eine Unteraufgabe, das Sie nicht sehen können. Sie wird nicht gelöscht, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Dieses Arbeitspaket enthält %{count} Unteraufgaben, die Sie nicht sehen können. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Alle sichtbaren Unteraufgaben werden entfernt. Es gibt jedoch eine Unteraufgabe, die Sie nicht sehen können. Sie wird nicht gelöscht, aber die Verknüpfung zum Elternelement wird entfernt. - other: Alle sichtbaren Unteraufgaben werden entfernt. Es gibt jedoch %{count} Unteraufgaben, die Sie nicht sehen können. Sie werden nicht gelöscht, aber deren Verknüpfungen zum Elternelement werden entfernt. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: "%{count} Arbeitspakete löschen" undeletable_descendants_warning: - one: Sie können eine Unteraufgabe nicht löschen, da Ihnen die erforderlichen Berechtigungen fehlen. Sie bleibt erhalten, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Sie können %{count} Unteraufgaben nicht löschen, da Ihnen die erforderlichen Berechtigungen fehlen. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Sie können eine Unteraufgabe nicht löschen, da Ihnen die erforderlichen Berechtigungen in %{projects} fehlen. Sie wird nicht gelöscht, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Sie können %{count} Unteraufgaben nicht löschen, da Ihnen die erforderlichen Berechtigungen in %{projects} fehlen. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7125,7 +7737,7 @@ de: manual_with_children: Hat Unteraufgaben aber ihre Startdaten werden ignoriert. title: automatic_mobile: Automatisch geplant. - automatic_with_children: Unteraufgaben bestimmen Termine. + automatic_with_children: Die Termine sind durch untergeordnete Arbeitspakete bestimmt. automatic_with_predecessor: Der Anfangstermin wird von einem Vorgänger festgelegt. manual_mobile: Manuell geplant. manually_scheduled: Manuell geplant – Daten unabhängig von Beziehungen. @@ -7170,18 +7782,154 @@ de: description: Möchten Sie "%{name}" wirklich löschen? heading: Dieses Arbeitspaket unwiderruflich löschen? hidden_descendants_only_warning: - one: Dieses Arbeitspaket hat eine Unteraufgabe, das Sie nicht sehen können. Sie wird nicht gelöscht, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Dieses Arbeitspaket enthält %{count} Unteraufgaben, die Sie nicht sehen können. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Alle sichtbaren Unteraufgaben werden entfernt. Es gibt jedoch %{count} Unteraufgaben, die Sie nicht sehen können. Sie werden nicht gelöscht, aber deren Verknüpfungen zum Elternelement werden entfernt. - other: Alle sichtbaren Unteraufgaben werden entfernt. Es gibt jedoch %{count} Unteraufgaben, die Sie nicht sehen können. Sie werden nicht gelöscht, aber deren Verknüpfungen zum Elternelement werden entfernt. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Arbeitspaket löschen undeletable_descendants_warning: - one: Sie können eine Unteraufgabe nicht löschen, da Ihnen die erforderlichen Berechtigungen fehlen. Sie bleibt erhalten, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Sie können %{count} Unteraufgaben nicht löschen, da Ihnen die erforderlichen Berechtigungen fehlen. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Sie können eine Unteraufgabe nicht löschen, da Ihnen die erforderlichen Berechtigungen in %{projects} fehlen. Sie wird nicht gelöscht, die Verknüpfung zum Elternelement wird jedoch entfernt. - other: Sie können %{count} Unteraufgaben nicht löschen, da Ihnen die erforderlichen Berechtigungen in %{projects} fehlen. Sie bleiben erhalten, deren Verknüpfungen zum Elternelement werden jedoch entfernt. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Datei prüfen + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: Diese Datei ist leer. + expired: Diese Datei ist nicht mehr verfügbar. Laden Sie sie erneut hoch. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Wählen Sie eine CSV-Datei zum Hochladen aus. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: kann nicht importiert werden. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: darf nicht in der Zukunft liegen. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: existiert nicht. + unknown_in_project: existiert in diesem Projekt nicht. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV-Import um %{datetime} + download_template: Vorlage herunterladen + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV-Datei + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Bevor Sie beginnen + import_file: Datei importieren + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: Die Datei wurde überprüft. Der Bericht ist unten aufgeführt. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: Der Import ist abgeschlossen. Der Bericht ist unten aufgeführt. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Bereit zum Importieren + import: "%{work_packages} importieren" + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Als CSV herunterladen + file_rejected: + heading: Kopfzeile + line: Zeile 1 von %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: Die Spaltenüberschriften konnten nicht gelesen werden + headline: + accounts: + label: Konten + subtitle: assignee, accountable and author + dated: + label: Zeilen mit Datumsangaben + subtitle: a start or finish date + types: + label: Typen + subtitle: in dieser Datei verwendet + work_packages: + label: Arbeitspakete + subtitle: one for every line + imported: + again: Weitere Datei importieren + heading: Import summary + link: + one: Importiertes Arbeitspaket ansehen + other: "%{count} importierte Arbeitspakete ansehen" + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} erstellt" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Probleme + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Es wurde nichts importiert: %{problems} in %{lines}' + table: + attribute: Spalte + available: Verfügbare Werte + column: Spalte + empty: leer + header: Header + message: Problem + row: Zeile + value: Wert + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Arbeitspakete importieren move: bulk_current_type_not_available_in_target_project: 'Die Typen der Arbeitspakete oder deren Unterelemente sind im Zielprojekt nicht aktiviert. Bitte aktivieren Sie die fehlenden Typen im Zielprojekt, wenn Sie möchten, dass diese unverändert bleiben. Andernfalls wählen Sie bitte einen im Zielprojekt verfügbaren Typ aus der Liste aus. @@ -7213,37 +7961,53 @@ de: version: no_results_title_text: Derzeit sind keine Versionen verfügbar. x_descendants: - one: Ein untergeordnetes Arbeitspaket - other: "%{count} untergeordnete Arbeitspakete" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Kopieren Sie den aktuellen Workflow auf eine oder mehrere Rollen in demselben Typ. Wenn die ausgewählte Rolle bereits über einen Workflow verfügt, wird der aktuelle Workflow überschrieben. - label: In andere Rollen kopieren - from_type: - caption: Kopieren Sie den aktuellen Workflow auf einen anderen Arbeitspaket-Typ. Wenn dieser bereits einen Workflow besitzt, wird der aktuelle überschrieben. Dies betrifft alle Rollen. - label: In einen anderen Typ kopieren - source_role_id: - label: Ausgehende Rolle target_role_ids: label: Zielrollen - target_variant_ids: - label: Zieltypen from_roles: create: notice: one: Workflow erfolgreich in die Rolle '%{role_name}' kopiert. other: Workflow erfolgreich in %{count} Rollen kopiert. - from_variants: - create: - notice: - one: Workflow erfolgreich für den Typ '%{type_name}' kopiert. - other: Workflow erfolgreich für %{count} Typen kopiert. new: - title: Workflow von "%{source_type}" kopieren + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Beschreibung + edit_title: Edit workflow matrix_caption: Workflow-Matrix matrix_caption_assignee: Workflow-Matrix für Zugewiesene matrix_caption_author: Workflow-Matrix für den Autor @@ -7252,12 +8016,88 @@ de: matrix_check_uncheck_all_in_row_label_html: Übergänge von %{old_status} auf alle neuen Status umschalten matrix_checkbox_label: Übergang von %{old_status} zu %{new_status} erlauben matrix_uncheck_all_label: Alle Übergänge verbieten + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Übergänge bearbeiten + menu: Aktionen für %{name} + rename: Name und Beschreibung bearbeiten + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projekte + roles: Rollen + types_and_variants: Typen und Varianten + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Projekte filtern … + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Typen nach Name filtern… + types_and_variants_count: "%{types} (einschließlich %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Konfigurieren Sie die Statusübergänge für jeden Arbeitspaket-Typ. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Startpunkt + scratch: + caption: Start with a blank workflow and build it manually. + label: Von Grund auf neu beginnen + title: New workflow + usage: + dialog: + button: Abhängige Typen ansehen + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variante von %{type} + variants: Varianten + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Arbeitstage ändern dialog: diff --git a/config/locales/crowdin/el.seeders.yml b/config/locales/crowdin/el.seeders.yml index 31b4d4bb2585..ae7112a45feb 100644 --- a/config/locales/crowdin/el.seeders.yml +++ b/config/locales/crowdin/el.seeders.yml @@ -250,70 +250,26 @@ el: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Backlog προϊόντος + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ el: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml index 98db6e55f724..c896b0b3e029 100644 --- a/config/locales/crowdin/el.yml +++ b/config/locales/crowdin/el.yml @@ -40,7 +40,9 @@ el: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Διαγραφή λογαριασμού delete_confirmation: Είστε σίγουρος ότι θέλετε να διαγράψετε αυτό το λογαριασμό; deletion_info: @@ -65,7 +67,9 @@ el: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: ή συνδεθείτε με τον υπάρχοντα λογαριασμό σας + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Παρακαλούμε συνδεθείτε για να ενεργοποιήσετε τον λογαριασμό σας. @@ -118,6 +122,8 @@ el: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ el: repository: Αποθετήριο comment: commented: Σχολιασμένο - custom_action: - actions: Ενέργειες custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ el: uid: Ταυτότητα Πελάτη emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Token υποστήριξης Έκδοσης για Επιχειρήσεις @@ -179,20 +184,44 @@ el: company: Εταιρεία favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Πλήθος στηλών page: Σελίδα row_count: Πλήθος γραμμών widgets: Γραφικά στοιχεία group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ el: title: Title member: blocked: Blocked + principal_type: Member type roles: Ρόλοι notification: read_ian: Read in-app @@ -235,6 +265,7 @@ el: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ el: ongoing: Ongoing spent_on: Ημερομηνία type: Τύπος + token/base: + expires_on: Expiration date token/ical: calendar: Ημερολόγιο ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ el: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Διαχειριστής auth_source: Authentication source + avatar_type: Avatar type consented_at: Συγκατατίθεμαι σε current_password: Τρέχων κωδικός πρόσβασης department: Department @@ -410,7 +441,7 @@ el: last_name: Επώνυμο ldap_auth_source: Σύνδεση LDAP new_password: Νέος κωδικός πρόσβασης - password_confirmation: Επιβεβαίωση + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ el: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ el: header_look_and_feel: Look and feel impaired: Λειτουργία προσβασιμότητας increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Ζώνη Ώρας warn_on_leaving_unsaved: Προειδοποιήστε με όταν φεύγω από ένα πακέτο εργασίας με μη αποθηκευμένες αλλαγές workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ el: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Γονέας @@ -519,6 +565,10 @@ el: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: πρέπει να γίνει αποδεκτό. @@ -590,6 +640,8 @@ el: regex_invalid: δεν ήταν δυνατή η επικύρωση με τη συσχετιζόμενη κανονική έκφραση. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: πρέπει να είναι μικρότερο ή ίσο με το μέγιστο μήκος. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ el: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: έχει λάθος μέγεθος (πρέπει να είναι %{count} χαρακτήρες). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ el: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: η τελική τιμή πρέπει να είναι μεγαλύτερη από την αρχική τιμή. outside: είναι εκτός πλέγματος. @@ -689,6 +755,13 @@ el: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ el: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'χρησιμοποιείται ακόμη από τα πακέτα εργασίας: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ el: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ el: numeric: αριθμητικό (π.χ. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: έχει ξαναχρησιμοποιηθεί. Παρακαλούμε επιλέξτε ένα διαφορετικό από το προηγούμενο σας. - other: έχει ξαναχρησιμοποιηθεί. Παρακαλούμε επιλέξτε ένα διαφορετικό από τα %{count} προηγούμενα σας. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: ειδικός χαρακτήρας (π.χ. '%') uppercase: κεφαλαία γράμματα (π.χ. 'Α') password_confirmation: @@ -976,6 +1032,8 @@ el: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: δεν μπορεί να είναι σε άλλο έργο. cannot_be_milestone: δεν μπορεί να είναι ορόσημο. @@ -1003,6 +1061,8 @@ el: status_id: status_invalid_in_type: δεν είναι έγκυρο γιατί η τρέχουσα κατάσταση δεν υπάρχει σε αυτό τον τύπο. status_transition_invalid: δεν είναι έγκυρο γιατί δεν υπάρχει έγκυρη μετάβαση από την παλιά στην νέα κατάσταση για τους ρόλους του τρέχοντα χρήστη. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: δεν μπορεί να είναι ορόσημο γιατί αυτό το πακέτο εργασίας έχει παιδιά. is_not_a_valid_target_for_time_entries: 'Το πακέτο εργασίας #%{id} δεν είναι έγκυρος στόχος για ανάθεση των καταχωρήσεων χρόνου.' @@ -1011,8 +1071,8 @@ el: template: body: 'Παρακαλούμε ελέγξτε τα ακόλουθα πεδία:' header: - one: 1 σφάλμα απέτρεψε αυτό το %{model} από το να αποθηκευτεί - other: "%{count} σφάλματα απέτρεψαν αυτό το %{model} από το να αποθηκευτεί" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ el: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ el: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ el: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ el: issue_priority: one: Προτεραιότητα other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ el: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ el: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Η αλλαγή του θέματος θα αντικαταστήσει το προσαρμοσμένο στυλ. Ο σχεδιασμός θα χαθεί. Είστε βέβαιοι ότι θέλετε να συνεχίσετε; + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Ανεβάστε ένα support token της έκδοσης Enterprise book_now: Κάντε κράτηση τώρα @@ -1467,7 +1558,7 @@ el: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ el: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ el: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ el: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ el: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ el: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Αποτυχία ανάλυσης της απάντησης από το διακομιστή. Ο διακομιστής μπορεί να μην είναι ένα έγκυρο instance Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ el: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ el: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ el: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ el: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ el: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ el: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ el: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: εμφανίζεται αυτή τη στιγμή is_inactive: δεν εμφανίζεται αυτή τη στιγμή show_until: Εμφάνιση μέχρι @@ -2075,7 +2256,7 @@ el: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ el: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Το πλαίσιο που παρείχατε δεν είναι σύνδεσμος για έναν πόρο. - context_object_not_found: Δεν ήταν δυνατή η εύρεση του πόρου που δόθηκε ως πλαίσιο αναφοράς. - unsupported_context: Ο πόρος που δόθηκε δεν υποστηρίζεται ως πλαίσιο αναφοράς. unable_to_create_attachment: Το συνημμένο δεν ήταν δυνατό να δημιουργηθεί unable_to_create_attachment_permissions: Το συνημμένο δεν ήταν δυνατό να αποθηκευτεί λόγω έλλειψης δικαιωμάτων συστήματος αρχείων user: @@ -2203,6 +2380,7 @@ el: groups: Ομάδες hexcode: Κωδικός Hex id: Ταυτότητα + inexistent: Inexistent is_default: Προεπιλεγμένη τιμή is_for_all: Για όλα τα έργα issue: Εργασία @@ -2253,6 +2431,7 @@ el: updated_at: Τροποποιήθηκε updated_on: Τροποποιήθηκε uploader: Μεταφορτώθηκε από + url: URL user: Χρήστης username: Όνομα χρήστη value: Τιμή @@ -2267,6 +2446,29 @@ el: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Η εργασία ακυρώθηκε λόγω σφάλματος: %{message}' @@ -2395,6 +2597,7 @@ el: button_set_reminder: Set reminder button_show: Εμφάνιση button_sort: Ταξινόμηση + button_stop_timer: Διακοπή χρονόμετρου button_submit: Υποβολή button_test: Δοκιμή button_unarchive: Αναίρεση αρχειοθέτησης @@ -2461,9 +2664,9 @@ el: text: failed: Δεν ήταν δυνατή η αντιγραφή του έργου "%{source_project_name}" στο έργο "%{target_project_name}". succeeded: Αντιγράφτηκε το έργο "%{source_project_name}" στο "%{target_project_name}". - title: Αντιγραφή έργου "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Ένα αντικείμενο αυτού του τύπου + one: "%{count} object of this type" other: "%{count} αντικείμενα αυτού του τύπου" zero: Δεν υπάρχουν αντικείμενα αυτού του τύπου create_portfolio: @@ -2501,13 +2704,9 @@ el: plural: Προσαρμοσμένες ενέργειες custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Για όλα τα έργα hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ el: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ el: is_enabled_globally: Είναι ενεργοποιημένο σε όλο το σύστημα multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Αναδιάταξη τιμών αλφαβητικά reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Δημιουργία νέου προσαρμοσμένου πεδίου - no_results_title_text: Προς το παρόν δεν υπάρχουν προσαρμοσμένα πεδία. text_add_new_custom_field: 'Για να προσθέσετε νέα προσαρμοσμένα πεδία σε ένα έργο, πρέπει πρώτα να τα δημιουργήσετε για να τα προσθέσετε σε αυτό το έργο. ' @@ -2666,56 +2866,56 @@ el: datetime: distance_in_words: about_x_hours: - one: περίπου 1 ώρα - other: περίπου %{count} ώρες + one: about %{count} hour + other: about %{count} hours about_x_months: - one: περίπου 1 μήνας - other: περίπου %{count} μήνες + one: about %{count} month + other: about %{count} months about_x_years: - one: περίπου 1 χρόνος - other: περίπου %{count} χρόνια + one: about %{count} year + other: about %{count} years almost_x_years: - one: σχεδόν 1 χρόνος - other: σχεδόν %{count} χρόνια + one: almost %{count} year + other: almost %{count} years half_a_minute: μισό λεπτό less_than_x_minutes: one: λιγότερο από ένα λεπτό other: λιγότερο από %{count} λεπτά less_than_x_seconds: - one: λιγότερο από 1 δευτερόλεπτο - other: λιγότερο από %{count} δευτερόλεπτα + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: πάνω από 1 χρόνο - other: πάνω από %{count} χρόνια + one: over %{count} year + other: over %{count} years x_days: - one: 1 ημέρα - other: "%{count} ημέρες" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 ώρα - other: "%{count} ώρες" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 λεπτό - other: "%{count} λεπτά" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 μήνας - other: "%{count} μήνες" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 δευτερόλεπτο - other: "%{count} δευτερόλεπτα" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 έτος + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ el: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ el: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Προς το παρόν δεν υπάρχουν αναρτήσεις σε αυτό το φόρουμ. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ el: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ el: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ el: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ el: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Δημοσιεύστε αυτή την προβολή, επιτρέποντας σε άλλους χρήστες να έχουν πρόσβαση στην προβολή σας. Οι χρήστες με δικαίωμα 'Διαχείρισης δημόσιων προβολών' μπορούν να τροποποιήσουν ή να αφαιρέσουν τις δημόσιες αναζητήσεις. Αυτό δεν επηρεάζει την ορατότητα των αποτελεσμάτων πακέτων εργασίας σε αυτή την προβολή και ανάλογα με τα δικαιώματα τους, οι χρήστες μπορεί να βλέπουν διαφορετικά αποτελέσματα. homescreen: @@ -3305,6 +3652,31 @@ el: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Διαβάστε για τις νέες λειτουργίες και τις ενημερώσεις προϊόντων. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ el: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ el: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ el: label_copy_target: Στόχος label_copy_workflow_from: Αντιγραφή ροής εργασίας από label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Βασική έκδοση label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Τρέχουσα κατάσταση label_current_version: Τρέχουσα έκδοση label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ el: label_custom_field_default_type: Άδειος τύπος label_custom_field_new: Νέο προσαρμοσμένο πεδίο label_custom_field_plural: Προσαρμοσμένα πεδία - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Σχεδιασμός label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ el: label_database_version: Έκδοση PostgreSQL label_date: Ημερομηνία label_date_and_time: Ημερομηνία και ώρα - label_date_format: Μορφηποίηση ημερομηνίας + label_date_and_time_formats: Date and time formats label_date_from: Από label_date_from_to: Από %{start} έως %{end} label_date_to: Έως label_dates: Ημερομηνίες + label_day: Ημέρα label_day_plural: ημέρες label_default: Προεπιλογή label_defaults: Defaults @@ -3596,6 +3970,7 @@ el: label_deleted_custom_field: "(διαγραμμένο προσαρμοσμένο πεδίο)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(διαγραμμένη επιλογή)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ el: label_float: Float label_folder: Φάκελος label_follows: ακολουθεί + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Νέο φόρουμ label_forum_plural: Φόρουμ @@ -3684,6 +4060,7 @@ el: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Ομάδα + label_group_attributes_plural: Group attributes label_group_by: Ομαδοποίηση κατά label_group_named: Ομάδα %{name} label_group_new: Νέα ομάδα @@ -3735,8 +4112,8 @@ el: label_journal_diff: Σύγκριση Περιγραφών label_jump_to_a_project: Μεταβείτε σε ένα έργο... label_keyword_plural: Λέξεις-κλειδιά + label_label_plural: Labels label_language: Γλώσσα - label_language_based: Με βάση τη γλώσσα του χρήστη label_languages: Languages label_last_activity: Τελευταία δραστηριότητα label_last_change_on: Τελευταία τροποποίηση στις @@ -3758,6 +4135,7 @@ el: label_list: Προβολή λίστας label_loading: Φόρτωση... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Κλείδωμα χρήστη label_locked: κλειδωμένο label_logged_as: Συνδεδεμένος ως @@ -3769,6 +4147,7 @@ el: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Αποθετήρια που διαχειρίζονται από %{vendor} label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Μέγιστο μέγεθος label_me: εγώ label_member_all_admin: "(Όλοι οι ρόλοι λόγω κατάστασης διαχειριστή)" @@ -3787,7 +4166,6 @@ el: label_menu_item_name: Όνομα στοιχείου μενού label_message: Μήνυμα label_message_last: Τελευταίο μήνυμα - label_message_new: Νέο μήνυμα label_message_plural: Μηνύματα label_message_posted: Το μήνυμα προστέθηκε label_minute_plural: λεπτά @@ -3799,6 +4177,7 @@ el: label_module_plural: Ενότητες label_modules: Ενότητες label_modules_and_plugins: Ενότητες και Πρόσθετα + label_month: Μήνας label_months_from: μήνες από label_more: Περισσότερα label_more_information: Περισσότερες πληροφορίες @@ -3812,6 +4191,7 @@ el: label_my_avatar: My avatar label_my_queries: Οι προσαρμοσμένες αναζητήσεις μου label_my_security: Security + label_my_time: My time label_name: Όνομα label_never: Ποτέ label_new: Νέο @@ -3826,7 +4206,10 @@ el: label_news_singular: Νέα label_news_view_all: Προβολή όλων των νέων label_next: Επόμενο + label_next_day: Επόμενη μέρα + label_next_month: Επόμενος μήνας label_next_week: Επόμενη εβδομάδα + label_next_workweek: Επόμενη εβδομάδα εργασίας label_next_year: Next year label_no_change_option: "(Δεν υπάρχουν αλλαγές)" label_no_data: Δεν υπάρχουν δεδομένα για εμφάνιση @@ -3834,6 +4217,7 @@ el: label_no_parent_group: "(No parent group)" label_no_parent_page: Δεν υπάρχει σελίδα γονέα label_no_start_date: δεν υπάρχει ημερομηνία έναρξης + label_no_time: Δεν υπάρχει καταχωρημένος χρόνος label_nobody: κανένας label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ el: label_preview: Προεπισκόπηση label_preview_not_available: Preview not available label_previous: Προηγούμενο + label_previous_day: Προηγούμενη μέρα + label_previous_month: Προηγούμενος μήνας label_previous_week: Προηγούμενη εβδομάδα + label_previous_workweek: Προηγούμενη εβδομάδα εργασίας label_previous_year: Previous year label_principal_invite_via_email: " ή προσκαλέστε καινούργιους χρήστες μέσω email" label_principal_search: Προσθήκη υπαρχόντων χρηστών ή ομάδων @@ -4019,6 +4406,7 @@ el: label_sort_lowest: Μετακίνηση στο τέλος label_sorted_by: ταξινομημένα κατά %{value} label_spent_time: Χρόνος που δαπανήθηκε + label_stack: Stack label_start_to_end: από την αρχή μέχρι το τέλος label_start_to_start: από την αρχή μέχρι την αρχή label_starts_with: starts with @@ -4038,6 +4426,7 @@ el: label_subtask_plural: Υποεργασίες label_summary: Περίληψη label_system: Σύστημα + label_system_or_language_default: Use system or language based default label_system_settings: Ρυθμίσεις συστήματος label_system_storage: Πληροφορίες αποθήκευσης label_table_of_contents: Πίνακας περιεχομένων @@ -4052,6 +4441,7 @@ el: label_time: Ώρα label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Χρόνος που δαπανήθηκε + label_timer_since: Started at %{time} label_title: Τίτλος label_today: σήμερα label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ el: label_user_search: Αναζήτηση για χρήστη label_user_settings: Ρυθμίσεις χρήστη label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Επεξεργασία έκδοσης label_version_new: Νέα έκδοση label_version_plural: Εκδόσεις @@ -4100,6 +4492,7 @@ el: label_videos: Βίντεο label_view_all_revisions: Προβολή όλων των αναθεωρήσεων label_view_diff: Προβολή διαφορών + label_view_mode_switcher: Change view label_view_revisions: Προβολή αναθεωρήσεων label_view_x: 'View: %{x}' label_watched_work_packages: Πακέτα εργασίας που παρακολουθούνται @@ -4123,6 +4516,8 @@ el: label_wiki_start: Σελίδα έναρξης label_wiki_toc: Πίνακας Περιεχομένων label_wiki_toc_empty: Ο Πίνακας Περιεχομένων είναι κενός, καθώς δεν υπάρχουν επικεφαλίδες. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Εργασία label_work_package_attachments: Συνημμένα πακέτου εργασίας @@ -4145,45 +4540,46 @@ el: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 κλειστό + one: "%{count} closed" other: "%{count} κλειστά" zero: 0 κλειστά label_x_comments: - one: 1 σχόλιο + one: "%{count} comment" other: "%{count} σχόλια" zero: κανένα σχόλιο label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 ανοικτό + one: "%{count} open" other: "%{count} ανοικτά" zero: 0 ανοικτά label_x_projects: - one: 1 έργο + one: "%{count} project" other: "%{count} έργα" zero: κανένα έργο label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: χθες label_zen_mode: Zen mode @@ -4237,7 +4633,7 @@ el: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4294,6 +4690,8 @@ el: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4350,7 +4748,7 @@ el: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4529,6 +4927,13 @@ el: create_button: Δημιουργία dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Αποτυχία επαναφοράς του token πρόσβασης: %{error}' @@ -4542,10 +4947,26 @@ el: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Ενέργεια expiration: Λήγει @@ -4747,7 +5168,6 @@ el: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "Βρέθηκαν %{number} αποτελέσματα. \n Πατήστε Tab για να εστιάσετε στο πρώτο αποτέλεσμα." notice_principals_found_single: "Υπάρχει ένα αποτέλεσμα. \n Πατήστε Tab για να εστιάσετε σε αυτό." - notice_project_cannot_update_custom_fields: 'Δεν μπορείτε να ενημερώσετε τα διαθέσιμα προσαρμοσμένα πεδία του έργου. Το έργο δεν είναι έγκυρο: %{errors}' notice_project_not_deleted: Το έργο δεν διαγράφηκε. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4757,9 +5177,6 @@ el: notice_successful_create: Επιτυχής δημιουργία. notice_successful_delete: Επιτυχής διαγραφή. notice_successful_update: Επιτυχής ενημέρωση. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Υπάρχουν πάρα πολλά αποτελέσματα. Περιορίστε την αναζήτηση πληκτρολογώντας το όνομα του νέου μέλους (ή ομάδας). @@ -4861,7 +5278,7 @@ el: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4952,8 +5369,6 @@ el: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4973,7 +5388,6 @@ el: or: ή rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5045,8 +5459,8 @@ el: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5071,7 +5485,7 @@ el: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Σχολιασμός νέων permission_commit_access: Πρόσβαση ανάγνωσης/εγγραφής στο αποθετήριο (δέσμευση) - permission_copy_projects: Αντιγραφή έργων + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5104,6 +5518,7 @@ el: permission_export_projects: Export projects permission_export_work_packages: Εξαγωγή πακέτων εργασίας permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5114,6 +5529,9 @@ el: permission_manage_dashboards: Manage dashboards permission_manage_forums: Διαχείριση των φόρουμ permission_manage_members: Διαχείριση Μελών + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Διαχείριση νέων permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5142,7 +5560,6 @@ el: permission_save_bcf_queries: Save BCF queries permission_save_queries: Αποθήκευση προβολών permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Επιλογή ενοτήτων έργου permission_select_project_phases: Select project phases @@ -5176,6 +5593,16 @@ el: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Τα πακέτα εργασίας μπορούν να ανατεθούν σε χρήστες και ομάδες που έχουν αυτό το ρόλο στο αντίστοιχο έργο placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5197,7 +5624,7 @@ el: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5208,7 +5635,7 @@ el: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5223,7 +5650,7 @@ el: Μπορεί να χρησιμοποιηθεί για την επισήμανση πακέτων εργασίας στον πίνακα. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5235,7 +5662,7 @@ el: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 έργο + one: "%{count} project" other: "%{count} έργα" zero: 0 projects destroy: @@ -5340,11 +5767,11 @@ el: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5354,6 +5781,12 @@ el: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Προς το παρόν δεν υπάρχουν διαθέσιμα προσαρμοσμένα πεδία. forums: no_results_content_text: Δημιουργία νέου φόρουμ @@ -5450,14 +5883,14 @@ el: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5469,7 +5902,7 @@ el: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Δημιουργήστε μια νέα έκδοση - no_results_title_text: Δεν υπάρχουν προς το παρόν εκδόσεις για το έργο. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Γράφημα πακέτων εργασίας work_package_priorities: @@ -5477,15 +5910,27 @@ el: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Εφαρμογή προδιαμορφωμένου φίλτρου configure_view: @@ -5514,7 +5959,7 @@ el: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5632,6 +6077,31 @@ el: warnings: cannot_annotate: Αυτό το αρχείο δεν μπορεί να σχολιαστεί. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5643,6 +6113,15 @@ el: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5747,7 +6226,7 @@ el: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Εμφανίζεται ο μέγιστος αριθμός γραμμών diff setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Εμφάνιση πακέτων εργασίας υποέργων στα κύρια έργα από προεπιλογή + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5862,6 +6341,7 @@ el: setting_start_of_week: Η εβδομάδα ξεκινά από setting_sys_api_description: Το web service διαχείρισης αποθετηρίων παρέχει ενσωμάτωση και αυθεντικοποίηση χρήστη για την πρόσβαση σε αποθετήρια. setting_sys_api_enabled: Ενεργοποίηση του web service διαχείρισης αποθετηρίων + setting_sys_api_key: API key setting_time_format: Ώρα setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5914,7 +6394,7 @@ el: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5925,6 +6405,7 @@ el: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6016,12 +6497,12 @@ el: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6041,8 +6522,8 @@ el: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6050,7 +6531,7 @@ el: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6070,6 +6551,7 @@ el: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6126,7 +6608,7 @@ el: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6219,19 +6701,19 @@ el:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Κλειστό - is_default: Προεπιλογή is_readonly: Μόνο για ανάγνωση + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Προσθέσετε μια νέα κατάσταση no_results_title_text: Προς το παρόν δεν υπάρχουν καταστάσεις για το πακέτο εργασίας. + status_actions: Status actions support: array: sentence_connector: και skip_last_comma: ψευδές text_access_token_hint: Τα tokens πρόσβασης σας επιτρέπουν να δώσετε πρόσβαση σε εξωτερικές εφαρμογές σε πόρους μέσα στο OpenProject. - text_accessibility_hint: Ο τρόπος προσβασιμότητας έχει σχεδιαστεί για χρήστες τυφλούς, με κινητικά προβλήματα ή με κακή όραση. Για τα τελευταία αυτά τα στοιχεία είναι ειδικά επισημασμένα. Σημειώστε ότι η ενότητα Backlogs δεν είναι διαθέσιμη σε αυτή τη λειτουργία. text_analyze: 'Περαιτέρω ανάλυση: %{subject}' text_are_you_sure: Είστε σίγουρος/η; text_are_you_sure_continue: Are you sure you want to continue? @@ -6274,12 +6756,6 @@ el: ' text_custom_field_possible_values_info: Μία γραμμή για κάθε τιμή - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6329,6 +6805,7 @@ el: text_length_between: Μήκος μεταξύ %{min} και %{max} χαρακτήρων. text_line_separated: Επιτρέπονται πολλαπλές τιμές (μία γραμμή για κάθε τιμή). text_load_default_configuration: Φόρτωση προεπιλεγμένων ρυθμίσεων διαμόρφωσης + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Δεν υπάρχουν tokens πρόσβασης που μπορούν να διαμορφωθούν. text_no_configuration_data: |- Οι ρόλοι, οι τύποι, η καταστάσεις των πακέτων εργασίας και η ροή εργασίας δεν έχουν ρυθμιστεί ακόμα. @@ -6434,6 +6911,68 @@ el: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6443,14 +6982,40 @@ el: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6459,8 +7024,10 @@ el: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6489,21 +7056,21 @@ el: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6520,6 +7087,8 @@ el: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6541,6 +7110,14 @@ el: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6550,12 +7127,14 @@ el: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6569,12 +7148,12 @@ el: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6587,10 +7166,12 @@ el: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Έργα + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6605,43 +7186,17 @@ el: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6649,6 +7204,9 @@ el: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6657,13 +7215,14 @@ el: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6677,12 +7236,16 @@ el: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6691,33 +7254,74 @@ el: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Δημιουργήστε έναν νέο τύπο no_results_title_text: Αυτή τη στιγμή δεν υπάρχουν τύποι. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Αγνοείστε αυτή την προειδοποίηση. message: Μπορεί να συναντήσετε σφάλματα και υποβαθμισμένη εμπειρία χρήστη σε αυτή τη σελίδα. @@ -6736,8 +7340,8 @@ el: authorization_rejected: Δεν σας επιτρέπεται η σύνδεση. blocked: κλειδωμένο προσωρινά blocked_num_failed_logins: - one: κλειδωμένο προσωρινά (μία αποτυχημένη προσπάθεια σύνδεσης) - other: κλειδωμένο προσωρινά (%{count} αποτυχημένες προσπάθειες σύνδεσης) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Πρόκειται να αλλάξετε την κατάσταση του '%{name}'. Είστε βέβαιοι ότι θέλετε να συνεχίσετε; deleted: Διεγραμμένος χρήστης department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6837,7 +7441,7 @@ el: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Λήγει - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6897,13 +7501,19 @@ el: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: κλειστό version_status_locked: κλειδωμένο version_status_open: ανοιχτό versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Προς το παρόν δεν έχουν ανατεθεί πακέτα εργασίας σε αυτήν την έκδοση. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7073,12 +7683,14 @@ el: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Δεν ήταν δυνατή η αποθήκευση των ακόλουθων πακέτων εργασίας:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7103,17 +7715,17 @@ el: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7171,18 +7783,154 @@ el: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7214,37 +7962,53 @@ el: version: no_results_title_text: Προς το παρόν δεν υπάρχουν διαθέσιμες εκδόσεις. x_descendants: - one: Ένα πακέτο εργασίας-απόγονος - other: "%{count} πακέτα εργασίας-απόγονοι" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7253,12 +8017,88 @@ el: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/eo.seeders.yml b/config/locales/crowdin/eo.seeders.yml index b85cd72a4abf..3c5b085678d6 100644 --- a/config/locales/crowdin/eo.seeders.yml +++ b/config/locales/crowdin/eo.seeders.yml @@ -250,70 +250,26 @@ eo: In this module you can communicate project news to your team members. versions: item_0: - name: Cima taskolisto - item_1: - name: Produkta taskolisto - item_2: - name: Spinto 1 wiki: - title: Spinto 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprinto 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Produkta taskolisto + name: Version 1.1 item_2: - name: Spinto 1 + name: Version 1.0 item_3: name: Taskoj boards: @@ -345,12 +301,13 @@ eo: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/eo.yml b/config/locales/crowdin/eo.yml index 5349689386e3..74a345514c9a 100644 --- a/config/locales/crowdin/eo.yml +++ b/config/locales/crowdin/eo.yml @@ -40,7 +40,9 @@ eo: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Forigi konton delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ eo: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: aŭ ensalutu per via ekzistanta konto + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Bonvolu ensaluti por aktivigi vian konton. @@ -118,6 +122,8 @@ eo: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ eo: repository: Deponejo comment: commented: Komentita - custom_action: - actions: Agoj custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ eo: uid: ID de la kliento emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Entreprena subtenĵetono @@ -179,20 +184,44 @@ eo: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Numero de kolumnoj page: Paĝo row_count: Kvanto da vicoj widgets: Kromprogrametoj group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ eo: title: Title member: blocked: Blocked + principal_type: Member type roles: Roloj notification: read_ian: Read in-app @@ -235,6 +265,7 @@ eo: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ eo: ongoing: Ongoing spent_on: Dato type: Tipo + token/base: + expires_on: Expiration date token/ical: calendar: Kalendaro ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ eo: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administranto auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Nuna pasvorto department: Department @@ -410,7 +441,7 @@ eo: last_name: Familinomo ldap_auth_source: LDAP connection new_password: Nova pasvorto - password_confirmation: Konfirmo + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ eo: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ eo: header_look_and_feel: Look and feel impaired: Faciliga reĝimo increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Horzono warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ eo: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Patro @@ -519,6 +565,10 @@ eo: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: devas esti akceptita. @@ -590,6 +640,8 @@ eo: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ eo: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: la longeco estas malĝusta (devus esti %{count} signoj). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ eo: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ eo: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ eo: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'ankoraŭ uzara de la laborpakaĵoj: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ eo: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ eo: numeric: nombra (ekz. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: speciale (Ekz. '%') uppercase: majuskle (Ekz. 'A') @@ -976,6 +1032,8 @@ eo: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: Ĝi ne povas esti en alia projekto. cannot_be_milestone: Ĝi ne povas esti mejloŝtono. @@ -1003,6 +1061,8 @@ eo: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ eo: template: body: 'Bonvolu kontroli la jenajn kampojn:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ eo: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ eo: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ eo: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ eo: issue_priority: one: Prioritato other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ eo: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ eo: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ eo: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ eo: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Provu ĝin! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ eo: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ eo: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ eo: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ eo: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Nekonata journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ eo: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ eo: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ eo: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ eo: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ eo: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ eo: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ eo: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: nun montrita is_inactive: nun ne montrita show_until: Show until @@ -2075,7 +2256,7 @@ eo: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Ujo delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ eo: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ eo: groups: Grupoj hexcode: Deksesuma kodo id: ID + inexistent: Inexistent is_default: Defaŭlta valoro is_for_all: Por ĉiuj projektoj issue: Laborpakaĵo @@ -2253,6 +2431,7 @@ eo: updated_at: Ĝisdatigita la updated_on: Ĝisdatigita la uploader: Alŝutilo + url: URL user: Uzanto username: Uzantnomo value: Valoro @@ -2267,6 +2446,29 @@ eo: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ eo: button_set_reminder: Set reminder button_show: Montri button_sort: Ordigi + button_stop_timer: Stop timer button_submit: Sendi button_test: Testo button_unarchive: Elarkivigi @@ -2461,9 +2664,9 @@ eo: text: failed: Ne eblis kopii la projekton "%{source_project_name}" al la projekto "%{target_project_name}". succeeded: Kopiita projekto de "%{source_project_name}" al "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ eo: plural: Adaptitaj agoj custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Por ĉiuj projektoj hierarchy: subitems: - one: 1 subero + one: "%{count} sub-item" other: "%{count} sub-items" zero: neniuj suberoj items: @@ -2528,7 +2727,7 @@ eo: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ eo: is_enabled_globally: Ĉie ŝaltita multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Krei novan adaptitan kampon - no_results_title_text: Nun estas neniu adaptita kampo. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ eo: datetime: distance_in_words: about_x_hours: - one: proksimume 1 horo - other: proksimume %{count} horoj + one: about %{count} hour + other: about %{count} hours about_x_months: - one: proksimume 1 monato - other: proksimume %{count} monatoj + one: about %{count} month + other: about %{count} months about_x_years: - one: proksimume 1 jaro - other: proksimume %{count} jaroj + one: about %{count} year + other: about %{count} years almost_x_years: - one: preskaŭ 1 jaro - other: preskaŭ %{count} jaroj + one: almost %{count} year + other: almost %{count} years half_a_minute: duonminuto less_than_x_minutes: one: malpli ol minuto other: malpli ol %{count} minutoj less_than_x_seconds: - one: malpli ol 1 sekundo - other: malpli ol %{count} sekundoj + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: pli ol 1 jaro - other: pli ol %{count} jaroj + one: over %{count} year + other: over %{count} years x_days: - one: 1 tago - other: "%{count} tagoj" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minuto - other: "%{count} minutoj" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 monato - other: "%{count} monatoj" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 sekundo - other: "%{count} sekundoj" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ eo: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ eo: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ eo: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ eo: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ eo: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ eo: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ eo: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Legu pri novaj plibonigoj kaj aktualigoj de produkto. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ eo: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ eo: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ eo: label_copy_target: Celo label_copy_workflow_from: Kopii laborfluon el label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Kerna versio label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Nuna stato label_current_version: Nuna versio label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ eo: label_custom_field_default_type: Malplena tipo label_custom_field_new: Nova propra kampo label_custom_field_plural: Propraj kampoj - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Aspektigo label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ eo: label_database_version: PostgreSQL version label_date: Dato label_date_and_time: Dato kaj horo - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: De %{start} al %{end} label_date_to: Al label_dates: Dates + label_day: Tago label_day_plural: tagoj label_default: Defaŭlte label_defaults: Defaults @@ -3596,6 +3970,7 @@ eo: label_deleted_custom_field: "(propra kampo forigita)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ eo: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nova forumo label_forum_plural: Forumoj @@ -3684,6 +4060,7 @@ eo: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grupo + label_group_attributes_plural: Group attributes label_group_by: Grupigi laŭ label_group_named: Grupo %{name} label_group_new: Nova grupo @@ -3735,8 +4112,8 @@ eo: label_journal_diff: Komparo de la priskribo label_jump_to_a_project: Iri al la projekto... label_keyword_plural: Ŝlosilvortoj + label_label_plural: Labels label_language: Lingvo - label_language_based: Bazita sur la lingvo de la uzanto label_languages: Languages label_last_activity: Lasta aktiveco label_last_change_on: Lasta ŝanĝo en @@ -3758,6 +4135,7 @@ eo: label_list: Listo label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ eo: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Deponejoj de %{vendor} administrataj label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimuma dosiergrando label_me: mi label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ eo: label_menu_item_name: Nomo de menuero label_message: Mesaĝo label_message_last: Lasta mesaĝo - label_message_new: Nova mesaĝo label_message_plural: Mesaĝoj label_message_posted: Mesaĝo aldonita label_minute_plural: minutoj @@ -3799,6 +4177,7 @@ eo: label_module_plural: Moduloj label_modules: Moduloj label_modules_and_plugins: Moduloj kaj Kromprogramoj + label_month: Monato label_months_from: monatoj ekde label_more: Pli label_more_information: Pliaj informoj @@ -3812,6 +4191,7 @@ eo: label_my_avatar: My avatar label_my_queries: Miaj propraj informpetoj label_my_security: Security + label_my_time: My time label_name: Nomo label_never: Neniam label_new: Nova @@ -3826,7 +4206,10 @@ eo: label_news_singular: Novaĵoj label_news_view_all: Vidi ĉiujn novaĵojn label_next: Sekva + label_next_day: Proksima tago + label_next_month: Proksima monato label_next_week: Sekva semajno + label_next_workweek: Venonta laborsemajno label_next_year: Next year label_no_change_option: "(Neniu ŝanĝo)" label_no_data: Neniu montrebla datumo @@ -3834,6 +4217,7 @@ eo: label_no_parent_group: "(No parent group)" label_no_parent_page: Neniu patra paĝo label_no_start_date: no start date + label_no_time: No time tracked label_nobody: neniu label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ eo: label_preview: Antaŭrigardo label_preview_not_available: Preview not available label_previous: Antaŭa + label_previous_day: Previous day + label_previous_month: Antaŭa monato label_previous_week: Antaŭa semajno + label_previous_workweek: Antaŭa laborsemajno label_previous_year: Previous year label_principal_invite_via_email: " aŭ invitu novajn uzantojn retpoŝte" label_principal_search: Aldoni ekzistantajn uzantojn aŭ grupojn @@ -4019,6 +4406,7 @@ eo: label_sort_lowest: Movi al la fino label_sorted_by: sorted by %{value} label_spent_time: Uzata tempo + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ eo: label_subtask_plural: Subtaskoj label_summary: Resumo label_system: Sistemo + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Konserveja informo label_table_of_contents: Enhavtabelo @@ -4052,6 +4441,7 @@ eo: label_time: Tempo label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Uzata tempo + label_timer_since: Started at %{time} label_title: Titolo label_today: hodiaŭ label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ eo: label_user_search: Serĉo de uzanto label_user_settings: Agordoj de uzanto label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Redakti version label_version_new: New version label_version_plural: Versioj @@ -4100,6 +4492,7 @@ eo: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ eo: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Laborpakaĵo label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ eo: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Laborsemajno label_x_closed_work_packages_abbr: - one: 1 fermita + one: "%{count} closed" other: "%{count} fermitaj" zero: 0 fermita label_x_comments: - one: 1 komento + one: "%{count} comment" other: "%{count} komentoj" zero: sen komentoj label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 malfermita + one: "%{count} open" other: "%{count} malfermitaj" zero: 0 malfermita label_x_projects: - one: 1 projekto + one: "%{count} project" other: "%{count} projektoj" zero: sen projektoj label_x_work_packages: - one: 1 laborpakaĵo + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: hieraŭ label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ eo: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ eo: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ eo: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ eo: create_button: Krei dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Eraro dum restarigo de la alirĵetono: %{error}' @@ -4543,10 +4948,26 @@ eo: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Ago expiration: Senvalidiĝas @@ -4748,7 +5169,6 @@ eo: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ eo: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Estas tro da rezultoj. Limigu la serĉon tajpante la nomon de la nova membro (aŭ grupo). @@ -4862,7 +5279,7 @@ eo: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ eo: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ eo: or: aŭ rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Ŝaltita item: Item @@ -5046,8 +5460,8 @@ eo: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ eo: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ eo: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Laborpakaĵoj kaj Gantt-diagramoj + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ eo: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ eo: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Serĉu projekton - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ eo: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ eo: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolioj" zero: 0 portfolioj filters: @@ -5209,7 +5636,7 @@ eo: label: Filtrilo de portfolia nomo placeholder: Serĉu portfoliojn sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ eo: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ eo: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekto + one: "%{count} project" other: "%{count} projektoj" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ eo: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ eo: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Krei novan forumon @@ -5451,14 +5884,14 @@ eo: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ eo: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Krei novan version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ eo: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ eo: action_title: React add_reaction: Aldoni reagon and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ eo: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ eo: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ eo: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ eo: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Tempo setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ eo: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ eo: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ eo: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ eo: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ eo: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ eo: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ eo: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ eo:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Fermita - is_default: Defaŭlte is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Aldoni novan staton no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: malvero text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ eo: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ eo: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ eo: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ eo: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ eo: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ eo: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Malŝalti ĉiujn label_enable_all: Aktivigi ĉiujn label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ eo: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Forigi sekcion drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ eo: query_group_label: Related work packages table remove_attribute: Forigi el sekcio rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ eo: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ eo: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Serĉu laŭ sekcio aŭ nomo tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ eo: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Aktivigu por ĉiuj projektoj select_projects: Elektu projektojn select_projects_description: Select the projects in which you would like to use this type. tab: Projektoj + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ eo: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ eo: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ eo: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ eo: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ eo: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Krei novan tipon no_results_title_text: Nun estas neniu tipo. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ eo: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ eo: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Senvalidiĝas - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ eo: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: fermita version_status_locked: locked version_status_open: malfermita versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ eo: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ eo: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ eo: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ eo: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ eo: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/es.seeders.yml b/config/locales/crowdin/es.seeders.yml index 6e111b341587..5d5871f972a3 100644 --- a/config/locales/crowdin/es.seeders.yml +++ b/config/locales/crowdin/es.seeders.yml @@ -250,70 +250,26 @@ es: En este módulo puede comunicar las novedades del proyecto a los miembros de su equipo. versions: item_0: - name: Backlog de errores - item_1: - name: Cartera de producto - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Versión 1.0 content: | - ### Reunión de planificación del Sprint - - _Documente aquí los temas para la reunión de planificación del Sprint_ - - * Con caja de tiempo (8 h) - * Entrada: Backlogs del producto - * Salida: Backlogs de Sprint - - * Dividido en dos cajas de tiempo adicionales de 4 h: - - * El Propietario del producto presenta el [Backlog del Producto]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) y las prioridades al equipo y explica el Objetivo del Sprint, con el que el equipo debe estar de acuerdo. Juntos, priorizan los temas del Backlog del Producto de los que se ocupará el equipo en el siguiente sprint. El equipo se compromete a la entrega acordada. - * El equipo planifica de forma autónoma (sin el Propietario del producto) en detalle y desglosa las tareas a partir de los requisitos discutidos para consolidar un [Backlog de Sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Reunión diaria de Scrum - - _Documente aquí los temas a tratar en la reunión diaria de Scrum_ - - * Breve reunión diaria de estado del equipo. - * Caja de tiempo (máx. 15 min). - * Reunión de pie para discutir los siguientes temas del [Tablón de tareas](##sprint:scrum_project__version__sprint_1). - * ¿Qué tengo previsto hacer hasta el próximo Scrum diario? - * ¿Qué ha bloqueado mi trabajo (Impedimentos)? - * El Scrum Master modera y anota los [Impedimentos del Sprint](##sprint:scrum_project__version__sprint_1). - * El Propietario del producto puede participar para mantenerse informado. + ### Versión 1.0 - ### Reunión de revisión del Sprint + _Describa aquí el contenido de esta versión._ - _Documente aquí los temas a tratar en la reunión de Revisión del Sprint_. - - * Caja de tiempo (4 h). - * Un máximo de una hora de tiempo de preparación por persona. - * El equipo muestra al Propietario del producto y a otras personas interesadas lo que se ha conseguido en este sprint. - * Importante: ¡nada de maniquíes ni de PowerPoint! Solo debe demostrarse la funcionalidad del producto terminado (incrementos). - * Los comentarios del Propietario del producto, de las partes interesadas y de otras personas son bienvenidos y se incluirán en el trabajo posterior. - * Basándose en las funcionalidades demostradas, el Propietario del producto decide poner en marcha este incremento o desarrollarlo más. Esta posibilidad permite un ROI temprano. - - - ### Retrospectiva del sprint - - _Documente aquí los temas de la reunión de Retrospectiva del Sprint_. - - * Caja de tiempo (3 h). - * Después de la Revisión del Sprint, será moderada por el Scrum Master. - * El equipo discute el sprint: lo que fue bien, lo que hay que mejorar para ser más productivos para el próximo sprint o incluso divertirse más. - item_3: - name: Sprint 2 + * Los paquetes de trabajo de esta versión son aquellos cuya versión objetivo es la 1.0. + * La fecha de lanzamiento es la fecha del hito *Versión v1.0*. + * Abra la [Hoja de ruta]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) para seguir el progreso de todas las versiones. + * Abra [Configuración del proyecto → Versiones]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) para vincular otra página wiki a una versión. categories: item_0: Categoría 1 (a modificar en la configuración del proyecto) queries: item_0: name: Planificación del proyecto item_1: - name: Cartera de producto + name: Versión 1.1 item_2: - name: Sprint 1 + name: Versión 1.0 item_3: name: Tareas boards: @@ -339,18 +295,21 @@ es: options: name: Primeros pasos text: | - ¡Nos alegra que te hayas unido! Te sugerimos probar algunas cosas para empezar en OpenProject. - - _Prueba los siguientes pasos:_[Backlogs]. *Invitar nuevos miembros a tu proyecto*: → Ir a [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) en la navegación del proyecto. - 2. *Ver el registro de tu producto y los backlogs de Sprint*: → Ir a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) en la navegación del proyecto. - 3. *Ver el tablero de tareas*: → Ir a [Backlogs] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Haga clic en la flecha derecha en Sprint → Seleccione [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Crear un nuevo paquete de trabajo*: → Ir a [Paquetes de trabajo → Crear]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Crear y actualizar un plan de proyecto*: → Ir a [Plan del proyecto](##query:scrum_project__query__project_plan) en la navegación del proyecto. - 6. *Crea un wiki de Sprint*: → Ir a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) y abre el wiki de sprint desde el menú desplegable derecho en un sprint. Puedes editar la [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) en función de tus necesidades. - 7. *Activar más módulos*: → Ir a [Configuración del proyecto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - - Aquí encontrarás nuestras [Guías de usuario](https://www. penproject.org/docs/user-guide/). - Por favor, háganos saber si tienes alguna pregunta o necesitas ayuda. Contáctanos: [support[at]openproject.com](mailto:support@openproject.com). + ¡Nos alegra que se haya unido! Le sugerimos que pruebe algunas cosas para empezar a utilizar OpenProject. + + _Siga estos pasos:_ + + 1. *Invite a nuevos miembros a su proyecto*: → Vaya a [Miembros]({{opSetting:base_url}}/projects/your-scrum-project/members) en el menú de navegación del proyecto. + 2. *Consulte su Cartera de producto y sus Trabajos pendientes del sprint*: → Vaya a [Trabajos pendientes]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) en el menú de navegación del proyecto. + 3. *Cree un sprint*: → Vaya a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) y haga clic en «+ Sprint» para crear un nuevo sprint. Traslade los paquetes de trabajo de los trabajos pendientes al sprint para planificar el trabajo que se va a realizar. Cuando esté todo listo, haga clic en «Iniciar sprint». + 4. *Consulte su tablero de sprint*: → Vaya a [Tableros]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Abra el tablero del sprint haciendo clic en el nombre del mismo. + 5. *Cree un nuevo paquete de trabajo*: → Vaya a [Paquetes de trabajo → Crear]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Cree y actualice un plan de proyecto*: → Vaya a [Plan de proyecto](##query:scrum_project__query__project_plan) en la navegación del proyecto. + 7. *Active módulos adicionales*: → Vaya a [Configuración del proyecto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + + + Aquí encontrará nuestras [Guías de usuario](https://www.openproject.org/docs/user-guide/). + No dude en ponerse en contacto con nosotros si tiene alguna pregunta o necesita ayuda. Contacto: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Paquetes de trabajo diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml index de86ef4585ea..b81982465b69 100644 --- a/config/locales/crowdin/es.yml +++ b/config/locales/crowdin/es.yml @@ -40,7 +40,9 @@ es: view: Un enlace dinámico a una vista insertado mediante una macro. work_package: Un enlace dinámico a un paquete de trabajo insertado mediante una macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Inicia sesión como %{login} para activar tu cuenta. + continue_with_provider: Continue with %{name} delete: Borrar cuenta delete_confirmation: "¿Está seguro que desea eliminar la cuenta?" deletion_info: @@ -65,7 +67,9 @@ es: error_self_registration_limited_provider: 'El registro de usuarios está limitado para el proveedor de inicio de sesión único ''%{name}''. Por favor, pida a un administrador que active la cuenta para usted o cambie el límite de auto-registro para este proveedor. ' - login_with_auth_provider: o inicie sesión con su cuenta existente + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continuar al inicio de sesión omniauth_direct_login_redirecting: Le estamos redirigiendo a su proveedor de identidad... omniauth_login: Por favor inicie sesión para activar su cuenta. @@ -118,6 +122,8 @@ es: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Clientes SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID personalizado customized_type: Tipo personalizado @@ -128,8 +134,6 @@ es: repository: Repositorio comment: commented: Comentado - custom_action: - actions: Acciones custom_field: admin_only: Solo administradores allow_non_open_versions: Permitir versiones no abiertas @@ -168,6 +172,7 @@ es: uid: ID de cliente emoji_reaction: reactable: Reaccionó el + reaction: Reaction enterprise_token: active_user_count_restriction: Usuarios activos encoded_token: Token de soporte de Enterprise @@ -179,20 +184,44 @@ es: company: Empresa favorite: favorited: Elemento + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Número de columnas page: Página row_count: Número de filas widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Usuarios de grupo identity_url: URL de identidad organizational_unit: Unidad organizativa parent: Grupo principal group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Unidad organizativa parent: Grupo principal import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nombre de instancia de Jira personal_access_token: Token de acceso personal url: URL de instancia de Jira @@ -223,6 +252,7 @@ es: title: Título member: blocked: Bloqueado + principal_type: Tipo de miembro roles: Perfiles notification: read_ian: Leer dentro de la aplicación @@ -235,6 +265,7 @@ es: position: Posición persisted_query: filters: Filtros + group_bys: Agrupar resultados por name: Nombre orders: Pedidos selects: Selecciona @@ -367,6 +398,8 @@ es: ongoing: En curso spent_on: Fecha type: Tipo + token/base: + expires_on: Expiration date token/ical: calendar: Calendario ical_token_query_assignment: Asignación de consultas @@ -384,19 +417,17 @@ es: type_variant: attribute_groups: Formulario default_work_package_description: Texto predeterminado para descripción - defaults_source: Fuente de los valores predeterminados enabled_in_new_projects: Activo en nuevos proyectos - form_configuration_source: Fuente del formulario + linked_aspects: Inherited configuration patterns: Patrones - pdf_export_source: Fuente de exportación de PDF - project_attributes_source: Fuente de atributos del proyecto project_types: Proyectos que utilizan esta variante variant: Variante variant_name: Nombre - workflows_source: Fuente de flujos de trabajo + workflow: Workflow user: admin: Administrador auth_source: Fuente de autentificación + avatar_type: Avatar type consented_at: Consentido en current_password: Contraseña actual department: Departamento @@ -410,7 +441,7 @@ es: last_name: Apellidos ldap_auth_source: Conexión LDAP new_password: Nueva contraseña - password_confirmation: Confirmación + password_confirmation: Password confirmation user_custom_field: custom_field_section: Sección user_non_working_time: @@ -419,11 +450,15 @@ es: user_preference: auto_hide_popups: Ocultar automáticamente los banners de éxito auto_hide_popups_caption: Si se habilitan, los banners verdes de éxito desaparecerán automáticamente al cabo de 5 segundos. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Actualizar alertas button_update_look_and_feel: Actualizar apariencia button_update_user_information: Actualizar perfil comments_sorting: Mostrar la actividad del paquete de trabajo ordenada por daily_reminders: Recordatorios diarios + date_format: Date format disable_keyboard_shortcuts: Deshabilitar atajos de teclado dismissed_enterprise_banners: Banners empresariales ocultos force_dark_theme_contrast: Forzar alto contraste en modo oscuro @@ -434,13 +469,23 @@ es: header_look_and_feel: Apariencia impaired: Modo de accesibilidad increase_contrast: Aumentar contraste - increase_contrast_caption: Activa el modo de alto contraste para el modo de color seleccionado. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Aumentar el contraste del tema mode_guideline: Algunos modos sobrescribirán los colores de los temas personalizados por motivos de accesibilidad y legibilidad. Seleccione el modo Claro para obtener una compatibilidad total con los temas personalizados. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Modo de color + time_format: Time format time_zone: Zona horaria warn_on_leaving_unsaved: Avisarme cuando salga de un paquete de trabajo con cambios sin guardar workdays: Días laborables + user_resource: + description: Descripción + name: Nombre + user_filter: Filtrado de usuarios + user_resource_detail: + description: Descripción + user_filter: Filtrado de usuarios user_working_hours: availability_factor: Factor de disponibilidad days: Días laborables @@ -491,6 +536,7 @@ es: title: Días laborables true: incluir días no laborables journal_internal: Diario interno + labels: Labels notify: Notificar observed_in_versions: Ovservado en versiones parent: Padre @@ -519,6 +565,10 @@ es: work_package: Paquete de trabajo work_package_version: kind: Tipo + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: debe ser aceptado. @@ -590,6 +640,8 @@ es: regex_invalid: no se pudo validar con la expresión regular asociada. regex_list_invalid: Las líneas %{invalid_lines} no se pudieron analizar como expresión regular. regex_match_failed: no coincide con la expresión regular %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: Debe ser menor o igual que el tamaño maximo. smaller_than_or_equal_to_max_value: debe ser menor o igual al valor máximo. ssrf_filtered: viola la política SSRF de esta instancia de OpenProject. @@ -612,6 +664,10 @@ es: user_in_ldap_managed_department: TEste usuario pertenece a un departamento gestionado mediante sincronización LDAP y no se puede trasladar. wrong_length: la longitud es incorrecta (debe ser %{count} caracteres). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ es: general_consent: Acepte los términos y condiciones. favorite: already_favorited: ya se ha marcado como favorito. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: el valor final necesita ser mayor que el valor inicial. outside: está fuera de la red. @@ -689,6 +755,13 @@ es: not_unique: ya está en uso. Por favor, seleccione otro nombre. jira: invalid_protocol: Proporcione un protocolo válido (http o https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ es: types: cannot_assign_multiple_variants_of_parent: Solo se puede habilitar una única variante de un tipo en el proyecto cannot_assign_variant_and_parent: 'No se puede asignar una variante y su elemento principal ' - cannot_assign_variants_yet: Por el momento, las variantes aún no se pueden activar en un proyecto. Activa el indicador de función para probar las variantes in_use_by_work_packages: 'todavia en uso por los paquetes de trabajo: %{types}' switch_target_blank: Seleccione la variante a la que desea cambiar switch_target_identical: El tipo de destino debe ser distinto del tipo utilizado actualmente en el proyecto @@ -857,42 +929,26 @@ es: blank: Proporcione un nombre de token format: "%{message}" in_use: Este nombre de token ya está en uso; seleccione uno diferente + type: + attributes: + base: + in_use_by_work_packages: Este tipo no se puede eliminar mientras haya paquetes de trabajo que lo utilicen. type_variant: attributes: - attribute_groups: - attribute_unknown: Se ha usado un atributo de paquete de trabajo no válido. - attribute_unknown_name: 'Se ha utilizado un atributo de paquete de trabajo no válido: %{attribute}' - duplicate_group: El nombre de grupo «%{group}» se usó más de una vez. Los nombres de grupo tienen que ser únicos. - group_without_name: El nombre del grupo no puede estar vacío. - query_invalid: 'La consulta insertada «%{group}» no es válida: %{details}' base: - borrowed_by_variants: No se puede eliminar mientras %{names} esté reutilizando su configuración. is_default_variant: La configuración predeterminada de un tipo no se puede eliminar. project_variants_not_allowed: Este tipo no permite crear variantes dentro de los proyectos. restrict_dependent_destroy: has_many: No se puede eliminar mientras haya proyectos que aún lo estén utilizando. - defaults_source_id: - must_be_available_to_the_variant: debe ser una configuración que este proyecto pueda usar. - would_create_cycle: enlazaría estas configuraciones en un bucle. enabled_in_new_projects: not_available_to_project_owned_variant: no se puede establecer en una variante de un proyecto propio. taken: ya está establecido para otra configuración de este tipo. - form_configuration_source_id: - must_be_available_to_the_variant: debe ser una configuración que este proyecto pueda usar. - would_create_cycle: enlazaría estas configuraciones en un bucle. patterns: invalid_tokens: Uno o más atributos dentro del campo no son válidos. Corrija los atributos antes de guardar. - pdf_export_source_id: - must_be_available_to_the_variant: debe ser una configuración que este proyecto pueda usar. - would_create_cycle: enlazaría estas configuraciones en un bucle. - project_attributes_source_id: - must_be_available_to_the_variant: debe ser una configuración que este proyecto pueda usar. - would_create_cycle: enlazaría estas configuraciones en un bucle. variant: must_belong_to_the_type: debe ser una variante de este tipo. - workflows_source_id: - must_be_available_to_the_variant: debe ser una configuración que este proyecto pueda usar. - would_create_cycle: enlazaría estas configuraciones en un bucle. + workflow: + not_available_to_this_variant: debe ser un flujo de trabajo que este proyecto pueda utilizar. user: attributes: base: @@ -906,8 +962,8 @@ es: numeric: numérico (por ejemplo, ' 1') requirements_not_met: 'Debe incluir caracteres de los siguientes tipos: %{rules}' reused: - one: ha sido utilizado antes. Por favor, especifique uno distinto al usado por última vez. - other: ha sido utilizado antes. Por favor, especifique uno distinto a los %{count} últimos usados. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: especial (por ejemplo, ' %') uppercase: en mayúsculas (por ejemplo ' A') password_confirmation: @@ -976,6 +1032,8 @@ es: identifier: must_not_be_changed: 'no se debe modificar manualmente. Los identificadores de los paquetes de trabajo se asignan automáticamente y se resuelven a través de la tabla de alias, por lo que cambiarlos a mano rompe los enlaces y el historial de identificadores. Si este cambio es a propósito, guarda con ''save(context: :%{context})'' y mantén la tabla ''work_package_semantic_aliases'' coherente.' semantic_identifier_incomplete: y «sequence_number» deben configurarse al mismo tiempo. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: no puede estar en otro proyecto. cannot_be_milestone: no puede ser un hito. @@ -1003,6 +1061,8 @@ es: status_id: status_invalid_in_type: no es válido porque el estado actual no existe en este tipo. status_transition_invalid: no es válido porque no existe ninguna transición desde el estado antiguo al nuevo para los roles del usuario actual. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: no puede ser un hito porque este paquete de trabajo tiene elementos secundarios. is_not_a_valid_target_for_time_entries: 'Paquete de trabajo #%{id} no es un objetivo válido para reasignar las entradas de tiempo.' @@ -1011,8 +1071,8 @@ es: template: body: 'Por favor revise los siguientes campos:' header: - one: Un error impide guardar este %{model} - other: "%{count} errores impiden guardar este %{model}" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Acción @@ -1050,6 +1110,9 @@ es: auth_provider: one: Proveedor de autenticación other: Proveedores de autenticación + automation: + one: Automation + other: Automations backup: one: Copia de seguridad other: Copias de seguridad @@ -1071,9 +1134,6 @@ es: comment: one: Comentario other: Comentarios - custom_action: - one: Acción personalizada - other: Acciones personalizadas custom_field: one: Campo personalizado other: Campos personalizados @@ -1119,6 +1179,9 @@ es: export_setting: one: Exportar ajuste other: Exportar ajustes + form_configuration: + one: Form + other: Forms forum: one: Foro other: Foros @@ -1137,6 +1200,9 @@ es: issue_priority: one: Prioridad other: Prioridades + label: + one: Label + other: Labels ldap_auth_source: one: Conexión LDAP other: Conexiones LDAP @@ -1401,7 +1467,28 @@ es: admin: banners: environment_configured_readonly: Estos valores se configuran mediante variables de entorno y no se pueden editar aquí. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Colores base main_menu: Menú lateral principal @@ -1434,7 +1521,11 @@ es: tab_interface: Interfaz tab_pdf_export_font: Fuente de exportación PDF tab_pdf_export_styles: Estilos de exportación PDF - theme_warning: Al cambiar el tema, se sobrescribirá su estilo personalizado y, como consecuencia, se perderá el diseño. ¿Seguro que quiere continuar? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Cargue el token de soporte de Enterprise book_now: Reservar ahora @@ -1467,7 +1558,7 @@ es: import: title: Importar info: - database_deprecation_html: 'A partir de OpenProject 16.0, se requiere PostgreSQL 16 para utilizar OpenProject. Tu instalación seguirá funcionando con tu base de datos actual, pero ten en cuenta que puede haber incompatibilidades en futuras versiones.
Hemos preparado [guías de actualización para todos los métodos de instalación](upgrade_guide). Puedes realizar la actualización antes del próximo lanzamiento en cualquier momento siguiendo las guías. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Asignador de memoria Jemalloc @@ -1475,12 +1566,15 @@ es: actions: button_edit: Editar configuración button_open: Abrir ejecuciones + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Le rogamos que nos ayude a mejorar el Migrador de Jira con sus comentarios y aportando datos privados. Puede [unirse a la comunidad de desarrollo](link) del Migrador de Jira. ' description: Este Migrador de Jira se encuentra actualmente en fase beta. En este momento solo es compatible con las versiones 10.x y 11.x de Jira Server/Data Center. Por el momento, no es compatible con instancias en la nube. title: Beta - ¡Pruébelo! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure un host de Jira para comenzar a importar elementos desde Jira a esta instancia de OpenProject. title: Aún no se han configurado los hosts de Jira @@ -1513,16 +1607,30 @@ es: description: Jira utiliza identificadores de incidencias que constan de una clave de proyecto y un número de secuencia (PRJ-123). OpenProject también lo admite, pero hay que activarlo [aquí](link). title: Hay que activar los identificadores semánticos basados en proyectos. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Agregar configuración - button_delete_token: Eliminar token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Guardar configuración - delete_token_confirm: "¿Seguro que desea eliminar el token? Esto desactivará la conexión a Jira." + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nombre - personal_access_token: Token de acceso personal + personal_access_token: Personal access token (PAT) url: URL del servidor/Jira Data Center label_testing: Probando la configuración... - test_configuration_caption: Puedes probar esta configuración [haciendo clic aquí](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Editar ejecución @@ -1626,26 +1734,26 @@ es: title: "¡Asegúrese de tener una copia de seguridad!" parts: issues: - one: 1 incidencia - other: "%{count} incidencias" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 proyecto - other: "%{count} projectos" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 estado - other: "%{count} estados" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 tipo - other: "%{count} tipos" + one: "%{count} type" + other: "%{count} types" users: - one: 1 usuario - other: "%{count} usuarios" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 paquete de trabajo - other: "%{count} paquetes de trabajo" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Entiendo que esta reversión eliminará los datos de forma permanente description: Esto eliminará todos los objetos importados (incluidos proyectos completos). @@ -1710,8 +1818,8 @@ es: caption: Elija lo que desea importar en OpenProject caption_done: Completado caption_done_description: - one: 1 proyecto seleccionado como ámbito - other: "%{count} proyectos seleccionados como ámbito" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Seleccione los datos que desea importar de entre los datos disponibles obtenidos de la instancia de host de Jira. elements: custom_fields: Un subconjunto de campos personalizados @@ -1775,23 +1883,53 @@ es: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: La API de Jira ha devuelto el estado de error %{status}. Compruebe la URL de su instancia de Jira y el token de la API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Error de conexión: %{message}' error: Se ha producido un error inesperado al probar la conexión failed: 'Error de conexión: no se ha podido recuperar la información del servidor' invalid_url: Proporcione una URL válida - missing_credentials: Proporcione la URL y el token de acceso personal para probar la conexión parse_error: Error al analizar la respuesta del servidor. Puede que el servidor no sea una instancia válida de Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Se ha conectado con éxito a %{server} (versión %{version}) - token_error: Token API no válido. Compruebe sus credenciales en la configuración. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Migrador Jira - token_deleted: Token eliminado correctamente. user: unknown_name: Desconocido journal_aggregation: caption_with_maximum: 'Las acciones del usuario en un paquete de trabajo (cambios de descripción, el estado, valores, o comentarios escritos) se agrupan si se realizan dentro de este periodo. También controla los plazos de notificación y las demoras de [webhook](webhook_link). El máximo es de %{max} minutos. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: El protocolo de contexto de modelo (MCP, por sus siglas en inglés) permite a los agentes de IA proporcionar a sus usuarios herramientas y recursos expuestos por esta instancia de OpenProject. Esta función aún se encuentra en fase beta. @@ -1822,6 +1960,18 @@ es: update: failure: No se ha podido actualizar la configuración del MCP. success: La configuración del MCP se ha actualizado correctamente. + members: + index: + blank_description: No hay ninguna afiliación que se ajuste al filtro actual. + blank_title: Sin afiliaciones + filter_label: Buscar usuarios + inheritance_source: "%{type} %{name}" + inherited_via: "(a través de %{source})" + title: Afiliaciones + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Consulte nuestra página de integraciones y plugins para obtener más información. no_results_title_text: Actualmente no hay ningún plugin instalado. @@ -1835,8 +1985,8 @@ es: confirm_button: Anular reserva de identificador description: La anulación de la reserva de este identificador de proyecto no puede deshacerse. Enlaces externos e integraciones que lo utilicen dejarán de resolverlo, y el nombre quedará disponible para que otro proyecto nuevo lo utilice. description_with_work_packages: - one: Anular la reserva de este identificador de paquete (y su identificador de paquete de trabajo) no puede deshacerse. Enlaces externos e integraciones que lo utilicen dejarán de resolverlo, y el nombre quedará disponible para que otro proyecto nuevo lo utilice. - other: Anular la reserva de este identificador de paquete (y sus %{count} identificadores de paquete de trabajo) no puede deshacerse. Enlaces externos e integraciones que lo utilicen dejarán de resolverlo, y el nombre quedará disponible para que otro proyecto nuevo lo utilice. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: "¿Liberar «%{identifier}»?" title: Anular reserva de identificador empty_body: Cuando cambie el identificador de un proyecto, el anterior aparecerá aquí para que puedas liberarlo en cuanto sea seguro hacerlo. @@ -1964,8 +2114,8 @@ es: error_unknown: Necesita revisión manual error_used_in_past: Reservado por el historial de identificadores de otro proyecto remaining_projects: - one: "... 1 proyecto más" - other: "... %{count} proyectos más" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Los identificadores actuales de %{project_count} proyectos no cumplen los requisitos para ser identificadores semánticos basados en proyectos. OpenProject puede actualizarlos automáticamente para que sean válidos, tal y como se muestra en los ejemplos siguientes. Haz clic en «Convertir identificadores» para actualizar los identificadores de todos los proyectos de esta manera y habilitar los identificadores semánticos basados en proyectos. @@ -2005,7 +2155,7 @@ es: types_caption: Añada los tipos de paquetes de trabajo para los que debería estar disponible esta acción. Se incluirán automáticamente todas las variantes disponibles. usage_scope_caption: 'Puede limitar dónde debe estar visible esta acción: en todas partes (incluidos los comentarios, las páginas wiki y los campos personalizados), para todos los tipos de paquetes de trabajo o para determinados tipos de paquetes de trabajo.' index: - description: Las acciones de transformación de texto ofrecen a los usuarios funciones basadas en modelos de lenguaje para redactar, organizar y revisar texto en cualquier lugar donde se utilice el editor de texto enriquecido, como en las descripciones de los paquetes de trabajo, los comentarios y las páginas wiki. Puede crear nuevas acciones utilizando sus propias instrucciones e indicaciones. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Acción label_aria_add_action: Añadir una acción de transformación de texto index_component: @@ -2038,13 +2188,20 @@ es: ignore: Descartar cambios save: Guardar cambios y continuar title: "¿Guardar los cambios antes de continuar?" + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Rol: %{role}' no_role: Seleccionar rol roles: - one: Un rol seleccionado - other: "%{count} roles seleccionados" + one: "%{count} role selected" + other: "%{count} roles selected" title: Seleccionar roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Estado statuses_dialog: caption: Añade o elimina los estados que quieras asociar a este tipo. Si eliminas un estado, también se borrará el flujo de trabajo asociado a él. @@ -2054,8 +2211,8 @@ es: confirm: Eliminar description: Si eliminas estos estados, dejarán de estar disponibles para este tipo y se borrarán los flujos de trabajo existentes. ¿Seguro que quieres continuar? heading: - one: "¿Eliminar 1 estado?" - other: "¿Eliminar %{count} estados?" + one: Remove %{count} status? + other: Remove %{count} statuses? title: Eliminar estados tabs: always: Transiciones predeterminadas @@ -2067,7 +2224,31 @@ es: assignee: Transiciones adicionales a disposición del responsable del paquete de trabajo. author: Transiciones adicionales a disposición del autor del paquete de trabajo. menu_label: Transiciones mostradas + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: No se ha podido acceder al servicio de IA. + not_available: El asistente de IA no está disponible. + timeout: El servicio de IA no ha respondido a tiempo. + upstream_error: El servicio de IA ha devuelto un error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: mostrado actualmente is_inactive: no mostrado actualmente show_until: Muestran hasta @@ -2075,7 +2256,7 @@ es: deleted_by_admin: El archivo en cuarentena «%{filename}» ha sido eliminado por un administrador. deleted_message: Se ha detectado un virus en el archivo «%{filename}». El archivo ha sido eliminado. not_processed_yet_message: La descarga está bloqueada, ya que el archivo aún no ha sido analizado en busca de virus. Inténtelo de nuevo más tarde. - overridden_by_admin: La cuarentena para el archivo «%{filename}» ha sido eliminada por %{user}. Ahora se puede acceder al archivo. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Contenedor delete: Eliminar el archivo en cuarentena @@ -2129,10 +2310,6 @@ es: not_found: reminder: No se encuentra el recordatorio que busca, o bien se ha eliminado. work_package: No se encuentra el paquete de trabajo que busca, o bien se ha eliminado. - render: - context_not_parsable: El contexto proporcionado no es un enlace a un recurso. - context_object_not_found: No se ha podido encontrar el recurso dado como el contexto. - unsupported_context: El recurso dado no es soportado como contexto. unable_to_create_attachment: No se pudo crear el adjunto unable_to_create_attachment_permissions: No se pudo guardar el archivo adjunto porque faltan permisos del sistema de archivos user: @@ -2203,6 +2380,7 @@ es: groups: Grupos hexcode: Código hexadecimal id: ID + inexistent: Inexistent is_default: Valor predeterminado is_for_all: Para todos los proyectos issue: Paquete de trabajo @@ -2253,6 +2431,7 @@ es: updated_at: Actualizada el updated_on: Actualizada el uploader: Cargador + url: URL user: Usuario username: Nombre de usuario value: Valor @@ -2267,6 +2446,29 @@ es: ' login_and_registration: Inicio de sesión y registro + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'El trabajo ha sido cancelado debido al error: %{message}' @@ -2393,6 +2595,7 @@ es: button_set_reminder: Establecer recordatorio button_show: Mostrar button_sort: Ordenar + button_stop_timer: Detener temporizador button_submit: Enviar button_test: Prueba button_unarchive: Desarchivar @@ -2457,9 +2660,9 @@ es: text: failed: No se pudo copiar el proyecto "%{source_project_name}" al proyecto "%{target_project_name}". succeeded: Proyecto copiado de "%{source_project_name}" a "%{target_project_name}". - title: Copiar proyecto «%{source_project_name}» + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Un objeto de este tipo + one: "%{count} object of this type" other: "%{count} objetos de este tipo" zero: No hay objetos de este tipo create_portfolio: @@ -2497,13 +2700,9 @@ es: plural: Acciones personalizadas custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Este campo personalizado está activado en todos los proyectos, ya que la opción «Para todos los proyectos» está marcada. No puede desactivarse para proyectos individuales. - heading: Para todos los proyectos hierarchy: subitems: - one: 1 subelemento + one: "%{count} sub-item" other: "%{count} subelementos" zero: ningún subelemento items: @@ -2524,7 +2723,7 @@ es: short: Nombre corto weight: Peso notice: - remember_items_and_projects: Recuerde configurar los artículos y proyectos en las pestañas respectivas para este campo personalizado. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Puede conceder automáticamente un determinado rol de proyecto a cualquier usuario asignado a este atributo de proyecto, independientemente del rol original de ese usuario en ese proyecto. dialog: @@ -2589,16 +2788,17 @@ es: is_enabled_globally: Está activado a nivel global multi_value_more: other: y %{count} más + no_results_title_text: There are currently no custom fields. no_role_assigment: Sin asignación de roles + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Primero debe seleccionar el paquete de trabajo o el proyecto reorder_alphabetical: Ordenar los valores alfabéticamente reorder_confirmation: 'Advertencia: Se perderá el orden actual de los valores disponibles, así como todos los valores no guardados. ¿Seguro que desea continuar?' semantic_keys: job_title: Puesto de trabajo none: Ninguno - tab: - no_results_content_text: Crear un nuevo campo personalizado - no_results_title_text: Actualmente no hay campos personalizados. text_add_new_custom_field: 'Para agregar nuevos campos personalizados a un proyecto, primero debe crearlos, y luego añadirlos a este proyecto. ' @@ -2662,57 +2862,57 @@ es: datetime: distance_in_words: about_x_hours: - one: alrededor de 1 hora - other: alrededor de %{count} horas + one: about %{count} hour + other: about %{count} hours about_x_months: - one: alrededor de un mes - other: alrededor de %{count} meses + one: about %{count} month + other: about %{count} months about_x_years: - one: alrededor de un año - other: alrededor de %{count} años + one: about %{count} year + other: about %{count} years almost_x_years: - one: casi un año - other: casi %{count} años + one: almost %{count} year + other: almost %{count} years half_a_minute: medio minuto less_than_x_minutes: one: menos de un minuto other: menos de %{count} minutos less_than_x_seconds: - one: menos de un segundo - other: menos de %{count} segundos + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: mas de un año - other: mas de %{count} años + one: over %{count} year + other: over %{count} years x_days: - one: 1 día - other: "%{count} días" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hora - other: "%{count} horas" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 h - other: "%{count} horas" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: un minuto - other: "%{count} minutos" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - other: "%{count} minutos" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 mes - other: "%{count} meses" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: un segundo - other: "%{count} segundos" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s - other: "%{count} segundos" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 semana - other: "%{count} semanas" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 año - other: "%{count} años" + one: "%{count} year" + other: "%{count} years" units: day: one: día @@ -2862,8 +3062,8 @@ es: teaser: description_html: Tienes acceso a todas las funciones de %{trial_plan}. title: - one: Queda un día del token de prueba de %{trial_plan} - other: Quedan %{count} días del token de prueba de %{trial_plan} + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Su token de prueba de Enterprise ya se ha recuperado. Busque en sus correos electrónicos el token adjuntado. Póngase en contacto con nuestro equipo de Soporte si necesita uno nuevo. @@ -3198,9 +3398,150 @@ es: selected: Seleccionado include_sub_items: Incluir subelementos no_results_text: No hay resultados + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Actualmente no hay publicaciones en el foro. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3225,6 +3566,8 @@ es: groups: edit: synchronized_groups: Grupos sincronizados + form: + group_attributes: Group attributes index: description: Al agrupar a los usuarios, puede añadirlos como miembros a los mismos proyectos o asignarles los mismos roles globales. memberships: @@ -3250,6 +3593,10 @@ es: leave_project: Abandonar el proyecto no_favorite_projects: No tienes proyectos favoritos. title: Proyectos + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3263,7 +3610,7 @@ es: summary: failure: Algunas comprobaciones han fallado y el sistema no funciona como se esperaba. success: Todas las conexiones y sistemas funcionan según lo previsto. - warning: Algunas comprobaciones devolvieron una advertencia. Esto puede dar lugar a un comportamiento inesperado. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Error @@ -3272,7 +3619,7 @@ es: warning: Alerta help_texts: views: - favoured: Marque esta vista como favorita y agréguela a la barra lateral de vistas guardadas de la izquierda. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} siempre están unidos a un proyecto. Solo puede seleccionar proyectos aquí donde el módulo %{plural} está activo. Después de crear un %{singular} puedes añadir paquetes de trabajo de otros proyectos.\n" public: Publique esta vista para que otros usuarios puedan acceder a esta. Los usuarios con el permiso «Administrar vistas públicas» puede modificar o quitar vistas públicas. Esto no afecta a la visibilidad de los resultados de paquetes de trabajo en esa vista y, según sus permisos, los usuarios pueden ver resultados distintos. homescreen: @@ -3297,6 +3644,31 @@ es: line_6: Utilice las alertas de fecha en la edición Community. new_features_title: 'El lanzamiento incluye varias funciones nuevas y mejoras, como las siguientes: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Obtenga información sobre nuevas funciones y actualizaciones de productos. learn_about: Más información sobre todas las nuevas funciones @@ -3333,8 +3705,10 @@ es: journals: cause_descriptions: budget_deleted: Se ha eliminado el presupuesto + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} modificado (%{link})" + csv: from CSV deleted_with_diff: "%{field} eliminado (%{link})" field_changed: "%{field} ha cambiado de %{old_value} a %{new_value}" field_removed: "%{field} eliminado" @@ -3384,6 +3758,7 @@ es: budget_deleted: Se ha eliminado el presupuesto dates_changed: Cambio de fechas default_attribute_written: Atributos de solo lectura escritos + forum_message_html: "Created from forum message %{message_information}" import: Importado meeting_agenda_item_added_html: "Añadido a la reunión %{meeting_title_information}" meeting_agenda_item_added_template_html: "Añadido a %{meeting_title_information}" @@ -3536,10 +3911,10 @@ es: label_copy_target: Objetivo label_copy_workflow_from: Copiar flujo de trabajo desde label_copy_workflow_from_role: Copiar a otros roles - label_copy_workflow_from_type: Copiar a otro tipo label_core_build: Núcleo base label_core_version: Versión base label_created_by: Creado por %{user} + label_criteria: Criterios label_current_status: Estado actual label_current_version: Version actual label_custom_comment: Comentario de %{name} @@ -3563,8 +3938,6 @@ es: label_custom_field_default_type: Tipo vacío label_custom_field_new: Nuevo campo personalizado label_custom_field_plural: Campos personalizados - label_custom_logo: Logotipo personalizado de sobremesa - label_custom_logo_mobile: Logotipo personalizado de móvil label_custom_pdf_export_settings: Ajustes personalizados de exportación PDF label_custom_style: Diseño label_custom_style_description: Elija el aspecto que OpenProject le ofrece con los temas, seleccione los colores predeterminados que desea utilizar en la aplicación y el aspecto de las exportaciones. @@ -3573,11 +3946,12 @@ es: label_database_version: Versión de PostgreSQL label_date: Fecha label_date_and_time: Fecha y hora - label_date_format: Formato de fecha + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: De %{start} al %{end} label_date_to: Para label_dates: Fechas + label_day: Día label_day_plural: días label_default: Por defecto label_defaults: Por defecto @@ -3588,6 +3962,7 @@ es: label_deleted_custom_field: "(campo personalizado borrado)" label_deleted_custom_item: "(elemento eliminado)" label_deleted_custom_option: "(opción eliminada)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organización label_departments_description_html: 'Define la estructura de tu empresa creando departamentos y subdepartamentos de forma jerárquica. Esto te permite reflejar las líneas jerárquicas y mantener una visión general clara y estructurada de tu organización dentro de OpenProject. También puedes importar una estructura organizativa ya existente mediante la [sincronización de departamentos por LDAP](ldap_docs_article). @@ -3658,6 +4033,7 @@ es: label_float: Desprender label_folder: Carpeta label_follows: sigue + label_form_configuration_plural: Forms label_formula: Fórmula label_forum_new: Foro nuevo label_forum_plural: Foros @@ -3676,6 +4052,7 @@ es: label_go_forward: Abrir el submenú %{module} label_greater_or_equal: ">=" label_group: Grupo + label_group_attributes_plural: Group attributes label_group_by: Agrupar por label_group_named: Grupo %{name} label_group_new: Nuevo grupo @@ -3727,8 +4104,8 @@ es: label_journal_diff: Comparación de la descripción label_jump_to_a_project: Saltar a un proyecto... label_keyword_plural: Palabras clave + label_label_plural: Labels label_language: Idioma - label_language_based: Basado en el idioma del usuario label_languages: Idiomas label_last_activity: Última actividad label_last_change_on: Último cambio en @@ -3750,6 +4127,7 @@ es: label_list: Lista label_loading: Cargando... label_locale: Idioma y región + label_locale_based: Use default for user locale label_lock_user: Bloquear usuario label_locked: bloqueado label_logged_as: Sesión iniciada como @@ -3761,6 +4139,7 @@ es: label_managed_by_ldap: Gestionado mediante sincronización LDAP label_managed_repositories_vendor: Repositorios de %{vendor} administrados label_mapping_for: 'Asignación para: %{attribute}' + label_markdown_version: Markdown version label_max_size: Tamaño máximo label_me: mi label_member_all_admin: "(Todos los roles se deben al estado del administrador)" @@ -3779,7 +4158,6 @@ es: label_menu_item_name: Nombre del elemento de menú label_message: Mensaje label_message_last: Último mensaje - label_message_new: Nuevo mensaje label_message_plural: Mensajes label_message_posted: Mensaje añadido label_minute_plural: minutos @@ -3791,6 +4169,7 @@ es: label_module_plural: Módulos label_modules: Módulos label_modules_and_plugins: Módulos y Extensiones + label_month: Mes label_months_from: meses desde label_more: Más label_more_information: Más información @@ -3804,6 +4183,7 @@ es: label_my_avatar: Mi avatar label_my_queries: Mis consultas personalizadas label_my_security: Seguridad + label_my_time: My time label_name: Nombre label_never: Nunca label_new: Nuevo @@ -3818,7 +4198,10 @@ es: label_news_singular: Noticias label_news_view_all: Ver todas las noticias label_next: Siguiente + label_next_day: Siguiente día + label_next_month: Próximo mes label_next_week: La próxima semana + label_next_workweek: Próxima semana laboral label_next_year: Próximo año label_no_change_option: "(No hay cambios)" label_no_data: No hay datos disponibles @@ -3826,6 +4209,7 @@ es: label_no_parent_group: "(Sin grupo principal)" label_no_parent_page: Sin página principal label_no_start_date: sin fecha de inicio + label_no_time: No hay tiempo seguido label_nobody: nadie label_non_working_days: Calendario de disponibilidad label_non_working_days_summary: Resumen @@ -3892,7 +4276,10 @@ es: label_preview: Vista preliminar label_preview_not_available: Vista previa no disponible label_previous: Anterior + label_previous_day: Día anterior + label_previous_month: Mes anterior label_previous_week: Semana anterior + label_previous_workweek: Semana laboral anterior label_previous_year: Año anterior label_principal_invite_via_email: " o invitar nuevos usuarios vía email" label_principal_search: Añadir usuarios o grupos existentes @@ -4011,6 +4398,7 @@ es: label_sort_lowest: Mover al final label_sorted_by: ordenados por %{value} label_spent_time: Tiempo invertido + label_stack: Stack label_start_to_end: de principio a fin label_start_to_start: iniciar para iniciar label_starts_with: empieza por @@ -4030,6 +4418,7 @@ es: label_subtask_plural: Subtareas label_summary: Resumen label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Ajustes de sistema label_system_storage: Información de almacenamiento label_table_of_contents: Índice @@ -4044,6 +4433,7 @@ es: label_time: Hora label_time_entry_activity_plural: Actividades de tiempo invertido label_time_entry_plural: Tiempo invertido + label_timer_since: Comenzó a las %{time} label_title: Título label_today: hoy label_today_as_date: Seleccione hoy como fecha. @@ -4079,7 +4469,9 @@ es: label_user_search: Búsqueda de usuario label_user_settings: Configuración de usuario label_users_settings: Ajustes de usuario + label_value: Value label_value_x: 'Valor: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Editar versión label_version_new: Nueva versión label_version_plural: Versiones @@ -4092,6 +4484,7 @@ es: label_videos: Vídeos label_view_all_revisions: Ver todas las revisiones label_view_diff: Ver diferencias + label_view_mode_switcher: Cambia vista label_view_revisions: Ver revisiones label_view_x: 'Ver: %{x}' label_watched_work_packages: Paquetes de trabajos seguidos @@ -4115,6 +4508,8 @@ es: label_wiki_start: Página de inicio label_wiki_toc: Tabla de contenidos label_wiki_toc_empty: El índice está vacío porque no hay ningún encabezado. + label_with_criteria: Con criterios + label_without_criteria: Sin criterios label_work: Trabajo label_work_package: Paquete de trabajo label_work_package_attachments: Datos adjuntos de paquete de trabajo @@ -4137,46 +4532,47 @@ es: label_working_days: Días laborables label_working_days_and_hours: Días y horas de trabajo label_working_hours: Horario de trabajo + label_workweek: Semana laboral label_x_closed_work_packages_abbr: - one: 1 cerrado + one: "%{count} closed" other: "%{count} cerrados" zero: 0 cerrados label_x_comments: - one: 1 comentario + one: "%{count} comment" other: "%{count} comentarios" zero: sin comentarios label_x_days: - one: 1 día - other: "%{count} días" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 archivo + one: "%{count} file" other: "%{count} archivos" zero: sin archivos label_x_items: - one: 1 elemento + one: "%{count} item" other: "%{count} elementos" zero: sin elementos label_x_items_selected: - one: Un elemento seleccionado - other: "%{count} elementos seleccionados" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 abierto + one: "%{count} open" other: "%{count} abiertos" zero: 0 abiertos label_x_projects: - one: 1 proyecto + one: "%{count} project" other: "%{count} proyectos" zero: sin proyectos label_x_work_packages: - one: 1 paquete de trabajo + one: "%{count} work package" other: "%{count} paquetes de trabajo" zero: Sin paquetes de trabajo label_x_working_days: - one: 1 día laborable - other: "%{count} días laborables" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Tiempo libre: 1 día laborable' - other: 'Tiempo libre: %{count} días laborables' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: ayer label_zen_mode: Modo zen ldap_auth_sources: @@ -4229,7 +4625,7 @@ es: start_tls: STARTTLS start_tls_description: Envía un comando STARTTLS después de conectarse al puerto estándar LDAP. Recomendado para conexiones cifradas. tls_options: - tls_certificate_description: Si el certificado de servidor LDAP no está en las fuentes de confianza de este sistema, puede añadirlo manualmente aquí. Introduzca una cadena de certificación PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verificar certificado SSL verify_peer_description_html: 'Permite la verificación estricta SSL de la cadena de confianza del certificado.
Advertencia: Desmarcar esta opción desactiva la verificación SSL del certificado del servidor LDAP. Esto expone tu conexión a los ataques de intermediario. @@ -4286,6 +4682,8 @@ es: you_have: Tiene logo_alt_text: Logotipo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} le mencionó en %{id} - %{subject}" notification: center: Al centro de notificaciones @@ -4342,8 +4740,8 @@ es: mentioned: Le han mencionado en un comentario mentioned_by: "%{user} le mencionó en un comentario" more_to_see: - one: Hay un paquete de trabajo más con notificaciones. - other: Hay %{count} paquetes de trabajo más con notificaciones. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Abrir en el navegador reason: assigned: Asignado @@ -4519,6 +4917,13 @@ es: create_button: Crear dialog_body: Este token permitirá a las aplicaciones de terceros comunicarse con su instancia. Para diferenciar el nuevo token de API, asígnele un nombre. dialog_title: Crear nuevo token de API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nombre del token failed_to_create_token: 'Error al crear el token de acceso: %{error}' failed_to_reset_token: 'No se pudo restablecer el token de acceso: %{error}' @@ -4532,10 +4937,26 @@ es: password_confirmation_dialog: confirmation_required: Necesitas introducir la contraseña de tu cuenta para confirmar este cambio. title: Confirma tu contraseña para continuar + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Tokens de acceso description: Los tokens de proveedor son emitidos por OpenProject y permiten a otras aplicaciones acceder a él. Los tokens de cliente son emitidos por otras aplicaciones y permiten a OpenProject acceder a ellos. + expired_on: Expired on %{date} headers: action: Acción expiration: Expira @@ -4737,7 +5158,6 @@ es: notice_password_confirmation_failed: La contraseña introducida no es correcta. notice_principals_found_multiple: "Hemos encontrado %{number} resultados. \n Pulse TAB para ver el primer resultado." notice_principals_found_single: "Se ha encontrado solo un resultado. \n Pulse TAB para verlo." - notice_project_cannot_update_custom_fields: 'No se pueden actualizar campos personalizados disponibles del proyecto. El proyecto es inválido: %{errors}' notice_project_not_deleted: El proyecto no fue eliminado. notice_project_not_found: Proyecto no encontrado. notice_requires_enterprise_token: Falta el token de la empresa o no permite el acceso a esta página. @@ -4747,9 +5167,6 @@ es: notice_successful_create: Creación exitosa. notice_successful_delete: Eliminado con éxito. notice_successful_update: Actualización correcta. - notice_successful_update_custom_fields_added_to_project: 'Actualización correcta. Los campos personalizados de los tipos ya activados se activan automáticamente en el formulario de paquete de trabajo. Ver más. - - ' notice_to_many_principals_to_display: |- Hay demasiados resultados. Afine la búsqueda ingresando el nombre del nuevo miembro (o grupo). @@ -4851,8 +5268,8 @@ es: ' confirm_revoke_my_application: - one: "¿Seguro que quieres eliminar esta aplicación? Eso suspenderá un token activo para realizarse." - other: "¿Seguro que quieres eliminar esta aplicación? Eso suspenderá %{count} tokens activos para realizarse." + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No se ha registrado ninguna aplicación OAuth. flows: authorization_code: Flujo de código de autorización @@ -4942,8 +5359,6 @@ es: not_found: no encontrado. respond_to?: no implementa el método requerido. rules: - copy_workflow_from: - workflow_missing: no tiene flujo de trabajo propio. custom_field: format_not_supported: el formato «%{field_format}» no es compatible. item: @@ -4963,7 +5378,6 @@ es: or: o rules: blueprint: Plano de patrón - copy_workflow_from: Tipo para la copia del flujo de trabajo depth: Profundidad enabled: Habilitado item: Elemento @@ -5035,8 +5449,8 @@ es: label: Tabla de contenidos page_nr_footer: Página %{page} de %{total} template_artefact: - caption: Detalles del paquete de trabajo representados como un artefacto PMflex. - label: Artefacto PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Todos los atributos presentes en el formulario actual utilizando la plantilla predeterminada. label: Atributos y descripción @@ -5061,7 +5475,7 @@ es: permission_change_work_package_status_explanation: Permite cambiar el estado sin el permiso Editar paquetes de trabajo permission_comment_news: Comentar noticias permission_commit_access: Permiso de escritura sobre el repositorio (commit) - permission_copy_projects: Copiar proyectos + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: En los proyectos de plantilla, este permiso tiene una función secundaria, permite la creación de nuevos proyectos derivados de la plantilla. permission_copy_work_packages: Duplicar paquetes de trabajo permission_create_backup: Crear copias de seguridad @@ -5094,6 +5508,7 @@ es: permission_export_projects: Exportar proyectos permission_export_work_packages: Exportar Paquetes de Trabajo permission_header_for_project_module_work_package_tracking: Paquetes de trabajo y diagramas de Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invitar a miembros por correo electrónico permission_invite_members_by_email_explanation: 'Permite a los usuarios invitar a nuevos miembros por correo electrónico. Los usuarios invitados recibirán un correo electrónico con un enlace para establecer su contraseña y activar su cuenta. Depende del permiso para gestionar miembros @@ -5104,6 +5519,9 @@ es: permission_manage_dashboards: Administrar tableros de control permission_manage_forums: Administrar foros permission_manage_members: Gestión de Miembros + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Administrar noticias permission_manage_own_reminders: Crear recordatorios propios permission_manage_own_working_times: Gestiona tu propio horario de trabajo @@ -5132,7 +5550,6 @@ es: permission_save_bcf_queries: Guardar consultas BCF permission_save_queries: Guardar vistas permission_search_project: Buscar proyecto - permission_select_custom_fields: Seleccionar campos personalizados permission_select_project_custom_fields: Seleccione los atributos del proyecto permission_select_project_modules: Seleccionar módulos de proyecto permission_select_project_phases: Seleccione las fases del proyecto @@ -5166,6 +5583,16 @@ es: permission_work_package_assigned: Hazte asignado/responsable permission_work_package_assigned_explanation: Los paquetes de trabajo se pueden asignar a usuarios y grupos con este papel en los proyectos correspondientes placeholder_users: + criteria: + activate: Activar criterios de filtrado + activate_caption: 'Esto permite añadir un conjunto de filtros a este usuario comodín que se utiliza para definir los posibles usuarios que cumplan los criterios deseados. + + ' + enable: Buscar usuarios según criterios + enable_caption: Describa el tipo de usuario al que representa este comodín para que se puedan sugerir usuarios adecuados. + matching_users: Usuarios que cumplen los criterios de filtrado + no_matching_users: Ningún usuario cumple estos criterios. + show_all_matching_users: Mostrar todos los %{count} usuarios coincidentes delete_tooltip: Eliminar usuario de marcador de posición deletion_info: data_consequences: 'Todas las repeticiones del usuario de marcador de posición (por ejemplo, como asignado, responsable u otros valores de usuario) se reasignarán a una cuenta denominada «Usuario eliminado». Como los datos de todas las cuentas eliminadas se reasignarán a esta cuenta, no podrán distinguirse los datos del usuario de los datos creados con cualquier otra cuenta eliminada. @@ -5187,7 +5614,7 @@ es: name: OmniAuth SAML / Inicio de sesión único portfolio: count: - one: 1 cartera + one: "%{count} portfolio" other: "%{count} carteras" zero: 0 carteras filters: @@ -5198,8 +5625,8 @@ es: label: Filtro de nombre de cartera placeholder: Buscar carteras sub_items_html: - one: "1 subelemento" - other: "%{count} subelementos" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Carteras activas archived: Carteras archivadas @@ -5213,7 +5640,7 @@ es: Puede usarse para resaltar paquetes de trabajo en la tabla. program: count: - one: 1 programa + one: "%{count} program" other: "%{count} programas" zero: 0 programas filters: @@ -5225,7 +5652,7 @@ es: confirmation_message: Al archivar este proyecto, tanto él como todos sus proyectos derivados dejarán de estar disponibles para todos los usuarios de esta instancia. Los proyectos archivados se pueden restaurar. title: Archivar proyecto count: - one: 1 proyecto + one: "%{count} project" other: "%{count} projectos" zero: 0 proyectos destroy: @@ -5330,11 +5757,11 @@ es: no_status_when_submitted: No se ha podido habilitar la solicitud de inicio del proyecto porque el tipo de paquete de trabajo %{type} requiere al menos un estado asociado. Habilite al menos un flujo de trabajo de estado para este tipo de paquete de trabajo. no_work_package_type: No se ha podido habilitar la solicitud de inicio del proyecto porque requiere al menos un tipo de paquete de trabajo activo y este proyecto no tiene ninguno. Añada al menos un tipo de paquete de trabajo a este proyecto. export: - description_attachment_export: El artefacto generado se guardará como un archivo PDF adjunto al paquete de trabajo del artefacto. - description_file_link_export: El paquete de trabajo del artefacto tendrá un enlace a un archivo PDF guardado en un servicio de almacenamiento externo. Para este proyecto, necesitas un servicio de almacenamiento que funcione y que gestione automáticamente las carpetas del proyecto. Por ahora, solo se admiten los servicios de almacenamiento de Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Selecciona cuál de los almacenamientos de archivos externos configurados se debe utilizar. external_file_storage: Almacenamiento de archivos externo - label_artifact_export: Exportación de artefactos + label_artifact_export: Artifact export label_attachment_export: Guardar como archivo adjunto del paquete de trabajo label_file_link_export: Sube el archivo a un almacenamiento externo y añade el enlace al paquete de trabajo pdf_file_storage: Almacenamiento de archivos PDF @@ -5344,6 +5771,12 @@ es: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Actualmente no hay campos personalizados disponibles. forums: no_results_content_text: Crear un nuevo foro @@ -5440,15 +5873,15 @@ es: new_heading: Campos que pasan a estar disponibles nothing_affected: No hay campos o estados afectados. status_count: - one: 1 paquete de trabajo - other: "%{count} paquetes de trabajo" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tabla)" value_count: - one: 1 paquete de trabajo tiene un valor - other: "%{count} paquetes de trabajo tienen un valor" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 proyecto de trabajo usará la nueva configuración - other: "%{count} proyectos de trabajo usarán la nueva configuración" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: El proyecto ahora utiliza %{type}. target_label: Variante title: "%{type}: cambiar variante" @@ -5459,7 +5892,7 @@ es: variants_not_allowed: Este tipo no permite crear variantes dentro de los proyectos. versions: no_results_content_text: Crear un nueva versión - no_results_title_text: Actualmente no hay versiones para este proyecto. + no_results_title_text: No se han encontrado versiones que coincidan con los criterios de filtrado para este proyecto. show_work_packages: Mostrar los paquetes de trabajo work_packages_graph: Gráfico de paquetes de trabajo work_package_priorities: @@ -5467,15 +5900,27 @@ es: status: button_edit: Editar estado wizard: - create_artifact_storage_error: No se ha podido guardar el artefacto en el almacenamiento de archivos - create_artifact_work_package_error: No se ha podido crear el paquete de trabajo del artefacto + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Este proyecto no tiene ningún atributo de proyecto habilitado para el asistente. Habilite al menos uno en la configuración del proyecto. no_help_text: Este atributo no tiene texto de ayuda definido. progress_label: "%{current} de %{total}" sections: Secciones sidebar_content_title: Contenido - success: Los atributos del proyecto se han guardado y se ha creado correctamente el paquete de trabajo del artefacto. + success: Project attributes saved and artifact work package created successfully. title: Solicitud de inicio de proyecto + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplicar filtro preconfigurado configure_view: @@ -5504,8 +5949,8 @@ es: action_title: Reaccionar add_reaction: Añadir reacción and_others: - one: y 1 más - other: y %{count} más + one: and %{count} other + other: and %{count} others and_user: y %{user} react_with: Reaccionar con %{reaction} reaction_by: "%{reaction} por" @@ -5620,6 +6065,31 @@ es: warnings: cannot_annotate: No se pueden realizar notas sobre este fichero. roles: + delete_dialog: + confirm: "¿Seguro que quiere eliminar este rol?" + entry_projects: + one: "(Proyecto: %{projects})" + other: "(Proyectos: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: "¿Seguro que quiere eliminar el rol «%{name}»?" + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: De estos usuarios, %{count} perderán el acceso a proyectos en los que este fue su único rol. ¿Seguro que quiere eliminar este rol? + zero: Ninguno de estos usuarios perderá el acceso a ninguno de sus proyectos. ¿Seguro que quiere eliminar este rol? + show_memberships: Mostrar todas las afiliaciones con este rol + summary: "%{users} en %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Eliminar rol edit: default_for_new_projects_warning: 'Este rol está configurado como el rol predeterminado que se asigna a los usuarios que no son administradores y que crean un proyecto. No elimine los siguientes permisos, ya que, de lo contrario, los creadores de proyectos no podrán completar la configuración de los proyectos que acaben de crear:' index: @@ -5631,6 +6101,15 @@ es: permissions: section_check_all_label: Asignar todos los permisos de %{module} section_uncheck_all_label: Quitar todos los permisos de %{module} + permissions_dialog: + edit_permissions: Editar permisos de roles + no_permissions: Este rol no tiene ningún permiso concedido. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Ver permisos + preview_aria_label: Ver permisos de %{role} + title: Permisos de «%{name}» report: matrix_caption: Matriz de permisos para el módulo %{module} matrix_check_all_label: Asignar los permisos de %{module} para todos los roles @@ -5735,7 +6214,7 @@ es: setting_default_projects_wiki: Habilitar la funcionalidad de la wiki para los nuevos proyectos por defecto setting_diff_max_lines_displayed: Cantidad máxima de diferencias de lineas mostradas setting_disable_password_login: Desactivar la autenticación por contraseña - setting_display_subprojects_work_packages: Mostrar paquetes de trabajo de subproyectos en proyectos principales por defecto + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Formato de la duración setting_duration_format_days_and_hours: Días y horas setting_duration_format_hours_only: Sólo horas @@ -5850,6 +6329,7 @@ es: setting_start_of_week: La semana empieza el setting_sys_api_description: El servicio web de administración de repositorios proporciona integración y autorización de usuario para acceder a los repositorios. setting_sys_api_enabled: Habilitar el servicio web de administración de repositorios + setting_sys_api_key: API key setting_time_format: Hora setting_total_percent_complete_mode: Cálculo de los totales de la jerarquía % completado setting_total_percent_complete_mode_simple_average: Media simple @@ -5902,7 +6382,7 @@ es: description_html: 'Seleccione el modo en el que debe funcionar la integración del escáner antivirus.
  • %{disabled_option}: Los archivos cargados no se analizan en busca de virus.
  • %{socket_option}: Ha configurado ClamAV en el mismo servidor que OpenProject y el daemon de análisis clamd se está ejecutando en segundo plano.
  • %{host_option}: Está transmitiendo archivos a un host externo de análisis de virus.
' - remaining_quarantined_files_html: 'Se ha desactivado el análisis de virus. %{file_count} permanecen en cuarentena. Para revisar los archivos en cuarentena, visite este enlace: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'El escaneado de virus se ha activado correctamente. Hay %{file_count} que se cargaron anteriormente y aún deben ser escaneados. Este proceso se ha programado en segundo plano. Los archivos permanecerán accesibles durante el escaneado. @@ -5913,6 +6393,7 @@ es: ' title: Escaneado de virus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Al desactivar esta opción se ocultará la lista de archivos adjuntos en la pestaña de archivos de los paquetes de trabajo para los nuevos proyectos. Los archivos adjuntos en la descripción de un paquete de trabajo seguirán cargándose en el almacenamiento interno de archivos adjuntos. ' @@ -6004,12 +6485,12 @@ es: confirmation_message: El asistente de solicitud de inicio ya no estará disponible para los nuevos proyectos basados en esta plantilla. Los gestores y propietarios de proyectos tendrán que configurar y rellenar manualmente la información relevante en la descripción general del proyecto. heading: "¿Desactivar la solicitud de inicio de proyecto?" title: Desactivar solicitud de inicio de proyecto - header_description: 'OpenProject puede generar un asistente paso a paso para ayudar a los gestores de proyectos a completar una solicitud de inicio de proyecto. Puedes elegir qué atributos del proyecto deben incluirse y crear un artefacto de PDF como resultado. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nombre del artefacto - artifact_name_caption: Elige el nombre para este artefacto que recomiende tu marco de gestión de proyectos. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Asistente de creación de proyectos project_initiation_request: Solicitud de inicio de proyecto @@ -6029,8 +6510,8 @@ es: Has enviado una solicitud de inicio de proyecto para **%{project_name}**. Ahora está pendiente de revisión. Haz clic en el enlace siguiente para acceder al paquete de trabajo con tu solicitud. confirmation_email_text: Texto del correo electrónico de confirmación - description: Cuando un usuario envía una solicitud de inicio de proyecto, se creará un nuevo paquete de trabajo con el artefacto de solicitud adjunto como archivo PDF. La configuración siguiente define el tipo, el estado y el asignado de este nuevo paquete de trabajo. - description_template: "**Este paquete de trabajo se ha creado automáticamente al completar el flujo de trabajo %{wizard_name}.** Se ha generado un archivo PDF con toda la información enviada y se ha adjuntado a este paquete de trabajo para fines de referencia y auditoría. Si necesitas actualizar o volver a ejecutar los pasos de inicio, puedes volver a abrir el asistente en cualquier momento utilizando el siguiente enlace:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Enviar un correo electrónico de confirmación al usuario que envió la solicitud de inicio del proyecto status_when_submitted: Estado al enviar status_when_submitted_caption: El estado al que pasará el paquete de trabajo generado una vez enviada la solicitud. @@ -6038,7 +6519,7 @@ es: work_package_comment_caption: La persona asignada seleccionada anteriormente será @mencionada automáticamente en el comentario. work_package_comment_default: Se ha enviado una solicitud de inicio de proyecto para **%{project_name}** y está pendiente de revisión. work_package_type: Tipo de paquete de trabajo - work_package_type_caption: El tipo de paquete de trabajo que debe utilizarse para almacenar el artefacto completado. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Abrir el asistente de creación de proyectos project_initiation_request: Abrir solicitud de inicio de proyecto @@ -6058,6 +6539,7 @@ es: heading: Nueva fase no_gate: Sin puerta non_defined: Actualmente no hay fases definidas. + order_changed: Order successfully changed. phase_gates: Puertas de fase section_header: Fases start_gate: Puerta de inicio @@ -6114,7 +6596,7 @@ es: section_work_week: Semana de trabajo sharing: count: - one: 1 usuario + one: "%{count} user" other: "%{count} usuarios" zero: 0 usuarios denied: No tiene permisos para compartir %{entities}. @@ -6207,19 +6689,19 @@ es:
Nota: Los valores heredados (por ejemplo, de elementos secundarios o relaciones) seguirán aplicándose. index: + could_not_be_moved: El estado no se pudo trasladar. headers: - excluded_from_totals: Excluido de totales is_closed: Cerrado - is_default: Por defecto is_readonly: Solo lectura + no_filter_results_title_text: No hay ningún estado que coincida con el filtro actual. no_results_content_text: Añadir un nuevo estado no_results_title_text: Actualmente no hay estados de paquetes de trabajo. + status_actions: Acciones de estado support: array: sentence_connector: "y" skip_last_comma: falso text_access_token_hint: Los tokens de acceso te permiten dar permisos de acceso sobre los recursos de OpenProject a aplicaciones externas. - text_accessibility_hint: El modo de accesibilidad está diseñado para los usuarios ciegos, con dificultades motoras o con la vista mala. Para estos últimos, los elementos enfocados se destacan aún más. Tenga en cuenta que el módulo Backlog no está disponible en este modo. text_analyze: 'Análisis futuro: %{subject}' text_are_you_sure: "¿Estás seguro?" text_are_you_sure_continue: "¿Seguro que quiere continuar?" @@ -6262,12 +6744,6 @@ es: ' text_custom_field_possible_values_info: Una línea para cada valor - text_custom_logo_instructions: 'El logotipo se ajusta automáticamente al tamaño del encabezado. Para obtener los mejores resultados, sube un logotipo blanco en una imagen transparente de 130 × 47 píxeles. Puedes añadir todo el espacio que desees dentro de esa imagen. - - ' - text_custom_logo_mobile_instructions: 'El logotipo se ajusta automáticamente al tamaño del encabezado. Para obtener los mejores resultados, sube un logotipo blanco en una imagen transparente de 130 × 33 píxeles. Puedes añadir todo el espacio que desees dentro de esa imagen. - - ' text_custom_touch_icon_instructions: 'Es el icono que aparece en un móvil o tableta al colocar un marcador en la pantalla de inicio. Debe ser un archivo de imagen PNG cuadrado de 180 × 180 píxeles. Asegúrese de que el fondo de la imagen no sea transparente, ya que tendrá una apariencia poco adecuada en iOS. ' @@ -6317,6 +6793,7 @@ es: text_length_between: Longitud entre %{min} y %{max} caracteres. text_line_separated: Múltiples valores permitidos (una línea para cada valor). text_load_default_configuration: Cargar la configuración predeterminada + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: No hay ningun token de acceso que pueda ser configurado. text_no_configuration_data: Roles, tipos, estado de petición y flujo de trabajo no han sido configurados. Se recomienda cargar la configuración por defecto. Podrá modificarla cuando haya sido cargada. text_no_notes: No hay comentarios disponibles para este paquete de trabajo. @@ -6418,6 +6895,68 @@ es: tree_view: label_empty_sub_tree: No hay elementos types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Comparar variantes + blankslate: + description: Añada una segunda variante a este tipo para ver en qué se diferencian. + title: Aún no hay nada que comparar + description: Compare las variantes de este tipo con el tipo principal. + labels: + duplicate: Posible duplicado + duplicate_of: Configurado exactamente como %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Tipo principal + same_as_type: Igual que el tipo principal + rows: + form: + fields: Campos + groups: Secciones + required: De los cuales obligatorios + same_as_base: Igual que el tipo principal + scope: + availability: Disponible para + enabled_in_new_projects: Activo en nuevos proyectos + projects: Proyectos + workflows: + roles: Roles implicados + same_as_base: Igual que el tipo principal + statuses: Estados + transitions: Transiciones + sections: + configuration: Resumen de la configuración + form: Formulario + scope: Alcance + workflows: Flujos de trabajo + title: Comparar variantes + title_for_type: Comparar las variantes de %{name} + values: + global: Todos los proyectos + inheriting_from: Heredando de + project_specific: Específico del proyecto ([%{project}](project_url)) + same_as_base: Idéntico al tipo principal creation_wizard: add_variant: Añadir una variante a %{name} create_type: Crear tipo @@ -6427,14 +6966,40 @@ es: finish: Finalizar placeholder_description: Este paso estará disponible en breve. progress_label: Paso %{number} de %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Por defecto details: Detalles form_configuration: Formulario - pdf: Generación de PDF + pdf: Generate PDF project_attributes: Atributos del proyecto projects: Proyectos - workflows: Flujos de trabajo + start: Start + workflows: Workflow success: Creado correctamente. edit: breadcrumb_variant: 'Variante: %{name}' @@ -6443,8 +7008,10 @@ es: caption: Defina un patrón utilizando atributos referenciados y texto para generar automáticamente asuntos de paquetes de trabajo. Los usuarios no podrán editar manualmente los asuntos. label: Asuntos generados automáticamente description: - caption: Añade el texto que se incluirá en el campo de descripción de todos los nuevos paquetes de trabajo de este tipo. - label: Texto de descripción predeterminado + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Los usuarios pueden introducir y editar manualmente los asuntos de los paquetes de trabajo sin restricciones. label: Asuntos editables manualmente @@ -6473,21 +7040,21 @@ es: file_link: caption: El PDF generado se sube al almacenamiento de Nextcloud gestionado automáticamente del proyecto y se enlaza desde el paquete de trabajo. Los paquetes de trabajo de los proyectos que no dispongan de dicho almacenamiento se omiten. label: Sube el archivo a un almacenamiento externo y añade el enlace al paquete de trabajo - intro: Genera automáticamente un artefacto en PDF de un paquete de trabajo de este tipo cada vez que cambie su estado. - invalid_mode: Modo de exportación de artefactos no válido. - label: Exportación automática de artefactos + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No se genera ningún PDF de forma automática. label: Desactivado - section_title: Exportación automática de artefactos + section_title: Automatic artifact export unavailable: no disponible; no se ha configurado ningún almacenamiento de Nextcloud gestionado automáticamente - intro: Seleccione qué plantillas de las disponibles desea habilitar para este tipo. La plantilla determina el diseño y los atributos visibles en el PDF exportado de un paquete de trabajo que utilice este tipo. La primera plantilla de la lista se selecciona por defecto. pdf_export_templates: actions: label_disable_all: Desactivar todo label_enable_all: Activar todo label_toggle_template: Alternar %{template} label: Plantillas de exportación PDF + order_changed: Order successfully changed. tab: Generar PDF templates: readonly_error: No se puede modificar mientras haya un vínculo con un tipo de fuente. @@ -6504,6 +7071,8 @@ es: confirm_delete_group: "¿Seguro que quieres eliminar esta sección? Esta acción no se puede deshacer automáticamente." confirm_reset: "¿Seguro que quiere restablecer el formulario?" custom_field: Campo personalizado + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Eliminar sección drag_to_activate: Arrastra campos desde aquí para activarlos drag_to_reorder: Arrastra para reordenar @@ -6525,6 +7094,14 @@ es: query_group_label: Tabla de paquetes de trabajo relacionados remove_attribute: Eliminar de la sección rename_group: Renombrar sección + required: + already_required_globally: Este campo personalizado es obligatorio para todos los tipos. + for_variant: Es obligatorio en este tipo + globally: Obligatorio + globally_hint: Modifique esto en el campo personalizado + mark: Obligatorio en este tipo + not_a_custom_field: Solo se puede establecer como obligatorio un campo personalizado para un único tipo. + unmark: No es obligatorio en este tipo reset_description: 'Se restablecerán los atributos al grupo predeterminado y se deshabilitarán TODOS los campos personalizados. ' @@ -6534,12 +7111,14 @@ es: tab: Formulario untitled_group: Grupo sin nombre overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Modo de configuración - dependents: Tipos y variantes dependientes mode: always_manual: Siempre manual - inheriting_from_html: Heredando de %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Se configura manualmente + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Ajustes tab: Resumen project_attributes: @@ -6553,12 +7132,12 @@ es: manual: description: Una vez que [cree los atributos del proyecto](administration_url), estos aparecerán aquí y se podrán añadir a un tipo. title: No hay atributos de proyecto disponibles - description: Selecciona los atributos del proyecto que quieras habilitar para este tipo de paquete de trabajo. Los atributos del proyecto habilitados se muestran en una pestaña aparte en los paquetes de trabajo de este tipo. Los usuarios con los permisos necesarios pueden ver y editar estos atributos desde allí. disabled: Deshabilitado exclusions: attribute_label: Heredar %{attribute} filter: Buscar por sección o por nombre tab: Atributos del proyecto + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: "¿Eliminar el tipo %{type} de %{project}?" @@ -6571,10 +7150,12 @@ es: empty_state: description: Añada un proyecto para utilizar esta configuración en él. no_results: No hay proyectos que coincidan. + title: Not used in any project yet enable_all: Habilitar en todos los proyectos select_projects: Seleccionar proyectos select_projects_description: Seleccione los proyectos en los que desea utilizar este tipo. tab: Proyectos + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6589,43 +7170,17 @@ es: title: Copiar configuración invalid_source: No se puede copiar la configuración del tipo seleccionado. Elige otro tipo de origen. success: Se ha copiado la configuración. - dependents: - blank: - description: Ningún otro tipo o variante hereda de esta configuración - title: Sin tipos dependientes - description: - one: La siguiente configuración la hereda 1 tipo o variante más. Cualquier cambio que realice aquí también afectará al elemento dependiente. - other: La siguiente configuración la heredan %{count} otros tipos o variantes. Cualquier cambio que realice aquí también afectará a los elementos dependientes. - dialog: - description: Estos tipos y variantes heredan la configuración de esta sección. Cualquier cambio que realice aquí se aplicará a todos ellos. - direct_heading: Dependientes directos - indirect_heading: Dependientes a través de otros tipos - title: Tipos dependientes - variant_of_html: Variante de %{type_name} - variant_of_via_html: Variante de %{type_name} que hereda a través de %{source_name} - via_html: Heredando de %{source_name} - title: - one: 1 tipo dependiente - other: "%{count} tipos dependientes" - view: Ver tipos dependientes exclusions: not_inherited: Esta configuración no se hereda, por lo que no hay nada que excluir. En su lugar, edite la configuración directamente. unknown_aspect: Sección de configuración desconocida «%{aspect}». inherited: - change_source: Cambiar el tipo de fuente configure_manually: Configurar manualmente confirm_dialog: - change_source: - description_html: Al cambiar el tipo de fuente a %{source_name}, se sobrescribirán los ajustes actuales y podría verse afectada la información existente sobre los paquetes de trabajo de este tipo. - heading: "¿Cambiar el tipo de fuente?" - title: Cambiar el tipo de fuente check_box: Entiendo que esto reemplazará la configuración actual from_manual: description: Se sobrescribirán todos los ajustes seleccionados actualmente y esto podría afectar a la información existente sobre los paquetes de trabajo de este tipo. heading: "¿Cambiar al modo de configuración?" title: Cambiar al modo de configuración - description: Esta configuración se hereda del tipo de fuente [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Esta configuración se hereda del tipo de fuente %{source_name}%{source_suffix}. dialog: description: Heredar esta configuración de un tipo de fuente. Cualquier configuración nueva que se añada a la fuente también se aplicará aquí. source_label: Tipo de fuente @@ -6633,6 +7188,9 @@ es: submit: Cambiar title: Heredar de otro tipo invalid_source: No se puede heredar la configuración del tipo seleccionado. Seleccione otro tipo de fuente. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: Se ha cambiado el modo de configuración. title: Configuración heredada manual: @@ -6641,13 +7199,14 @@ es: description: Se sobrescribirán todos los ajustes seleccionados actualmente y esto podría afectar a la información existente sobre los paquetes de trabajo de este tipo. heading: "¿Cambiar al modo de configuración?" title: Cambiar al modo de configuración - copy_from_type: Copiar de otro tipo description: No se ha heredado ninguna configuración. No obstante, puede copiar los ajustes de otro tipo una sola vez. dialog: submit: Cambiar title: Configurar manualmente - inherit_from_type: Heredar de otro tipo + inherit_from_type: Inherit from parent invalid_mode: El modo seleccionado no está disponible para esta configuración. Elija otro modo. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Empiece por realizar una copia única de los ajustes que esta configuración hereda actualmente. @@ -6661,12 +7220,16 @@ es: success: Se ha cambiado el modo de configuración. title: Configuración manual parent_suffix: "(principal)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Puede crear variantes para ofrecer versiones de este tipo a distintos proyectos.
Cada variante puede heredar, copiar o tener su propia configuración personalizada de la plantilla predeterminada, los campos personalizados, los flujos de trabajo y las preferencias. ' title: No existen variantes para este tipo + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Creado en %{project} delete: description: Los proyectos que utilicen esta variante se cambiarán a la variante que seleccione a continuación antes de que se elimine. @@ -6675,33 +7238,74 @@ es: filter_no_results: No hay variantes que coincidan con este filtro global_section: description: Estas variantes están disponibles en todos los proyectos. - title: Variantes + title: Variantes globales project_specific_section: description: Estas variantes solo están disponibles en los proyectos en los que se crearon. title: Variantes específicas del proyecto workflow: - tab: Flujos de trabajo + tab: Workflow index: add_variant: Añadir una variante a %{name} add_variant_action: Añadir variante + convert_to_global: Convertir a variante global + convert_to_global_dialog: + confirm: Convertir + text: 'De este modo, esta variante específica del proyecto pasará a ser global y estará disponible para todos los proyectos. El administrador del proyecto ya no podrá editarla. + + ' + workflow_text: 'Su flujo de trabajo «%{name}» pertenece a este proyecto y también pasará a ser global. + + ' + convert_to_global_notice: "%{name} ahora es una variante global." + convert_to_global_rename: + confirm: Convertir + text: Ya existe una variante global con este nombre. Elija otro nombre. + title: Elija otro nombre para esta variante + created_by_migration: Migrated + delete: + description: El tipo se eliminará de forma definitiva. Esta acción no se puede deshacer. + description_with_variants: El tipo y todas sus variantes se eliminarán de forma definitiva. Esta acción no se puede deshacer. + heading: "¿Eliminar el tipo «%{name}»?" + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Eliminar tipo description: 'Cada área de configuración dentro de los tipos y variantes puede configurarse de forma independiente, limitarse con respecto a otro tipo o vincularse por completo a una fuente. ' duplicate_name: Copia de %{name} duplicate_notice: "%{name} se ha duplicado." enabled_in_new_projects: Activo en nuevos proyectos + filter: Filter by name + filter_no_results: No types match this filter make_default: Activar en nuevos proyectos make_default_notice: "%{name} ya está activado en los nuevos proyectos." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Crear un nuevo tipo no_results_title_text: Actualmente no existen tipos. project_variants_count: - one: 1 variante específica del proyecto - other: "%{count} variantes específicas del proyecto" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: No activar en nuevos proyectos remove_default_notice: "%{name} ya no está activado en los nuevos proyectos." type_label: Tipo variant_label: Variante + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Hito + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore esta advertencia. message: Podrás experimentar errores y una experiencia de mala calidad en esta página. @@ -6720,8 +7324,8 @@ es: authorization_rejected: No tienes permitido iniciar sesion. blocked: bloqueado temporalmente blocked_num_failed_logins: - one: bloqueado temporalmente (un intento fallido de inicio de sesión) - other: bloqueada temporalmente (%{count} intentos fallidos de inicio de sesión) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Va a cambiar el estado de “%{name}”. ¿Está seguro de que quiere continuar? deleted: Usuarios Eliminados department_ldap_managed_caption: Este departamento se gestiona mediante sincronización LDAP y no se puede modificar aquí. @@ -6821,7 +7425,7 @@ es: deletion_warning: "¿Seguro que desea revocar esta sesión? Se cerrará la sesión en este dispositivo." device: Dispositivo / SO expires: Expira - instructions: Ha iniciado sesión en su cuenta desde los siguientes dispositivos. Revoque las sesiones que no reconozca o que provengan de dispositivos que no controle. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Última conexión may_not_delete_current: No puede eliminar su sesión actual. session_name: "%{browser_name} %{browser_version} en %{os_name}" @@ -6881,13 +7485,19 @@ es: start_date: Fecha de inicio work_days: Días laborables work_days_count: - one: 1 día laborable - other: "%{count} días laborables" + one: "%{count} working day" + other: "%{count} working days" work_hours: Horas laborales version_status_closed: cerrado version_status_locked: bloqueado version_status_open: abierto versions: + filter_status_labels: + closed: Cerrado + locked: Bloqueado + open: Abierto + index: + filter_label: Buscar versiones overview: no_results_title_text: Actualmente no hay paquetes de trabajo asignados a esta versión. work_packages_in_archived_projects: La versión se comparte con proyectos archivados que aún tienen paquetes de trabajo asignados a esta versión. Estos se contabilizan, pero no aparecerán en las vistas vinculadas. @@ -7055,13 +7665,15 @@ es: required_description: Marca este paquete de trabajo como requisito del relacionado requires_description: Marca el paquete de trabajo relacionado como requisito de este work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: No se pudieron copiar los paquetes de trabajo. could_not_be_deleted: 'Los siguientes paquetes de trabajo no se pudieron eliminar:' could_not_be_saved: 'Los siguientes paquetes de trabajo no pudieron guardarse:' deletion_successful: - one: Se ha eliminado 1 paquete de trabajo. - other: Se han eliminado %{count} paquetes de trabajo. + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: descendiente seleccionado move_failed: No se pudieron mover los paquetes de trabajo. none_could_be_saved: Ninguno de los %{total} paquetes de trabajo pudo ser actualizado. @@ -7085,18 +7697,18 @@ es: description_with_visible_descendants: "¿Seguro que quiere eliminar los paquetes de trabajo seleccionados y todos los elementos secundarios visibles?" heading: "¿Desea eliminar estos %{count} paquetes de trabajo de forma definitiva?" hidden_descendants_only_warning: - one: Hay un elemento secundario que no puede ver. No se eliminará, pero la relación se suprimirá. - other: Hay %{count} elementos secundarios que no puede ver. No se eliminarán, pero cualquier relación de jerarquía se suprimirá. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Se eliminarán todos los elementos secundarios visibles. Sin embargo, hay un elemento secundario que no puede ver. No se eliminará, pero se suprimirá la relación. - other: Se eliminarán todos los elementos secundarios visibles. Sin embargo, hay %{count} elementos secundarios que no puede ver. No se eliminarán, pero cualquier relación de jerarquía se suprimirá. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Eliminar %{count} paquetes de trabajo undeletable_descendants_warning: - one: No puede eliminar un elemento secundario porque carece de los permisos necesarios. Se conservará, pero se eliminará la relación de jerarquía. - other: No puede eliminar %{count} elementos secundarios porque carece de los permisos necesarios. Se conservarán, pero se eliminarán las relaciones de jerarquía. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: No puede eliminar un elemento secundario porque carece de los permisos necesarios en %{projects}. Se conservará, pero se eliminará la relación de jerarquía. - other: No puede eliminar %{count} elementos secundarios porque carece de los permisos necesarios en %{projects}. Se conservarán, pero se eliminarán las relaciones de jerarquía. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7111,7 +7723,7 @@ es: automatic_with_children: Fechas determinadas por paquetes de trabajo secundarios. automatic_with_predecessor: La fecha de inicio la fija un predecesor. manual_mobile: Programado manualmente. - manually_scheduled: Programado manualmente. No afectadas por relaciones. + manually_scheduled: Programado manualmente. Fechas no afectadas por relaciones. blankslate: description: Para activar la programación automática, este paquete de trabajo debe tener al menos un predecesor. Entonces se programará automáticamente para que comience después del predecesor más cercano. title: Sin predecesores @@ -7153,18 +7765,154 @@ es: description: "¿Seguro que quiere eliminar «%{name}»?" heading: "¿Eliminar este paquete de trabajo de forma permanente?" hidden_descendants_only_warning: - one: Este paquete de trabajo tiene un elemento secundario que no puede ver. No se eliminará, pero se suprimirá la relación de jerarquía. - other: Este paquete de trabajo tiene %{count} elementos secundarios que no puede ver. No se eliminarán, pero se suprimirá la relación de jerarquía. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Se eliminarán todos los elementos secundarios visibles. Sin embargo, este paquete de trabajo tiene un elemento secundario que no puede ver. No se eliminará, pero se suprimirá la relación de jerarquía. - other: Se eliminarán todos los elementos secundarios visibles. Sin embargo, este paquete de trabajo tiene %{count} elementos secundarios que no puede ver. No se eliminarán, pero se suprimirá la relación de jerarquía. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Eliminar el paquete de trabajo undeletable_descendants_warning: - one: No puede eliminar un elemento secundario porque carece de los permisos necesarios. Se conservará, pero se eliminará la relación de jerarquía. - other: No puede eliminar %{count} elementos secundarios porque carece de los permisos necesarios. Se conservarán, pero se eliminarán las relaciones de jerarquía. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: No puede eliminar un elemento secundario porque carece de los permisos necesarios en %{projects}. Se conservará, pero se eliminará la relación de jerarquía. - other: No puede eliminar %{count} elementos secundarios porque carece de los permisos necesarios en %{projects}. Se conservarán, pero se eliminarán las relaciones de jerarquía. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Los tipos de paquetes de trabajo o sus descendientes no están habilitados en el proyecto destino. Habilita los tipos que faltan en el proyecto destino si deseas que permanezcan sin cambios. De lo contrario, selecciona un tipo disponible en el proyecto de destino de la lista. @@ -7196,37 +7944,53 @@ es: version: no_results_title_text: No hay versiones disponibles por el momento. x_descendants: - one: Un paquete de trabajo descendiente - other: "%{count} paquetes de trabajo descendientes" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copie el flujo de trabajo actual a uno o varios roles dentro del mismo tipo de paquete de trabajo. Si el rol seleccionado ya tiene un flujo de trabajo, el actual se sobrescribirá. - label: Copiar a otros roles - from_type: - caption: Copie el flujo de trabajo actual a otro tipo de paquetes de trabajo. Si el tipo seleccionado ya tiene un flujo de trabajo, se sobrescribirá el actual. Esto afecta a todos los roles. - label: Copiar a otro tipo - source_role_id: - label: Rol fuente target_role_ids: label: Roles de destino - target_variant_ids: - label: Tipos de destino from_roles: create: notice: one: Se ha copiado correctamente el flujo de trabajo al rol «%{role_name}». other: Se ha copiado correctamente el flujo de trabajo a %{count} roles. - from_variants: - create: - notice: - one: El flujo de trabajo se ha copiado correctamente a «%{type_name}». - other: El flujo de trabajo se ha copiado correctamente a %{count} tipos. new: - title: Copiar el flujo de trabajo de «%{source_type}» + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Matriz de flujo de trabajo matrix_caption_assignee: Matriz de flujo de trabajo para el asignado matrix_caption_author: Matriz de flujo de trabajo para el autor @@ -7235,12 +7999,88 @@ es: matrix_check_uncheck_all_in_row_label_html: Conmutar transiciones de %{old_status} a todos los nuevos estados matrix_checkbox_label: Permitir la transición de %{old_status} a %{new_status} matrix_uncheck_all_label: No permitir todas las transiciones + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtrar por nombre de tipo… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configura las transiciones de estado para cada tipo de paquete de trabajo. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Cambiar los días laborables dialog: diff --git a/config/locales/crowdin/et.seeders.yml b/config/locales/crowdin/et.seeders.yml index 15a9f8ef9982..3a8f8c224870 100644 --- a/config/locales/crowdin/et.seeders.yml +++ b/config/locales/crowdin/et.seeders.yml @@ -250,70 +250,26 @@ et: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ et: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml index 625898faf1bb..1eede52894fc 100644 --- a/config/locales/crowdin/et.yml +++ b/config/locales/crowdin/et.yml @@ -40,7 +40,9 @@ et: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Kustuta konto delete_confirmation: Oled kindel, et tahad seda kontot kustutada? deletion_info: @@ -65,7 +67,9 @@ et: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: või logi sisse oma olemasoleva kontoga + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ et: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ et: repository: Hoidla comment: commented: Kommenteeritud - custom_action: - actions: Tegevused custom_field: admin_only: Ainult admin allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ et: uid: Kliendi ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ et: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Veergude arv page: Lehekülg row_count: Ridade arv widgets: Vidinad group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ et: title: Pealkiri member: blocked: Blocked + principal_type: Member type roles: Rollid notification: read_ian: Read in-app @@ -235,6 +265,7 @@ et: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ et: ongoing: Ongoing spent_on: Kuupäev type: Tüüp + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ et: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administraator auth_source: Autentimise allikas + avatar_type: Avatar type consented_at: Consented at current_password: Praegune parool department: Department @@ -410,7 +441,7 @@ et: last_name: Perekonnanimi ldap_auth_source: LDAP ühendus new_password: Uus parool - password_confirmation: Kinnitus + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ et: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ et: header_look_and_feel: Look and feel impaired: Hõlbustusfunktsioonidega režiim increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Värvirežiim + time_format: Time format time_zone: Ajavöönd warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Tööpäevad + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ et: title: Tööpäevad true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Pärineb teemast @@ -519,6 +565,10 @@ et: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ et: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ et: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ et: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ et: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ et: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ et: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ et: numeric: arvuline (nt 1, 2, 3) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: Vali uus parool, mis erineb eelmisest paroolist. - other: Vali uus parool, mis erineb eelmiselt kasutatud %{count}-st paroolist. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: erimärk (nt %, &) uppercase: suurtäht (näiteks 'A') password_confirmation: @@ -976,6 +1032,8 @@ et: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: ei saa esineda teises projektis. cannot_be_milestone: ei sobi verstapostiks. @@ -1003,6 +1061,8 @@ et: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Töötunde ei sobi üle kanda teemale #%{id}.' @@ -1011,8 +1071,8 @@ et: template: body: 'Kontrolli järgnevad väljad:' header: - one: 1 viga ei võimaldanud selle %{model} salvestamist - other: "%{count} viga ei võimaldanud selle %{model} salvestamist" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ et: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ et: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ et: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ et: issue_priority: one: Prioriteet other: Prioriteedid + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ et: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ et: tab_interface: Kasutajaliides tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF-i eksportimise stiilid - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Broneeri kohe @@ -1467,7 +1558,7 @@ et: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ et: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ et: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ et: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ et: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ et: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ et: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ et: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ et: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ et: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ et: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ et: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ et: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ et: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Konteiner delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ et: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ et: groups: Rühmad hexcode: Hex kood id: ID + inexistent: Inexistent is_default: Vaikeväärtus is_for_all: Kõikide projektide jaoks issue: Teema @@ -2253,6 +2431,7 @@ et: updated_at: Uuendatud updated_on: Uuendatud uploader: Uploader + url: URL user: Kasutaja username: Kasutajanimi value: Väärtus @@ -2267,6 +2446,29 @@ et: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ et: button_set_reminder: Määra meeldetuletus button_show: Kuva button_sort: Sorteeri + button_stop_timer: Stop timer button_submit: Sisesta button_test: Testi button_unarchive: Paki arhiiv lahti @@ -2461,9 +2664,9 @@ et: text: failed: Ei saanud kopeerida andmeid projektist "%{source_project_name}" projekti "%{target_project_name}". succeeded: Projekti "%{source_project_name}" andmed kopeeriti projekti "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ et: plural: Kohandatud toimingud custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Kõikide projektide jaoks hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ et: short: Lühinimi weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ et: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,57 +2866,57 @@ et: datetime: distance_in_words: about_x_hours: - one: umbes 1 tund - other: umbes %{count} tundi + one: about %{count} hour + other: about %{count} hours about_x_months: - one: umbes 1 kuu - other: umbes %{count} kuud + one: about %{count} month + other: about %{count} months about_x_years: - one: umbes 1 aasta - other: umbes %{count} aastat + one: about %{count} year + other: about %{count} years almost_x_years: - one: peaaegu 1 aasta - other: peaaegu %{count} aastat + one: almost %{count} year + other: almost %{count} years half_a_minute: pool minutit less_than_x_minutes: one: vähem kui minut other: vähem kui %{count} minutit less_than_x_seconds: - one: vähem kui sekund - other: vähem kui %{count} sekundit + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: rohkem kui aasta - other: rohkem kui %{count} aastat + one: over %{count} year + other: over %{count} years x_days: - one: 1 päev - other: "%{count} päeva" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 tund - other: "%{count} tundi" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 tund - other: "%{count} tundi" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 minut - other: "%{count} minutit" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - other: "%{count} minutit" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 kuu - other: "%{count} kuud" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 sekund - other: "%{count} sekundit" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 nädal - other: "%{count} nädalat" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 aasta - other: "%{count} aastat" + one: "%{count} year" + other: "%{count} years" units: day: one: päev @@ -2866,7 +3066,7 @@ et: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ et: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ et: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ et: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ et: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ et: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ et: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ et: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ et: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ et: label_copy_target: Sihtpunkt label_copy_workflow_from: Kopeeri töövoog label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Tuuma versioon label_core_version: Tuumiku versioon label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Praegune olek label_current_version: Praegune versioon label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ et: label_custom_field_default_type: Määramata tüüp label_custom_field_new: Uus lisaväli label_custom_field_plural: Lisaväljad - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Kavandamine label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ et: label_database_version: PostgreSQL version label_date: Kuupäev label_date_and_time: Kuupäev ja kellaaeg - label_date_format: Kuupäevaformaat + label_date_and_time_formats: Date and time formats label_date_from: Algus label_date_from_to: Kuupäevast %{start} kuni %{end} label_date_to: Lõpp label_dates: Kuupäevad + label_day: Päev label_day_plural: päeva label_default: Vaikimisi label_defaults: Defaults @@ -3596,6 +3970,7 @@ et: label_deleted_custom_field: "(kustutatud lisaväli)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ et: label_float: Ujuvkomaarv label_folder: Kaust label_follows: järgneb + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Uus foorum label_forum_plural: Foorumid @@ -3684,6 +4060,7 @@ et: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grupp + label_group_attributes_plural: Group attributes label_group_by: Grupeeri label_group_named: Grupp %{name} label_group_new: Uus rühm @@ -3735,8 +4112,8 @@ et: label_journal_diff: Kirjelduse võrdlus label_jump_to_a_project: Mine projekti... label_keyword_plural: Märksõnad + label_label_plural: Labels label_language: Keel - label_language_based: Põhineb kasutaja keelel label_languages: Keeled label_last_activity: Viimane tegevus label_last_change_on: Viimati muudetud @@ -3758,6 +4135,7 @@ et: label_list: Nimistu label_loading: Laadimine... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lukusta kasutaja label_locked: lukustatud label_logged_as: Logitud sisse kui @@ -3769,6 +4147,7 @@ et: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimaalne suurus label_me: mina label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ et: label_menu_item_name: Menüüvaliku nimi label_message: Message label_message_last: Viimane sõnum - label_message_new: Uus sõnum label_message_plural: Sõnumid label_message_posted: Sõnum on lisatud label_minute_plural: minutes @@ -3799,6 +4177,7 @@ et: label_module_plural: Moodulid label_modules: Moodulid label_modules_and_plugins: Modules and Plugins + label_month: Kuu label_months_from: kuu kaugusel label_more: Rohkem label_more_information: Lisainfo @@ -3812,6 +4191,7 @@ et: label_my_avatar: My avatar label_my_queries: Mu omaloodud päringud label_my_security: Security + label_my_time: My time label_name: Nimi label_never: Mitte kunagi label_new: Uus @@ -3826,7 +4206,10 @@ et: label_news_singular: Uudised label_news_view_all: Kõik uudised label_next: Järgmine + label_next_day: Next day + label_next_month: Next month label_next_week: Järgmine nädal + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Ei muutu)" label_no_data: Pole @@ -3834,6 +4217,7 @@ et: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: alguse kuupäeva pole + label_no_time: No time tracked label_nobody: eikeegi label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ et: label_preview: Eelvaade label_preview_not_available: Preview not available label_previous: Eelmine + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Eelmine nädal + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ et: label_sort_lowest: Nihuta viimaseks label_sorted_by: Sorteeritud %{value} järgi label_spent_time: Kulutatud aeg + label_stack: Stack label_start_to_end: algusest lõpuni label_start_to_start: algusest alguseni label_starts_with: starts with @@ -4038,6 +4426,7 @@ et: label_subtask_plural: Alamteemad label_summary: Kokkuvõte label_system: Süsteem + label_system_or_language_default: Use system or language based default label_system_settings: Süsteemiseaded label_system_storage: Storage information label_table_of_contents: Sisukord @@ -4052,6 +4441,7 @@ et: label_time: Aeg label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Kulutatud aeg + label_timer_since: Started at %{time} label_title: Pealkiri label_today: täna label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ et: label_user_search: Otsi kasutajat label_user_settings: Kasutaja seaded label_users_settings: Kasutajate seaded + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Muuda versiooni label_version_new: Uus versioon label_version_plural: Versioonid @@ -4100,6 +4492,7 @@ et: label_videos: Videod label_view_all_revisions: Kogu ajalugu label_view_diff: Vaata erinevusi + label_view_mode_switcher: Change view label_view_revisions: Haru ajalugu label_view_x: 'View: %{x}' label_watched_work_packages: Jälgitavad teemad @@ -4123,6 +4516,8 @@ et: label_wiki_start: Esileht label_wiki_toc: Sisukord label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Töö label_work_package: Teema label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ et: label_working_days: Working days label_working_days_and_hours: Tööpäevad ja -tunnid label_working_hours: Work schedule + label_workweek: Töönädal label_x_closed_work_packages_abbr: - one: 1 suletud + one: "%{count} closed" other: "%{count} suletud" zero: 0 suletud label_x_comments: - one: 1 kommentaar + one: "%{count} comment" other: "%{count} kommentaari" zero: kommentaare pole label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 fail + one: "%{count} file" other: "%{count} faili" zero: faile pole label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 avatud + one: "%{count} open" other: "%{count} avatud" zero: 0 avatud label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projekti" zero: projekte pole label_x_work_packages: - one: 1 tööpakett + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: eile label_zen_mode: Keskendumise režiim @@ -4238,7 +4634,7 @@ et: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ et: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ et: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ et: create_button: Loo uus dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ et: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Tegevus expiration: Aegub @@ -4748,7 +5169,6 @@ et: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: Projekti ei ole kustutatud. notice_project_not_found: Projekti ei leitud. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ et: notice_successful_create: Loomine õnnestus. notice_successful_delete: Kustutamine õnnestus. notice_successful_update: Uuendamine õnnestus. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: Leiti liiga palju tulemusi. Palun otsi täpsemini sisestades uue kasutaja või grupi nime. notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -4860,7 +5277,7 @@ et: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4951,8 +5368,6 @@ et: not_found: ei leitud. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4972,7 +5387,6 @@ et: or: või rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Sees item: Item @@ -5044,8 +5458,8 @@ et: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5070,7 +5484,7 @@ et: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Uudiseid kommenteerida permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Kopeerida projekte + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5103,6 +5517,7 @@ et: permission_export_projects: Export projects permission_export_work_packages: Ekspordi tööpakett permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5113,6 +5528,9 @@ et: permission_manage_dashboards: Halda töölaudasid permission_manage_forums: Hallata foorumeid permission_manage_members: Halda liikmeid + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Halda uudiseid permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5141,7 +5559,6 @@ et: permission_save_bcf_queries: Salvesta BCF päringud permission_save_queries: Salvesta vaade permission_search_project: Otsi projekte - permission_select_custom_fields: Vali kohandatud väli permission_select_project_custom_fields: Vali projekti omadusi permission_select_project_modules: Vali projekti mooduleid permission_select_project_phases: Vali projekti etappe @@ -5175,6 +5592,16 @@ et: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5196,7 +5623,7 @@ et: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5207,7 +5634,7 @@ et: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5222,7 +5649,7 @@ et: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5234,7 +5661,7 @@ et: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekt + one: "%{count} project" other: "%{count} projekti" zero: 0 projects destroy: @@ -5339,11 +5766,11 @@ et: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5353,6 +5780,12 @@ et: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Loo uus värv @@ -5449,14 +5882,14 @@ et: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5468,7 +5901,7 @@ et: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Loo uus versioon - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5476,15 +5909,27 @@ et: status: button_edit: Muuda staatust wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Eelseadistatud filtri rakendamine configure_view: @@ -5513,7 +5958,7 @@ et: action_title: Reageeri add_reaction: Kõik reaktsioonid and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5635,6 +6080,31 @@ et: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5646,6 +6116,15 @@ et: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5750,7 +6229,7 @@ et: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Enim korraga näidatavaid erinevusi setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Kuva ka alamprojektide teemad peaprojekti teemade juures + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5865,6 +6344,7 @@ et: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Aeg setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5917,7 +6397,7 @@ et: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5928,6 +6408,7 @@ et: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6019,12 +6500,12 @@ et: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6044,8 +6525,8 @@ et: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6053,7 +6534,7 @@ et: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6073,6 +6554,7 @@ et: heading: New phase no_gate: No gate non_defined: Ühtegi etappi pole praegu määratud. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Etapid start_gate: Start gate @@ -6129,7 +6611,7 @@ et: section_work_week: Töönädal sharing: count: - one: 1 kasutaja + one: "%{count} user" other: "%{count} kasutajat" zero: 0 kasutajat denied: You don't have permissions to share %{entities}. @@ -6222,19 +6704,19 @@ et:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Jäetakse koguarvust välja is_closed: Suletud - is_default: Vaikimisi is_readonly: Kirjutuskaitstud + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Lisa uus staatus no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: ja skip_last_comma: väär text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Analüüsi täiendavalt: %{subject}' text_are_you_sure: Kas oled kindel? text_are_you_sure_continue: Are you sure you want to continue? @@ -6277,12 +6759,6 @@ et: ' text_custom_field_possible_values_info: Lubatud erinevad väärtused (igaüks eraldi real). - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6332,6 +6808,7 @@ et: text_length_between: Pikkus peab olema %{min} kuni %{max} märki. text_line_separated: Lubatud erinevad väärtused (igaüks eraldi real). text_load_default_configuration: Laadi vaikeasetused + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: Rollid, valdkonnad, olekud ja töövood ei ole veel seadistatud.\nVäga soovitav on laadida vaikeasetused. Peale laadimist saad neid ise muuta. text_no_notes: There are no comments available for this work package. @@ -6433,6 +6910,68 @@ et: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6442,14 +6981,40 @@ et: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6458,8 +7023,10 @@ et: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6488,21 +7055,21 @@ et: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: Väljas - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Keela kõik label_enable_all: Luba kõik label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Genereeri PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6519,6 +7086,8 @@ et: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6540,6 +7109,14 @@ et: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6549,12 +7126,14 @@ et: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6568,12 +7147,12 @@ et: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6586,10 +7165,12 @@ et: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Luba kõigi projektide puhul select_projects: Vali projektid select_projects_description: Select the projects in which you would like to use this type. tab: Projektid + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6604,43 +7185,17 @@ et: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6648,6 +7203,9 @@ et: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6656,13 +7214,14 @@ et: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6676,12 +7235,16 @@ et: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6690,33 +7253,74 @@ et: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variandid + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Loo uus liik no_results_title_text: Ühtegi liiki pole. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6735,8 +7339,8 @@ et: authorization_rejected: You are not allowed to sign in. blocked: ajutiselt blokeeritud blocked_num_failed_logins: - one: ajutiselt blokeeritud (üks ebaõnnestunud sisselogimise katse) - other: ajutiselt blokeeritud (%{count} ebaõnnestunud sisselogimise katset) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Kustutatud kasutaja department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6836,7 +7440,7 @@ et: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Seade / OS expires: Aegub - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Viimati sisselogitud may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6896,13 +7500,19 @@ et: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: suletud version_status_locked: lukustatud version_status_open: avatud versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7072,12 +7682,14 @@ et: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7102,17 +7714,17 @@ et: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7170,18 +7782,154 @@ et: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7213,37 +7961,53 @@ et: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7252,12 +8016,88 @@ et: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/eu.seeders.yml b/config/locales/crowdin/eu.seeders.yml index bd7e5a05560f..1f68d0b9431f 100644 --- a/config/locales/crowdin/eu.seeders.yml +++ b/config/locales/crowdin/eu.seeders.yml @@ -250,70 +250,26 @@ eu: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ eu: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/eu.yml b/config/locales/crowdin/eu.yml index ff7de336fc84..e6003fc57b66 100644 --- a/config/locales/crowdin/eu.yml +++ b/config/locales/crowdin/eu.yml @@ -40,7 +40,9 @@ eu: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ eu: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ eu: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ eu: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ eu: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ eu: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ eu: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ eu: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ eu: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Egutegia ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ eu: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ eu: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ eu: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ eu: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Ordu-eremua warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ eu: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ eu: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ eu: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ eu: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ eu: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ eu: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ eu: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ eu: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ eu: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ eu: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ eu: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ eu: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ eu: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ eu: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ eu: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ eu: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ eu: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ eu: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ eu: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ eu: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ eu: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ eu: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ eu: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ eu: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ eu: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ eu: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ eu: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ eu: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ eu: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ eu: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ eu: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ eu: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ eu: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ eu: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ eu: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ eu: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ eu: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ eu: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ eu: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ eu: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ eu: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ eu: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ eu: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ eu: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ eu: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ eu: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ eu: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ eu: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ eu: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ eu: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ eu: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ eu: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ eu: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ eu: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Eguna label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ eu: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ eu: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ eu: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ eu: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ eu: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ eu: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ eu: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ eu: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ eu: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ eu: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ eu: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ eu: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ eu: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ eu: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ eu: label_time: Ordua label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ eu: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Bertsioak @@ -4100,6 +4492,7 @@ eu: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ eu: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ eu: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ eu: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ eu: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ eu: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ eu: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ eu: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ eu: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ eu: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ eu: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ eu: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ eu: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ eu: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ eu: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ eu: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ eu: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ eu: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ eu: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ eu: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ eu: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ eu: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ eu: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ eu: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ eu: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ eu: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ eu: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ eu: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ eu: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ eu: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ eu: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ eu: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ eu: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Ordua setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ eu: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ eu: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ eu: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ eu: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ eu: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ eu: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ eu: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ eu:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ eu: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ eu: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ eu: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ eu: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ eu: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ eu: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ eu: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ eu: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ eu: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ eu: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ eu: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ eu: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ eu: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ eu: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ eu: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ eu: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ eu: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ eu: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ eu: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ eu: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ eu: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ eu: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ eu: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ eu: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/fa.seeders.yml b/config/locales/crowdin/fa.seeders.yml index 68753d84b740..4a2a91a35939 100644 --- a/config/locales/crowdin/fa.seeders.yml +++ b/config/locales/crowdin/fa.seeders.yml @@ -250,70 +250,26 @@ fa: در این ماژول می‌توانید اخبار پروژه را با اعضای تیم خود به اشتراک بگذارید. versions: item_0: - name: بک‌لاگ خطاها - item_1: - name: بک‌لاگ محصول - item_2: - name: اسپرینت ۱ wiki: - title: اسپرینت ۱ + title: انتشار 1.0 content: | - ### جلسهٔ برنامه‌ریزی اسپرینت - - _موضوعات جلسهٔ برنامه‌ریزی اسپرینت را اینجا مستند کنید_ - - * زمان‌بندی محدود (۸ ساعت) - * ورودی: بک‌لاگ محصول - * خروجی: بک‌لاگ اسپرینت - - * به دو بازهٔ زمانی ۴ ساعته تقسیم می‌شود: - - * مالک محصول [بک‌لاگ محصول]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) و اولویت‌ها را به تیم ارائه می‌کند و هدف اسپرینت را توضیح می‌دهد؛ تیم باید با آن موافقت کند. سپس با هم موضوعات بک‌لاگ محصول را که تیم در اسپرینت بعدی انجام خواهد داد اولویت‌بندی می‌کنند. تیم نسبت به تحویل توافق‌شده متعهد می‌شود. - * تیم به‌صورت مستقل (بدون مالک محصول) جزئیات را برنامه‌ریزی می‌کند و وظایف حاصل از نیازمندی‌های توافق‌شده را خرد می‌کند تا [بک‌لاگ اسپرینت]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) شکل بگیرد. - - - ### جلسهٔ اسکرام روزانه - - _موضوعات جلسهٔ اسکرام روزانه را اینجا مستند کنید_ - - * جلسهٔ کوتاه روزانه برای بررسی وضعیت تیم. - * زمان‌بندی محدود (حداکثر ۱۵ دقیقه). - * جلسهٔ ایستاده برای بررسی موضوعات زیر از [برد وظایف](##sprint:scrum_project__version__sprint_1). - * تا اسکرام روزانهٔ بعدی چه کاری انجام می‌دهم؟ - * چه چیزی مانع کار من شده است (موانع)؟ - * اسکرام مستر جلسه را هدایت کرده و [موانع اسپرینت](##sprint:scrum_project__version__sprint_1) را ثبت می‌کند. - * مالک محصول می‌تواند برای در جریان ماندن در جلسه شرکت کند. + ### انتشار 1.0 - ### جلسهٔ بازبینی اسپرینت + _لطفاً در اینجا مستند کنید که این انتشار شامل چه مواردی است._ - _موضوعات جلسهٔ بازبینی اسپرینت را اینجا مستند کنید_ - - * زمان‌بندی محدود (۴ ساعت). - * حداکثر یک ساعت زمان آماده‌سازی برای هر نفر. - * تیم آنچه در این اسپرینت به دست آمده است را به مالک محصول و سایر افراد ذی‌نفع نشان می‌دهد. - * مهم: بدون نمونهٔ نمایشی ساختگی و بدون PowerPoint! فقط قابلیت‌های تکمیل‌شدهٔ محصول (Incrementها) باید نمایش داده شوند. - * بازخورد مالک محصول، ذی‌نفعان و سایر افراد مطلوب است و در کارهای بعدی لحاظ می‌شود. - * بر اساس قابلیت‌های نمایش‌داده‌شده، مالک محصول تصمیم می‌گیرد این Increment منتشر شود یا توسعهٔ بیشتری پیدا کند. این امکان دستیابی زودهنگام به بازگشت سرمایه (ROI) را فراهم می‌کند. - - - ### بازنگری اسپرینت - - _موضوعات جلسهٔ بازنگری اسپرینت را اینجا مستند کنید_ - - * زمان‌بندی محدود (۳ ساعت). - * پس از بازبینی اسپرینت و با هدایت اسکرام مستر برگزار می‌شود. - * تیم دربارهٔ اسپرینت گفت‌وگو می‌کند: چه چیزهایی خوب پیش رفت، چه مواردی برای بهره‌وری بیشتر در اسپرینت بعدی باید بهبود یابد و چه چیزی می‌تواند کار را لذت‌بخش‌تر کند. - item_3: - name: اسپرینت ۲ + * بسته‌های کاری این انتشار، همان‌هایی هستند که نسخه هدف 1.0 دارند. + * تاریخ انتشار، تاریخ نقطه عطف *انتشار v1.0* است. + * برای پیگیری پیشرفت همه نسخه‌ها، [نقشه راه]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) را باز کنید. + * برای پیوند دادن صفحه ویکی دیگری به یک نسخه، [تنظیمات پروژه → نسخه‌ها]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) را باز کنید. categories: item_0: دسته‌بندی ۱ (در تنظیمات پروژه تغییر دهید) queries: item_0: name: برنامهٔ پروژه item_1: - name: بک‌لاگ محصول + name: نسخه 1.1 item_2: - name: اسپرینت ۱ + name: نسخه 1.0 item_3: name: وظایف boards: @@ -339,20 +295,21 @@ fa: options: name: شروع کار text: | - خوشحالیم که به ما پیوستید! پیشنهاد می‌کنیم برای شروع چند مورد را در اوپن‌پروجکت امتحان کنید. + خوشحالیم که به ما پیوستید! پیشنهاد می‌کنیم برای شروع چند مورد را امتحان کنید. _مراحل زیر را امتحان کنید:_ - 1. *اعضای جدید را به پروژه دعوت کنید*: → در پیمایش پروژه به [اعضا]({{opSetting:base_url}}/projects/your-scrum-project/members) بروید. - 2. *بک‌لاگ محصول و بک‌لاگ‌های اسپرینت را مشاهده کنید*: → در پیمایش پروژه به [بک‌لاگ‌ها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید. - 3. *برد وظایف را مشاهده کنید*: → به [بک‌لاگ‌ها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید → روی پیکان سمت راست اسپرینت کلیک کنید → [برد وظایف](##sprint:scrum_project__version__sprint_1) را انتخاب کنید. - 4. *یک بستهٔ کاری جدید ایجاد کنید*: → به [بسته‌های کاری → ایجاد]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new) بروید. - 5. *برنامهٔ پروژه را ایجاد و به‌روزرسانی کنید*: → در پیمایش پروژه به [برنامهٔ پروژه](##query:scrum_project__query__project_plan) بروید. - 6. *ویکی اسپرینت ایجاد کنید*: → به [بک‌لاگ‌ها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید و از منوی کشویی سمت راست یک اسپرینت، ویکی آن را باز کنید. می‌توانید [الگوی ویکی]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) را بر اساس نیاز خود ویرایش کنید. - 7. *ماژول‌های بیشتری فعال کنید*: → به [تنظیمات پروژه → ماژول‌ها]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules) بروید. + 1. *اعضای جدید را به پروژه دعوت کنید*: → در ناوبری پروژه به [اعضا]({{opSetting:base_url}}/projects/your-scrum-project/members) بروید. + 2. *بک‌لاگ محصول و بک‌لاگ‌های اسپرینت را مشاهده کنید*: → در ناوبری پروژه به [بک‌لاگ‌ها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید. + 3. *یک اسپرینت ایجاد کنید*: → به [بک‌لاگ‌ها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید و برای ایجاد اسپرینت جدید روی «+ اسپرینت» کلیک کنید. بسته‌های کاری را از بک‌لاگ به اسپرینت منتقل کنید تا کارهای موردنظر را برنامه‌ریزی کنید. وقتی آماده بودید، روی «شروع اسپرینت» کلیک کنید. + 4. *برد اسپرینت خود را مشاهده کنید*: → به [بردها]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) بروید → با کلیک روی نام اسپرینت، برد آن را باز کنید. + 5. *یک بسته کاری جدید ایجاد کنید*: → به [بسته‌های کاری → ایجاد]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new) بروید. + 6. *برنامه پروژه را ایجاد و به‌روزرسانی کنید*: → در ناوبری پروژه به [برنامه پروژه](##query:scrum_project__query__project_plan) بروید. + 7. *ماژول‌های بیشتری را فعال کنید*: → به [تنظیمات پروژه → ماژول‌ها]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules) بروید. - [راهنماهای کاربر](https://www.openproject.org/docs/user-guide/) را اینجا می‌توانید پیدا کنید. - اگر سؤال دارید یا به پشتیبانی نیاز دارید، با ما تماس بگیرید: [support[at]openproject.com](mailto:support@openproject.com). + + در اینجا [راهنماهای کاربری](https://www.openproject.org/docs/user-guide/) ما را پیدا می‌کنید. + اگر پرسشی دارید یا به پشتیبانی نیاز دارید، لطفاً با ما در تماس باشید: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: بسته‌های کاری diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml index 6cc6cd11c858..11c7f3c74e8e 100644 --- a/config/locales/crowdin/fa.yml +++ b/config/locales/crowdin/fa.yml @@ -40,7 +40,9 @@ fa: view: پیوند پویای یک نما که با Macro درج شده است. work_package: پیوند پویای یک بسته کاری که با Macro درج شده است. account: + already_have_an_account: You already have an account? auth_source_login_html: برای فعال‌سازی حساب خود لطفاً با %{login} وارد شوید. + continue_with_provider: Continue with %{name} delete: حذف حساب کاربری delete_confirmation: مطمئن هستید که می خواهید حساب کاربری را حذف کنید؟ deletion_info: @@ -65,7 +67,9 @@ fa: error_self_registration_limited_provider: 'ثبت‌نام کاربر برای ارائه‌دهنده ورود یکپارچه ''%{name}'' محدود شده است. لطفاً از مدیر بخواهید حساب شما را فعال کند یا محدودیت ثبت‌نام شخصی این ارائه‌دهنده را تغییر دهد. ' - login_with_auth_provider: یا با حساب موجود خود وارد سیستم شوید + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: ادامه برای ورود omniauth_direct_login_redirecting: در حال هدایت شما به ارائه‌دهنده هویت… omniauth_login: برای فعال‌سازی حساب خود لطفاً وارد شوید. @@ -118,6 +122,8 @@ fa: auth_provider: additional_form_action_urls: نشانی‌های URL مجاز اضافی برای تغییرمسیر هنگام ورود scim_clients: کلاینت‌های SCIM + automation: + actions: Actions calculated_value_error: customized_id: شناسه سفارشی customized_type: نوع سفارشی @@ -128,8 +134,6 @@ fa: repository: مخزن comment: commented: دارای دیدگاه - custom_action: - actions: اقدام‌ها custom_field: admin_only: فقط مدیر allow_non_open_versions: اجازه نسخه‌های بازنشده @@ -168,6 +172,7 @@ fa: uid: شناسه کلاینت emoji_reaction: reactable: واکنش داده‌شده به + reaction: Reaction enterprise_token: active_user_count_restriction: کاربران فعال encoded_token: توکن پشتیبانی Enterprise @@ -179,20 +184,44 @@ fa: company: شرکت favorite: favorited: مورد + form_configuration: + attribute_groups: فرم + description: توضیحات + name: نام + type_variants: انواع و گونه‌هایی که از این فرم استفاده می‌کنند + form_configuration_attribute: + attribute_key: ویژگی + custom_field: فیلد سفارشی + group: گروه + position: موقعیت + form_configuration_group: + default_key: گروه پیش‌فرض + kind: نوع + label: برچسب + query: پرس‌وجو grids/grid: column_count: تعداد ستون‌ها page: صفحه row_count: تعداد ردیف‌ها widgets: ویجت‌ها group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: کاربران گروه identity_url: نشانی هویت organizational_unit: واحد سازمانی parent: گروه والد group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: واحد سازمانی parent: گروه والد import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: نام نمونهٔ جیرا personal_access_token: توکن دسترسی شخصی url: نشانی نمونه Jira @@ -223,6 +252,7 @@ fa: title: عنوان member: blocked: مسدودشده + principal_type: نوع عضو roles: نقش‌ها notification: read_ian: خوانده‌شده در برنامه @@ -235,6 +265,7 @@ fa: position: موقعیت persisted_query: filters: فیلترها + group_bys: گروه‌بندی نتایج بر اساس name: نام orders: ترتیب‌ها selects: انتخاب‌ها @@ -367,6 +398,8 @@ fa: ongoing: در حال انجام spent_on: تاریخ type: نوع + token/base: + expires_on: Expiration date token/ical: calendar: تقویم ical_token_query_assignment: تخصیص Query @@ -384,19 +417,17 @@ fa: type_variant: attribute_groups: فرم default_work_package_description: متن پیش‌فرض توضیحات - defaults_source: منبع مقادیر پیش‌فرض enabled_in_new_projects: فعال در پروژه‌های جدید - form_configuration_source: منبع فرم + linked_aspects: پیکربندی موروثی patterns: الگوها - pdf_export_source: منبع خروجی PDF - project_attributes_source: منبع ویژگی‌های پروژه project_types: پروژه‌های استفاده‌کننده از این گونه variant: گونه variant_name: نام - workflows_source: منبع گردش‌کارها + workflow: گردش کاری user: admin: مدیر auth_source: منبع احراز هویت + avatar_type: Avatar type consented_at: زمان اعلام رضایت current_password: گذرواژه فعلی department: واحد سازمانی @@ -410,7 +441,7 @@ fa: last_name: نام خانوادگی ldap_auth_source: اتصال LDAP new_password: رمز عبور جديد - password_confirmation: تاییدیه + password_confirmation: Password confirmation user_custom_field: custom_field_section: بخش user_non_working_time: @@ -419,11 +450,15 @@ fa: user_preference: auto_hide_popups: پنهان‌سازی خودکار بنرهای موفقیت auto_hide_popups_caption: در صورت فعال‌بودن، بنرهای سبز موفقیت پس از ۵ ثانیه به‌طور خودکار ناپدید می‌شوند. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: هشدارهای به‌روزرسانی button_update_look_and_feel: به‌روزرسانی ظاهر button_update_user_information: به‌روزرسانی پروفایل comments_sorting: نمایش فعالیت بسته کاری مرتب‌شده بر اساس daily_reminders: یادآوری‌های روزانه + date_format: Date format disable_keyboard_shortcuts: غیرفعال‌کردن میانبرهای صفحه‌کلید dismissed_enterprise_banners: بنرهای Enterprise پنهان‌شده force_dark_theme_contrast: اجبار کنتراست بالا در حالت تیره @@ -434,13 +469,23 @@ fa: header_look_and_feel: ظاهر impaired: حالت دسترسی increase_contrast: افزایش کنتراست - increase_contrast_caption: حالت کنتراست بالا را برای حالت رنگ انتخاب‌شده فعال می‌کند. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: افزایش کنتراست پوسته mode_guideline: برخی حالت‌ها برای دسترس‌پذیری و خوانایی، رنگ‌های سفارشی پوسته را بازنویسی می‌کنند. برای پشتیبانی کامل از پوسته سفارشی، حالت روشن را انتخاب کنید. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: حالت رنگ + time_format: Time format time_zone: منطقه زمانی warn_on_leaving_unsaved: هنگام ترک بسته کاری با تغییرات ذخیره‌نشده به من هشدار بده workdays: روزهای کاری + user_resource: + description: توضیحات + name: نام + user_filter: فیلتر کاربر + user_resource_detail: + description: توضیحات + user_filter: فیلتر کاربر user_working_hours: availability_factor: ضریب دسترس‌پذیری days: روزهای کاری @@ -491,6 +536,7 @@ fa: title: روزهای کاری true: شامل روزهای غیرکاری journal_internal: ژورنال داخلی + labels: برچسب‌ها notify: اعلان observed_in_versions: مشاهده‌شده در نسخه‌ها parent: بالادستی @@ -519,6 +565,10 @@ fa: work_package: بسته کاری work_package_version: kind: نوع + workflow: + description: توضیحات + name: نام + type_variants: انواع و گونه‌های استفاده‌کننده از این گردش کاری errors: messages: accepted: باید پذیرفته شود. @@ -590,6 +640,8 @@ fa: regex_invalid: با عبارت منظم مرتبط قابل اعتبارسنجی نیست. regex_list_invalid: خطوط %{invalid_lines} به‌عنوان عبارت منظم قابل تجزیه نیستند. regex_match_failed: با عبارت منظم %{expression} مطابقت ندارد. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: باید کوچک‌تر از یا برابر با حداکثر طول باشد. smaller_than_or_equal_to_max_value: باید کمتر از یا مساوی حداکثر مقدار باشد. ssrf_filtered: سیاست SSRF این نمونه OpenProject را نقض می‌کند. @@ -610,6 +662,10 @@ fa: user_in_ldap_managed_department: این کاربر به واحد سازمانی‌ای تعلق دارد که با همگام‌سازی LDAP مدیریت می‌شود و قابل انتقال نیست. wrong_length: طول نادرست است (باید %{count} نویسه باشد). models: + ai/text_transform_run: + attributes: + base: + not_available: این عملیات در دسترس نیست. attachment: attributes: content_type: @@ -670,6 +726,16 @@ fa: general_consent: لطفاً شرایط و ضوابط را بپذیرید. favorite: already_favorited: قبلاً به موارد دلخواه اضافه شده است. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: از یک ویژگی نامعتبر بسته کاری استفاده شده است. + attribute_unknown_name: 'از یک ویژگی نامعتبر بسته کاری استفاده شده است: %{attribute}' + duplicate_group: نام گروه «%{group}» بیش از یک بار استفاده شده است. نام گروه‌ها باید یکتا باشند. + group_without_name: نام گروه نمی‌تواند خالی باشد. + query_invalid: 'پرس‌وجوی تعبیه‌شده «%{group}» نامعتبر است: %{details}' + base: + default_undeletable: فرم پیش‌فرض را نمی‌توان حذف کرد. ابتدا فرم دیگری را به‌عنوان پیش‌فرض انتخاب کنید. grids/grid: end_before_start: مقدار پایان باید از مقدار شروع بزرگ‌تر باشد. outside: خارج از شبکه است. @@ -687,6 +753,13 @@ fa: not_unique: از قبل استفاده می‌شود. لطفاً نام دیگری انتخاب کنید. jira: invalid_protocol: لطفاً یک پروتکل معتبر (http یا https) ارائه کنید. + label: + attributes: + name: + blank: نام نمی‌تواند خالی باشد. + format: "%{message}" + taken: برچسبی با این نام از قبل وجود دارد. لطفاً نام دیگری استفاده کنید. + too_long: نام بیش از حد طولانی است (حداکثر %{count} نویسه). ldap_auth_source: attributes: tls_certificate_string: @@ -742,7 +815,6 @@ fa: types: cannot_assign_multiple_variants_of_parent: در هر پروژه فقط یک گونه از یک Type قابل فعال‌سازی است cannot_assign_variant_and_parent: نمی‌توان هم‌زمان یک گونه و والد آن را تخصیص داد - cannot_assign_variants_yet: هنوز نمی‌توان گونه‌ها را در پروژه فعال کرد. برای آزمایش گونه‌ها Feature Flag را فعال کنید. in_use_by_work_packages: 'هنوز توسط بسته‌های کاری استفاده می‌شود: %{types}' switch_target_blank: گونه‌ای را که می‌خواهید به آن تغییر دهید انتخاب کنید switch_target_identical: نوع هدف باید با نوعی که پروژه اکنون استفاده می‌کند متفاوت باشد @@ -855,42 +927,26 @@ fa: blank: لطفاً یک نام برای توکن وارد کنید format: "%{message}" in_use: این نام توکن از قبل استفاده می‌شود؛ لطفاً نام دیگری انتخاب کنید + type: + attributes: + base: + in_use_by_work_packages: تا زمانی که بسته‌های کاری از این نوع استفاده می‌کنند، نمی‌توان آن را حذف کرد. type_variant: attributes: - attribute_groups: - attribute_unknown: ویژگی بسته کاری نامعتبر استفاده شده است. - attribute_unknown_name: 'ویژگی بسته کاری نامعتبر استفاده شده است: %{attribute}' - duplicate_group: نام گروه '%{group}' بیش از یک بار استفاده شده است. نام گروه‌ها باید یکتا باشند. - group_without_name: نام گروه نمی‌تواند خالی باشد. - query_invalid: 'Query توکار ''%{group}'' نامعتبر است: %{details}' base: - borrowed_by_variants: تا زمانی که پیکربندی آن توسط %{names} بازاستفاده می‌شود قابل حذف نیست. is_default_variant: پیکربندی پیش‌فرض یک نوع قابل حذف نیست. project_variants_not_allowed: این نوع اجازه ایجاد گونه درون پروژه‌ها را نمی‌دهد. restrict_dependent_destroy: has_many: تا زمانی که پروژه‌ها از آن استفاده می‌کنند قابل حذف نیست. - defaults_source_id: - must_be_available_to_the_variant: باید پیکربندی‌ای باشد که این پروژه بتواند از آن استفاده کند. - would_create_cycle: این پیکربندی‌ها را به‌صورت حلقه به هم متصل می‌کند. enabled_in_new_projects: not_available_to_project_owned_variant: برای گونه‌ای که متعلق به یک پروژه است قابل تنظیم نیست. taken: از قبل برای پیکربندی دیگری از این نوع تنظیم شده است. - form_configuration_source_id: - must_be_available_to_the_variant: باید پیکربندی‌ای باشد که این پروژه بتواند از آن استفاده کند. - would_create_cycle: این پیکربندی‌ها را به‌صورت حلقه به هم متصل می‌کند. patterns: invalid_tokens: یک یا چند ویژگی داخل فیلد معتبر نیستند. لطفاً پیش از ذخیره آن‌ها را اصلاح کنید. - pdf_export_source_id: - must_be_available_to_the_variant: باید پیکربندی‌ای باشد که این پروژه بتواند از آن استفاده کند. - would_create_cycle: این پیکربندی‌ها را به‌صورت حلقه به هم متصل می‌کند. - project_attributes_source_id: - must_be_available_to_the_variant: باید پیکربندی‌ای باشد که این پروژه بتواند از آن استفاده کند. - would_create_cycle: این پیکربندی‌ها را به‌صورت حلقه به هم متصل می‌کند. variant: must_belong_to_the_type: باید گونه‌ای از این نوع باشد. - workflows_source_id: - must_be_available_to_the_variant: باید پیکربندی‌ای باشد که این پروژه بتواند از آن استفاده کند. - would_create_cycle: این پیکربندی‌ها را به‌صورت حلقه به هم متصل می‌کند. + workflow: + not_available_to_this_variant: باید گردش کاری‌ای باشد که این پروژه بتواند از آن استفاده کند. user: attributes: base: @@ -904,8 +960,8 @@ fa: numeric: عدد (برای مثال '1') requirements_not_met: 'باید شامل نویسه‌هایی از انواع زیر باشد: %{rules}' reused: - one: قبلاً استفاده شده است. لطفاً گزینه‌ای متفاوت از آخرین گذرواژه خود انتخاب کنید. - other: قبلاً استفاده شده است. لطفاً گزینه‌ای متفاوت از %{count} گذرواژه اخیر خود انتخاب کنید. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: نویسه ویژه (برای مثال '%') uppercase: حرف بزرگ (برای مثال 'A') password_confirmation: @@ -974,6 +1030,8 @@ fa: identifier: must_not_be_changed: 'نباید به‌صورت دستی تغییر کند. شناسه‌های بسته کاری به‌طور خودکار تخصیص داده می‌شوند و از طریق جدول alias حل می‌شوند؛ تغییر دستی آن‌ها پیوندها و تاریخچه شناسه را می‌شکند. اگر این تغییر عمدی است، با `save(context: :%{context})` ذخیره کنید و جدول work_package_semantic_aliases را سازگار نگه دارید.' semantic_identifier_incomplete: و sequence_number باید هر دو هم‌زمان تنظیم شوند. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: نمی‌تواند در پروژه دیگری باشد. cannot_be_milestone: نمی‌تواند نقطه عطف باشد. @@ -1001,6 +1059,8 @@ fa: status_id: status_invalid_in_type: نامعتبر است، زیرا وضعیت فعلی در این نوع وجود ندارد. status_transition_invalid: نامعتبر است، زیرا برای نقش‌های کاربر فعلی هیچ انتقال معتبری از وضعیت قبلی به وضعیت جدید وجود ندارد. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: نمی‌تواند نقطه عطف باشد، زیرا این بسته کاری فرزند دارد. is_not_a_valid_target_for_time_entries: 'بسته کاری #%{id} هدف معتبری برای تخصیص مجدد ورودی‌های زمان نیست.' @@ -1009,8 +1069,8 @@ fa: template: body: 'لطفاً فیلدهای زیر را بررسی کنید:' header: - one: ۱ خطا مانع ذخیره این %{model} شد - other: "%{count} خطا مانع ذخیره این %{model} شدند" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: اقدام @@ -1048,6 +1108,9 @@ fa: auth_provider: one: ارائه‌دهنده احراز هویت other: ارائه‌دهندگان احراز هویت + automation: + one: Automation + other: Automations backup: one: نسخه پشتیبان other: نسخه‌های پشتیبان @@ -1069,9 +1132,6 @@ fa: comment: one: دیدگاه other: دیدگاه‌ها - custom_action: - one: اقدام سفارشی - other: اقدام‌های سفارشی custom_field: one: فیلد سفارشی other: فیلدهای سفارشی @@ -1117,6 +1177,9 @@ fa: export_setting: one: تنظیم خروجی other: تنظیمات خروجی + form_configuration: + one: فرم + other: فرم‌ها forum: one: انجمن other: انجمن‌ها @@ -1135,6 +1198,9 @@ fa: issue_priority: one: اولویت other: اولویت‌ها + label: + one: Label + other: Labels ldap_auth_source: one: اتصال LDAP other: اتصال‌های LDAP @@ -1399,7 +1465,28 @@ fa: admin: banners: environment_configured_readonly: این مقادیر از طریق متغیرهای محیطی پیکربندی شده‌اند و در اینجا قابل ویرایش نیستند. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: به‌طور پیش‌فرض از لوگوهای OpenProject استفاده می‌شود، اما اگر لوگوهای جدید بارگذاری کنید، پوسته به‌طور خودکار به پوسته سفارشی تغییر می‌کند. برای نتیجه بهتر، لوگویی با پس‌زمینه شفاف پیشنهاد می‌کنیم. + title: لوگوهای سفارشی دسکتاپ + mobile: + description: به‌طور پیش‌فرض در نسخه مرورگر موبایل از لوگوهای OpenProject استفاده می‌شود؛ برنامه بومی موبایل با این تغییر به‌روزرسانی نخواهد شد. برای نتیجه بهتر، لوگویی با پس‌زمینه شفاف پیشنهاد می‌کنیم. + title: لوگوهای سفارشی موبایل + modes: + dark: + description: سربرگ برنامه سیاه خواهد بود. پیشنهاد می‌کنیم از لوگوی سفید با پس‌زمینه شفاف استفاده کنید. + name: لوگوی حالت تیره + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: لوگوی حالت روشن + light_high_contrast: + description: سربرگ برنامه خاکستری خواهد بود. پیشنهاد می‌کنیم از لوگوی سیاه با پس‌زمینه شفاف استفاده کنید. + name: لوگوی حالت کنتراست بالا color_groups: base_colors: رنگ‌های پایه main_menu: منوی کناری اصلی @@ -1432,7 +1519,11 @@ fa: tab_interface: رابط کاربری tab_pdf_export_font: فونت خروجی PDF tab_pdf_export_styles: سبک‌های خروجی PDF - theme_warning: تغییر پوسته، سبک سفارشی شما را بازنویسی می‌کند و طراحی فعلی از بین می‌رود. مطمئنید می‌خواهید ادامه دهید؟ + theme_warning: + confirmation: می‌دانم که این عملیات قابل بازگشت نیست + description: تغییر پوسته، سبک‌ها و رنگ‌های سفارشی را بازنویسی می‌کند. مقادیر طراحی ایجادشده از دست خواهند رفت. + heading: پوسته رنگی تغییر کند؟ + title: تغییر پوسته رنگی enterprise: add_token: بارگذاری توکن پشتیبانی نسخه Enterprise book_now: همین حالا رزرو کنید @@ -1465,7 +1556,7 @@ fa: import: title: واردکردن info: - database_deprecation_html: 'از OpenProject 16.0 به بعد، برای استفاده از OpenProject به PostgreSQL 16 نیاز است. نصب شما با پایگاه‌داده فعلی همچنان کار می‌کند، اما در نسخه‌های آینده احتمال ناسازگاری وجود دارد.
برای همه روش‌های نصب [راهنمای ارتقا](upgrade_guide) آماده کرده‌ایم. می‌توانید پیش از انتشار نسخه بعدی، هر زمان با پیروی از راهنماها ارتقا را انجام دهید. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: تخصیص‌دهنده حافظه Jemalloc @@ -1473,12 +1564,15 @@ fa: actions: button_edit: ویرایش پیکربندی button_open: بازکردن اجراها + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'لطفاً با بازخورد و اهدای خصوصی داده به بهبود Jira Migrator کمک کنید. می‌توانید به [جامعه توسعه](link) Jira Migrator بپیوندید. ' description: این Jira Migrator در حال حاضر نسخه Beta است. فعلاً فقط Jira Server/Data Center نسخه‌های 10.x و 11.x پشتیبانی می‌شوند و نمونه‌های Cloud در این زمان پشتیبانی نمی‌شوند. title: Beta - امتحانش کنید! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: برای شروع واردکردن موارد از Jira به این نمونه OpenProject، یک میزبان Jira پیکربندی کنید. title: هنوز هیچ میزبان Jira پیکربندی نشده است @@ -1511,16 +1605,30 @@ fa: description: Jira از شناسه Issue شامل کلید پروژه و شماره ترتیبی (PRJ-123) استفاده می‌کند. OpenProject نیز از آن پشتیبانی می‌کند، اما باید [اینجا](link) فعال شود. title: شناسه‌های معنایی مبتنی بر پروژه باید فعال باشند. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: افزودن پیکربندی - button_delete_token: حذف توکن + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: ذخیره پیکربندی - delete_token_confirm: مطمئنید می‌خواهید توکن را حذف کنید؟ این کار اتصال Jira را غیرفعال می‌کند. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: نام - personal_access_token: توکن دسترسی شخصی + personal_access_token: Personal access token (PAT) url: نشانی Jira Server/Data Center label_testing: در حال آزمایش پیکربندی... - test_configuration_caption: می‌توانید با [کلیک اینجا](test) این پیکربندی را آزمایش کنید + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: ویرایش اجرا @@ -1624,26 +1732,26 @@ fa: title: لطفاً مطمئن شوید نسخه پشتیبان دارید! parts: issues: - one: ۱ Issue - other: "%{count} Issue" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: ۱ کار - other: "%{count} کار" + one: "%{count} job" + other: "%{count} jobs" projects: - one: ۱ پروژه - other: "%{count} پروژه" + one: "%{count} project" + other: "%{count} projects" statuses: - one: ۱ وضعیت - other: "%{count} وضعیت" + one: "%{count} status" + other: "%{count} statuses" types: - one: ۱ نوع - other: "%{count} نوع" + one: "%{count} type" + other: "%{count} types" users: - one: ۱ کاربر - other: "%{count} کاربر" + one: "%{count} user" + other: "%{count} users" work_packages: - one: ۱ بسته کاری - other: "%{count} بسته کاری" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: می‌دانم که این بازگردانی داده‌ها را برای همیشه حذف می‌کند description: این کار همه اشیای واردشده، از جمله کل پروژه‌ها، را حذف می‌کند. @@ -1708,8 +1816,8 @@ fa: caption: انتخاب کنید چه چیزی می‌خواهید به OpenProject وارد شود caption_done: تکمیل‌شده caption_done_description: - one: ۱ پروژه به‌عنوان دامنه انتخاب شده است - other: "%{count} پروژه به‌عنوان دامنه انتخاب شده‌اند" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: از داده‌های موجود دریافت‌شده از نمونه میزبان Jira، موارد موردنظر برای Import را انتخاب کنید. elements: custom_fields: زیرمجموعه‌ای از فیلدهای سفارشی @@ -1773,23 +1881,53 @@ fa: rest_line_text: در حال دریافت پیوست‌های %{projects_number} پروژه دیگر title: دریافت پیوست‌ها test: - api_error: Jira API وضعیت خطای %{status} برگرداند. لطفاً نشانی نمونه Jira و توکن API را بررسی کنید. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'خطای اتصال: %{message}' error: هنگام آزمایش اتصال یک خطای غیرمنتظره رخ داد failed: 'اتصال ناموفق بود: دریافت اطلاعات سرور ممکن نیست' invalid_url: لطفاً یک نشانی معتبر وارد کنید - missing_credentials: برای آزمایش اتصال، هم نشانی و هم Personal Access Token را وارد کنید parse_error: تجزیه پاسخ سرور ناموفق بود. ممکن است سرور یک نمونه معتبر Jira نباشد. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: اتصال به %{server} با موفقیت برقرار شد (نسخه %{version}) - token_error: توکن API نامعتبر است. لطفاً اعتبارنامه‌های موجود در پیکربندی را بررسی کنید. + user_is_not_admin: Credential's owner is not an Administer in Jira title: مهاجرت‌دهنده Jira - token_deleted: توکن با موفقیت حذف شد. user: unknown_name: نامشخص journal_aggregation: caption_with_maximum: 'اقدامات کاربر روی یک بسته کاری (تغییر توضیحات، وضعیت، مقادیر یا نوشتن دیدگاه) اگر در این بازه انجام شوند در یک گروه قرار می‌گیرند. این بازه همچنین تأخیر اعلان‌ها و [Webhook](webhook_link) را کنترل می‌کند. حداکثر مقدار %{max} دقیقه است. ' + labels: + delete_dialog_component: + confirmation: می‌دانم که این عملیات برگشت‌پذیر نیست + description_html: این کار برچسب %{name} را از همه بسته‌های کاری در همه پروژه‌ها حذف می‌کند. + heading: این برچسب حذف شود؟ + title: این برچسب حذف شود؟ + dialog_component: + create_title: ایجاد برچسب + rename_title: تغییر نام «%{name}» + index: + description: همه کاربرانی که امکان ویرایش بسته‌های کاری را دارند می‌توانند آزادانه بسته‌های کاری را با برچسب‌های موجود علامت‌گذاری کنند یا فوراً برچسب جدید بسازند. این شامل همه برچسب‌هایی است که کاربران در تمام پروژه‌ها ساخته‌اند. + row_component: + used_in_work_packages: + one: "%{count} بسته کاری" + other: "%{count} بسته کاری" + sub_header_component: + button_add: برچسب + label_add: افزودن برچسب + search_placeholder: برای جستجو اینجا تایپ کنید + table_component: + blank_slate: + description: برچسب‌هایی که کاربران روی بسته‌های کاری ایجاد می‌کنند در اینجا نمایش داده خواهند شد. + title: هنوز برچسبی وجود ندارد + headers: + name: برچسب + usage: استفاده‌شده در + no_matches: + description: عبارت جستجوی دیگری را امتحان کنید. + title: هیچ برچسبی با جستجوی شما مطابقت ندارد mcp_configurations: index: description: Model Context Protocol به Agentهای هوش مصنوعی اجازه می‌دهد ابزارها و منابع ارائه‌شده توسط این نمونه OpenProject را در اختیار کاربرانشان قرار دهند. این قابلیت هنوز در مرحله Beta است. @@ -1820,6 +1958,18 @@ fa: update: failure: پیکربندی MCP به‌روزرسانی نشد. success: پیکربندی MCP با موفقیت به‌روزرسانی شد. + members: + index: + blank_description: هیچ عضویتی با فیلتر فعلی مطابقت ندارد. + blank_title: هیچ عضویتی وجود ندارد + filter_label: جستجوی کاربران + inheritance_source: "%{type} %{name}" + inherited_via: "(از طریق: %{source})" + title: عضویت‌ها + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: برای اطلاعات بیشتر صفحه یکپارچه‌سازی‌ها و Pluginهای ما را ببینید. no_results_title_text: در حال حاضر هیچ Pluginای نصب نشده است. @@ -1833,8 +1983,8 @@ fa: confirm_button: آزادکردن رزرو شناسه description: آزادکردن رزرو این شناسه پروژه قابل بازگشت نیست. پیوندهای خارجی و یکپارچه‌سازی‌هایی که از آن استفاده می‌کنند دیگر Resolve نمی‌شوند و این نام برای استفاده هر پروژه جدیدی آزاد خواهد شد. description_with_work_packages: - one: آزادکردن رزرو این شناسه پروژه (و ۱ شناسه بسته کاری آن) قابل بازگشت نیست. پیوندهای خارجی و یکپارچه‌سازی‌هایی که از آن استفاده می‌کنند دیگر Resolve نمی‌شوند و این نام برای استفاده هر پروژه جدیدی آزاد خواهد شد. - other: آزادکردن رزرو این شناسه پروژه (و %{count} شناسه بسته کاری آن) قابل بازگشت نیست. پیوندهای خارجی و یکپارچه‌سازی‌هایی که از آن استفاده می‌کنند دیگر Resolve نمی‌شوند و این نام برای استفاده هر پروژه جدیدی آزاد خواهد شد. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: رزرو «%{identifier}» آزاد شود؟ title: آزادکردن رزرو شناسه empty_body: وقتی شناسه یک پروژه تغییر می‌کند، شناسه قبلی در اینجا نمایش داده می‌شود تا زمانی که امن بود رزرو آن را آزاد کنید. @@ -1962,8 +2112,8 @@ fa: error_unknown: نیازمند بازبینی دستی است error_used_in_past: در تاریخچه Handle پروژه‌ای دیگر رزرو شده است remaining_projects: - one: "... ۱ پروژه دیگر" - other: "... %{count} پروژه دیگر" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'شناسه‌های موجود %{project_count} پروژه الزامات شناسه‌های معنایی مبتنی بر پروژه را برآورده نمی‌کنند. OpenProject می‌تواند آن‌ها را به‌طور خودکار مطابق نمونه‌های زیر به‌روزرسانی کند. برای به‌روزرسانی شناسه همه پروژه‌ها به این روش و فعال‌سازی شناسه‌های معنایی مبتنی بر پروژه، روی «تبدیل شناسه‌ها» کلیک کنید. @@ -2003,7 +2153,7 @@ fa: types_caption: انواع بسته کاری‌ای را اضافه کنید که این عملیات باید برای آن‌ها در دسترس باشد. همه گونه‌های موجود به‌طور خودکار شامل خواهند شد. usage_scope_caption: 'می‌توانید محل نمایش این عملیات را محدود کنید: همه‌جا (از جمله دیدگاه‌ها، ویکی‌ها و فیلدهای سفارشی)، برای همه انواع بسته کاری، یا فقط برای انواع مشخصی از بسته کاری.' index: - description: عملیات تبدیل متن، قابلیت‌های مبتنی بر مدل زبانی بزرگ (LLM) را برای نوشتن، سازمان‌دهی و بازبینی متن در هر جایی که ویرایشگر متن غنی استفاده می‌شود، مانند توضیحات بسته کاری، دیدگاه‌ها و صفحه‌های ویکی، در اختیار کاربران می‌گذارد. می‌توانید با پرامپت‌ها و دستورهای خود، عملیات جدید بسازید. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: عملیات label_aria_add_action: افزودن عملیات تبدیل متن index_component: @@ -2036,13 +2186,20 @@ fa: ignore: نادیده‌گرفتن تغییرات save: ذخیره تغییرات و ادامه title: تغییرات پیش از ادامه ذخیره شوند؟ + read_only: + edit_action: ویرایش گردش کاری + text_html: 'شما از یک گردش کاری موجود استفاده می‌کنید. برای ایجاد تغییر، یا گردش کاری اصلی را ویرایش کنید یا برای ساخت یک گردش کاری جدید روی + %{action} در بالا کلیک کنید. + + ' role_selector: label: 'نقش: %{role}' no_role: انتخاب نقش roles: - one: یک نقش انتخاب شده است - other: "%{count} نقش انتخاب شده‌اند" + one: "%{count} role selected" + other: "%{count} roles selected" title: انتخاب نقش‌ها + with_transitions: With transitions + without_transitions: Without transitions status_button: وضعیت statuses_dialog: caption: وضعیت‌هایی را که می‌خواهید به این نوع مرتبط کنید اضافه یا حذف کنید. حذف یک وضعیت، گردش‌کار مرتبط با آن را نیز حذف می‌کند. @@ -2052,8 +2209,8 @@ fa: confirm: حذف description: حذف این وضعیت‌ها آن‌ها را برای این نوع غیرقابل استفاده می‌کند و گردش‌کارهای موجود را حذف خواهد کرد. مطمئنید می‌خواهید ادامه دهید؟ heading: - one: ۱ وضعیت حذف شود؟ - other: "%{count} وضعیت حذف شوند؟" + one: Remove %{count} status? + other: Remove %{count} statuses? title: حذف وضعیت‌ها tabs: always: انتقال‌های پیش‌فرض @@ -2065,7 +2222,31 @@ fa: assignee: انتقال‌های اضافی در دسترس مسئول انجام بسته کاری. author: انتقال‌های اضافی در دسترس نویسنده بسته کاری. menu_label: انتقال‌های نمایش‌داده‌شده + workflow_button: گردش کاری + ai: + text_transform: + errors: + connection_failed: دسترسی به سرویس هوش مصنوعی ممکن نشد. + not_available: دستیار هوش مصنوعی در دسترس نیست. + timeout: سرویس هوش مصنوعی در زمان مقرر پاسخ نداد. + upstream_error: سرویس هوش مصنوعی خطایی بازگرداند. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: محتوا is_active: در حال حاضر نمایش داده می‌شود is_inactive: در حال حاضر نمایش داده نمی‌شود show_until: نمایش تا @@ -2073,7 +2254,7 @@ fa: deleted_by_admin: فایل قرنطینه‌شده '%{filename}' توسط مدیر حذف شده است. deleted_message: در فایل '%{filename}' ویروس شناسایی شد. فایل حذف شده است. not_processed_yet_message: دانلود مسدود است، زیرا فایل هنوز برای ویروس اسکن نشده است. لطفاً بعداً دوباره تلاش کنید. - overridden_by_admin: قرنطینه فایل '%{filename}' توسط %{user} برداشته شد. اکنون فایل قابل دسترسی است. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: کانتینر delete: حذف فایل قرنطینه‌شده @@ -2127,10 +2308,6 @@ fa: not_found: reminder: یادآوری موردنظر یافت نمی‌شود یا حذف شده است. work_package: بسته کاری موردنظر یافت نمی‌شود یا حذف شده است. - render: - context_not_parsable: Context ارائه‌شده پیوندی به یک منبع نیست. - context_object_not_found: منبع ارائه‌شده به‌عنوان Context یافت نشد. - unsupported_context: منبع ارائه‌شده به‌عنوان Context پشتیبانی نمی‌شود. unable_to_create_attachment: امکان افزودن فایل پیوست وجود ندارد unable_to_create_attachment_permissions: پیوست به‌دلیل نبود مجوزهای لازم در فایل‌سیستم ذخیره نشد user: @@ -2169,7 +2346,7 @@ fa: body: بدنه category: دسته‌بندی color: رنگ - comment: دیدگاه + comment: نظر comments: دیدگاه content: محتوا created_at: ایجادشده در @@ -2201,6 +2378,7 @@ fa: groups: گروه‌ها hexcode: کد هگز id: شناسه + inexistent: وجود ندارد is_default: مقدار پیش‌فرض is_for_all: نمایش تمام پروژه‌ها issue: کاربسته @@ -2251,6 +2429,7 @@ fa: updated_at: به روز شده updated_on: به‌روزرسانی‌شده در uploader: بارگذار + url: URL user: کاربر username: نام کاربری value: مقدار @@ -2265,6 +2444,29 @@ fa: ' login_and_registration: ورود و ثبت‌نام + automations: + actions: + add: افزودن عملیات + assigned_to: + executing_user_value: "(اختصاص به کاربر اجراکننده)" + name: عملیات + conditions: شرط‌ها + edit: ویرایش خودکارسازی %{name} + new: خودکارسازی جدید + plural: خودکارسازی‌ها + summary: + if: اگر + none: هیچ‌کدام + then: آنگاه + title: خلاصه + when: زمانی که + trigger: محرک + triggers: + button: + button_label: برچسب دکمه + label: فشردن دکمه + more_coming: OpenProject به‌زودی انواع بیشتری از محرک‌ها را اضافه می‌کند. + name: محرک‌ها background_jobs: status: cancelled_due_to: 'Job به‌دلیل خطا لغو شد: %{message}' @@ -2393,6 +2595,7 @@ fa: button_set_reminder: تنظیم یادآوری button_show: نمایش button_sort: مرتب‌سازی + button_stop_timer: توقف تایمر button_submit: ثبت کردن button_test: بررسی button_unarchive: خروج از آرشیو @@ -2459,9 +2662,9 @@ fa: text: failed: کپی پروژه «%{source_project_name}» به پروژه «%{target_project_name}» ناموفق بود. succeeded: پروژه «%{source_project_name}» به «%{target_project_name}» کپی شد. - title: کپی پروژه «%{source_project_name}» + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: یک شیء از این نوع + one: "%{count} object of this type" other: "%{count} شیء از این نوع" zero: هیچ شیئی از این نوع create_portfolio: @@ -2499,13 +2702,9 @@ fa: plural: اقدامات سفارشی custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: این فیلد سفارشی در همه پروژه‌ها فعال است، زیرا گزینه «برای همه پروژه‌ها» انتخاب شده است. نمی‌توان آن را برای پروژه‌ای به‌صورت جداگانه غیرفعال کرد. - heading: برای همه پروژه‌ها hierarchy: subitems: - one: ۱ زیرمورد + one: "%{count} sub-item" other: "%{count} زیرمورد" zero: بدون زیرمورد items: @@ -2526,7 +2725,7 @@ fa: short: نام کوتاه weight: وزن notice: - remember_items_and_projects: به یاد داشته باشید موارد و پروژه‌ها را در تب‌های مربوط به این فیلد سفارشی تنظیم کنید. + remember_items_and_projects: یادتان باشد گزینه‌های این فیلد سفارشی را تنظیم کنید و مطمئن شوید دست‌کم در یک پروژه استفاده می‌شود. role_assignment: description: می‌توانید صرف‌نظر از نقش اصلی کاربر در پروژه، یک نقش پروژه مشخص را به‌طور خودکار به هر کاربری که به این ویژگی پروژه تخصیص داده شده اعطا کنید. dialog: @@ -2589,16 +2788,17 @@ fa: is_enabled_globally: به‌صورت سراسری فعال است multi_value_more: other: و %{count} مورد دیگر + no_results_title_text: در حال حاضر هیچ فیلد سفارشی وجود ندارد. no_role_assigment: بدون تخصیص نقش + overview: + description: 'در OpenProject می‌توانید به بسته‌های کاری، پروفایل کاربران و حتی رکوردهای ثبت زمان، فیلد سفارشی اضافه کنید. تنظیمات مربوط به این فیلدها به بخش‌های مرتبط منتقل شده‌اند:' + heading: تنظیمات منتقل شده‌اند placeholder_version_select: ابتدا باید بسته کاری یا پروژه انتخاب شود reorder_alphabetical: مرتب‌سازی مقادیر بر اساس حروف الفبا reorder_confirmation: 'هشدار: ترتیب فعلی مقادیر موجود و همه مقادیر ذخیره‌نشده از دست خواهند رفت. مطمئنید می‌خواهید ادامه دهید؟' semantic_keys: job_title: عنوان شغلی none: هیچ‌کدام - tab: - no_results_content_text: ایجاد فیلد سفارشی جدید - no_results_title_text: در حال حاضر هیچ فیلد سفارشی وجود ندارد. text_add_new_custom_field: 'برای افزودن فیلدهای سفارشی جدید به پروژه، ابتدا باید آن‌ها را ایجاد کنید تا بتوانید به این پروژه اضافه‌شان کنید. ' @@ -2662,57 +2862,57 @@ fa: datetime: distance_in_words: about_x_hours: - one: حدود ۱ ساعت - other: حدود %{count} ساعت + one: about %{count} hour + other: about %{count} hours about_x_months: - one: حدود ۱ ماه - other: حدود %{count} ماه + one: about %{count} month + other: about %{count} months about_x_years: - one: حدود ۱ سال - other: حدود %{count} سال + one: about %{count} year + other: about %{count} years almost_x_years: - one: تقریباً ۱ سال - other: تقریباً %{count} سال + one: almost %{count} year + other: almost %{count} years half_a_minute: نیم دقیقه less_than_x_minutes: one: کمتر از یک دقیقه other: کمتر از %{count} دقیقه less_than_x_seconds: - one: کمتر از ۱ ثانیه - other: کمتر از %{count} ثانیه + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: بیش از ۱ سال - other: بیش از %{count} سال + one: over %{count} year + other: over %{count} years x_days: - one: ۱ روز - other: "%{count} روز" + one: "%{count} day" + other: "%{count} days" x_hours: - one: ۱ ساعت - other: "%{count} ساعت" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: ۱ ساعت - other: "%{count} ساعت" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: ۱ دقیقه - other: "%{count} دقیقه" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: ۱ دقیقه - other: "%{count} دقیقه" + one: "%{count} min" + other: "%{count} mins" x_months: - one: ۱ ماه - other: "%{count} ماه" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: ۱ ثانیه - other: "%{count} ثانیه" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: ۱ ثانیه - other: "%{count} ثانیه" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: ۱ هفته - other: "%{count} هفته" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: ۱ سال - other: "%{count} سال" + one: "%{count} year" + other: "%{count} years" units: day: one: روز @@ -2862,8 +3062,8 @@ fa: teaser: description_html: به همه قابلیت‌های %{trial_plan} دسترسی دارید. title: - one: ۱ روز از توکن آزمایشی %{trial_plan} باقی مانده است - other: "%{count} روز از توکن آزمایشی %{trial_plan} باقی مانده است" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'توکن Enterprise آزمایشی شما قبلاً دریافت شده است. لطفاً ایمیل‌های خود را برای توکن پیوست‌شده بررسی کنید. اگر به توکن جدید نیاز دارید با تیم پشتیبانی ما تماس بگیرید. @@ -3202,9 +3402,150 @@ fa: selected: انتخاب‌شده include_sub_items: شامل زیرموردها no_results_text: بدون نتیجه + form_configurations: + button: فرم + change: + select: + caption: این نوع، بسته‌های کاری خود را با گروه‌های ویژگیِ فرم انتخاب‌شده در اینجا نمایش می‌دهد. + label: فرم + placeholder: انتخاب فرم… + title: تغییر فرم + default: + label: پیش‌فرض + mark: انتخاب به‌عنوان پیش‌فرض + marked: اکنون فرم %{name} پیش‌فرض است. انواع جدید از آن استفاده می‌کنند. + name: فرم پیش‌فرض + form: + copy_from: + caption: فرم جدید با کپی گروه‌های ویژگی آن فرم ایجاد می‌شود. + label: کپی از + placeholder: انتخاب فرم… + description: + caption: توضیح کوتاهی درباره محل و نحوه استفاده از این فرم اضافه کنید. + label: توضیحات + edit_title: ویرایش فرم + name: + caption: نامی انتخاب کنید که بعداً بتوانید این فرم را در بخش‌های دیگر شناسایی کنید. + label: نام فرم + new_title: ایجاد فرم + index: + actions: + edit: ویرایش فرم + menu: عملیات مربوط به %{name} + rename: ویرایش نام و توضیحات + blank_slate: + description: فرمی ایجاد کنید تا گروه‌های ویژگی‌ای را تعیین کنید که یک نوع یا گونه در بسته‌های کاری خود نمایش می‌دهد. + filtered_description: هیچ فرمی با فیلترهای فعلی مطابقت ندارد. + filtered_title: هیچ فرم منطبقی یافت نشد + title: هیچ فرمی وجود ندارد + columns: + name: نام فرم + projects: پروژه‌ها + types_and_variants: انواع و گونه‌ها + description: همه فرم‌های نام‌گذاری‌شده بسته‌های کاری در این نمونه، همراه با انواع و گونه‌هایی که از آن‌ها استفاده می‌کنند. + filters: + name: فرم + name_placeholder: فیلتر بر اساس نام یا توضیحات فرم… + projects_placeholder: فیلتر پروژه‌ها… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (شامل %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: فرم + implicit: فرم %{name} + selector: + default: "(پیش‌فرض)" + prefix: فرم + same_as_type: "(همانند نوع)" + title: انتخاب فرم + start: + copy: + caption: از فرم موجود شروع کنید، آن را به دلخواه تغییر دهید و به‌عنوان فرمی جدید ذخیره کنید. + label: شروع با کپی یک فرم موجود + missing: فرم موردنظر برای کپی را انتخاب کنید یا به‌جای آن از ابتدا شروع کنید. + label: نقطه شروع + scratch: + caption: از گروه‌های ویژگی پیش‌فرض شروع کنید و خودتان آن‌ها را مرتب کنید. + label: شروع از ابتدا + title: پیکربندی فرم جدید + tab: + read_only: + banner_html: 'شما از یک فرم موجود استفاده می‌کنید. برای اعمال تغییرات، فرم اصلی را ویرایش کنید یا روی + فرم در بالا کلیک کنید تا فرم جدیدی بسازید. + + ' + edit_action: ویرایش فرم + usage: + dialog: + button: مشاهده انواع وابسته + caption_html: فرم %{name} در انواع و گونه‌های زیر استفاده می‌شود. + title: فرم مورداستفاده در انواع + variant_of: گونه‌ای از %{type} + variants: گونه‌ها + unused: هنوز هیچ نوع یا گونه‌ای از این فرم استفاده نمی‌کند. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: برای این نوع، از فرم موجودی استفاده کنید که گروه‌های ویژگی آن از پیش تعریف شده‌اند. + label: استفاده از فرم موجود + new: + caption: گروه‌های ویژگی فرم جدید را برای این نوع مرتب کنید. + label: پیکربندی فرم جدید forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: در حال حاضر هیچ پستی برای انجمن وجود ندارد. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3229,6 +3570,8 @@ fa: groups: edit: synchronized_groups: گروه‌های همگام‌شده + form: + group_attributes: Group attributes index: description: با گروه‌بندی کاربران می‌توانید آن‌ها را به‌صورت عضو به پروژه‌های یکسان اضافه کنید یا نقش‌های سراسری یکسان به آن‌ها تخصیص دهید. memberships: @@ -3254,6 +3597,10 @@ fa: leave_project: ترک پروژه no_favorite_projects: هیچ پروژه موردعلاقه‌ای ندارید. title: پروژه‌ها + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3267,7 +3614,7 @@ fa: summary: failure: برخی بررسی‌ها ناموفق بودند و سیستم مطابق انتظار کار نمی‌کند. success: همه اتصال‌ها و سیستم‌ها مطابق انتظار کار می‌کنند. - warning: برخی بررسی‌ها هشدار داده‌اند. این ممکن است به رفتار غیرمنتظره منجر شود. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: ناموفق @@ -3276,7 +3623,7 @@ fa: warning: هشدار help_texts: views: - favoured: این نما را به‌عنوان موردعلاقه علامت بزنید و به نوار کناری نماهای ذخیره‌شده در سمت چپ اضافه کنید. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} همیشه به یک پروژه متصل هستند. اینجا فقط می‌توانید پروژه‌هایی را انتخاب کنید که ماژول %{plural} در آن‌ها فعال است. پس از ایجاد یک %{singular} می‌توانید بسته‌های کاری پروژه‌های دیگر را به آن اضافه کنید.\n" public: این نما را منتشر کنید تا کاربران دیگر به آن دسترسی داشته باشند. کاربران دارای مجوز «مدیریت نماهای عمومی» می‌توانند Query عمومی را تغییر یا حذف کنند. این کار بر قابلیت مشاهده نتایج بسته کاری در آن نما اثر نمی‌گذارد و بسته به مجوزها، کاربران ممکن است نتایج متفاوتی ببینند. homescreen: @@ -3301,6 +3648,31 @@ fa: line_6: از هشدارهای تاریخ در نسخه Community استفاده کنید. new_features_title: 'این نسخه شامل قابلیت‌ها و بهبودهای جدید متنوعی است، از جمله: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: درباره قابلیت‌های جدید و به‌روزرسانی‌های محصول بخوانید. learn_about: اطلاعات بیشتر درباره همه قابلیت‌های جدید @@ -3337,8 +3709,10 @@ fa: journals: cause_descriptions: budget_deleted: بودجه حذف شده است + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} تغییر کرد (%{link})" + csv: از CSV deleted_with_diff: "%{field} حذف شد (%{link})" field_changed: "%{field} از %{old_value} به %{new_value} تغییر کرد" field_removed: "%{field} حذف شد" @@ -3388,6 +3762,7 @@ fa: budget_deleted: بودجه حذف شده است dates_changed: تاریخ‌ها تغییر کردند default_attribute_written: ویژگی‌های فقط‌خواندنی نوشته شدند + forum_message_html: "Created from forum message %{message_information}" import: واردشده meeting_agenda_item_added_html: "به جلسه اضافه شد %{meeting_title_information}" meeting_agenda_item_added_template_html: "اضافه شد به %{meeting_title_information}" @@ -3540,10 +3915,10 @@ fa: label_copy_target: هدف label_copy_workflow_from: کپی گردش‌کار از label_copy_workflow_from_role: کپی به نقش‌های دیگر - label_copy_workflow_from_type: کپی به نوع دیگر label_core_build: Build هسته label_core_version: نسخه هسته label_created_by: ایجادشده توسط %{user} + label_criteria: معیارها label_current_status: وضعیت فعلی label_current_version: نسخه فعلی label_custom_comment: دیدگاه %{name} @@ -3567,8 +3942,6 @@ fa: label_custom_field_default_type: نوع خالی label_custom_field_new: فیلد سفارشی جدید label_custom_field_plural: فیلدهای سفارشی - label_custom_logo: لوگوی سفارشی دسکتاپ - label_custom_logo_mobile: لوگوی سفارشی موبایل label_custom_pdf_export_settings: تنظیمات سفارشی خروجی PDF label_custom_style: طراحی label_custom_style_description: ظاهر OpenProject را با انتخاب پوسته، رنگ‌های پیش‌فرض برنامه و ظاهر خروجی‌ها مطابق سلیقه خود تنظیم کنید. @@ -3577,11 +3950,12 @@ fa: label_database_version: نسخه PostgreSQL label_date: تاریخ label_date_and_time: تاریخ و زمان - label_date_format: قالب تاریخ + label_date_and_time_formats: Date and time formats label_date_from: از label_date_from_to: از %{start} تا %{end} label_date_to: تا label_dates: تاریخ‌ها + label_day: روز label_day_plural: روز label_default: پیش‌فرض label_defaults: پیش‌فرض‌ها @@ -3592,6 +3966,7 @@ fa: label_deleted_custom_field: "(فیلد سفارشی حذف‌شده)" label_deleted_custom_item: "(مورد حذف‌شده)" label_deleted_custom_option: "(گزینه حذف‌شده)" + label_deleted_label: "(deleted label)" label_deleted_version: "(نسخه حذف‌شده)" label_departments: سازمان label_departments_description_html: 'ساختار شرکت خود را با ایجاد واحدهای سازمانی و زیرواحدها به‌صورت سلسله‌مراتبی تعریف کنید. این کار امکان بازتاب خطوط گزارش‌دهی و حفظ نمایی شفاف و ساختاریافته از سازمان در OpenProject را فراهم می‌کند. همچنین می‌توانید ساختار سازمانی موجود را از طریق [همگام‌سازی واحدهای سازمانی LDAP](ldap_docs_article) وارد کنید. @@ -3662,6 +4037,7 @@ fa: label_float: عدد اعشاری label_folder: پوشه label_follows: پس از + label_form_configuration_plural: فرم‌ها label_formula: فرمول label_forum_new: انجمن جدید label_forum_plural: انجمن‌ها @@ -3680,6 +4056,7 @@ fa: label_go_forward: بازکردن زیرمنوی %{module} label_greater_or_equal: ">=" label_group: گروه + label_group_attributes_plural: ویژگی‌های گروه‌بندی label_group_by: گروه‌بندی بر اساس label_group_named: گروه %{name} label_group_new: گروه جدید @@ -3731,8 +4108,8 @@ fa: label_journal_diff: مقایسه توضیحات label_jump_to_a_project: رفتن به یک پروژه... label_keyword_plural: کلیدواژه‌ها + label_label_plural: برچسب‌ها label_language: زبان - label_language_based: براساس زبان کاربر label_languages: زبان‌ها label_last_activity: آخرین فعالیت label_last_change_on: آخرین تغییر در @@ -3754,6 +4131,7 @@ fa: label_list: فهرست label_loading: در حال بارگذاری... label_locale: زبان و منطقه + label_locale_based: Use default for user locale label_lock_user: کاربر قفل شده label_locked: قفل‌شده label_logged_as: واردشده به‌عنوان @@ -3765,6 +4143,7 @@ fa: label_managed_by_ldap: مدیریت‌شده توسط همگام‌سازی LDAP label_managed_repositories_vendor: مخازن %{vendor} مدیریت‌شده label_mapping_for: 'نگاشت برای: %{attribute}' + label_markdown_version: Markdown version label_max_size: حداکثر اندازه label_me: من label_member_all_admin: "(همه نقش‌ها به‌دلیل وضعیت مدیر)" @@ -3783,7 +4162,6 @@ fa: label_menu_item_name: نام آیتم منو label_message: پیام label_message_last: آخرین پیام - label_message_new: پیام جدید label_message_plural: پیام‌ها label_message_posted: پیام اضافه شد label_minute_plural: دقیقه @@ -3795,6 +4173,7 @@ fa: label_module_plural: ماژول‌ها label_modules: ماژول‌ها label_modules_and_plugins: ماژول‌ها و Pluginها + label_month: ماه label_months_from: ماه از label_more: بیشتر label_more_information: اطلاعات بیشتر @@ -3808,6 +4187,7 @@ fa: label_my_avatar: آواتار من label_my_queries: Queryهای سفارشی من label_my_security: امنیت + label_my_time: My time label_name: نام label_never: هرگز label_new: جدید @@ -3822,7 +4202,10 @@ fa: label_news_singular: اخبار label_news_view_all: مشاهده همه اخبار label_next: بعدی + label_next_day: روز بعد + label_next_month: ماه بعد label_next_week: هفته بعد + label_next_workweek: هفته کاری بعدی label_next_year: سال بعد label_no_change_option: "(بدون تغییر)" label_no_data: داده‌ای برای نمایش وجود ندارد @@ -3830,6 +4213,7 @@ fa: label_no_parent_group: "(بدون گروه والد)" label_no_parent_page: بدون صفحه والد label_no_start_date: بدون تاریخ شروع + label_no_time: زمانی ثبت نشده است label_nobody: هیچ‌کس label_non_working_days: تقویم دسترس‌پذیری label_non_working_days_summary: خلاصه @@ -3896,7 +4280,10 @@ fa: label_preview: پیش‌نمایش label_preview_not_available: پیش‌نمایش در دسترس نیست label_previous: قبلی + label_previous_day: روز قبل + label_previous_month: ماه قبل label_previous_week: هفته قبل + label_previous_workweek: هفته کاری قبل label_previous_year: سال قبل label_principal_invite_via_email: " یا کاربران جدید را از طریق ایمیل دعوت کنید" label_principal_search: افزودن کاربران یا گروه‌های موجود @@ -4015,6 +4402,7 @@ fa: label_sort_lowest: انتقال به انتها label_sorted_by: مرتب‌شده بر اساس %{value} label_spent_time: زمان صرف‌شده + label_stack: پشته label_start_to_end: شروع به پایان label_start_to_start: شروع به شروع label_starts_with: شروع می‌شود با @@ -4034,6 +4422,7 @@ fa: label_subtask_plural: زیرکارها label_summary: خلاصه label_system: سیستم + label_system_or_language_default: Use system or language based default label_system_settings: تنظیمات سیستم label_system_storage: اطلاعات ذخیره‌سازی label_table_of_contents: فهرست مطالب @@ -4048,6 +4437,7 @@ fa: label_time: زمان label_time_entry_activity_plural: فعالیت‌های زمان صرف‌شده label_time_entry_plural: زمان صرف‌شده + label_timer_since: شروع شده از %{time} label_title: عنوان label_today: امروز label_today_as_date: امروز را به‌عنوان تاریخ انتخاب کنید. @@ -4083,7 +4473,9 @@ fa: label_user_search: جستجوی کاربر label_user_settings: تنظیمات کاربر label_users_settings: تنظیمات کاربران + label_value: Value label_value_x: 'مقدار: %{x}' + label_version_custom_field_plural: فیلدهای سفارشی نسخه label_version_edit: ویرایش نسخه label_version_new: نسخه جدید label_version_plural: نسخه‌ها @@ -4096,6 +4488,7 @@ fa: label_videos: ویدیوها label_view_all_revisions: مشاهده همه Revisionها label_view_diff: مشاهده تفاوت‌ها + label_view_mode_switcher: تغییر نما label_view_revisions: مشاهده Revisionها label_view_x: 'نما: %{x}' label_watched_work_packages: بسته‌های کاری دنبال‌شده @@ -4119,6 +4512,8 @@ fa: label_wiki_start: صفحه شروع label_wiki_toc: فهرست مطالب label_wiki_toc_empty: فهرست مطالب خالی است، زیرا هیچ عنوانی وجود ندارد. + label_with_criteria: دارای معیار + label_without_criteria: بدون معیار label_work: کار label_work_package: کاربسته label_work_package_attachments: پیوست بسته کاری @@ -4141,46 +4536,47 @@ fa: label_working_days: روزهای کاری label_working_days_and_hours: روزها و ساعات کاری label_working_hours: برنامه کاری + label_workweek: هفته کاری label_x_closed_work_packages_abbr: - one: ۱ بسته + one: "%{count} closed" other: "%{count} بسته" zero: ۰ بسته label_x_comments: - one: ۱ دیدگاه + one: "%{count} comment" other: "%{count} دیدگاه" zero: بدون دیدگاه label_x_days: - one: ۱ روز - other: "%{count} روز" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: ۱ فایل + one: "%{count} file" other: "%{count} فایل" zero: بدون فایل label_x_items: - one: ۱ مورد + one: "%{count} item" other: "%{count} مورد" zero: بدون مورد label_x_items_selected: - one: یک مورد انتخاب شده است - other: "%{count} مورد انتخاب شده‌اند" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: ۱ باز + one: "%{count} open" other: "%{count} باز" zero: ۰ باز label_x_projects: - one: ۱ پروژه + one: "%{count} project" other: "%{count} پروژه" zero: بدون پروژه label_x_work_packages: - one: ۱ بسته کاری + one: "%{count} work package" other: "%{count} بسته کاری" zero: بدون بسته کاری label_x_working_days: - one: ۱ روز کاری - other: "%{count} روز کاری" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'مرخصی: ۱ روز کاری' - other: 'مرخصی: %{count} روز کاری' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: دیروز label_zen_mode: حالت Zen ldap_auth_sources: @@ -4233,7 +4629,7 @@ fa: start_tls: STARTTLS start_tls_description: پس از اتصال به پورت استاندارد LDAP فرمان STARTTLS ارسال می‌کند. روش توصیه‌شده برای اتصال رمزنگاری‌شده. tls_options: - tls_certificate_description: اگر گواهی سرور LDAP در منابع مورد اعتماد این سیستم نیست، می‌توانید آن را اینجا به‌صورت دستی اضافه کنید. یک رشته گواهی PEM X509 وارد کنید. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: اعتبارسنجی گواهی SSL verify_peer_description_html: 'اعتبارسنجی سخت‌گیرانه SSL برای زنجیره مورد اعتماد گواهی را فعال می‌کند.
هشدار: غیرفعال‌کردن این گزینه، اعتبارسنجی SSL گواهی سرور LDAP را خاموش می‌کند و اتصال شما را در معرض حملات Man in the Middle قرار می‌دهد. @@ -4290,6 +4686,8 @@ fa: you_have: شما دارید logo_alt_text: لوگو mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} در %{id} - %{subject} به شما اشاره کرد" notification: center: رفتن به مرکز اعلان‌ها @@ -4346,8 +4744,8 @@ fa: mentioned: در یک دیدگاه به شما اشاره شده است mentioned_by: "%{user} در یک دیدگاه به شما اشاره کرد" more_to_see: - one: ۱ بسته کاری دیگر دارای اعلان است. - other: "%{count} بسته کاری دیگر دارای اعلان هستند." + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: بازکردن در مرورگر reason: assigned: تخصیص‌یافته @@ -4524,6 +4922,13 @@ fa: create_button: ایجاد dialog_body: این توکن به برنامه‌های شخص ثالث اجازه می‌دهد با نمونه شما ارتباط برقرار کنند. برای متمایزکردن توکن API جدید، لطفاً نامی برای آن انتخاب کنید. dialog_title: ایجاد توکن API جدید + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: نام توکن failed_to_create_token: 'ایجاد توکن دسترسی ناموفق بود: %{error}' failed_to_reset_token: 'عدم موفقیت در تنظیم مجدد رمز دسترسی: %{error}' @@ -4537,10 +4942,26 @@ fa: password_confirmation_dialog: confirmation_required: برای تأیید این تغییر باید گذرواژه حساب خود را وارد کنید. title: برای ادامه گذرواژه خود را تأیید کنید + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: اختصاص بسته کاری به من + delete_time_entry: حذف رکورد ثبت زمان + edit_time_entry: ویرایش رکورد ثبت زمان + log_time_from_allocation: ثبت زمان از تخصیص منابع + open_project: بازکردن پروژه + open_work_package: بازکردن بسته کاری + entries_filter: + all: همه رکوردها + allocated: فقط تخصیص‌ها + logged: فقط زمان‌های ثبت‌شده my_account: access_tokens: access_tokens: توکن‌های دسترسی description: توکن‌های Provider توسط OpenProject صادر می‌شوند و به برنامه‌های دیگر اجازه دسترسی به آن را می‌دهند. توکن‌های Client توسط برنامه‌های دیگر صادر می‌شوند و به OpenProject اجازه دسترسی به آن‌ها را می‌دهند. + expired_on: Expired on %{date} headers: action: اقدام expiration: انقضا @@ -4742,7 +5163,6 @@ fa: notice_password_confirmation_failed: گذرواژه واردشده صحیح نیست. notice_principals_found_multiple: "%{number} نتیجه یافت شد. \n برای تمرکز روی اولین نتیجه Tab را فشار دهید." notice_principals_found_single: "یک نتیجه یافت شد. \n برای تمرکز روی آن Tab را فشار دهید." - notice_project_cannot_update_custom_fields: 'نمی‌توانید فیلدهای سفارشی موجود پروژه را به‌روزرسانی کنید. پروژه نامعتبر است: %{errors}' notice_project_not_deleted: پروژه حذف نشد. notice_project_not_found: پروژه یافت نشد. notice_requires_enterprise_token: توکن Enterprise وجود ندارد یا اجازه دسترسی به این صفحه را نمی‌دهد. @@ -4752,9 +5172,6 @@ fa: notice_successful_create: ایجاد با موفقیت انجام شد. notice_successful_delete: حذف با موفقیت انجام شد. notice_successful_update: به‌روزرسانی با موفقیت انجام شد. - notice_successful_update_custom_fields_added_to_project: | - به‌روزرسانی با موفقیت انجام شد. فیلدهای سفارشی نوع‌های فعال‌شده به‌طور خودکار - در فرم بسته کاری فعال می‌شوند. اطلاعات بیشتر. notice_to_many_principals_to_display: |- تعداد نتایج بسیار زیاد است. با تایپ نام عضو جدید (یا گروه) جستجو را محدود کنید. @@ -4856,8 +5273,8 @@ fa: ' confirm_revoke_my_application: - one: آیا واقعاً می‌خواهید این برنامه را حذف کنید؟ این کار یک توکن فعال آن را لغو می‌کند. - other: آیا واقعاً می‌خواهید این برنامه را حذف کنید؟ این کار %{count} توکن فعال آن را لغو می‌کند. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: هیچ برنامه OAuth ثبت نشده است. flows: authorization_code: جریان Authorization Code @@ -4947,8 +5364,6 @@ fa: not_found: یافت نشد. respond_to?: متد الزامی را پیاده‌سازی نمی‌کند. rules: - copy_workflow_from: - workflow_missing: گردش‌کار مستقل ندارد. custom_field: format_not_supported: قالب '%{field_format}' پشتیبانی نمی‌شود. item: @@ -4968,7 +5383,6 @@ fa: or: یا rules: blueprint: Blueprint الگو - copy_workflow_from: نوع برای کپی گردش‌کار depth: عمق enabled: فعال item: مورد @@ -5040,8 +5454,8 @@ fa: label: فهرست مطالب page_nr_footer: صفحه %{page} از %{total} template_artefact: - caption: جزئیات بسته کاری در قالب یک آرتیفکت PMflex Render شده است. - label: آرتیفکت PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: همه ویژگی‌های موجود در فرم فعلی با استفاده از الگوی پیش‌فرض. label: ویژگی‌ها و توضیحات @@ -5066,7 +5480,7 @@ fa: permission_change_work_package_status_explanation: اجازه تغییر وضعیت بدون مجوز «ویرایش بسته‌های کاری» permission_comment_news: دیدگاه روی اخبار permission_commit_access: دسترسی خواندن/نوشتن به مخزن (Commit) - permission_copy_projects: کپی پروژه‌ها + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: در پروژه‌های الگو، این مجوز یک کارکرد ثانویه دارد و اجازه ایجاد پروژه‌های جدید براساس الگو را می‌دهد. permission_copy_work_packages: تکثیر بسته‌های کاری permission_create_backup: ایجاد نسخه‌های پشتیبان @@ -5099,6 +5513,7 @@ fa: permission_export_projects: خروجی‌گرفتن از پروژه‌ها permission_export_work_packages: خروجی‌گرفتن از بسته‌های کاری permission_header_for_project_module_work_package_tracking: بسته‌های کاری و نمودارهای گانت + permission_import_work_packages: واردسازی بسته‌های کاری permission_invite_members_by_email: دعوت اعضا از طریق ایمیل permission_invite_members_by_email_explanation: 'به کاربران اجازه می‌دهد اعضای جدید را از طریق ایمیل دعوت کنند. کاربران دعوت‌شده ایمیلی با پیوند تنظیم گذرواژه و فعال‌سازی حساب دریافت می‌کنند. وابسته به مجوز مدیریت اعضا است. @@ -5109,6 +5524,9 @@ fa: permission_manage_dashboards: مدیریت داشبوردها permission_manage_forums: مدیریت انجمن‌ها permission_manage_members: مدیریت اعضا + permission_manage_members_explanation: 'هشدار: کاربرانی که این مجوز را دارند می‌توانند هر نقش پروژه‌ای را به هر عضوی اختصاص دهند، حتی نقش‌هایی با مجوزهایی که خودشان ندارند. این قابلیت شامل تغییر نقش‌های خودشان نیز می‌شود و به آن‌ها امکان می‌دهد سطح دسترسی خود را در پروژه افزایش دهند. + + ' permission_manage_news: مدیریت اخبار permission_manage_own_reminders: ایجاد یادآوری‌های خود permission_manage_own_working_times: مدیریت زمان‌های کاری خود @@ -5137,7 +5555,6 @@ fa: permission_save_bcf_queries: ذخیره Queryهای BCF permission_save_queries: ذخیره نماها permission_search_project: جستجوی پروژه - permission_select_custom_fields: انتخاب فیلدهای سفارشی permission_select_project_custom_fields: انتخاب ویژگی‌های پروژه permission_select_project_modules: انتخاب ماژول‌های پروژه permission_select_project_phases: انتخاب مرحله‌های پروژه @@ -5171,6 +5588,16 @@ fa: permission_work_package_assigned: قابل انتخاب به‌عنوان مسئول انجام/مسئول نهایی permission_work_package_assigned_explanation: بسته‌های کاری می‌توانند در پروژه مربوطه به کاربران و گروه‌هایی تخصیص داده شوند که این نقش را دارند placeholder_users: + criteria: + activate: فعال‌کردن معیارهای فیلتر + activate_caption: 'این امکان را می‌دهد مجموعه‌ای از فیلترها را به این کاربر فرضی اضافه کنید تا کاربران احتمالی منطبق با معیارهای موردنظر مشخص شوند. + + ' + enable: تطبیق کاربران بر اساس معیارها + enable_caption: نوع کاربری را که این کاربر فرضی نمایندگی می‌کند توصیف کنید تا کاربران منطبق با آن پیشنهاد شوند. + matching_users: کاربران منطبق با معیارهای فیلتر + no_matching_users: هیچ کاربری با این معیارها مطابقت ندارد. + show_all_matching_users: نمایش همه %{count} کاربر منطبق delete_tooltip: حذف کاربر جایگزین deletion_info: data_consequences: 'همه کاربردهای کاربر جایگزین (برای مثال مسئول انجام، مسئول نهایی یا سایر مقادیر کاربر) به حسابی با نام «کاربر حذف‌شده» منتقل می‌شوند. از آنجا که داده‌های همه حساب‌های حذف‌شده به این حساب منتقل می‌شوند، دیگر امکان تشخیص داده‌های ایجادشده توسط این کاربر از داده‌های حساب حذف‌شده دیگر وجود نخواهد داشت. @@ -5192,7 +5619,7 @@ fa: name: OmniAuth SAML / ورود یکپارچه portfolio: count: - one: ۱ سبد پروژه + one: "%{count} portfolio" other: "%{count} سبد پروژه" zero: ۰ سبد پروژه filters: @@ -5203,8 +5630,8 @@ fa: label: فیلتر نام سبد پروژه placeholder: جستجوی سبدهای پروژه sub_items_html: - one: "۱ زیرمورد" - other: "%{count} زیرمورد" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: سبدهای پروژه فعال archived: سبدهای پروژه بایگانی‌شده @@ -5218,7 +5645,7 @@ fa: از آن می‌توان برای برجسته‌کردن بسته‌های کاری در جدول استفاده کرد. program: count: - one: ۱ برنامه + one: "%{count} program" other: "%{count} برنامه" zero: ۰ برنامه filters: @@ -5230,7 +5657,7 @@ fa: confirmation_message: بایگانی این پروژه، آن و همه فرزندانش را برای همه کاربران این نمونه غیرقابل دسترس می‌کند. پروژه‌های بایگانی‌شده قابل بازیابی هستند. title: بایگانی پروژه count: - one: ۱ پروژه + one: "%{count} project" other: "%{count} پروژه" zero: ۰ پروژه destroy: @@ -5335,11 +5762,11 @@ fa: no_status_when_submitted: فعال‌سازی درخواست آغاز پروژه ناموفق بود، زیرا نوع بسته کاری %{type} حداقل به یک وضعیت مرتبط نیاز دارد. لطفاً حداقل یک گردش‌کار وضعیت برای این نوع بسته کاری فعال کنید. no_work_package_type: فعال‌سازی درخواست آغاز پروژه ناموفق بود، زیرا حداقل به یک نوع بسته کاری فعال نیاز دارد و این پروژه هیچ نوعی ندارد. لطفاً حداقل یک نوع بسته کاری به این پروژه اضافه کنید. export: - description_attachment_export: آرتیفکت تولیدشده به‌عنوان پیوست PDF در بسته کاری آرتیفکت ذخیره خواهد شد. - description_file_link_export: بسته کاری آرتیفکت یک پیوند فایل به PDF ذخیره‌شده در Storage خارجی خواهد داشت. این قابلیت به یک Storage فایل فعال با پوشه‌های پروژه مدیریت‌شده خودکار نیاز دارد. در حال حاضر فقط Storageهای فایل Nextcloud پشتیبانی می‌شوند. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: انتخاب کنید کدام‌یک از Storageهای خارجی پیکربندی‌شده استفاده شود. external_file_storage: Storage فایل خارجی - label_artifact_export: خروجی آرتیفکت + label_artifact_export: Artifact export label_attachment_export: ذخیره به‌عنوان پیوست فایل بسته کاری label_file_link_export: بارگذاری فایل در Storage خارجی و افزودن پیوند فایل به بسته کاری pdf_file_storage: Storage فایل PDF @@ -5349,6 +5776,12 @@ fa: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: در حال حاضر هیچ فیلد سفارشی در دسترس نیست. forums: no_results_content_text: ایجاد انجمن جدید @@ -5445,15 +5878,15 @@ fa: new_heading: فیلدهایی که در دسترس قرار می‌گیرند nothing_affected: هیچ فیلد یا وضعیتی تحت‌تأثیر قرار نمی‌گیرد. status_count: - one: ۱ بسته کاری - other: "%{count} بسته کاری" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(جدول)" value_count: - one: ۱ بسته کاری دارای مقدار است - other: "%{count} بسته کاری دارای مقدار هستند" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: ۱ بسته کاری از پیکربندی جدید استفاده خواهد کرد - other: "%{count} بسته کاری از پیکربندی جدید استفاده خواهند کرد" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: پروژه اکنون از %{type} استفاده می‌کند. target_label: گونه title: "%{type}: تغییر گونه" @@ -5464,7 +5897,7 @@ fa: variants_not_allowed: این نوع اجازه ایجاد گونه درون پروژه‌ها را نمی‌دهد. versions: no_results_content_text: ایجاد نسخه جدید - no_results_title_text: در حال حاضر هیچ نسخه‌ای برای پروژه وجود ندارد. + no_results_title_text: هیچ نسخه‌ای مطابق معیارهای فیلتر برای این پروژه پیدا نشد. show_work_packages: نمایش بسته‌های کاری work_packages_graph: گراف بسته‌های کاری work_package_priorities: @@ -5472,15 +5905,27 @@ fa: status: button_edit: ویرایش وضعیت wizard: - create_artifact_storage_error: ذخیره آرتیفکت در Storage فایل ناموفق بود - create_artifact_work_package_error: ایجاد بسته کاری آرتیفکت ناموفق بود + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: این پروژه هیچ ویژگی پروژه‌ای فعالی برای جادوگر ندارد. لطفاً دست‌کم یکی را در تنظیمات پروژه فعال کنید. no_help_text: برای این ویژگی متن راهنمایی تعریف نشده است. progress_label: "%{current} از %{total}" sections: بخش‌ها sidebar_content_title: محتوا - success: ویژگی‌های پروژه ذخیره شدند و بسته کاری آرتیفکت با موفقیت ایجاد شد. + success: Project attributes saved and artifact work package created successfully. title: درخواست آغاز پروژه + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: اعمال فیلتر ازپیش‌پیکربندی‌شده configure_view: @@ -5509,8 +5954,8 @@ fa: action_title: واکنش add_reaction: افزودن واکنش and_others: - one: و ۱ نفر دیگر - other: و %{count} نفر دیگر + one: and %{count} other + other: and %{count} others and_user: و %{user} react_with: واکنش با %{reaction} reaction_by: "%{reaction} توسط" @@ -5631,6 +6076,31 @@ fa: warnings: cannot_annotate: این فایل قابل حاشیه‌نویسی نیست. roles: + delete_dialog: + confirm: آیا مطمئن هستید که می‌خواهید این نقش را حذف کنید؟ + entry_projects: + one: "(پروژه: %{projects})" + other: "(پروژه‌ها: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: آیا مطمئن هستید که می‌خواهید نقش «%{name}» را حذف کنید؟ + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: از میان این کاربران، %{count} کاربر دسترسی خود را به پروژه‌هایی که این نقش تنها نقش آن‌ها در آن پروژه‌هاست از دست خواهند داد. آیا مطمئن هستید که می‌خواهید این نقش را حذف کنید؟ + zero: هیچ‌یک از این کاربران دسترسی به هیچ‌یک از پروژه‌های خود را از دست نخواهند داد. آیا مطمئن هستید که می‌خواهید این نقش را حذف کنید؟ + show_memberships: نمایش همه عضویت‌های دارای این نقش + summary: "%{users} در %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: حذف نقش edit: default_for_new_projects_warning: 'این نقش به‌عنوان نقش پیش‌فرض برای کاربران غیرمدیری که پروژه ایجاد می‌کنند پیکربندی شده است. مجوزهای زیر را حذف نکنید؛ در غیر این صورت ایجادکنندگان پروژه نمی‌توانند راه‌اندازی پروژه‌های تازه خود را کامل کنند:' index: @@ -5642,6 +6112,15 @@ fa: permissions: section_check_all_label: تخصیص همه مجوزهای %{module} section_uncheck_all_label: لغو تخصیص همه مجوزهای %{module} + permissions_dialog: + edit_permissions: ویرایش مجوزهای نقش + no_permissions: این نقش هیچ مجوزی اعطا نمی‌کند. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: مشاهده مجوزها + preview_aria_label: مشاهده مجوزهای %{role} + title: مجوزهای «%{name}» report: matrix_caption: ماتریس مجوزهای ماژول %{module} matrix_check_all_label: تخصیص همه مجوزهای %{module} به همه نقش‌ها @@ -5746,7 +6225,7 @@ fa: setting_default_projects_wiki: فعال‌کردن قابلیت ویکی برای پروژه‌های جدید به‌صورت پیش‌فرض setting_diff_max_lines_displayed: حداکثر تعداد خطوط Diff نمایش‌داده‌شده setting_disable_password_login: غیرفعال‌کردن احراز هویت با گذرواژه - setting_display_subprojects_work_packages: نمایش بسته‌های کاری زیرپروژه‌ها در پروژه‌های اصلی به‌طور پیش‌فرض + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: قالب مدت‌زمان setting_duration_format_days_and_hours: روز و ساعت setting_duration_format_hours_only: فقط ساعت @@ -5861,6 +6340,7 @@ fa: setting_start_of_week: هفته شروع می‌شود از setting_sys_api_description: Web Service مدیریت مخزن، یکپارچه‌سازی و مجوزدهی کاربر برای دسترسی به مخازن را فراهم می‌کند. setting_sys_api_enabled: فعال‌سازی Web Service مدیریت مخزن + setting_sys_api_key: کلید API setting_time_format: زمان setting_total_percent_complete_mode: محاسبه مجموع سلسله‌مراتبی ٪ تکمیل setting_total_percent_complete_mode_simple_average: میانگین ساده @@ -5913,7 +6393,7 @@ fa: description_html: 'حالت عملکرد یکپارچه‌سازی اسکنر آنتی‌ویروس را انتخاب کنید.
  • %{disabled_option}: فایل‌های بارگذاری‌شده برای ویروس اسکن نمی‌شوند.
  • %{socket_option}: ClamAV روی همان سرور OpenProject راه‌اندازی شده و Daemon اسکن clamd در پس‌زمینه اجرا می‌شود.
  • %{host_option}: فایل‌ها برای اسکن به یک Host خارجی ارسال می‌شوند.
' - remaining_quarantined_files_html: 'اسکن ویروس غیرفعال شده است. %{file_count} فایل در قرنطینه باقی مانده‌اند. برای بازبینی فایل‌های قرنطینه‌شده این پیوند را ببینید: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'اسکن ویروس با موفقیت فعال شد. %{file_count} فایل قبلاً بارگذاری شده‌اند و هنوز باید اسکن شوند. این فرایند در پس‌زمینه زمان‌بندی شده است. فایل‌ها هنگام اسکن قابل دسترسی می‌مانند. @@ -5924,6 +6404,7 @@ fa: ' title: اسکن ویروس attachments: + attachment_max_size_env_caption: این مقدار از طریق متغیرهای محیطی تنظیم شده و در اینجا قابل تغییر نیست. برای تغییر آن، متغیرهای محیطی را مستقیماً ویرایش کنید. show_work_package_attachments: 'غیرفعال‌کردن این گزینه، فهرست پیوست‌ها را در Tab فایل‌های بسته کاری برای پروژه‌های جدید پنهان می‌کند. فایل‌های پیوست‌شده در توضیحات بسته کاری همچنان در Storage داخلی پیوست‌ها بارگذاری خواهند شد. ' @@ -6015,12 +6496,12 @@ fa: confirmation_message: Wizard درخواست آغاز پروژه دیگر برای پروژه‌های جدید مبتنی بر این الگو در دسترس نخواهد بود. مدیران و مالکان پروژه باید اطلاعات مربوط را در نمای کلی پروژه به‌صورت دستی پیکربندی و تکمیل کنند. heading: این درخواست آغاز پروژه غیرفعال شود؟ title: غیرفعال‌کردن درخواست آغاز پروژه - header_description: 'OpenProject می‌تواند Wizard گام‌به‌گامی ایجاد کند تا مدیران پروژه درخواست آغاز پروژه را تکمیل کنند. می‌توانید تعیین کنید کدام ویژگی‌های پروژه شامل شوند و در نتیجه یک آرتیفکت PDF ایجاد کنید. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: نام آرتیفکت - artifact_name_caption: نامی را برای این آرتیفکت انتخاب کنید که چارچوب مدیریت پروژه شما توصیه می‌کند. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Wizard ایجاد پروژه project_initiation_request: درخواست آغاز پروژه @@ -6040,8 +6521,8 @@ fa: شما یک درخواست آغاز پروژه برای **%{project_name}** ارسال کردید. این درخواست اکنون منتظر بازبینی است. برای دسترسی به بسته کاری درخواست خود، روی پیوند زیر کلیک کنید. confirmation_email_text: متن ایمیل تأیید - description: هنگامی که کاربر درخواست آغاز پروژه را ارسال می‌کند، بسته کاری جدیدی با آرتیفکت درخواست به‌صورت فایل PDF پیوست ایجاد می‌شود. تنظیمات زیر نوع، وضعیت و مسئول انجام این بسته کاری را تعریف می‌کنند. - description_template: "**این بسته کاری پس از تکمیل گردش‌کار %{wizard_name} به‌طور خودکار ایجاد شد.** یک آرتیفکت PDF شامل همه اطلاعات ارسال‌شده تولید و برای مرجع و اهداف Audit به این بسته کاری پیوست شده است. اگر لازم است مراحل آغاز را به‌روزرسانی یا دوباره اجرا کنید، هر زمان می‌توانید از پیوند زیر Wizard را دوباره باز کنید:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: ارسال ایمیل تأیید به کاربری که درخواست آغاز پروژه را ارسال کرده است status_when_submitted: وضعیت هنگام ارسال status_when_submitted_caption: وضعیتی که بسته کاری تولیدشده پس از ارسال درخواست به آن منتقل می‌شود. @@ -6049,7 +6530,7 @@ fa: work_package_comment_caption: مسئول انجام انتخاب‌شده بالا به‌طور خودکار در دیدگاه با @ اشاره خواهد شد. work_package_comment_default: یک درخواست آغاز پروژه برای **%{project_name}** ارسال شده و منتظر بازبینی است. work_package_type: نوع بسته کاری - work_package_type_caption: نوع بسته کاری‌ای که برای ذخیره آرتیفکت تکمیل‌شده استفاده می‌شود. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: بازکردن Wizard ایجاد پروژه project_initiation_request: بازکردن درخواست آغاز پروژه @@ -6069,6 +6550,7 @@ fa: heading: مرحله جدید no_gate: بدون نقطه کنترل non_defined: در حال حاضر هیچ مرحله‌ای تعریف نشده است. + order_changed: ترتیب با موفقیت تغییر کرد. phase_gates: نقاط کنترل مرحله section_header: مرحله‌ها start_gate: نقطه کنترل شروع @@ -6125,7 +6607,7 @@ fa: section_work_week: هفته کاری sharing: count: - one: ۱ کاربر + one: "%{count} user" other: "%{count} کاربر" zero: ۰ کاربر denied: مجوز اشتراک‌گذاری %{entities} را ندارید. @@ -6218,19 +6700,19 @@ fa:
توجه: مقادیر به‌ارث‌رسیده (برای مثال از فرزندان یا روابط) همچنان اعمال می‌شوند. index: + could_not_be_moved: جابه‌جایی وضعیت ممکن نشد. headers: - excluded_from_totals: حذف‌شده از مجموع‌ها is_closed: بسته - is_default: پیش‌فرض is_readonly: فقط‌خواندنی + no_filter_results_title_text: هیچ وضعیتی با فیلتر فعلی مطابقت ندارد. no_results_content_text: افزودن وضعیت جدید no_results_title_text: در حال حاضر هیچ وضعیت بسته کاری وجود ندارد. + status_actions: عملیات وضعیت support: array: sentence_connector: و skip_last_comma: 'false' text_access_token_hint: توکن‌های دسترسی به شما اجازه می‌دهند به برنامه‌های خارجی دسترسی به منابع OpenProject بدهید. - text_accessibility_hint: حالت دسترس‌پذیری برای کاربران نابینا، دارای محدودیت حرکتی یا کم‌بینا طراحی شده است. برای گروه آخر، عناصر دارای Focus به‌طور ویژه برجسته می‌شوند. توجه داشته باشید ماژول بک‌لاگ‌ها در این حالت در دسترس نیست. text_analyze: 'تحلیل بیشتر: %{subject}' text_are_you_sure: مطمئنید؟ text_are_you_sure_continue: مطمئنید می‌خواهید ادامه دهید؟ @@ -6273,12 +6755,6 @@ fa: ' text_custom_field_possible_values_info: برای هر مقدار یک خط - text_custom_logo_instructions: 'لوگو به‌طور خودکار متناسب با Header مقیاس می‌شود. برای بهترین نتیجه، لوگوی سفید روی تصویر شفاف 130×47px بارگذاری کنید. می‌توانید داخل تصویر هر مقدار فاصله دلخواه قرار دهید. - - ' - text_custom_logo_mobile_instructions: 'لوگو به‌طور خودکار متناسب با Header مقیاس می‌شود. برای بهترین نتیجه، لوگوی سفید روی تصویر شفاف 130×33px بارگذاری کنید. می‌توانید داخل تصویر هر مقدار فاصله دلخواه قرار دهید. - - ' text_custom_touch_icon_instructions: 'این Icon هنگام افزودن Bookmark به صفحه اصلی موبایل یا تبلت ظاهر می‌شود. باید فایل PNG مربعی ۱۸۰×۱۸۰ پیکسل باشد. مطمئن شوید پس‌زمینه تصویر شفاف نیست، وگرنه در iOS ظاهر مناسبی نخواهد داشت. ' @@ -6328,6 +6804,7 @@ fa: text_length_between: طول بین %{min} و %{max} نویسه. text_line_separated: چند مقدار مجاز است (برای هر مقدار یک خط). text_load_default_configuration: بارگذاری پیکربندی پیش‌فرض + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: توکن دسترسی قابل پیکربندی وجود ندارد. text_no_configuration_data: |- نقش‌ها، نوع‌ها، وضعیت‌های بسته کاری و گردش‌کار هنوز پیکربندی نشده‌اند. @@ -6433,6 +6910,68 @@ fa: tree_view: label_empty_sub_tree: موردی وجود ندارد types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: مقایسه گونه‌ها + blankslate: + description: یک گونه دوم به این نوع اضافه کنید تا تفاوت‌های آن‌ها را ببینید. + title: هنوز چیزی برای مقایسه وجود ندارد + description: گونه‌های این نوع را با نوع والد مقایسه کنید. + labels: + duplicate: احتمالاً تکراری + duplicate_of: دقیقاً مانند %{names} پیکربندی شده است + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: نوع والد + same_as_type: همانند نوع والد + rows: + form: + fields: فیلدها + groups: بخش‌ها + required: از میان آن‌ها الزامی + same_as_base: همانند نوع والد + scope: + availability: در دسترس برای + enabled_in_new_projects: فعال در پروژه‌های جدید + projects: پروژه‌ها + workflows: + roles: نقش‌های درگیر + same_as_base: همانند نوع والد + statuses: وضعیت‌ها + transitions: انتقال‌ها + sections: + configuration: نمای کلی پیکربندی + form: فرم + scope: دامنه + workflows: گردش‌های کاری + title: مقایسه گونه‌ها + title_for_type: مقایسه گونه‌های %{name} + values: + global: همه پروژه‌ها + inheriting_from: ارث‌بری از + project_specific: ویژه پروژه ([%{project}](project_url)) + same_as_base: یکسان با نوع والد creation_wizard: add_variant: افزودن یک گونه به %{name} create_type: ایجاد نوع @@ -6442,14 +6981,40 @@ fa: finish: پایان placeholder_description: این مرحله به‌زودی در دسترس خواهد بود. progress_label: مرحله %{number} از %{total} + start: + next_heading: What happens next? + submit: شروع + type: + heading: ایجاد نوع جدید + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: ایجاد گونه جدید + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: پیش‌فرض‌ها details: جزئیات form_configuration: فرم - pdf: تولید PDF + pdf: Generate PDF project_attributes: ویژگی‌های پروژه projects: پروژه‌ها - workflows: گردش‌کارها + start: شروع + workflows: گردش کار success: با موفقیت ایجاد شد. edit: breadcrumb_variant: 'گونه: %{name}' @@ -6458,8 +7023,10 @@ fa: caption: با استفاده از ویژگی‌های ارجاعی و متن، الگویی تعریف کنید تا عنوان بسته‌های کاری به‌طور خودکار تولید شود. کاربران نمی‌توانند عنوان را به‌صورت دستی ویرایش کنند. label: عنوان‌های تولیدشده خودکار description: - caption: متنی را اضافه کنید که به فیلد توضیحات همه بسته‌های کاری جدید با این نوع افزوده شود. - label: متن توضیحات پیش‌فرض + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: کاربران می‌توانند عنوان بسته کاری را بدون محدودیت به‌صورت دستی وارد و ویرایش کنند. label: عنوان‌های قابل ویرایش دستی @@ -6488,21 +7055,21 @@ fa: file_link: caption: PDF تولیدشده در Storage مدیریت‌شده خودکار Nextcloud مربوط به پروژه بارگذاری و از بسته کاری به آن پیوند داده می‌شود. بسته‌های کاری پروژه‌های بدون چنین Storageای نادیده گرفته می‌شوند. label: بارگذاری فایل در Storage خارجی و افزودن پیوند فایل به بسته کاری - intro: هر بار وضعیت یک بسته کاری از این نوع تغییر کرد، به‌طور خودکار یک آرتیفکت PDF تولید کنید. - invalid_mode: حالت خروجی آرتیفکت نامعتبر است. - label: خروجی خودکار آرتیفکت + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: هیچ PDFای به‌طور خودکار تولید نمی‌شود. label: خاموش - section_title: خروجی خودکار آرتیفکت + section_title: Automatic artifact export unavailable: در دسترس نیست؛ Storage مدیریت‌شده خودکار Nextcloud پیکربندی نشده است - intro: از میان الگوهای موجود، مواردی را که می‌خواهید برای این نوع فعال شوند انتخاب کنید. الگو طراحی و ویژگی‌های قابل مشاهده در PDF خروجی بسته کاری این نوع را تعیین می‌کند. اولین الگوی فهرست به‌طور پیش‌فرض انتخاب می‌شود. pdf_export_templates: actions: label_disable_all: غیرفعال‌کردن همه label_enable_all: فعال‌کردن همه label_toggle_template: تغییر %{template} label: الگوهای خروجی PDF + order_changed: ترتیب با موفقیت تغییر کرد. tab: تولید PDF templates: readonly_error: تا زمانی که به یک نوع منبع پیوند دارد، قابل تغییر نیست. @@ -6519,6 +7086,8 @@ fa: confirm_delete_group: مطمئنید می‌خواهید این بخش را حذف کنید؟ این اقدام به‌طور خودکار قابل بازگشت نیست. confirm_reset: آیا مطمئن هستید که می‌خواهید فرم را بازنشانی کنید؟ custom_field: فیلد سفارشی + defaults_not_generated: + already_configured: این فرم از قبل دارای گروه‌ها یا ویژگی‌هایی است. delete_group: حذف بخش drag_to_activate: برای فعال‌کردن، فیلدها را از اینجا Drag کنید drag_to_reorder: برای تغییر ترتیب Drag کنید @@ -6540,6 +7109,14 @@ fa: query_group_label: جدول بسته‌های کاری مرتبط remove_attribute: حذف از بخش rename_group: تغییر نام بخش + required: + already_required_globally: این فیلد سفارشی برای همه نوع‌ها الزامی است. + for_variant: در این نوع الزامی است + globally: الزامی + globally_hint: این مورد را در فیلد سفارشی تغییر دهید + mark: الزامی‌کردن در این نوع + not_a_custom_field: فقط یک فیلد سفارشی را می‌توان برای یک نوع خاص الزامی کرد. + unmark: در این نوع الزامی نباشد reset_description: 'این کار ویژگی‌ها را به گروه پیش‌فرضشان برمی‌گرداند و همه فیلدهای سفارشی را غیرفعال می‌کند. ' @@ -6549,12 +7126,14 @@ fa: tab: فرم untitled_group: گروه بدون عنوان overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: حالت پیکربندی - dependents: انواع و گونه‌های وابسته mode: always_manual: همیشه دستی - inheriting_from_html: ارث‌بری از %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: پیکربندی دستی + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: تنظیمات tab: نمای کلی project_attributes: @@ -6568,12 +7147,12 @@ fa: manual: description: پس از اینکه [ویژگی‌های پروژه را ایجاد کنید](administration_url)، آن‌ها در اینجا نمایش داده می‌شوند و می‌توان آن‌ها را به یک نوع افزود. title: هیچ ویژگی پروژه‌ای در دسترس نیست - description: ویژگی‌های پروژه‌ای را که می‌خواهید برای این نوع بسته کاری فعال شوند انتخاب کنید. ویژگی‌های فعال پروژه در Tab جداگانه‌ای در بسته‌های کاری این نوع نمایش داده می‌شوند. کاربران دارای مجوزهای لازم می‌توانند آن‌ها را مشاهده و ویرایش کنند. disabled: غیرفعال exclusions: attribute_label: به‌ارث‌بردن %{attribute} filter: جستجو بر اساس بخش یا نام tab: ویژگی‌های پروژه + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: نوع %{type} از %{project} حذف شود؟ @@ -6586,10 +7165,12 @@ fa: empty_state: description: یک پروژه اضافه کنید تا از این پیکربندی در آن استفاده شود. no_results: پروژه منطبقی وجود ندارد. + title: Not used in any project yet enable_all: فعال‌کردن برای همه پروژه‌ها select_projects: انتخاب پروژه‌ها select_projects_description: پروژه‌هایی را که می‌خواهید از این نوع استفاده کنند انتخاب کنید. tab: پروژه‌ها + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6604,43 +7185,17 @@ fa: title: کپی پیکربندی invalid_source: پیکربندی از نوع انتخاب‌شده قابل کپی نیست. لطفاً نوع منبع دیگری انتخاب کنید. success: پیکربندی کپی شد. - dependents: - blank: - description: هیچ نوع یا گونه دیگری این پیکربندی را به ارث نمی‌برد - title: هیچ نوع وابسته‌ای وجود ندارد - description: - one: پیکربندی زیر توسط ۱ نوع یا گونه دیگر به ارث برده می‌شود. هر تغییری که اینجا ایجاد کنید، روی مورد وابسته نیز اثر می‌گذارد. - other: پیکربندی زیر توسط %{count} نوع یا گونه دیگر به ارث برده می‌شود. هر تغییری که اینجا ایجاد کنید، روی موارد وابسته نیز اثر می‌گذارد. - dialog: - description: این انواع و گونه‌ها پیکربندی این بخش را به ارث می‌برند. تغییری که اینجا ایجاد کنید روی همه آن‌ها اعمال می‌شود. - direct_heading: وابسته‌های مستقیم - indirect_heading: وابسته‌ها از طریق انواع دیگر - title: انواع وابسته - variant_of_html: گونه‌ای از %{type_name} - variant_of_via_html: گونه‌ای از %{type_name}، با ارث‌بری از طریق %{source_name} - via_html: ارث‌بری از طریق %{source_name} - title: - one: ۱ نوع وابسته - other: "%{count} نوع وابسته" - view: مشاهده انواع وابسته exclusions: not_inherited: این پیکربندی ارث‌بری نمی‌شود، بنابراین چیزی برای مستثناکردن وجود ندارد. در عوض پیکربندی را مستقیماً ویرایش کنید. unknown_aspect: بخش پیکربندی ناشناخته «%{aspect}». inherited: - change_source: تغییر نوع منبع configure_manually: پیکربندی دستی confirm_dialog: - change_source: - description_html: با تغییر نوع منبع به %{source_name}، تنظیمات فعلی بازنویسی می‌شوند و ممکن است اطلاعات موجود در بسته‌های کاری این نوع تحت‌تأثیر قرار گیرد. - heading: نوع منبع تغییر کند؟ - title: تغییر نوع منبع check_box: می‌دانم که این کار تنظیمات فعلی را بازنویسی می‌کند from_manual: description: همه تنظیمات انتخاب‌شده فعلی بازنویسی می‌شوند و ممکن است اطلاعات موجود در بسته‌های کاری این نوع تحت‌تأثیر قرار گیرد. heading: حالت پیکربندی تغییر کند؟ title: تغییر حالت پیکربندی - description: این پیکربندی از نوع منبع [%{source_name}](source_url)%{source_suffix} به ارث برده می‌شود. - description_unlinked: این پیکربندی از نوع منبع %{source_name}%{source_suffix} به ارث برده می‌شود. dialog: description: این پیکربندی را از یک نوع منبع به ارث ببرید. هر پیکربندی جدیدی که به منبع اضافه شود، در اینجا نیز اعمال می‌شود. source_label: نوع منبع @@ -6648,6 +7203,9 @@ fa: submit: تغییر title: ارث‌بری از نوع دیگر invalid_source: پیکربندی نمی‌تواند از نوع انتخاب‌شده به ارث برده شود. لطفاً نوع منبع دیگری را انتخاب کنید. + mode_description: این گونه از همان تنظیمات نوع ([%{source_name}](source_url)) استفاده خواهد کرد. هر تغییری در آنجا به‌طور خودکار در اینجا نیز اعمال می‌شود. + mode_description_unlinked: این گونه از همان تنظیمات نوع استفاده خواهد کرد. هر تغییری در آنجا به‌طور خودکار در اینجا نیز اعمال می‌شود. + mode_label: استفاده از همان تنظیمات نوع success: حالت پیکربندی تغییر کرد. title: پیکربندی موروثی manual: @@ -6656,13 +7214,14 @@ fa: description: همه تنظیمات انتخاب‌شده فعلی بازنویسی می‌شوند و ممکن است اطلاعات موجود در بسته‌های کاری این نوع تحت‌تأثیر قرار گیرد. heading: حالت پیکربندی تغییر کند؟ title: تغییر حالت پیکربندی - copy_from_type: کپی از نوع دیگر description: هیچ تنظیمی به ارث برده نمی‌شود. همچنان می‌توانید یک‌بار تنظیمات را از نوع دیگری کپی کنید. dialog: submit: تغییر title: پیکربندی دستی - inherit_from_type: ارث‌بری از نوع دیگر + inherit_from_type: ارث‌بری از والد invalid_mode: حالت انتخاب‌شده برای این پیکربندی در دسترس نیست. لطفاً حالت دیگری را انتخاب کنید. + mode_description: این صفحه را به‌صورت دستی پیکربندی کنید. تغییرات نوع والد دیگر بر آن اثر نخواهد گذاشت. + mode_label: پیکربندی دستی این صفحه modes: copy: caption: با یک کپی یک‌باره از تنظیماتی که این پیکربندی اکنون به ارث می‌برد شروع کنید. @@ -6676,12 +7235,16 @@ fa: success: حالت پیکربندی تغییر کرد. title: پیکربندی دستی parent_suffix: " (والد)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'می‌توانید برای ارائه نسخه‌های متفاوت این نوع به پروژه‌های مختلف، گونه‌ها را ایجاد کنید.
هر گونه می‌تواند پیکربندی الگوی پیش‌فرض، فیلدهای سفارشی، گردش‌کارها و ترجیحات را به ارث ببرد، کپی کند یا پیکربندی اختصاصی خود را داشته باشد. ' title: هیچ گونه‌ای برای این نوع وجود ندارد + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: ایجادشده در %{project} delete: description: پروژه‌هایی که از این گونه استفاده می‌کنند، پیش از حذف آن به گونه‌ای که در زیر انتخاب می‌کنید منتقل خواهند شد. @@ -6690,33 +7253,74 @@ fa: filter_no_results: هیچ گونه‌ای با این فیلتر مطابقت ندارد global_section: description: این گونه‌ها در همه پروژه‌ها در دسترس هستند. - title: گونه‌ها + title: گونه‌های سراسری project_specific_section: description: این گونه‌ها فقط در پروژه‌هایی که در آن‌ها ایجاد شده‌اند در دسترس هستند. title: گونه‌های ویژه پروژه workflow: - tab: گردش‌کارها + tab: گردش کار index: add_variant: افزودن یک گونه به %{name} add_variant_action: افزودن گونه + convert_to_global: تبدیل به گونه سراسری + convert_to_global_dialog: + confirm: تبدیل + text: 'با این کار، این گونه ویژه پروژه به یک گونه سراسری تبدیل می‌شود که برای همه پروژه‌ها در دسترس است. مدیر پروژه دیگر نمی‌تواند آن را ویرایش کند. + + ' + workflow_text: 'گردش کاری «%{name}» متعلق به این پروژه است و آن نیز سراسری خواهد شد. + + ' + convert_to_global_notice: "%{name} اکنون یک گونه سراسری است." + convert_to_global_rename: + confirm: تبدیل + text: یک گونه سراسری با این نام از قبل وجود دارد. لطفاً نام دیگری انتخاب کنید. + title: نام دیگری برای این گونه انتخاب کنید + created_by_migration: Migrated + delete: + description: این نوع برای همیشه حذف خواهد شد. این اقدام قابل بازگشت نیست. + description_with_variants: این نوع و همه گونه‌های آن برای همیشه حذف خواهند شد. این اقدام قابل بازگشت نیست. + heading: نوع «%{name}» حذف شود؟ + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: حذف نوع description: 'هر بخش پیکربندی در نوع‌ها و گونه‌ها می‌تواند مستقل پیکربندی شود، از نوع دیگری محدود شود یا به‌طور کامل به یک منبع پیوند داده شود. ' duplicate_name: کپی %{name} duplicate_notice: "%{name} تکثیر شد." enabled_in_new_projects: فعال در پروژه‌های جدید + filter: Filter by name + filter_no_results: No types match this filter make_default: فعال در پروژه‌های جدید make_default_notice: "%{name} اکنون در پروژه‌های جدید فعال است." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: ایجاد نوع جدید no_results_title_text: در حال حاضر هیچ نوعی وجود ندارد. project_variants_count: - one: ۱ گونه ویژه پروژه - other: "%{count} گونه ویژه پروژه" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: در پروژه‌های جدید فعال نشود remove_default_notice: "%{name} دیگر در پروژه‌های جدید فعال نیست." type_label: نوع variant_label: گونه + migration: + variant_name: "%{type} بدون %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: نقطه عطف + patterns: + formats: + hierarchy_default: پیش‌فرض (برچسب و کوتاه) + hierarchy_label: فقط برچسب + hierarchy_short: فقط کوتاه + weighted_item_list_default: پیش‌فرض (برچسب و وزن) + weighted_item_list_weight: فقط وزن unsupported_browser: close_warning: این هشدار را نادیده بگیرید. message: ممکن است در این صفحه با خطا و تجربه کاربری ضعیف‌تر روبه‌رو شوید. @@ -6735,8 +7339,8 @@ fa: authorization_rejected: اجازه ورود ندارید. blocked: موقتاً قفل‌شده blocked_num_failed_logins: - one: موقتاً قفل‌شده (یک تلاش ناموفق ورود) - other: موقتاً قفل‌شده (%{count} تلاش ناموفق ورود) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: شما در حال تغییر وضعیت '%{name}' هستید. آیا می خواهید ادامه دهید؟ deleted: کاربر حذف‌شده department_ldap_managed_caption: این واحد سازمانی توسط همگام‌سازی LDAP مدیریت می‌شود و از اینجا قابل تغییر نیست. @@ -6836,7 +7440,7 @@ fa: deletion_warning: مطمئنید می‌خواهید این Session را لغو کنید؟ در این دستگاه از سیستم خارج خواهید شد. device: دستگاه / سیستم‌عامل expires: انقضا - instructions: از طریق دستگاه‌های زیر وارد حساب خود هستید. Sessionهایی را که نمی‌شناسید یا مربوط به دستگاه‌های تحت کنترل شما نیستند لغو کنید. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: آخرین اتصال may_not_delete_current: نمی‌توانید Session فعلی خود را حذف کنید. session_name: "%{browser_name} %{browser_version} روی %{os_name}" @@ -6896,13 +7500,19 @@ fa: start_date: تاریخ شروع work_days: روزهای کاری work_days_count: - one: ۱ روز کاری - other: "%{count} روز کاری" + one: "%{count} working day" + other: "%{count} working days" work_hours: ساعات کاری version_status_closed: بسته version_status_locked: قفل‌شده version_status_open: باز versions: + filter_status_labels: + closed: بسته + locked: قفل‌شده + open: باز + index: + filter_label: جستجوی نسخه‌ها overview: no_results_title_text: در حال حاضر هیچ بسته کاری به این نسخه تخصیص نیافته است. work_packages_in_archived_projects: این نسخه با پروژه‌های بایگانی‌شده‌ای به اشتراک گذاشته شده که هنوز بسته کاری به آن تخصیص یافته است. این موارد شمرده می‌شوند، اما در نماهای پیوندشده ظاهر نمی‌شوند. @@ -7072,13 +7682,15 @@ fa: required_description: این بسته کاری را به‌عنوان پیش‌نیاز مورد مرتبط علامت می‌زند requires_description: بسته کاری مرتبط را به‌عنوان پیش‌نیاز این مورد علامت می‌زند work_packages: + assign_to_me: + success: بسته کاری %{work_package} اکنون به شما اختصاص داده شده است. bulk: copy_failed: بسته‌های کاری کپی نشدند. could_not_be_deleted: 'بسته‌های کاری زیر حذف نشدند:' could_not_be_saved: 'بسته‌های کاری زیر ذخیره نشدند:' deletion_successful: - one: ۱ بسته کاری با موفقیت حذف شد. - other: "%{count} بسته کاری با موفقیت حذف شدند." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: فرزندِ مورد انتخاب‌شده move_failed: بسته‌های کاری منتقل نشدند. none_could_be_saved: هیچ‌یک از %{total} بسته کاری قابل به‌روزرسانی نبودند. @@ -7102,18 +7714,18 @@ fa: description_with_visible_descendants: مطمئنید می‌خواهید بسته‌های کاری انتخاب‌شده و همه فرزندان قابل مشاهده را حذف کنید؟ heading: این %{count} بسته کاری برای همیشه حذف شوند؟ hidden_descendants_only_warning: - one: یک فرزند وجود دارد که نمی‌توانید ببینید. حذف نخواهد شد، اما رابطه آن برداشته می‌شود. - other: "%{count} فرزند وجود دارد که نمی‌توانید ببینید. حذف نخواهند شد، اما همه روابط سلسله‌مراتبی آن‌ها برداشته می‌شود." + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: همه فرزندان قابل مشاهده حذف خواهند شد. با این حال یک فرزند وجود دارد که نمی‌توانید ببینید؛ حذف نخواهد شد، اما رابطه آن برداشته می‌شود. - other: همه فرزندان قابل مشاهده حذف خواهند شد. با این حال %{count} فرزند وجود دارد که نمی‌توانید ببینید؛ حذف نخواهند شد، اما روابط سلسله‌مراتبی آن‌ها برداشته می‌شود. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: حذف %{count} بسته کاری undeletable_descendants_warning: - one: به‌دلیل نداشتن مجوز لازم نمی‌توانید یک فرزند را حذف کنید. آن مورد حفظ می‌شود اما رابطه سلسله‌مراتبی برداشته خواهد شد. - other: به‌دلیل نداشتن مجوز لازم نمی‌توانید %{count} فرزند را حذف کنید. این موارد حفظ می‌شوند اما روابط سلسله‌مراتبی آن‌ها برداشته خواهد شد. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: به‌دلیل نداشتن مجوز لازم در %{projects} نمی‌توانید یک فرزند را حذف کنید. آن مورد حفظ می‌شود اما رابطه سلسله‌مراتبی برداشته خواهد شد. - other: به‌دلیل نداشتن مجوز لازم در %{projects} نمی‌توانید %{count} فرزند را حذف کنید. این موارد حفظ می‌شوند اما روابط سلسله‌مراتبی آن‌ها برداشته خواهد شد. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7170,18 +7782,154 @@ fa: description: مطمئنید می‌خواهید «%{name}» را حذف کنید؟ heading: این بسته کاری برای همیشه حذف شود؟ hidden_descendants_only_warning: - one: این بسته کاری یک فرزند دارد که نمی‌توانید ببینید. حذف نخواهد شد اما رابطه سلسله‌مراتبی برداشته می‌شود. - other: این بسته کاری %{count} فرزند دارد که نمی‌توانید ببینید. حذف نخواهند شد اما روابط سلسله‌مراتبی برداشته می‌شود. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: همه فرزندان قابل مشاهده حذف خواهند شد. با این حال این بسته کاری یک فرزند دارد که نمی‌توانید ببینید؛ حذف نخواهد شد اما رابطه سلسله‌مراتبی برداشته می‌شود. - other: همه فرزندان قابل مشاهده حذف خواهند شد. با این حال این بسته کاری %{count} فرزند دارد که نمی‌توانید ببینید؛ حذف نخواهند شد اما روابط سلسله‌مراتبی برداشته می‌شود. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: حذف بسته کاری undeletable_descendants_warning: - one: به‌دلیل نداشتن مجوز لازم نمی‌توانید یک فرزند را حذف کنید. آن مورد حفظ می‌شود اما رابطه سلسله‌مراتبی برداشته خواهد شد. - other: به‌دلیل نداشتن مجوز لازم نمی‌توانید %{count} فرزند را حذف کنید. این موارد حفظ می‌شوند اما روابط سلسله‌مراتبی آن‌ها برداشته خواهد شد. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: به‌دلیل نداشتن مجوز لازم در %{projects} نمی‌توانید یک فرزند را حذف کنید. آن مورد حفظ می‌شود اما رابطه سلسله‌مراتبی برداشته خواهد شد. - other: به‌دلیل نداشتن مجوز لازم در %{projects} نمی‌توانید %{count} فرزند را حذف کنید. این موارد حفظ می‌شوند اما روابط سلسله‌مراتبی آن‌ها برداشته خواهد شد. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: بررسی فایل + checking_file: در حال بررسی %{filename} + clear: پاک‌کردن + csv: + file: + empty: این فایل خالی است. + expired: این فایل دیگر در دسترس نیست. دوباره آن را بارگذاری کنید. + expired_named: فایل %{filename} دیگر در دسترس نیست. فایل بررسی‌شده فقط چند ساعت نگه داشته می‌شود؛ بنابراین باید این فایل را دوباره بارگذاری کنید. پیش از ایجاد هر مورد، فایل دوباره بررسی خواهد شد. + invalid_encoding: خط %{line} حاوی بایت‌هایی است که با UTF-8 یا UTF-16 معتبر نیستند. فایل را دوباره با قالب CSV (UTF-8/UTF-16) ذخیره و بارگذاری کنید. + malformed: این فایل به‌عنوان CSV قابل خواندن نیست. در خط %{line} علامت نقل‌قولی باز شده که بسته نشده است. + missing: یک فایل CSV برای بارگذاری انتخاب کنید. + no_rows: این فایل سرستون دارد، اما هیچ سطر داده‌ای زیر آن نیست. + too_large: حجم این فایل %{size} است، در حالی که بیشترین حجم مجاز در این نمونه %{limit} است. سطرها را بین چند فایل تقسیم کنید یا از مدیر سامانه بخواهید محدودیت را افزایش دهد. + too_large_before_upload: حجم این فایل از سقف مجاز %{limit} در این نمونه بیشتر است. سطرها را بین چند فایل تقسیم کنید یا از مدیر سامانه بخواهید محدودیت را افزایش دهد. + too_many_rows: تعداد سطرهای این فایل بیش از حد مجاز برای یک نوبت واردسازی است. حداکثر %{limit} سطر مجاز است. + format: + unknown: این فایل CSV با کدگذاری UTF-8 یا UTF-16 نیست. اگر فایل از صفحه‌گسترده تهیه شده است، آن را دوباره با قالب CSV (UTF-8/UTF-16) ذخیره و بارگذاری کنید. + wrong_encoding: کدگذاری این فایل %{encoding} است، نه UTF-8 یا UTF-16. هنگام ذخیره، قالب CSV با کدگذاری UTF-8/UTF-16 را انتخاب و فایل را دوباره بارگذاری کنید. + header: + ambiguous: و %{other} هر دو به %{attribute} اشاره دارند. فقط یکی را نگه دارید. + duplicate: بیش از یک بار آمده است. فقط یکی را نگه دارید. + status_based: تا زمانی که پیشرفت بر اساس وضعیت محاسبه می‌شود، قابل واردسازی نیست. مدیر سامانه می‌تواند این تنظیم را در «مدیریت ← بسته‌های کاری ← ردیابی پیشرفت» تغییر دهد. + unknown: قابل واردسازی نیست. + unknown_with_suggestion: قابل واردسازی نیست. منظورتان %{suggestion} بود؟ + unnamed: این ستون نام ندارد. برای آن نام بگذارید یا ستون را حذف کنید. + job: + checking: در حال بررسی فایل + importing: در حال واردسازی فایل + row: + created_after_updated: نباید از مقدار فیلد «به‌روزرسانی در» دیرتر باشد. + fractional_percentage: باید درصدی به‌صورت عدد صحیح باشد؛ برای مثال 50. + future_timestamp: نباید زمانی در آینده باشد. + invalid_date: باید تاریخی با قالب YYYY-MM-DD باشد. + invalid_timestamp: باید تاریخ و زمانی با قالب YYYY-MM-DDTHH:MM:SSZ باشد. + not_created: ایجاد نشد و دلیلی نیز گزارش نشده است. + too_many_cells: دارای %{count} خانه است، در حالی که سرستون %{expected} خانه دارد. مقداری که حاوی جداکننده است باید داخل علامت نقل‌قول قرار گیرد. + unknown: وجود ندارد. + unknown_in_project: در این پروژه وجود ندارد. + unknown_user: با هیچ کاربری مطابقت ندارد. از نشانی ایمیلی استفاده کنید که کاربر با آن وارد سامانه می‌شود. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: توضیح دهید صفحه جدید باید چه کاری انجام دهد. + subject: نوشتن مستندات + two: + description: خطا پس از بازنشانی ناموفق گذرواژه رخ می‌دهد. + subject: رفع خطای ورود + view_name: واردسازی CSV در %{datetime} + download_template: دریافت فایل الگو + drop_or_click: فایل CSV را اینجا رها کنید یا برای انتخاب آن کلیک کنید. + dry_run_caption: همه سطرها اعتبارسنجی می‌شوند و مشکلاتشان گزارش می‌شود، اما چیزی ایجاد نخواهد شد. این کار برای فایلی که قبلاً وارد نکرده‌اید توصیه می‌شود. + dry_run_label: ابتدا فایل را بدون واردسازی بررسی کنید + file_label: فایل CSV + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: پیش از شروع + import_file: واردسازی فایل + importing_file: در حال واردسازی %{filename} + intro: چندین بسته کاری را هم‌زمان از یک فایل CSV ایجاد کنید. بسته‌های کاری موجود تغییر نمی‌کنند. + menu_title: واردکننده بسته‌های کاری + report: + announcement: + checked: فایل بررسی شد. گزارش در زیر آمده است. + file_rejected: فایل وارد نشد. گزارش نشان می‌دهد چه مشکلی در سرستون‌های آن وجود دارد. + imported: واردسازی به پایان رسید. گزارش در زیر آمده است. + rows_rejected: هیچ موردی وارد نشد. مشکلات در گزارش فهرست شده‌اند. + checked: + heading: آماده واردسازی + import: واردسازی %{work_packages} + kept: فایل بررسی‌شده چند ساعت نگه داشته می‌شود؛ بنابراین برای واردسازی به بارگذاری دوباره نیازی نیست. + text: هنوز هیچ موردی ایجاد نشده است. خلاصه زیر را بررسی کنید و سپس واردسازی را انجام دهید. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: دریافت گزارش به‌صورت CSV + file_rejected: + heading: سطر سرستون‌ها + line: خط ۱ از %{filename} + nothing: هیچ موردی وارد نشد. فایل را اصلاح و دوباره بارگذاری کنید. + text: سرستون‌های فایل را اصلاح و آن را دوباره بارگذاری کنید. + title: سرستون‌ها قابل خواندن نبودند + headline: + accounts: + label: حساب‌های کاربری + subtitle: مسئول، پاسخ‌گو و نویسنده + dated: + label: سطرهای دارای تاریخ + subtitle: تاریخ شروع یا پایان + types: + label: انواع + subtitle: مورداستفاده در این فایل + work_packages: + label: بسته‌های کاری + subtitle: یک بسته کاری برای هر سطر + imported: + again: واردسازی فایل دیگر + heading: خلاصه واردسازی + link: + one: مشاهده بسته کاری واردشده + other: مشاهده %{count} بسته کاری واردشده + notifications: برای این بسته‌های کاری اعلان ارسال نشد. + text_html: واردشده از %{filename} در تاریخ %{date}، ساعت %{time}. + title: "%{work_packages} ایجاد شد" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} مشکل؛ %{shown} مورد نخست نمایش داده شده است. برای مشاهده همه مشکلات، فهرست را دریافت کنید." + heading: مشکلات + rows_rejected: + text: همه تغییرات بازگردانده شدند. سطرهای مشخص‌شده در زیر را اصلاح و فایل را دوباره بارگذاری کنید. + title: 'هیچ موردی وارد نشد: %{problems} در %{lines}' + table: + attribute: ستون + available: مقادیر مجاز + column: ستون + empty: خالی + header: سرستون + message: مشکل + row: سطر + value: مقدار + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: این اجرا کامل نشد و هیچ موردی ایجاد نشد. فایل را دوباره بارگذاری کنید. + running_note: این عملیات در پس‌زمینه انجام می‌شود. لطفاً صفحه را نبندید. + title: واردسازی بسته‌های کاری move: bulk_current_type_not_available_in_target_project: 'نوع‌های بسته‌های کاری یا فرزندان آن‌ها در پروژه مقصد فعال نیستند. اگر می‌خواهید بدون تغییر باقی بمانند، نوع‌های مفقود را در پروژه مقصد فعال کنید؛ در غیر این صورت یکی از نوع‌های موجود پروژه مقصد را از فهرست انتخاب کنید. @@ -7213,37 +7961,53 @@ fa: version: no_results_title_text: در حال حاضر هیچ نسخه‌ای در دسترس نیست. x_descendants: - one: یک بسته کاری فرزند - other: "%{count} فرزند بسته کاری" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: بسته‌های کاری موجود با این وضعیت‌ها تحت‌تأثیر قرار نمی‌گیرند و در وضعیت فعلی باقی می‌مانند؛ اما دیگر امکان انتقال به این وضعیت‌ها وجود نخواهد داشت. + description: 'وضعیت‌های زیر در گردش کار انتخاب‌شده («%{name}») وجود ندارند:' + description_blank: گردش کار جدید هیچ انتقالی ندارد. همه انتقال‌های وضعیت برای %{type} حذف خواهند شد. + description_empty: گردش کار انتخاب‌شده («%{name}») هیچ انتقالی ندارد. همه انتقال‌های وضعیت برای %{type} حذف خواهند شد. + title: برای %{name} از گردش کار دیگری استفاده شود؟ + select: + caption: این نوع از انتقال‌های وضعیتِ گردش کاری استفاده می‌کند که اینجا انتخاب می‌کنید. + label: گردش کار + placeholder: انتخاب گردش کار… + title: تغییر گردش کاری copies: form: - mode: - from_role: - caption: گردش‌کار فعلی را به یک یا چند نقش در همان نوع بسته کاری کپی کنید. اگر نقش انتخاب‌شده از قبل گردش‌کار داشته باشد، گردش‌کار فعلی جایگزین آن می‌شود. - label: کپی به نقش‌های دیگر - from_type: - caption: گردش‌کار فعلی را به نوع دیگری از بسته کاری کپی کنید. اگر نوع انتخاب‌شده از قبل گردش‌کار داشته باشد، گردش‌کار فعلی جایگزین آن می‌شود. این کار همه نقش‌ها را تحت تأثیر قرار می‌دهد. - label: کپی به نوع دیگر - source_role_id: - label: نقش منبع target_role_ids: label: نقش‌های مقصد - target_variant_ids: - label: انواع مقصد from_roles: create: notice: one: گردش‌کار با موفقیت به نقش «%{role_name}» کپی شد. other: گردش‌کار با موفقیت به %{count} نقش کپی شد. - from_variants: - create: - notice: - one: گردش کار با موفقیت به «%{type_name}» کپی شد. - other: گردش کار با موفقیت به %{count} نوع کپی شد. new: - title: کپی گردش‌کار «%{source_type}» + dialog_title: کپی گردش کاری «%{source}» + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: گردش کاری جدید با کپی انتقال‌های وضعیت آن گردش کاری شروع می‌شود. + label: کپی از + placeholder: یک گردش کاری انتخاب کنید… + description: + caption: توضیح کوتاهی درباره اینکه این گردش کاری کجا و چگونه استفاده خواهد شد اضافه کنید. + label: توضیحات + edit_title: ویرایش گردش کاری matrix_caption: ماتریس گردش‌کار matrix_caption_assignee: ماتریس گردش‌کار برای مسئول انجام matrix_caption_author: ماتریس گردش‌کار برای ایجادکننده @@ -7252,12 +8016,88 @@ fa: matrix_check_uncheck_all_in_row_label_html: تغییر وضعیت انتقال‌ها از %{old_status} به همه وضعیت‌های جدید matrix_checkbox_label: اجازه انتقال از %{old_status} به %{new_status} matrix_uncheck_all_label: عدم اجازه همه انتقال‌ها + name: + caption: نامی انتخاب کنید که بعداً بتوانید این گردش کاری را در بخش‌های دیگر شناسایی کنید. + label: نام گردش کاری + new_title: ایجاد گردش کاری index: + actions: + create: گردش کاری + edit: ویرایش انتقال‌ها + menu: عملیات %{name} + rename: ویرایش نام و توضیحات + blank_slate: + description: یک گردش کاری ایجاد کنید تا انتقال‌های وضعیتی را که یک نوع یا گونه می‌تواند استفاده کند تعریف کنید. + filtered_description: هیچ گردش کاری با فیلترهای فعلی مطابقت ندارد. + filtered_title: هیچ گردش کاری مطابقی وجود ندارد + title: هیچ گردش کاری وجود ندارد + columns: + name: نام گردش کاری + projects: پروژه‌ها + roles: نقش‌ها + types_and_variants: انواع و گونه‌ها + description: همه مجموعه‌های نام‌گذاری‌شده انتقال وضعیت در این نمونه، همراه با انواع و گونه‌هایی که از آن‌ها استفاده می‌کنند. + filters: + name: گردش کاری + name_placeholder: فیلتر بر اساس نام یا توضیحات گردش کاری… + projects_placeholder: فیلتر پروژه‌ها… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: فیلتر بر اساس نام نوع… + types_and_variants_count: "%{types} (شامل %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: گردش کاری + implicit: گردش کاری %{name} page_headers: index_component: description: انتقال وضعیت را برای هر نوع بسته کاری پیکربندی کنید. + selector: + prefix: گردش کار + same_as_type: "(همانند نوع)" + title: انتخاب گردش کار + start: + copy: + caption: با یک گردش کاری موجود شروع کنید، آن را هرطور می‌خواهید تغییر دهید و به‌عنوان یک گردش کاری جدید ذخیره کنید. + label: شروع با کپی یک گردش کاری موجود + missing: گردش کاری موردنظر برای کپی را انتخاب کنید یا به‌جای آن از ابتدا شروع کنید. + label: نقطه شروع + scratch: + caption: با یک گردش کاری خالی شروع کنید و آن را به‌صورت دستی بسازید. + label: شروع از ابتدا + title: New workflow + usage: + dialog: + button: مشاهده انواع وابسته + caption_html: گردش کاری %{name} در انواع و گونه‌های زیر استفاده می‌شود. + title: گردش کاری استفاده‌شده در انواع + variant_of: گونه‌ای از %{type} + variants: گونه‌ها + unused: هنوز هیچ نوع یا گونه‌ای از این گردش کاری استفاده نمی‌کند. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: برای این نوع از یک گردش کاری موجود با مجموعه‌ای از پیش تعریف‌شده از انتقال‌های وضعیت برای مجموعه‌ای از نقش‌ها استفاده کنید. + label: استفاده از گردش کاری موجود + new: + caption: برای این نوع یک گردش کاری جدید را به‌صورت دستی تعریف کنید و مشخص کنید کدام انتقال‌های وضعیت برای کدام نقش‌ها مجاز هستند. + label: پیکربندی گردش کاری جدید working_days: change_button: تغییر روزهای کاری dialog: diff --git a/config/locales/crowdin/fi.seeders.yml b/config/locales/crowdin/fi.seeders.yml index d959b5452ae9..aac426867502 100644 --- a/config/locales/crowdin/fi.seeders.yml +++ b/config/locales/crowdin/fi.seeders.yml @@ -250,70 +250,26 @@ fi: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Tuotteen työjono + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ fi: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml index f185889bd7d9..ace669c71349 100644 --- a/config/locales/crowdin/fi.yml +++ b/config/locales/crowdin/fi.yml @@ -40,7 +40,9 @@ fi: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Poista tili delete_confirmation: Oletko varma, että haluat poistaa tilin? deletion_info: @@ -65,7 +67,9 @@ fi: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: tai kirjaudu sisään jo olemassa olevalle tilille + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Kirjaudu sisään aktivoidaksesi tilisi. @@ -118,6 +122,8 @@ fi: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ fi: repository: Tietovarasto comment: commented: Kommentoitu - custom_action: - actions: Toiminnot custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ fi: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ fi: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: sivu row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ fi: title: Title member: blocked: Blocked + principal_type: Member type roles: Roolit notification: read_ian: Read in-app @@ -235,6 +265,7 @@ fi: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ fi: ongoing: Ongoing spent_on: Päivämäärä type: Tyyppi + token/base: + expires_on: Expiration date token/ical: calendar: Kalenteri ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ fi: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Järjestelmänvalvoja auth_source: Authentication source + avatar_type: Avatar type consented_at: Hyväksytty current_password: Nykyinen salasana department: Department @@ -410,7 +441,7 @@ fi: last_name: Sukunimi ldap_auth_source: LDAP connection new_password: Uusi salasana - password_confirmation: Vahvistus + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ fi: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ fi: header_look_and_feel: Look and feel impaired: Helppokäyttötoimintojen tila increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Aikavyöhyke warn_on_leaving_unsaved: Varoita tallentamattomista muutoksista workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ fi: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Ylätaso @@ -519,6 +565,10 @@ fi: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: täytyy olla hyväksytty. @@ -590,6 +640,8 @@ fi: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: on oltava pienempi tai yhtä suuri kuin suurin sallittu pituus. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ fi: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: on väärän pituinen (täytyy olla täsmälleen %{count} merkkiä). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ fi: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ fi: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ fi: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'edelleen käytössä tehtävissä: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ fi: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ fi: numeric: numeerinen (esim. 1) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: on käytetty ennenkin. Valitse sellainen, joka poikkeaa edellisestä. - other: on käytetty ennenkin. Valitse sellainen, joka poikkeaa %{count} edellisestä. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: erikoismerkki (esim. %) uppercase: isoja kirjaimia (esim. A) password_confirmation: @@ -976,6 +1032,8 @@ fi: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: ei voi olla toisessa projektissa. cannot_be_milestone: ei voi olla välitavoite. @@ -1003,6 +1061,8 @@ fi: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: ei kelpaa, koska siirtymää ei ole määritelty vanhan ja uuden tilan välille nykyisen käyttäjän rooleissa. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Tehtävä #%{id} ei ole kelvollinen kohde aikakirjauksille.' @@ -1011,8 +1071,8 @@ fi: template: body: 'Tarkista seuraavat kentät:' header: - one: 1 virhe esti tämän %{model} mallinteen tallentamisen - other: "%{count} virhettä esti tämän %{model} mallinteen tallentamisen" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ fi: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ fi: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ fi: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ fi: issue_priority: one: Prioriteetti other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ fi: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ fi: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ fi: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ fi: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ fi: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ fi: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ fi: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ fi: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ fi: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ fi: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ fi: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ fi: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ fi: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ fi: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ fi: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: näkyvissä tällä hetkellä is_inactive: ei näkyvissä show_until: Näytä tähän päivään asti @@ -2075,7 +2256,7 @@ fi: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ fi: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Yhteydessä edellyttäen ei ole linkki resurssi. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: Resurssi koska ei ole tuettu yhteydessä. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ fi: groups: Ryhmät hexcode: Hex koodi id: ID + inexistent: Inexistent is_default: Oletusarvo is_for_all: Kaikille projekteille issue: Työpaketti @@ -2253,6 +2431,7 @@ fi: updated_at: Päivitetty updated_on: Päivitetty uploader: Uploader + url: URL user: Käyttäjä username: Käyttäjätunnus value: Arvo @@ -2267,6 +2446,29 @@ fi: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ fi: button_set_reminder: Set reminder button_show: Näytä button_sort: Järjestä + button_stop_timer: Stop timer button_submit: Lähetä button_test: Testaa button_unarchive: Palauta @@ -2461,9 +2664,9 @@ fi: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ fi: plural: Mukautetut toiminnot custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Kaikille projekteille hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ fi: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ fi: is_enabled_globally: On käytössä kaikkialla multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Luo uusi mukautettu kenttä - no_results_title_text: Tällä hetkellä ei ole mukautettuja kenttiä. text_add_new_custom_field: 'Jotta voit lisätä tälle projektille uusia muokattavia kenttiä, tulee sinun ensin luoda ne. ' @@ -2666,56 +2866,56 @@ fi: datetime: distance_in_words: about_x_hours: - one: noin tunti - other: noin %{count} tuntia + one: about %{count} hour + other: about %{count} hours about_x_months: - one: noin kuukausi - other: noin %{count} kuukautta + one: about %{count} month + other: about %{count} months about_x_years: - one: vuosi - other: noin %{count} vuotta + one: about %{count} year + other: about %{count} years almost_x_years: - one: lähes 1 vuosi - other: lähes %{count} vuotta + one: almost %{count} year + other: almost %{count} years half_a_minute: puoli minuuttia less_than_x_minutes: one: alle minuutti other: alle %{count} minuuttia less_than_x_seconds: - one: aiemmin kuin sekunti - other: alle %{count} sekuntia + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: yli vuosi - other: yli %{count} vuotta + one: over %{count} year + other: over %{count} years x_days: - one: päivä - other: "%{count} päivää" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 tunti - other: "%{count} tuntia" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: minuutti - other: "%{count} minuuttia" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: kuukausi - other: "%{count} kuukautta" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: sekunti - other: "%{count} sekuntia" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ fi: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3204,9 +3404,150 @@ fi: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: ISO-8859-15 general_csv_separator: "," @@ -3231,6 +3572,8 @@ fi: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3256,6 +3599,10 @@ fi: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ fi: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3278,7 +3625,7 @@ fi: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Julkaise tämä näkymä ja salli muiden käyttäjien nähdä se. Käyttäjät joilla on 'Muokkaa julkisia näkymiä' -oikeus voivat muokata tai poistaa julkisia näkymiä. Tämä ei vaikuta tehtävien näkyvyyteen ja riippuen niiden oikeuksista, käyttäjät voivat nähdä eri tehtävänäkymän. homescreen: @@ -3303,6 +3650,31 @@ fi: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Tietoa uusista ominaisuuksista ja tuotepäivityksistä. learn_about: Learn more about all new features @@ -3339,8 +3711,10 @@ fi: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3390,6 +3764,7 @@ fi: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3542,10 +3917,10 @@ fi: label_copy_target: Kohde label_copy_workflow_from: Kopioi työnkulku label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Nykyinen versio label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Nykyinen tila label_current_version: Nykyinen versio label_custom_comment: "%{name} comment" @@ -3569,8 +3944,6 @@ fi: label_custom_field_default_type: Tyhjä tyyppi label_custom_field_new: Uusi räätälöity kenttä label_custom_field_plural: Mukautetut kentät - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Ulkoasu label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3579,11 +3952,12 @@ fi: label_database_version: PostgreSQL version label_date: Päivämäärä label_date_and_time: Päivämäärä ja aika - label_date_format: Päivän muoto + label_date_and_time_formats: Date and time formats label_date_from: Alkaen label_date_from_to: Välillä %{start} - %{end} label_date_to: Päättyen label_dates: Päivämäärät + label_day: Päivä label_day_plural: päivää label_default: Oletus label_defaults: Defaults @@ -3594,6 +3968,7 @@ fi: label_deleted_custom_field: "(poistettu mukautettu kenttä)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3664,6 +4039,7 @@ fi: label_float: Liukuluku label_folder: Kansio label_follows: seuraa + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Uusi keskustelupalsta label_forum_plural: Keskustelupalstat @@ -3682,6 +4058,7 @@ fi: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Ryhmä + label_group_attributes_plural: Group attributes label_group_by: Ryhmittely label_group_named: Ryhmä %{name} label_group_new: Uusi ryhmä @@ -3733,8 +4110,8 @@ fi: label_journal_diff: Kuvauksen vertailu label_jump_to_a_project: Siirry projektiin... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Kieli - label_language_based: Pohjautuen käyttäjän kieleen label_languages: Languages label_last_activity: Viimeinen toiminta label_last_change_on: Viimeisin muutos @@ -3756,6 +4133,7 @@ fi: label_list: Lista label_loading: Lataa... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lukitse käyttäjä label_locked: lukittu label_logged_as: Kirjautuneena @@ -3767,6 +4145,7 @@ fi: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Suurin koko label_me: minä label_member_all_admin: "(All roles due to admin status)" @@ -3785,7 +4164,6 @@ fi: label_menu_item_name: Valinnan nimi label_message: Vesti label_message_last: Viimeisin viesti - label_message_new: Uusi viesti label_message_plural: Viestit label_message_posted: Viesti lisätty label_minute_plural: minuuttia @@ -3797,6 +4175,7 @@ fi: label_module_plural: Moduulit label_modules: Moduulit label_modules_and_plugins: Moduulit ja Laajennukset + label_month: Kuukausi label_months_from: kuukauden päässä label_more: Lisää label_more_information: Lisätietoja @@ -3810,6 +4189,7 @@ fi: label_my_avatar: My avatar label_my_queries: Omat hakuni label_my_security: Security + label_my_time: My time label_name: Nimi label_never: Ei koskaan label_new: Uusi @@ -3824,7 +4204,10 @@ fi: label_news_singular: Uutiset label_news_view_all: Näytä kaikki uutiset label_next: Seuraava + label_next_day: Next day + label_next_month: Next month label_next_week: Seuraava viikko + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Ei muutosta)" label_no_data: Ei tietoja @@ -3832,6 +4215,7 @@ fi: label_no_parent_group: "(No parent group)" label_no_parent_page: Ei yläsivua label_no_start_date: ei aloituspäivää + label_no_time: No time tracked label_nobody: ei kukaan label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3898,7 +4282,10 @@ fi: label_preview: Esikatselu label_preview_not_available: Preview not available label_previous: Edellinen + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Edellinen viikko + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " tai kutsu uusia käyttäjiä sähköpostilla" label_principal_search: Lisää olemassa olevia käyttäjiä tai ryhmiä @@ -4017,6 +4404,7 @@ fi: label_sort_lowest: Siirrä alimmaiseksi label_sorted_by: lajitteluperuste %{value} label_spent_time: Käytetty aika + label_stack: Stack label_start_to_end: alusta loppuun label_start_to_start: start to start label_starts_with: starts with @@ -4036,6 +4424,7 @@ fi: label_subtask_plural: Alitehtävät label_summary: Yhteenveto label_system: Järjestelmä + label_system_or_language_default: Use system or language based default label_system_settings: Järjestelmäasetukset label_system_storage: Tallennustila label_table_of_contents: Sisällysluettelo @@ -4050,6 +4439,7 @@ fi: label_time: Aika label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Käytetty aika + label_timer_since: Started at %{time} label_title: Otsikko label_today: tänään label_today_as_date: Select today as date. @@ -4085,7 +4475,9 @@ fi: label_user_search: Etsi käyttäjä label_user_settings: Käyttäjäasetukset label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Muokkaa versiota label_version_new: Uusi versio label_version_plural: Versiot @@ -4098,6 +4490,7 @@ fi: label_videos: Videot label_view_all_revisions: Katso kaikki versiot label_view_diff: Näytä erot + label_view_mode_switcher: Change view label_view_revisions: Näytä versiot label_view_x: 'View: %{x}' label_watched_work_packages: Seuratut tehtävät @@ -4121,6 +4514,8 @@ fi: label_wiki_start: Aloitussivu label_wiki_toc: Sisällysluettelo label_wiki_toc_empty: Sisältötaulukko on tyhjä, koska otsikkoja ei ole. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Työpaketti label_work_package_attachments: Work package attachments @@ -4143,45 +4538,46 @@ fi: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 suljettu + one: "%{count} closed" other: "%{count} suljettua" zero: 0 closed label_x_comments: - one: 1 kommentti + one: "%{count} comment" other: "%{count} kommenttia" zero: ei kommentteja label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 avoin + one: "%{count} open" other: "%{count} avointa" zero: 0 open label_x_projects: - one: 1 projekti + one: "%{count} project" other: "%{count} projektia" zero: ei projekteja label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: eilen label_zen_mode: Zen mode @@ -4236,7 +4632,7 @@ fi: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4293,6 +4689,8 @@ fi: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4349,7 +4747,7 @@ fi: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4528,6 +4926,13 @@ fi: create_button: Uusi dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'API-salasanan resetointi epäonnistui: %{error}' @@ -4541,10 +4946,26 @@ fi: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Toiminto expiration: Vanhentuu @@ -4746,7 +5167,6 @@ fi: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'Et voi päivittää projektin käytettävissä olevia mukautettuja kenttiä. Projekti on virheellinen: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4756,9 +5176,6 @@ fi: notice_successful_create: Luonti onnistui. notice_successful_delete: Poisto onnistui. notice_successful_update: Päivitys onnistui. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- On liian paljon tuloksia. Rajata hakua kirjoittamalla nimi uuden jäsenen (tai ryhmä). @@ -4860,7 +5277,7 @@ fi: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4951,8 +5368,6 @@ fi: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4972,7 +5387,6 @@ fi: or: tai rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5044,8 +5458,8 @@ fi: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5070,7 +5484,7 @@ fi: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Kommentoi uutisia permission_commit_access: Tee pääsyoikeus - permission_copy_projects: Kopioi projekteja + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5103,6 +5517,7 @@ fi: permission_export_projects: Export projects permission_export_work_packages: Vie tehtäviä permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5113,6 +5528,9 @@ fi: permission_manage_dashboards: Manage dashboards permission_manage_forums: Hallinnoi keskustelupalstaa permission_manage_members: Hallinnoi jäseniä + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Hallinnoi uutisia permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5141,7 +5559,6 @@ fi: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Valitse projektin modulit permission_select_project_phases: Select project phases @@ -5175,6 +5592,16 @@ fi: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Toimia paketti voidaan määrittää käyttäjät ja ryhmät hallussaan tämä rooli kunkin projekti placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5196,7 +5623,7 @@ fi: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5207,7 +5634,7 @@ fi: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5222,7 +5649,7 @@ fi: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5234,7 +5661,7 @@ fi: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekti + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5339,11 +5766,11 @@ fi: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5353,6 +5780,12 @@ fi: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Tällä hetkellä ei ole mukautettuja kenttiä. forums: no_results_content_text: Luo uusi foorumi @@ -5449,14 +5882,14 @@ fi: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5468,7 +5901,7 @@ fi: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Luo uusi versio - no_results_title_text: Projektille ei ole versioita. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5476,15 +5909,27 @@ fi: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5513,7 +5958,7 @@ fi: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5635,6 +6080,31 @@ fi: warnings: cannot_annotate: Tätä tiedostoa ei voi selityksineen. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5646,6 +6116,15 @@ fi: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5750,7 +6229,7 @@ fi: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Oletuksena näytä aliprojektien tehtävät pääprojektissa + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5865,6 +6344,7 @@ fi: setting_start_of_week: Viikko alkaa setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Salli WS tietovaraston hallintaan + setting_sys_api_key: API key setting_time_format: Aika setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5917,7 +6397,7 @@ fi: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5928,6 +6408,7 @@ fi: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6019,12 +6500,12 @@ fi: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6044,8 +6525,8 @@ fi: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6053,7 +6534,7 @@ fi: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6073,6 +6554,7 @@ fi: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6129,7 +6611,7 @@ fi: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6222,19 +6704,19 @@ fi:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Suljettu - is_default: Oletus is_readonly: Vain luku + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Lisää uusi tila no_results_title_text: Ei tehtävien tiloja. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: epätosi text_access_token_hint: API-salasanojen avulla voit sallia integraatioiden pääsyn OpenProject rajapintoihin. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Oletko varma? text_are_you_sure_continue: Are you sure you want to continue? @@ -6277,12 +6759,6 @@ fi: ' text_custom_field_possible_values_info: Yksi rivi kullekin arvolle - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6332,6 +6808,7 @@ fi: text_length_between: Pituus välillä %{min} ja %{max} merkkiä. text_line_separated: Useat arvot sallittu (yksi rivi kullekin). text_load_default_configuration: Lataa oletusasetukset + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Ei ole olemassa pääsyavaimia joita voisi konfiguroida. text_no_configuration_data: |- Rooleja, tapahtumien tiloja ja työnkulkua ei vielä olla määritelty. @@ -6435,6 +6912,68 @@ fi: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6444,14 +6983,40 @@ fi: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6460,8 +7025,10 @@ fi: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6490,21 +7057,21 @@ fi: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6521,6 +7088,8 @@ fi: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6542,6 +7111,14 @@ fi: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6551,12 +7128,14 @@ fi: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6570,12 +7149,12 @@ fi: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6588,10 +7167,12 @@ fi: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projektit + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6606,43 +7187,17 @@ fi: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6650,6 +7205,9 @@ fi: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6658,13 +7216,14 @@ fi: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6678,12 +7237,16 @@ fi: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6692,33 +7255,74 @@ fi: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Lisää uusi tyyppi no_results_title_text: Ei tyyppejä tällä hetkellä. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ohita tämä varoitus. message: You may run into errors and degraded experience on this page. @@ -6737,7 +7341,7 @@ fi: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Poista käyttäjä @@ -6838,7 +7442,7 @@ fi: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Vanhentuu - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6898,13 +7502,19 @@ fi: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: suljettu version_status_locked: lukittu version_status_open: avoin versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Tähän versioon ei ole liitetty yhtään tehtävää. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7074,12 +7684,14 @@ fi: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7104,17 +7716,17 @@ fi: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7172,18 +7784,154 @@ fi: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7215,37 +7963,53 @@ fi: version: no_results_title_text: Tällä hetkellä versioita ei ole saatavilla. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7254,12 +8018,88 @@ fi: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/fil.seeders.yml b/config/locales/crowdin/fil.seeders.yml index fff6681054ba..df8c2a13cb2d 100644 --- a/config/locales/crowdin/fil.seeders.yml +++ b/config/locales/crowdin/fil.seeders.yml @@ -250,70 +250,26 @@ fil: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ fil: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml index 10b7f2e074a1..198d9ae663b7 100644 --- a/config/locales/crowdin/fil.yml +++ b/config/locales/crowdin/fil.yml @@ -40,7 +40,9 @@ fil: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Alisin ang akawnt delete_confirmation: Ikaw ba ay sigurad na gusto mong alisin ang akawnt na ito? deletion_info: @@ -65,7 +67,9 @@ fil: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: o kaya ay mag-sig in sa pamamagitan ng iyong umiiral na akawnt + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Mangyaring mag-login upang i-aktibo ang iyong akwant. @@ -118,6 +122,8 @@ fil: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ fil: repository: Repositoryo comment: commented: Ang komento - custom_action: - actions: Mga aksyon custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ fil: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ fil: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ fil: title: Title member: blocked: Blocked + principal_type: Member type roles: Ang mga tungkulin notification: read_ian: Read in-app @@ -235,6 +265,7 @@ fil: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ fil: ongoing: Ongoing spent_on: Petsa type: Uri + token/base: + expires_on: Expiration date token/ical: calendar: Kalendaryo ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ fil: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Tagapangasiwa auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Kasulukuyang password department: Department @@ -410,7 +441,7 @@ fil: last_name: Huling pangalan ldap_auth_source: LDAP connection new_password: Bagong password - password_confirmation: Kompirmasyon + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ fil: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ fil: header_look_and_feel: Look and feel impaired: Aksezibilidad mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Balaan mo ako kung aalais ng worj package na walang pag-save ng pagbabago workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ fil: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Magulang @@ -519,6 +565,10 @@ fil: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: kailangang tanggapin. @@ -590,6 +640,8 @@ fil: regex_invalid: hindi pwedeng mapatunayan sa nauugnay na mga regular na ekspresyon. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: dapat ay mas maliit kaysa o katumbas sa pinakamataas na haba. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ fil: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: ay ang maling haba (dapat ay %{count} ang mga karakter). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ fil: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ fil: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ fil: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'ginagamit pa sa mga work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ fil: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ fil: numeric: numeric (e.g.'1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: ay nagamit na dati. Mangyaring pumili ng isa na kaiba mula sa iyong huling isa. - other: ay nagamit na dati. Mangyaring pumili ng isa na kaiba mula sa iyong huli %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: espesyal (e.g '%') uppercase: uppercase (e.g 'A') password_confirmation: @@ -976,6 +1032,8 @@ fil: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: hindi maaring sa iba pang proyekto. cannot_be_milestone: hindi maaring maging isang milestone. @@ -1003,6 +1061,8 @@ fil: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: ay invalid dahil walang valid na transisyon na umiiral mula sa luma hanggang sa bagong estado para sa mga role ng kasalukuyang user. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Ang work package #%{id} ay hindi balido sa target para mag-reassign ng mga oras na entry.' @@ -1011,8 +1071,8 @@ fil: template: body: 'Mangyaring suriin ang mga sumusunod na mga patlang:' header: - one: Ipinagbabawal na isang error sa %{model} na jto mula sa pagka-save - other: "%{count} mga error na ipinagbabawal sa iton %{model} mula sa pagka-save" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ fil: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ fil: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ fil: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ fil: issue_priority: one: Ang prayoridad other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ fil: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ fil: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ fil: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ fil: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ fil: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ fil: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ fil: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ fil: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ fil: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ fil: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ fil: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ fil: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ fil: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ fil: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ fil: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: kasalukuyang naka-displey is_inactive: kasulukuyang hindi naka-displey show_until: Ipakita hanggang @@ -2075,7 +2256,7 @@ fil: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ fil: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Ang kontekstong naibigay ay hindi nai-link sa isang mapagkukunan. - context_object_not_found: Hindi mahanap ang ibinigay na mapagkukunan bilang konteksto. - unsupported_context: Ang ibinigay na mapagkukunan ay hindi suportado bilang isang konteksto. unable_to_create_attachment: Ang paglalakip ay hindi maaring likhain unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ fil: groups: Mga grupo hexcode: Hex code id: ID + inexistent: Inexistent is_default: Ang default na halaga is_for_all: Para sa lahat ng mga proyekto issue: Work package @@ -2253,6 +2431,7 @@ fil: updated_at: Naka-update sa updated_on: Naka-update sa uploader: Uploader + url: URL user: Gumagamit username: Username value: Halaga @@ -2267,6 +2446,29 @@ fil: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ fil: button_set_reminder: Set reminder button_show: Ipakita button_sort: Ayusin + button_stop_timer: Stop timer button_submit: Sumite button_test: Pagsusulit button_unarchive: Tanggalin ang archive @@ -2461,9 +2664,9 @@ fil: text: failed: Hindi makopya ang proyekto "%{source_project_name}" sa proyektong "%{target_project_name}". succeeded: Kinopyang proyekto "%{source_project_name}'" sa "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ fil: plural: Mga custom aksyon custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Para sa lahat ng mga proyekto hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ fil: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ fil: is_enabled_globally: Ay pinagana pandaigdigan multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Gumawa ng bagong patlang na custom - no_results_title_text: Sa kasalukuyan ay walang mga custom field. text_add_new_custom_field: 'Upang magdagdag ng mga kustom na patlang sa isang proyekto kinakailangan mo muna likhain bago ka muna sila idagdag sa proyektong ito. ' @@ -2666,56 +2866,56 @@ fil: datetime: distance_in_words: about_x_hours: - one: tungkol sa oras - other: tungkol sa mga %{count} oras + one: about %{count} hour + other: about %{count} hours about_x_months: - one: isang buwan ang nakalipas - other: mga isang %{count} buwan ang nakalipas + one: about %{count} month + other: about %{count} months about_x_years: - one: isang taon ang nakalipas - other: mga isang %{count} taon ang nakalipas + one: about %{count} year + other: about %{count} years almost_x_years: - one: halos isang taon - other: mga halos isang %{count} taon + one: almost %{count} year + other: almost %{count} years half_a_minute: kalahating minuto less_than_x_minutes: one: mas mababa sa isang minuto other: mga mas mababa sa isang %{count} minuto less_than_x_seconds: - one: mas mababa sa isang segundo - other: mga mas mababa sa isang %{count} segundo + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: mahigit sa isang taon - other: mas mahigit sa isang %{count} taon + one: over %{count} year + other: over %{count} years x_days: - one: Isang araw - other: mga Isang %{count} araw + one: "%{count} day" + other: "%{count} days" x_hours: - one: Isang oras - other: "%{count} mga oras" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: Isang minuto - other: mga Isang %{count} minuto + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: Isang buwan - other: mga isang %{count} buwan + one: "%{count} month" + other: "%{count} months" x_seconds: - one: Isang segundo - other: Mga Isang %{count} segundo + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ fil: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ fil: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ fil: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ fil: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ fil: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ fil: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ fil: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ fil: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ fil: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ fil: label_copy_target: Target label_copy_workflow_from: Kopyahin ang workflow mula sa label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Ang core bersyon label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Kasulukuyang bersyon label_current_version: Kasukukuyang bersyon label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ fil: label_custom_field_default_type: Uri ng walang laman label_custom_field_new: Bagong custom field label_custom_field_plural: Mga pasadyang patlang - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Disenyo label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ fil: label_database_version: PostgreSQL version label_date: Petsa label_date_and_time: Petsa at oras - label_date_format: Format ng petsa + label_date_and_time_formats: Date and time formats label_date_from: Mula sa label_date_from_to: Mula sa %{start} hanggang %{end} label_date_to: Sa label_dates: Mga petsa + label_day: Day label_day_plural: mga araw label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ fil: label_deleted_custom_field: "(binurang custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ fil: label_float: Lumutang label_folder: Folder label_follows: sundan + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Bagong forum label_forum_plural: Mga forum @@ -3684,6 +4060,7 @@ fil: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">==" label_group: Grupo + label_group_attributes_plural: Group attributes label_group_by: Pangkat sa label_group_named: Group %{name} label_group_new: Bagong grupo @@ -3735,8 +4112,8 @@ fil: label_journal_diff: Paglalarawan ng paghahambing label_jump_to_a_project: Tumalon sa isang proyekto... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Linggwahe - label_language_based: Naka-base sa linggwahe ng gumagamit label_languages: Languages label_last_activity: Huling aktibidad label_last_change_on: Hindi binago sa @@ -3758,6 +4135,7 @@ fil: label_list: Listahan label_loading: Naglo-load... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: I-kandado ang gumagamit label_locked: nakakandado label_logged_as: Naka-log in bilang @@ -3769,6 +4147,7 @@ fil: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Pamahalain ang mga %{vendor} respository label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Pinakamataas na laki label_me: ako label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ fil: label_menu_item_name: Pangalan ng pagpipiliang aytem label_message: Mensahe label_message_last: Huling mensahe - label_message_new: Bagong mensahe label_message_plural: Mga mensahe label_message_posted: Idinagdag na mensahe label_minute_plural: mga minuto @@ -3799,6 +4177,7 @@ fil: label_module_plural: Mga modyul label_modules: Mga modyul label_modules_and_plugins: Modules and Plugins + label_month: Buwan label_months_from: mga buwan mula sa label_more: Iba pa label_more_information: Karagdagang impornasyon @@ -3812,6 +4191,7 @@ fil: label_my_avatar: My avatar label_my_queries: Ang mga aking custom query label_my_security: Security + label_my_time: My time label_name: Pangalan label_never: Hindi kailanman label_new: Bago @@ -3826,7 +4206,10 @@ fil: label_news_singular: Mga balita label_news_view_all: Tanawin lahat ang mga balita label_next: Susunod + label_next_day: Next day + label_next_month: Next month label_next_week: Susunod na linggo + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "( Walang pagbago)" label_no_data: Walang data upang ipakita @@ -3834,6 +4217,7 @@ fil: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: walang simulang petsa + label_no_time: No time tracked label_nobody: walang sinuman label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ fil: label_preview: Tanawin ulit label_preview_not_available: Preview not available label_previous: Nakaraan + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Nakaraang linggo + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " o imbitahin ang bagong gumagamit sa pamamagitan ng email" label_principal_search: Magdagdag ng umiiral na mga user o grupo @@ -4019,6 +4406,7 @@ fil: label_sort_lowest: Ilipat sa ilalim label_sorted_by: inayos sa %{value} label_spent_time: Nauubos na oras + label_stack: Stack label_start_to_end: simula hanggang katapusan label_start_to_start: simula hanggang simula label_starts_with: starts with @@ -4038,6 +4426,7 @@ fil: label_subtask_plural: Ang mga subtask label_summary: Buod label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Mga setting ng system label_system_storage: Impormasyon ng storage label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ fil: label_time: Oras label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Nauubos na oras + label_timer_since: Started at %{time} label_title: Pamagat label_today: ngayon label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ fil: label_user_search: Maghanap para sa gumagamit label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: Bagong bersyon label_version_plural: Mga bersyon @@ -4100,6 +4492,7 @@ fil: label_videos: Videos label_view_all_revisions: Tingnan lahat ang mga rebisyon label_view_diff: Tingnan ang mga pagka-iba + label_view_mode_switcher: Change view label_view_revisions: Tingnan ang mga rebisyon label_view_x: 'View: %{x}' label_watched_work_packages: Pinanuod na mga work package @@ -4123,6 +4516,8 @@ fil: label_wiki_start: Simulan ang pahina label_wiki_toc: Talaan ng Nilalamn label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Nakakalakip na pahinag trabaho @@ -4145,45 +4540,46 @@ fil: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: Isa ang isinara + one: "%{count} closed" other: "%{count} ang isinara" zero: 0 closed label_x_comments: - one: Isang komento + one: "%{count} comment" other: "%{count} mga komento" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: Isa ang bukas + one: "%{count} open" other: "%{count} ang bukas" zero: 0 open label_x_projects: - one: Isang proyekto + one: "%{count} project" other: "%{count} mga proyekto" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: kahapon label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ fil: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ fil: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ fil: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ fil: create_button: Lumikha dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Nabigong i-reset ang access token: %{error}' @@ -4543,10 +4948,26 @@ fil: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Aksyon expiration: Natapos @@ -4750,7 +5171,6 @@ fil: Mayroong %{number} mga resulta ang natagpuan. Ang tab ay tumuon sa unang resulta. notice_principals_found_single: "Mayroong isang resulta. \n Tab upang ituon ito." - notice_project_cannot_update_custom_fields: 'Hindi mo pwedeng i-update ang mga patlang ng project''s available custom. Ang proyekto ay hindi balido: %{errors}' notice_project_not_deleted: Ang proyekto ay hindi nabura. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4760,9 +5180,6 @@ fil: notice_successful_create: Matagumpay pagkalikha. notice_successful_delete: Matagumpay ang pagtanggal. notice_successful_update: Matagumpay nai-update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Mayroong maraming resulta. I-narrow down ang paghahanap sa pamamagitan ng pagtype ng pangalan ng bagong miyembro (o grupo). @@ -4864,7 +5281,7 @@ fil: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4955,8 +5372,6 @@ fil: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4976,7 +5391,6 @@ fil: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5048,8 +5462,8 @@ fil: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5074,7 +5488,7 @@ fil: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Mga komento ng balita permission_commit_access: Magbasa/magsulat acess sa repositoryo (commit) - permission_copy_projects: Kopyahin ang mga proyekto + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5107,6 +5521,7 @@ fil: permission_export_projects: Export projects permission_export_work_packages: I-export ang mga work package permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5117,6 +5532,9 @@ fil: permission_manage_dashboards: Manage dashboards permission_manage_forums: Pamahalain ang mga forum permission_manage_members: Pamahalain ang mga miyembro + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Pamahalain ang mga balita permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5145,7 +5563,6 @@ fil: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Piliin ang mga proyektong modyul permission_select_project_phases: Select project phases @@ -5179,6 +5596,16 @@ fil: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Ang mga work package ay maaring nakatalaga sa mga gumagamit at grupo sa possesyon ng tungkulin na ito sa nakatalagang proyekto placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5200,7 +5627,7 @@ fil: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5211,7 +5638,7 @@ fil: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5226,7 +5653,7 @@ fil: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5238,7 +5665,7 @@ fil: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: Isang proyekto + one: "%{count} project" other: "%{count} mga proyekto" zero: 0 projects destroy: @@ -5343,11 +5770,11 @@ fil: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5357,6 +5784,12 @@ fil: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Sa kasalukuyan ay walang mga custom field na available. forums: no_results_content_text: Create a new forum @@ -5453,14 +5886,14 @@ fil: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5472,7 +5905,7 @@ fil: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Gumawa ng bagong bersyon - no_results_title_text: Sa kasalukuyan ay walang mga bersyon para sa proyekto. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5480,15 +5913,27 @@ fil: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Lapatan ng naka-preconfigure na filter configure_view: @@ -5517,7 +5962,7 @@ fil: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5633,6 +6078,31 @@ fil: warnings: cannot_annotate: Ang file na ito ay hindi naka-annotate. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5644,6 +6114,15 @@ fil: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5748,7 +6227,7 @@ fil: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Mataas na bilang ng naka-display na linya setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Ipakita ang mga subproject ng work package sa pangunahing proyekto sa pamamagitan ng default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5863,6 +6342,7 @@ fil: setting_start_of_week: Pagsisimula ng linggo sa setting_sys_api_description: Ang serbisyo ng repositoryo management web ay nagbibigay ng intregrasyon at user awtorisasyon para sa pag-access ng mga repositoryo. setting_sys_api_enabled: Paganahin ang serbisyo ng repository management web + setting_sys_api_key: API key setting_time_format: Oras setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5915,7 +6395,7 @@ fil: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5926,6 +6406,7 @@ fil: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6017,12 +6498,12 @@ fil: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6042,8 +6523,8 @@ fil: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6051,7 +6532,7 @@ fil: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6071,6 +6552,7 @@ fil: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6127,7 +6609,7 @@ fil: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6220,19 +6702,19 @@ fil:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Isinara - is_default: Default is_readonly: Basahin-lamang + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Magdagdag ng bagong estado no_results_title_text: Sa kasalukuyan ay walang mga estado ng work package. + status_actions: Status actions support: array: sentence_connector: at skip_last_comma: mali text_access_token_hint: Ang access token ay pinayagan kang pagbigyan ang external applications access sa pinagkukunan sa OpenProject. - text_accessibility_hint: Ang aksibilidad mode ay naka-disenyo para sa mga gumagamit na bulag, motorcically handicsped o mayroong masamang paningin. Para sa mga elementong latter focus ay espesyal na naka-hightlight. Mangyaring pansinin, na ang Backlogs modyul ay hindi magagamit sa modyul na ito. text_analyze: 'Karagdagang pagsusuri: %{subject}' text_are_you_sure: Sigurado ka ba? text_are_you_sure_continue: Are you sure you want to continue? @@ -6275,12 +6757,6 @@ fil: ' text_custom_field_possible_values_info: Isang linya para sa bawat halaga - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6330,6 +6806,7 @@ fil: text_length_between: Taas pagitan ng %{min} at %{max} na mga karakter. text_line_separated: Maramihang halaga ang pinahintulutan (isang linya para sa bawat halaga). text_load_default_configuration: I-load ang kumpigurasyong default + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Walang mga access tokens na pweding ma configure. text_no_configuration_data: |- Ang mga tungkulin, uri, estado ng work package at daloy na trabaho ay hindi pa na configure. @@ -6435,6 +6912,68 @@ fil: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6444,14 +6983,40 @@ fil: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6460,8 +7025,10 @@ fil: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6490,21 +7057,21 @@ fil: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6521,6 +7088,8 @@ fil: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6542,6 +7111,14 @@ fil: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6551,12 +7128,14 @@ fil: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6570,12 +7149,12 @@ fil: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6588,10 +7167,12 @@ fil: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Mga proyekto + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6606,43 +7187,17 @@ fil: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6650,6 +7205,9 @@ fil: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6658,13 +7216,14 @@ fil: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6678,12 +7237,16 @@ fil: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6692,33 +7255,74 @@ fil: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Gumawa ng bagong uri no_results_title_text: Sa kasalukuyan ay walang mga uri. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Huwag pansinin ang babala ito. message: You may run into errors and degraded experience on this page. @@ -6737,8 +7341,8 @@ fil: authorization_rejected: Ikaw ay hindi pinapayagang mag-sign in. blocked: pansamantalang nakandado blocked_num_failed_logins: - one: pansamantalang nakandado (isang nabigong pagtatangkang paglog-in) - other: pansamantalang nakandado (%{count} ay nabigo sa mga pagtatangkang paglog-in) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Ikaw ay malapit ng magpabago sa estado na '%{name}'. Sigurado ka bang gusto mong magpatuloy? deleted: Binurang gumagamit department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6838,7 +7442,7 @@ fil: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Natapos - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6898,13 +7502,19 @@ fil: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: isinara version_status_locked: nakakandado version_status_open: buksan versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Sa kasalukuyan ay walang mga work packages na nakatala sa bersyong ito. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7074,12 +7684,14 @@ fil: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7104,17 +7716,17 @@ fil: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7172,18 +7784,154 @@ fil: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7215,37 +7963,53 @@ fil: version: no_results_title_text: Walang kasalukuyang bersyon ang magagamit. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7254,12 +8018,88 @@ fil: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/fr.seeders.yml b/config/locales/crowdin/fr.seeders.yml index 25af0080d0be..9ff9bbe1b36a 100644 --- a/config/locales/crowdin/fr.seeders.yml +++ b/config/locales/crowdin/fr.seeders.yml @@ -250,69 +250,26 @@ fr: Dans ce module, vous pouvez communiquer les actualités du projet aux membres de votre équipe. versions: item_0: - name: Backlog des bugs - item_1: - name: Backlog des produits - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Version 1.0 content: | - ### Réunion de planification du sprint - - _Veuillez documenter ici les sujets de la réunion de planification du sprint_ - - * Temps prévu (8 h) - * Entrée : backlog du produit - * Sortie : backlog du sprint - - * Divisé en deux périodes de temps supplémentaires de 4 h : - - * Le propriétaire du produit présente le [Backlog du produit]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) et les priorités à l'équipe et explique l'objectif du sprint, que l'équipe doit accepter. Ensemble, ils priorisent les sujets du Backlog du produit dont l'équipe s'occupera lors du prochain sprint. L'équipe s'engage à réaliser la livraison convenue. - * L'équipe planifie de manière autonome (sans le Propriétaire du produit) en détail et décompose les tâches des exigences discutées pour consolider un [Backlog du sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - ### Réunion quotidienne Scrum - - _Veuillez documenter ici les sujets de la réunion quotidienne Scrum_ - - * Courte réunion d'étape quotidienne de l'équipe. - * Temps prévu (max. 15 min). - * Réunion debout pour discuter des sujets suivants du [Tableau de travail](##sprint:scrum_project__version__sprint_1). - * Que dois-je faire jusqu'au prochain Scrum quotidien ? - * Qu'est-ce qui a bloqué mon travail (obstacles) ? - * Le Maître Scrum gère la modération et prend des notes [Obstacles du sprint](##sprint:scrum_project__version__sprint_1). - * Le Propriétaire du produit peut participer pour se maintenir au courant. + ### Version 1.0 - ### Réunion d'examen du sprint + _Veuillez indiquer ici le contenu de cette version._ - _Veuillez documenter ici les sujets de la réunion d'examen du sprint_ - - * Temps prévu (4 h). - * Un maximum d'une heure de préparation par personne. - * L'équipe montre au Propriétaire du produit et aux autres personnes intéressées ce qui a été réalisé au cours de ce sprint. - * Important : pas de maquettes et pas de PowerPoint ! Il suffit de démontrer la fonctionnalité du produit fini (incréments). - * Les commentaires du Propriétaire du produit, des intervenants et d'autres personnes sont recueillis et seront inclus dans les travaux ultérieurs. - * Sur la base des fonctionnalités démontrées, le Propriétaire du produit décide de mettre en œuvre cet incrément ou de le développer davantage. Cette possibilité permet un RSI précoce. - - - ### Rétrospective du sprint - - _Veuillez documenter ici les sujets de la réunion rétrospective du sprint_ - - * Temps prévu (3 h). - * Après l'examen du sprint, elle sera modérée par le Maître Scrum. - * L'équipe discute du sprint : ce qui s'est bien passé, ce qui doit être amélioré pour améliorer la productivité pour le prochain sprint ou même avoir plus de plaisir. - item_3: - name: Sprint 2 + * Les lots de travaux de cette version sont ceux dont la version cible est 1.0. + * La date de livraison correspond à la date du jalon *Release v1.0*. + * Ouvrez la [Feuille de route]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) pour suivre l'avancement de toutes les versions. + * Ouvrez [Paramètres du projet → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) pour associer une autre page wiki à une version. categories: item_0: Catégorie 1 (à modifier dans les paramètres du projet) queries: item_0: name: Plan de projet item_1: - name: Backlog de produit + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tâches boards: @@ -338,20 +295,21 @@ fr: options: name: Pour commencer text: | - Nous sommes ravis que vous nous ayez rejoints ! Nous vous suggérons de faire quelques essais pour commencer à utiliser OpenProject. + Nous sommes heureux de vous accueillir ! Nous vous suggérons d'essayer quelques actions pour bien démarrer dans OpenProject. + + _Essayez les étapes suivantes :_ - _Essayez les étapes suivantes:_ + 1. *Invitez de nouveaux membres dans votre projet* : → accédez à [Membres]({{opSetting:base_url}}/projects/your-scrum-project/members) dans la navigation du projet. + 2. *Consultez votre backlog de produit et vos backlogs de sprint* : → accédez à [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) dans la navigation du projet. + 3. *Créez un sprint* : → accédez à [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) et cliquez sur « + Sprint » pour créer un nouveau sprint. Déplacez des lots de travaux du backlog vers le sprint afin de planifier le travail à réaliser. Lorsque tout est prêt, cliquez sur « Démarrer le sprint ». + 4. *Consultez votre tableau de sprint* : → accédez à [Tableaux]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → ouvrez le tableau du sprint en cliquant sur le nom du sprint. + 5. *Créez un nouveau lot de travaux* : → accédez à [Lots de travaux → Créer]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Créez et mettez à jour un plan de projet* : → accédez à [Plan de projet](##query:scrum_project__query__project_plan) dans la navigation du projet. + 7. *Activez d'autres modules* : → accédez à [Paramètres du projet → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 1. *Invitez de nouveaux membres à votre projet* : &rightarrow ; Accédez à [Membres]({{opSetting:base_url}}/projets/votre-projet-scrum/membres) dans la navigation du projet. - 2. *Consulter votre backlogs de produit et de sprint* : &rightarrow ; Accédez à [Backlogs]({{opSetting:base_url}}/projets/votre-scrum-projet/backlogs) dans la navigation du projet. - 3. *Consulter votre tableau des tâches* : &rightarrow ; Accéder à [Backlogs]({{opSetting:base_url}}/projects/votre-projet-scrum/backlogs) &rightarrow ; Cliquer sur la flèche droite sur Sprint &rightarrow ; Sélectionner [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Créer un nouveau lot de travaux* : &rightarrow ; Aller sur [Lots de travaux &rightarrow ; Créer]({{opSetting:base_url}}/projets/votre-scrum-projet/lots_de_travaux/nouveau). - 5. *Créer et mettre à jour un plan de projet* : &rightarrow ; Aller sur [Plan de projet](##query:scrum_project__query__project_plan) dans la navigation du projet. - 6. *Créer un wiki de sprint* : &rightarrow ; Allez dans [Backlogs]({{opSetting:base_url}}/projects/votre-projet-scrum/backlogs) et ouvrez le wiki de sprint à partir du menu déroulant de droite dans un sprint. Vous pouvez modifier le [modèle de wiki]({{opSetting:base_url}}/projets/votre-scrum-projet/wiki/) en fonction de vos besoins. - 7. *Activer d'autres modules* : &rightarrow ; Allez dans les [Paramètres du projet &rightarrow ; Modules]({{opSetting:base_url}}/projet/votre-scrum-projet/paramètres/modules). - Vous y trouverez nos [guides de l'utilisateur](https://www.openproject.org/docs/user-guide/). - N'hésitez pas à nous contacter si vous avez des questions ou si vous avez besoin d'aide. N'hésitez pas à nous contacter : [support[at]openproject.com(mailto:support@openproject.com). + Vous trouverez ici nos [guides utilisateur](https://www.openproject.org/docs/user-guide/). + Si vous avez des questions ou avez besoin d'aide, contactez-nous : [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Lots de travaux diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 4ab2800e45f7..2ba22af7ad48 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -40,7 +40,9 @@ fr: view: Un lien dynamique vers une vue, inséré à l'aide d'une macro. work_package: Un lien dynamique vers un lot de travaux inséré à l'aide d'une macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Veuillez vous connecter en tant que %{login} pour activer votre compte. + continue_with_provider: Continuer avec %{name} delete: Supprimer le compte delete_confirmation: Voulez-vous vraiment supprimer le compte ? deletion_info: @@ -65,7 +67,9 @@ fr: error_self_registration_limited_provider: 'L''inscription est limitée pour le fournisseur d''authentification unique ''%{name}''. Veuillez demander à un administrateur d''activer le compte pour vous ou de modifier la limite d''auto-inscription pour ce fournisseur. ' - login_with_auth_provider: ou connectez-vous avec votre compte existant + login_title: Se connecter à %{app_title} + login_with_external_account: Se connecter avec un compte externe + no_account_yet: Vous n'avez pas encore de compte ? omniauth_direct_login_continue: Continuer pour vous connecter omniauth_direct_login_redirecting: Redirection vers votre fournisseur d'identité… omniauth_login: Veuillez vous connecter pour activer votre compte. @@ -118,6 +122,8 @@ fr: auth_provider: additional_form_action_urls: URL de redirection supplémentaires autorisées pour la connexion scim_clients: Clients SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID personnalisé customized_type: Type personnalisé @@ -128,8 +134,6 @@ fr: repository: Référentiel comment: commented: Commenté - custom_action: - actions: Actions custom_field: admin_only: Administrateurs uniquement allow_non_open_versions: Autoriser les versions non ouvertes @@ -168,6 +172,7 @@ fr: uid: Id du client emoji_reaction: reactable: Réagi le + reaction: Réaction enterprise_token: active_user_count_restriction: Utilisateurs actifs encoded_token: Licence Entreprise @@ -179,20 +184,44 @@ fr: company: Entreprise favorite: favorited: Élément + form_configuration: + attribute_groups: Formulaire + description: Description + name: Nom + type_variants: Types et variantes utilisant ce formulaire + form_configuration_attribute: + attribute_key: Attribut + custom_field: Champ personnalisé + group: Groupe + position: Position + form_configuration_group: + default_key: Groupe par défaut + kind: Nature + label: Libellé + query: Requête grids/grid: column_count: Nombre de colonnes page: Page row_count: Nombre de lignes widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Groupes d'utilisateurs identity_url: URL d'identité organizational_unit: Unité organisationnelle parent: Groupe parent group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Unité organisationnelle parent: Groupe parent import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nom de l'instance Jira personal_access_token: Jeton d'accès personnel url: URL de l'instance Jira @@ -223,6 +252,7 @@ fr: title: Titre member: blocked: Bloqué + principal_type: Type de membre roles: Rôles notification: read_ian: Lire dans l'application @@ -235,6 +265,7 @@ fr: position: Position persisted_query: filters: Filtres + group_bys: Grouper les résultats par name: Nom orders: Tris selects: Sélections @@ -367,6 +398,8 @@ fr: ongoing: En cours spent_on: date type: Type + token/base: + expires_on: Date d'expiration token/ical: calendar: Calendrier ical_token_query_assignment: Affectation d'une requête @@ -384,19 +417,17 @@ fr: type_variant: attribute_groups: Formulaire default_work_package_description: Texte par défaut pour la description - defaults_source: Source des valeurs par défaut enabled_in_new_projects: Actif dans les nouveaux projets - form_configuration_source: Source du formulaire + linked_aspects: Configuration héritée patterns: Modèles - pdf_export_source: Source d'exportation au format PDF - project_attributes_source: Source des attributs de projet project_types: Projets utilisant cette variante variant: Variante variant_name: Nom - workflows_source: Source des flux de travail + workflow: Flux de travail user: admin: Administrateur auth_source: Sources d'authentification + avatar_type: Avatar type consented_at: Consenti à current_password: Mot de passe actuel department: Service @@ -410,7 +441,7 @@ fr: last_name: Nom de famille ldap_auth_source: Connexion LDAP new_password: Nouveau mot de passe - password_confirmation: Confirmation + password_confirmation: Confirmation du mot de passe user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ fr: user_preference: auto_hide_popups: Masquer automatiquement les bannières de réussite auto_hide_popups_caption: Lorsque cette option est activée, les bannières vertes de réussite disparaissent automatiquement après 5 secondes. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Mettre à jour les alertes button_update_look_and_feel: Mettre à jour l'apparence button_update_user_information: Mettre à jour le profil comments_sorting: Afficher l'activité du lot de travaux triée par daily_reminders: Rappels quotidiens + date_format: Date format disable_keyboard_shortcuts: Désactiver les raccourcis clavier dismissed_enterprise_banners: Bannières d'entreprise masquées force_dark_theme_contrast: Forcer un contraste élevé en mode sombre @@ -434,13 +469,23 @@ fr: header_look_and_feel: Apparence et ergonomie impaired: Mode d'accessibilité increase_contrast: Augmenter le contraste - increase_contrast_caption: Active le mode de contraste élevé pour le mode de couleur choisi. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Augmenter le contraste du thème mode_guideline: Certains modes écrasent les couleurs des thèmes personnalisés pour des raisons d'accessibilité et de lisibilité. Veuillez sélectionner le mode Clair pour une prise en charge complète des thèmes personnalisés. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Mode de couleur + time_format: Time format time_zone: Fuseau horaire warn_on_leaving_unsaved: M'avertir lorsque je quitte un lot de travaux contenant des modifications non enregistrées workdays: Jours ouvrés + user_resource: + description: Description + name: Nom + user_filter: Filtre utilisateur + user_resource_detail: + description: Description + user_filter: Filtre utilisateur user_working_hours: availability_factor: Facteur de disponibilité days: Jours ouvrés @@ -491,6 +536,7 @@ fr: title: Jours ouvrés true: Inclure les jours non ouvrés journal_internal: Journal interne + labels: Étiquettes notify: Notifier observed_in_versions: Constaté dans les versions parent: Parent @@ -519,6 +565,10 @@ fr: work_package: Lot de travaux work_package_version: kind: Type + workflow: + description: Description + name: Nom + type_variants: Types et variantes utilisant ce formulaire errors: messages: accepted: doi(ven)t être accepté(e)(s). @@ -590,6 +640,8 @@ fr: regex_invalid: n'a pas pu être validé avec l'expression régulière associée. regex_list_invalid: Les lignes %{invalid_lines} n'ont pas pu être analysées comme des expressions régulières. regex_match_failed: ne correspond pas à l'expression régulière %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: doit être inférieur ou égal à la longueur maximale. smaller_than_or_equal_to_max_value: doit être inférieure ou égale à la valeur maximale. ssrf_filtered: enfreint la politique SSRF de cette instance OpenProject. @@ -612,6 +664,10 @@ fr: user_in_ldap_managed_department: Cet utilisateur appartient à un service géré par synchronisation LDAP et ne peut pas être déplacé. wrong_length: est de mauvaise longueur (devrait être %{count} caractères). models: + ai/text_transform_run: + attributes: + base: + not_available: Cette action n'est pas disponible. attachment: attributes: content_type: @@ -672,6 +728,16 @@ fr: general_consent: Veuillez accepter les conditions générales. favorite: already_favorited: a déjà été ajouté aux favoris. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Un attribut de lot de travaux non valide est utilisé. + attribute_unknown_name: 'Un attribut de lot de travaux non valide est utilisé : %{attribute}' + duplicate_group: Le nom de groupe « %{group} » est utilisé plus d'une fois. Les noms de groupe doivent être uniques. + group_without_name: Le nom du groupe ne peut pas être vide. + query_invalid: 'La requête intégrée « %{group} » est invalide : %{details}' + base: + default_undeletable: Le formulaire par défaut ne peut pas être supprimé. Veuillez d'abord définir un autre formulaire comme formulaire par défaut. grids/grid: end_before_start: la valeur finale doit être supérieure à la valeur de départ. outside: est hors de la grille. @@ -689,6 +755,13 @@ fr: not_unique: est déjà utilisé. Veuillez choisir un autre nom. jira: invalid_protocol: Veuillez indiquer un protocole valide (http ou https) + label: + attributes: + name: + blank: Le nom ne peut pas être vide. + format: "%{message}" + taken: Une étiquette portant ce nom existe déjà. Veuillez en choisir une autre. + too_long: Le nom est trop long (le nombre maximal de caractères est de %{count}). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ fr: types: cannot_assign_multiple_variants_of_parent: Une seule variante d'un type peut être activée dans le projet cannot_assign_variant_and_parent: Impossible d'affecter à la fois une variante et son type parent - cannot_assign_variants_yet: Les variantes ne peuvent pas encore être activées au niveau d'un projet. Activez l'indicateur de fonctionnalité pour tester les variantes in_use_by_work_packages: 'toujours en cours d''utilisation par les lots de travaux : %{types}' switch_target_blank: Sélectionnez la variante à utiliser switch_target_identical: Le type cible doit être différent du type actuellement utilisé par le projet @@ -857,42 +929,26 @@ fr: blank: Veuillez fournir un nom de jeton format: "%{message}" in_use: Ce nom de jeton est déjà utilisé. Veuillez en choisir un autre + type: + attributes: + base: + in_use_by_work_packages: Ce type ne peut pas être supprimé tant que des lots de travaux l'utilisent. type_variant: attributes: - attribute_groups: - attribute_unknown: Un attribut de lot de travaux non valide est utilisé. - attribute_unknown_name: 'Un attribut de lot de travaux non valide est utilisé : %{attribute}' - duplicate_group: Le nom de groupe « %{group} » est utilisé plus d'une fois. Les noms de groupe doivent être uniques. - group_without_name: Le nom du groupe ne peut pas être vide. - query_invalid: 'La requête intégrée « %{group} » est invalide : %{details}' base: - borrowed_by_variants: Ne peut pas être supprimé tant que sa configuration est réutilisée par %{names}. is_default_variant: La configuration par défaut d'un type ne peut pas être supprimée. project_variants_not_allowed: Ce type ne permet pas la création de variantes au sein des projets. restrict_dependent_destroy: has_many: Il ne peut pas être supprimé tant que des projets l'utilisent encore. - defaults_source_id: - must_be_available_to_the_variant: doit être une configuration que ce projet peut utiliser. - would_create_cycle: créerait une boucle entre ces configurations. enabled_in_new_projects: not_available_to_project_owned_variant: ne peut pas être défini sur une variante appartenant à un projet. taken: est déjà activé pour une autre configuration de ce type. - form_configuration_source_id: - must_be_available_to_the_variant: doit être une configuration que ce projet peut utiliser. - would_create_cycle: créerait une boucle entre ces configurations. patterns: invalid_tokens: Un ou plusieurs attributs dans le champ ne sont pas valides. Veuillez corriger les attributs avant d'enregistrer. - pdf_export_source_id: - must_be_available_to_the_variant: doit être une configuration que ce projet peut utiliser. - would_create_cycle: créerait une boucle entre ces configurations. - project_attributes_source_id: - must_be_available_to_the_variant: doit être une configuration que ce projet peut utiliser. - would_create_cycle: créerait une boucle entre ces configurations. variant: must_belong_to_the_type: doit s'agir d'une variante de ce type. - workflows_source_id: - must_be_available_to_the_variant: doit être une configuration que ce projet peut utiliser. - would_create_cycle: créerait une boucle entre ces configurations. + workflow: + not_available_to_this_variant: doit être un flux de travail que ce projet peut utiliser. user: attributes: base: @@ -906,8 +962,8 @@ fr: numeric: numérique (e.g. « 1 ») requirements_not_met: 'Doit comprendre des caractères des types suivants : %{rules}' reused: - one: a déjà été utilisé. Veuillez choisir un mot de passe différent du précédent. - other: a déjà été utilisé. Veuillez choisir un mot de passe différent des %{count} précédents. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: spécial (e.g. « % ») uppercase: majuscule (e.g. « A ») password_confirmation: @@ -976,6 +1032,8 @@ fr: identifier: must_not_be_changed: 'ne doit pas être modifié manuellement. Les identifiants des lots de travaux sont attribués automatiquement et résolus via la table des alias ; les modifier manuellement rompt donc les liens et l''historique des identifiants. Si cette modification est intentionnelle, enregistrez avec save(context: %{context}) et veillez à la cohérence de la table work_package_semantic_aliases.' semantic_identifier_incomplete: et sequence_number doivent être définis en même temps. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: ne peut pas être dans un autre projet. cannot_be_milestone: ne peut pas être un jalon. @@ -1003,6 +1061,8 @@ fr: status_id: status_invalid_in_type: est invalide car le statut actuel n'existe pas dans ce type. status_transition_invalid: n'est pas valide, car aucune transition valide n'existe de l'ancien vers le nouveau statut pour les rôles de l'utilisateur actuel. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: ne peut être un jalon car ce lot de travaux a des enfants. is_not_a_valid_target_for_time_entries: 'Le lot de travaux #%{id} n''est pas une cible valide pour réaffecter les entrées de temps.' @@ -1011,8 +1071,8 @@ fr: template: body: 'Veuillez vérifier les champs suivants :' header: - one: 1 erreur empêche ce %{model} d'être sauvegardé - other: "%{count} erreurs interdisant ce %{model} d'être sauvegardé" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ fr: auth_provider: one: Fournisseur d'authentification other: Fournisseurs d'authentification + automation: + one: Automation + other: Automations backup: one: Sauvegarde other: Sauvegardes @@ -1071,9 +1134,6 @@ fr: comment: one: Commentaire other: Commentaires - custom_action: - one: Action personnalisée - other: Actions personnalisées custom_field: one: Champ personnalisé other: Champs personnalisés @@ -1119,6 +1179,9 @@ fr: export_setting: one: Paramètre d'exportation other: Paramètres d'exportation + form_configuration: + one: Formulaire + other: Formulaires forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ fr: issue_priority: one: Priorité other: Priorités + label: + one: Label + other: Labels ldap_auth_source: one: Connexion LDAP other: Connexions LDAP @@ -1401,7 +1467,28 @@ fr: admin: banners: environment_configured_readonly: Ces valeurs sont configurées par des variables d'environnement et ne peuvent pas être modifiées ici. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: Par défaut, ce sont les logos d'OpenProject qui sont utilisés, mais si vous importez de nouveaux logos, le thème passera automatiquement au thème « Personnalisé ». Pour un meilleur rendu, nous vous recommandons d'utiliser un logo transparent. + title: Logos personnalisés pour le bureau + mobile: + description: Par défaut, ce sont les logos OpenProject qui sont utilisés pour la version mobile accessible via un navigateur ; l'application mobile native ne sera pas concernée par cette modification. Pour un rendu optimal, nous vous recommandons d'utiliser un logo transparent. + title: Logos personnalisés pour mobiles + modes: + dark: + description: L'en-tête de l'application sera noir. Nous vous recommandons d'utiliser un logo blanc sur fond transparent. + name: Logo du mode sombre + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Logo en mode clair + light_high_contrast: + description: L'en-tête de l'application sera noir. Nous vous recommandons d'utiliser un logo blanc sur fond transparent. + name: High contrast mode logo color_groups: base_colors: Couleurs de base main_menu: Menu latéral principal @@ -1434,7 +1521,11 @@ fr: tab_interface: Interface tab_pdf_export_font: Police d'exportation PDF tab_pdf_export_styles: Styles d'exportation PDF - theme_warning: Le changement de thème écrasera votre style personnalisé. Le design sera alors perdu. Voulez-vous vraiment continuer ? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Changer le thème de couleurs enterprise: add_token: Téléverser un jeton de support de l'édition Enterprise book_now: Réserver maintenant @@ -1467,7 +1558,7 @@ fr: import: title: Importation info: - database_deprecation_html: 'À partir d''OpenProject 16.0, PostgreSQL 16 est nécessaire pour utiliser OpenProject. Votre installation restera fonctionnelle avec votre base de données actuelle, mais attendez-vous à des incompatibilités dans les prochaines versions.
Nous avons préparé des [guides de mise à jour pour toutes les méthodes d''installation](upgrade_guide). Vous pouvez effectuer la mise à jour à tout moment avant la prochaine version en suivant les guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Allocateur de mémoire Jemalloc @@ -1475,12 +1566,15 @@ fr: actions: button_edit: Modifier la configuration button_open: Ouvrir les exécutions + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Aidez-nous à améliorer le Jira Migrator avec vos commentaires et vos dons de données privées. Vous pouvez [rejoindre la communauté de développement](link) du Jira Migrator. ' description: Ce Jira Migrator est actuellement en version bêta. Nous ne prenons actuellement en charge que les versions 10.x et 11.x de Jira Server/Data Center. Les instances Cloud ne sont pas prises en charge pour le moment. title: Version bêta disponible. Essayez-la ! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configurez un hôte Jira pour commencer à importer des éléments de Jira vers cette instance d'OpenProject. title: Aucun hôte Jira n'est encore configuré @@ -1513,16 +1607,30 @@ fr: description: Jira utilise des identifiants de ticket composés d'une clé de projet et d'un numéro de séquence (PRJ-123). OpenProject le prend également en charge, mais cela doit être activé [ici](link). title: Les identifiants sémantiques basés sur les projets doivent être activés. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Ajouter la configuration - button_delete_token: Supprimer le jeton d'accès + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Enregistrer la configuration - delete_token_confirm: Voulez-vous vraiment supprimer le jeton ? Cela désactivera la connexion à Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nom - personal_access_token: Jeton d'accès personnel + personal_access_token: Personal access token (PAT) url: URL du Jira Server / Data Center label_testing: Test de la configuration... - test_configuration_caption: Vous pouvez tester cette configuration en [cliquant ici](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Modifier l'exécution @@ -1626,26 +1734,26 @@ fr: title: Assurez-vous d'avoir une copie de sauvegarde ! parts: issues: - one: 1 ticket - other: "%{count} tickets" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 tâche - other: "%{count} tâches" + one: "%{count} job" + other: "%{count} jobs" projects: - one: 1 projet - other: "%{count} projets" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 statut - other: "%{count} statuts" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 utilisateur - other: "%{count} utilisateurs" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 lot de travaux - other: "%{count} lots de travaux" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Je comprends que cette réversion supprimera les données de façon permanente description: Cette opération supprime tous les objets importés (y compris les projets entiers). @@ -1710,8 +1818,8 @@ fr: caption: Choisissez ce que vous voulez importer dans OpenProject caption_done: Terminé caption_done_description: - one: 1 projet sélectionné comme périmètre - other: "%{count} projets sélectionnés comme périmètre" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Sélectionnez les données que vous souhaitez importer parmi les données disponibles extraites de l'instance Jira hôte. elements: custom_fields: Un sous-ensemble de champs personnalisés @@ -1775,23 +1883,53 @@ fr: rest_line_text: Downloading attachments for %{projects_number} more projects title: Télécharger les pièces jointes test: - api_error: L'API Jira a renvoyé le statut d'erreur %{status}. Veuillez vérifier l'URL de votre instance Jira et le jeton d'API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Erreur de connexion : %{message}' error: Une erreur inattendue s'est produite lors du test de la connexion failed: 'Échec de la connexion : impossible de récupérer les informations du serveur' invalid_url: Veuillez fournir une URL valide - missing_credentials: Veuillez fournir l'URL et le jeton d'accès personnel pour tester la connexion parse_error: Impossible d'analyser la réponse du serveur. Le serveur n'est peut-être pas une instance Jira valide. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Connexion réussie à %{server} (version %{version}) - token_error: Jeton d'API invalide. Veuillez vérifier vos informations d'identification dans la configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Le jeton a été supprimé avec succès. user: unknown_name: Inconnu journal_aggregation: caption_with_maximum: 'Les actions de l''utilisateur sur un lot de travaux (modification de la description, du statut, des valeurs ou rédaction de commentaires) sont regroupées si elles sont effectuées au cours de cette période. Il contrôle également les délais de notification et de [webhook](webhook_link). Le maximum est de %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: Je comprends que cette action n'est pas réversible + description_html: Cela supprimera l'étiquette %{name} de tous les lots de travail de tous les projets. + heading: Supprimer ce libellé ? + title: Supprimer ce libellé ? + dialog_component: + create_title: Créer un label + rename_title: Renommer «%{name}» + index: + description: Tous les utilisateurs habilités à modifier les lots de travail peuvent librement attribuer à ces derniers des étiquettes existantes ou en créer de nouvelles instantanément. Cela inclut toutes les étiquettes créées par les utilisateurs, tous projets confondus. + row_component: + used_in_work_packages: + one: "%{count} lot de travaux" + other: Lots de travaux %{count} + sub_header_component: + button_add: Étiquette + label_add: Ajouter un libellé + search_placeholder: Tapez ici pour rechercher + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Essayez un autre terme de recherche. + title: No labels match your search mcp_configurations: index: description: Le protocole de contexte de modèle permet aux agents d'IA de fournir à leurs utilisateurs les outils et les ressources exposés par cette instance d'OpenProject. Cette fonctionnalité est encore en version bêta. @@ -1822,6 +1960,18 @@ fr: update: failure: La configuration MCP n'a pas pu être mise à jour. success: La configuration MCP a été mise à jour avec succès. + members: + index: + blank_description: Aucune appartenance ne correspond au filtre actuel. + blank_title: Aucune appartenance + filter_label: Rechercher des utilisateurs + inheritance_source: "%{type} %{name}" + inherited_via: "(via : %{source})" + title: Appartenances + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Consultez notre page sur les intégrations et les plugins pour plus d'informations. no_results_title_text: Aucun plugin n'est actuellement installé. @@ -1835,8 +1985,8 @@ fr: confirm_button: Libérer l'identifiant description: La libération de cet identifiant de projet est irréversible. Les liens externes et les intégrations qui l'utilisent ne fonctionneront plus, et le nom deviendra disponible pour tout nouveau projet souhaitant le revendiquer. description_with_work_packages: - one: La libération de cet identifiant de projet (et de son identifiant de lot de travaux n° 1) est irréversible. Les liens externes et les intégrations qui l'utilisent ne fonctionneront plus, et le nom deviendra disponible pour tout nouveau projet souhaitant le revendiquer. - other: La libération de cet identifiant de projet (ainsi que de ses %{count} identifiants de lots de travaux) est irréversible. Les liens externes et les intégrations qui l'utilisent ne fonctionneront plus, et le nom deviendra disponible pour tout nouveau projet souhaitant le revendiquer. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Libérer « %{identifier} » ? title: Libérer l'identifiant empty_body: Lorsque l'identifiant d'un projet change, l'identifiant précédent apparaît ici afin que vous puissiez le libérer en toute sécurité. @@ -1964,8 +2114,8 @@ fr: error_unknown: Nécessite une vérification manuelle error_used_in_past: Réservé par l'historique des alias d'un autre projet remaining_projects: - one: "... 1 projet supplémentaire" - other: "... %{count} projets supplémentaires" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Les identifiants existants de %{project_count} projets ne répondent pas aux exigences des identifiants sémantiques basés sur les projets. OpenProject peut les mettre à jour automatiquement pour qu''ils soient valides, comme dans les exemples ci-dessous. Cliquez sur « Convertir les identifiants » pour mettre à jour de cette manière les identifiants de tous les projets et activer les identifiants sémantiques basés sur les projets. @@ -2005,7 +2155,7 @@ fr: types_caption: Ajoutez les types de lots de travaux pour lesquels cette action doit être disponible. Toutes les variantes disponibles seront automatiquement incluses. usage_scope_caption: 'Vous pouvez limiter la visibilité de cette action : partout (y compris dans les commentaires, les wikis et les champs personnalisés), pour tous les types de lots de travaux ou pour certains types de lots de travaux.' index: - description: Les actions de transformation de texte offrent aux utilisateurs des fonctionnalités basées sur de grands modèles de langage (LLM) pour rédiger, organiser et relire du texte partout où l'éditeur de texte enrichi est utilisé, par exemple dans les descriptions de lots de travaux, les commentaires et les pages wiki. Vous pouvez créer de nouvelles actions à l'aide de vos propres invites et instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Ajouter une action de transformation de texte index_component: @@ -2038,13 +2188,20 @@ fr: ignore: Ignorer les modifications save: Enregistrer les modifications et continuer title: Enregistrer les modifications avant de continuer ? + read_only: + edit_action: Modifier le flux de travail + text_html: 'Vous utilisez actuellement un workflow existant. Pour y apporter des modifications, vous pouvez soit modifier le workflow d''origine, soit cliquer sur « + %{action}» ci-dessus pour en créer un nouveau. + + ' role_selector: label: 'Rôle : %{role}' no_role: Sélectionner un rôle roles: - one: Un rôle sélectionné - other: "%{count} rôles sélectionnés" + one: "%{count} role selected" + other: "%{count} roles selected" title: Sélectionner les rôles + with_transitions: With transitions + without_transitions: Without transitions status_button: Statut statuses_dialog: caption: Ajoutez ou retirez les statuts que vous souhaitez associer à ce type. Le retrait d'un statut entraîne également la suppression du flux de travail qui lui est associé. @@ -2054,8 +2211,8 @@ fr: confirm: Retirer description: Le retrait de ces statuts les rendra indisponibles pour ce type et supprimera les flux de travail existants. Voulez-vous vraiment continuer ? heading: - one: Retirer un statut ? - other: Retirer %{count} statuts ? + one: Remove %{count} status? + other: Remove %{count} statuses? title: Retirer des statuts tabs: always: Transitions par défaut @@ -2067,7 +2224,31 @@ fr: assignee: Transitions supplémentaires disponibles pour la personne assignée au lot de travaux. author: Transitions supplémentaires mises à la disposition de l'auteur du lot de travaux. menu_label: Transitions affichées + workflow_button: Flux de travail + ai: + text_transform: + errors: + connection_failed: Impossible de joindre le service d'IA. + not_available: L'assistant IA n'est pas disponible. + timeout: Le service d'IA n'a pas répondu à temps. + upstream_error: Le service d'IA a renvoyé une erreur. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Contenu is_active: actuellement affiché is_inactive: actuellement non affiché show_until: Afficher jusqu'à @@ -2075,7 +2256,7 @@ fr: deleted_by_admin: Le fichier en quarantaine '%{filename}' a été supprimé par un administrateur. deleted_message: Un virus a été détecté dans le fichier '%{filename}'. Le fichier a été supprimé. not_processed_yet_message: Le téléchargement est bloqué, car le fichier n'a pas encore été vérifié par l'anti-virus. Veuillez réessayer plus tard. - overridden_by_admin: La quarantaine du fichier '%{filename}' a été levée par %{user}. Le fichier est désormais accessible. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Conteneur delete: Supprimer le(s) fichier(s) en quarantaine @@ -2129,10 +2310,6 @@ fr: not_found: reminder: Le rappel que vous cherchez est introuvable ou a été supprimé. work_package: Le lot de travaux que vous cherchez est introuvable ou a été supprimé. - render: - context_not_parsable: Le contexte fourni n'est pas un lien vers une ressource. - context_object_not_found: Impossible de trouver la ressource donnée comme contexte. - unsupported_context: La ressource donnée n'est pas prise en charge comme contexte. unable_to_create_attachment: La pièce jointe n'a pas pu être créée unable_to_create_attachment_permissions: La pièce jointe n'a pas pu être enregistrée en raison de l'absence de permissions du système de fichiers user: @@ -2203,6 +2380,7 @@ fr: groups: Groupes hexcode: Code hexadécimal id: ID + inexistent: Inexistent is_default: Valeur par défaut is_for_all: Pour tous les projets issue: Lot de travaux @@ -2253,6 +2431,7 @@ fr: updated_at: Mis à jour le updated_on: Mis à jour le uploader: Importé par + url: URL user: Utilisateur username: Nom d'utilisateur value: Valeur @@ -2267,6 +2446,29 @@ fr: ' login_and_registration: Connexion et inscription + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'La tâche a été annulée en raison d''une erreur : %{message}' @@ -2393,6 +2595,7 @@ fr: button_set_reminder: Définir un rappel button_show: Afficher button_sort: Trier + button_stop_timer: Arrêter le suivi du temps button_submit: Envoyer button_test: Tester button_unarchive: Désarchiver @@ -2459,9 +2662,9 @@ fr: text: failed: Impossible de copier le projet "%{source_project_name}" vers "%{target_project_name}". succeeded: Le projet "%{source_project_name}" a été copié vers "%{target_project_name}". - title: Copier le projet « %{source_project_name} » + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Un objet de ce type + one: "%{count} object of this type" other: "%{count} objets de ce type" zero: Aucun objet de ce type create_portfolio: @@ -2499,13 +2702,9 @@ fr: plural: Actions personnalisées custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Ce champ personnalisé est activé dans tous les projets, car l'option « Pour tous les projets » est cochée. Il ne peut pas être désactivé pour les projets individuels. - heading: Pour tous les projets hierarchy: subitems: - one: 1 sous-élément + one: "%{count} sub-item" other: "%{count} sous-éléments" zero: aucun sous-élément items: @@ -2526,7 +2725,7 @@ fr: short: Nom abrégé weight: Poids notice: - remember_items_and_projects: N'oubliez pas de définir les éléments et les projets dans les onglets respectifs de ce champ personnalisé. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Vous pouvez automatiquement accorder un rôle donné dans le projet à tout utilisateur associé à cet attribut de projet, quel que soit son rôle initial dans ce projet. dialog: @@ -2591,16 +2790,17 @@ fr: is_enabled_globally: Est activé globalement multi_value_more: other: et %{count} autres + no_results_title_text: There are currently no custom fields. no_role_assigment: Aucune attribution de rôle + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: La sélection d'un lot de travaux ou d'un projet est requise en premier lieu reorder_alphabetical: Réorganiser les valeurs par ordre alphabétique reorder_confirmation: 'Attention : l''ordre actuel des valeurs disponibles ainsi que toutes les valeurs non enregistrées seront perdus. Voulez-vous vraiment continuer ?' semantic_keys: job_title: Intitulé du poste none: Aucun - tab: - no_results_content_text: Créer un nouveau champ personnalisé - no_results_title_text: Il n'y a actuellement aucun champ personnalisé. text_add_new_custom_field: 'Pour ajouter de nouveaux champs personnalisés à un projet, vous devez d''abord les créer avant de pouvoir les ajouter à ce projet. ' @@ -2664,57 +2864,57 @@ fr: datetime: distance_in_words: about_x_hours: - one: environ une heure - other: environ %{count} heures + one: about %{count} hour + other: about %{count} hours about_x_months: - one: environ un mois - other: environ %{count} mois + one: about %{count} month + other: about %{count} months about_x_years: - one: environ un an - other: environ %{count} années + one: about %{count} year + other: about %{count} years almost_x_years: - one: presqu'un an - other: presque %{count} années + one: almost %{count} year + other: almost %{count} years half_a_minute: une demi-minute less_than_x_minutes: one: moins d'1 minute other: moins de %{count} minutes less_than_x_seconds: - one: moins d'une seconde - other: moins de %{count} secondes + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: plus de 1 an - other: plus de %{count} ans + one: over %{count} year + other: over %{count} years x_days: - one: un jour - other: "%{count} jours" + one: "%{count} day" + other: "%{count} days" x_hours: - one: une heure - other: "%{count} heures" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: une minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: un mois - other: "%{count} mois" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: une seconde - other: "%{count} secondes" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 semaine - other: "%{count} semaines" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 an - other: "%{count} ans" + one: "%{count} year" + other: "%{count} years" units: day: one: jour @@ -2864,8 +3064,8 @@ fr: teaser: description_html: Vous avez accès à toutes les fonctionnalités de %{trial_plan}. title: - one: Un jour restant pour le jeton d'essai %{trial_plan} - other: "%{count} jours restants pour le jeton d'essai %{trial_plan}" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Votre jeton d''essai Enterprise a déjà été récupéré. Veuillez vérifier vos e-mails pour voir si le jeton s''y trouve. Veuillez contacter notre équipe d''assistance si vous avez besoin d''un nouveau jeton. @@ -3204,9 +3404,150 @@ fr: selected: Sélectionné include_sub_items: Inclure les sous-projets no_results_text: Aucun résultat + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Modifier le nom et la description + blank_slate: + description: Créer un formulaire pour définir les groupes d'attributs qu'un type ou une variante montre sur ses lots de travaux. + filtered_description: Aucun formulaire ne correspond aux critères de sélection actuels. + filtered_title: Aucun formulaire correspondant + title: Aucun formulaire + columns: + name: Nom du formulaire + projects: Projets + types_and_variants: Types et variantes + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Formulaire + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Formulaire + implicit: "%{name} formulaire" + selector: + default: "(Par défaut)" + prefix: Formulaire + same_as_type: "(identique au type)" + title: Sélectionner un formulaire + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Point de départ + scratch: + caption: Commencez par les groupes d'attributs par défaut et organisez-les à votre guise. + label: Démarrer de zéro + title: Configurer un nouveau formulaire + tab: + read_only: + banner_html: 'Vous utilisez un formulaire existant. Pour y apporter des modifications, vous pouvez soit modifier le formulaire d''origine, soit cliquer sur « + Formulaire » ci-dessus pour en créer un nouveau. + + ' + edit_action: Éditer un formulaire + usage: + dialog: + button: Afficher les types dépendants + caption_html: Le formulaire %{name} est utilisé dans les types et variantes suivants. + title: Formulaire utilisé dans les types + variant_of: Variante de %{type} + variants: Variantes + unused: Aucun type ni aucune variante n'utilise encore cette forme. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Il n'y a actuellement aucun message pour le forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: "." @@ -3231,6 +3572,8 @@ fr: groups: edit: synchronized_groups: Groupes synchronisés + form: + group_attributes: Group attributes index: description: En regroupant les utilisateurs, vous pouvez les ajouter en tant que membres aux mêmes projets ou leur attribuer les mêmes rôles globaux. memberships: @@ -3256,6 +3599,10 @@ fr: leave_project: Quitter le projet no_favorite_projects: Vous n'avez pas de projet favori. title: Projets + whats_new: + title: What's new in %{version} + unread: Non lu + view_release_video: Visionner la vidéo de lancement health_reports: common: checks: @@ -3269,7 +3616,7 @@ fr: summary: failure: Certaines vérifications ont échoué et le système ne fonctionne pas comme prévu. success: Toutes les connexions et tous les systèmes fonctionnent comme prévu. - warning: Certaines vérifications ont renvoyé un avertissement. Cela peut entraîner un comportement inattendu. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Échec @@ -3278,7 +3625,7 @@ fr: warning: Avertissement help_texts: views: - favoured: Marquez cette vue comme favorite et ajoutez-la à la barre latérale des vues enregistrées sur la gauche. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} sont toujours attachés à un projet. Vous ne pouvez sélectionner les projets ici que lorsque le module %{plural} est actif. Après avoir créé un %{singular} vous pouvez y ajouter des lots de travaux à partir d'autres projets.\n" public: Publiez cette vue pour permettre à d'autres utilisateurs d'accéder à votre vue. Les utilisateurs ayant la permission « Gérer les vues publiques » peuvent modifier ou supprimer la requête publique. Cela n'affecte pas la visibilité des lots de travaux dans cette vue et les utilisateurs peuvent voir des résultats différents en fonction de leurs permissions. homescreen: @@ -3303,6 +3650,31 @@ fr: line_6: Utiliser les alertes de date dans l'édition Community. new_features_title: 'Cette version contient diverses nouveautés et améliorations, notamment : + ' + '18_0': + new_features_list: + line_0: + description: À utiliser avec des flux de travail et des formulaires partagés ou spécifiques à un projet + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Découvrez les nouvelles fonctionnalités et les mises à jour des produits. learn_about: En savoir plus sur les nouvelles fonctionnalités @@ -3339,8 +3711,10 @@ fr: journals: cause_descriptions: budget_deleted: Le budget a été supprimé + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} modifié (%{link})" + csv: from CSV deleted_with_diff: "%{field} supprimé (%{link})" field_changed: "%{field} est passé de %{old_value} à %{new_value}" field_removed: "%{field} supprimé" @@ -3390,6 +3764,7 @@ fr: budget_deleted: Le budget a été supprimé dates_changed: Dates modifiées default_attribute_written: Attributs en lecture seule écrits + forum_message_html: "Created from forum message %{message_information}" import: Importé meeting_agenda_item_added_html: "Ajouté à la réunion %{meeting_title_information}" meeting_agenda_item_added_template_html: "Ajouté à %{meeting_title_information}" @@ -3542,10 +3917,10 @@ fr: label_copy_target: Cible label_copy_workflow_from: Copier flux de travail à partir de label_copy_workflow_from_role: Copier vers d'autres rôles - label_copy_workflow_from_type: Copier vers un autre type label_core_build: Construction de base label_core_version: Version du cœur label_created_by: Créé par %{user} + label_criteria: Critères label_current_status: Statut actuel label_current_version: Version actuelle label_custom_comment: Commentaire de %{name} @@ -3569,8 +3944,6 @@ fr: label_custom_field_default_type: Type défaut label_custom_field_new: Nouveau champ personnalisé label_custom_field_plural: Champs personnalisés - label_custom_logo: Logo personnalisé pour ordinateur - label_custom_logo_mobile: Logo personnalisé pour mobile label_custom_pdf_export_settings: Paramètres d'exportation PDF personnalisés label_custom_style: Apparence label_custom_style_description: Choisissez l'apparence d'OpenProject avec des thèmes, sélectionnez les couleurs par défaut à utiliser dans l'application et l'apparence des exportations. @@ -3579,11 +3952,12 @@ fr: label_database_version: Version de PostgreSQL label_date: Date label_date_and_time: Date et heure - label_date_format: Format de date + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: De %{start} à %{end} label_date_to: À label_dates: Dates + label_day: Jour label_day_plural: jours label_default: défaut label_defaults: Valeurs par défaut @@ -3594,6 +3968,7 @@ fr: label_deleted_custom_field: "(champs personnalisés supprimés)" label_deleted_custom_item: "(élément supprimé)" label_deleted_custom_option: "(option supprimée)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organisation label_departments_description_html: 'Définissez la structure de votre entreprise en créant des services et des sous-services de manière hiérarchique. Cela vous permet de refléter les lignes de rapport et de maintenir une vue d''ensemble claire et structurée de votre organisation au sein d''OpenProject. Vous pouvez également importer une structure d''organisation existante via [Synchronisation de service LDAP](ldap_docs_article). @@ -3664,6 +4039,7 @@ fr: label_float: Flottant label_folder: Dossier label_follows: suivi + label_form_configuration_plural: Forms label_formula: Formule label_forum_new: Nouveau forum label_forum_plural: Forums @@ -3682,6 +4058,7 @@ fr: label_go_forward: Ouvrir le sous-menu %{module} label_greater_or_equal: ">=" label_group: Groupe + label_group_attributes_plural: Group attributes label_group_by: Grouper par label_group_named: Groupe %{name} label_group_new: Nouveau groupe @@ -3733,8 +4110,8 @@ fr: label_journal_diff: Comparaison de description label_jump_to_a_project: Accéder à un projet... label_keyword_plural: Mots clés + label_label_plural: Labels label_language: Langue - label_language_based: Basé sur la langue de l'utilisateur label_languages: Langues label_last_activity: Dernière activité label_last_change_on: Dernière modification le @@ -3756,6 +4133,7 @@ fr: label_list: Liste label_loading: Chargement... label_locale: Langue et région + label_locale_based: Use default for user locale label_lock_user: Verrouiller l'utilisateur label_locked: verrouillé label_logged_as: Connecté en tant que @@ -3767,6 +4145,7 @@ fr: label_managed_by_ldap: Géré par synchronisation LDAP label_managed_repositories_vendor: Référentiels %{vendor} gérés label_mapping_for: 'Mapping pour : %{attribute}' + label_markdown_version: Markdown version label_max_size: Taille maximale label_me: moi label_member_all_admin: "(Tous les rôles en raison du statut d'administrateur)" @@ -3785,7 +4164,6 @@ fr: label_menu_item_name: Nom de l'élément du menu label_message: Message label_message_last: Dernier message - label_message_new: Nouveau message label_message_plural: Messages label_message_posted: Message ajouté label_minute_plural: minutes @@ -3797,6 +4175,7 @@ fr: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules et plugins + label_month: Mois label_months_from: mois de label_more: Plus label_more_information: Plus d'informations @@ -3810,6 +4189,7 @@ fr: label_my_avatar: Mon avatar label_my_queries: Mes requêtes personnalisées label_my_security: Sécurité + label_my_time: My time label_name: Nom label_never: Jamais label_new: Nouveau @@ -3824,7 +4204,10 @@ fr: label_news_singular: Actualités label_news_view_all: Afficher toutes les actualités label_next: Suivante + label_next_day: Jour suivant + label_next_month: Mois suivant label_next_week: Semaine suivante + label_next_workweek: Prochaine semaine de travail label_next_year: Année suivante label_no_change_option: "(Aucun changement)" label_no_data: Aucune donnée à afficher @@ -3832,6 +4215,7 @@ fr: label_no_parent_group: "(Aucun groupe parent)" label_no_parent_page: Aucune page parente label_no_start_date: pas de date de début + label_no_time: Aucun temps saisi label_nobody: personne label_non_working_days: Calendrier des disponibilités label_non_working_days_summary: Résumé @@ -3898,7 +4282,10 @@ fr: label_preview: Aperçu label_preview_not_available: Aperçu indisponible. label_previous: Précédent + label_previous_day: Jour précédent + label_previous_month: Mois précédent label_previous_week: Semaine précédente + label_previous_workweek: Semaine de travail précédente label_previous_year: Année précédente label_principal_invite_via_email: " ou inviter de nouveaux utilisateurs par e-mail" label_principal_search: Ajouter des utilisateurs ou groupes existant @@ -4017,6 +4404,7 @@ fr: label_sort_lowest: Déplacer en bas label_sorted_by: trié par %{value} label_spent_time: Temps passé + label_stack: Stack label_start_to_end: du début à la fin label_start_to_start: de début à début label_starts_with: commence par @@ -4036,6 +4424,7 @@ fr: label_subtask_plural: Sous-tâche label_summary: Résumé label_system: Système + label_system_or_language_default: Use system or language based default label_system_settings: Paramètres système label_system_storage: Informations de stockage label_table_of_contents: Table des matières @@ -4050,6 +4439,7 @@ fr: label_time: Heure  label_time_entry_activity_plural: Activités du temps passé label_time_entry_plural: Temps passé + label_timer_since: Commencé à %{time} label_title: Titre label_today: aujourd'hui label_today_as_date: Sélectionnez la date d'aujourd'hui comme date. @@ -4085,7 +4475,9 @@ fr: label_user_search: Recherche d'utilisateurs label_user_settings: Paramètres de l'utilisateur label_users_settings: Paramètres des utilisateurs + label_value: Value label_value_x: 'Valeur : %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Modifier la version label_version_new: Nouvelle version label_version_plural: Versions @@ -4098,6 +4490,7 @@ fr: label_videos: Vidéos label_view_all_revisions: Afficher toutes les révisions label_view_diff: Afficher les différences + label_view_mode_switcher: Changer la vue label_view_revisions: Afficher les révisions label_view_x: 'Voir : %{x}' label_watched_work_packages: Lots de travaux suivis @@ -4121,6 +4514,8 @@ fr: label_wiki_start: Page d'accueil label_wiki_toc: Table des matières label_wiki_toc_empty: La table des matières est vide car aucun titre n'est présent. + label_with_criteria: Avec critères + label_without_criteria: Sans critères label_work: Travail label_work_package: Lot de travaux label_work_package_attachments: Pièces jointes du lot de travaux @@ -4143,46 +4538,47 @@ fr: label_working_days: Jours ouvrés label_working_days_and_hours: Jours et heures travaillés label_working_hours: Horaire de travail + label_workweek: Semaine de travail label_x_closed_work_packages_abbr: - one: 1 fermée + one: "%{count} closed" other: "%{count} fermées" zero: 0 clôturé label_x_comments: - one: 1 commentaire + one: "%{count} comment" other: "%{count} commentaires" zero: aucun commentaire label_x_days: - one: un jour - other: "%{count} jours" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 fichier + one: "%{count} file" other: "%{count} fichiers" zero: Aucun fichier label_x_items: - one: 1 élément + one: "%{count} item" other: "%{count} éléments" zero: aucun élément label_x_items_selected: - one: Un élément sélectionné - other: "%{count} éléments sélectionnés" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 ouvert + one: "%{count} open" other: "%{count} ouverts" zero: 0 ouvert label_x_projects: - one: 1 projet + one: "%{count} project" other: "%{count} projets" zero: aucun projet label_x_work_packages: - one: 1 lot de travaux + one: "%{count} work package" other: "%{count} lots de travaux" zero: Aucun lot de travaux label_x_working_days: - one: 1 jour ouvrable - other: "%{count} jours ouvrables" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Congés : 1 jour ouvré' - other: 'Congés : %{count} jours ouvrés' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: hier label_zen_mode: Mode zen ldap_auth_sources: @@ -4236,7 +4632,7 @@ fr: start_tls: STARTTLS start_tls_description: Envoie une commande STARTTLS après la connexion au port LDAP standard. Recommandé pour les connexions chiffrées. tls_options: - tls_certificate_description: Si le certificat du serveur LDAP ne figure pas parmi les sources de confiance de ce système, vous pouvez l'ajouter manuellement ici. Saisissez une chaîne de certificat X.509 au format PEM. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Vérifier le certificat SSL verify_peer_description_html: 'Active la vérification SSL stricte de la chaîne de confiance du certificat.
Avertissement : décocher cette option désactive la vérification SSL du certificat de serveur LDAP. Cela expose votre connexion aux attaques de type « Man In The Middle ». @@ -4293,6 +4689,8 @@ fr: you_have: Vous avez logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} vous a mentionné(e) dans %{id} - %{subject}" notification: center: Vers le centre de notifications @@ -4349,8 +4747,8 @@ fr: mentioned: Vous avez été mentionné dans un commentaire mentioned_by: "%{user} vous a mentionné dans un commentaire" more_to_see: - one: Il y a encore 1 lot de travaux avec des notifications. - other: Il y a encore %{count} lots de travaux avec des notifications. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Ouvrir dans le navigateur reason: assigned: Assigné @@ -4528,6 +4926,13 @@ fr: create_button: Créer dialog_body: Ce jeton permettra aux applications tierces de communiquer avec votre instance. Pour différencier le nouveau jeton API, veuillez lui donner un nom. dialog_title: Créer un nouveau jeton d'API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nom du jeton failed_to_create_token: 'Impossible de créer le jeton d''accès : %{error}' failed_to_reset_token: 'Impossible de réinitialiser le jeton d''accès : %{error}' @@ -4541,10 +4946,26 @@ fr: password_confirmation_dialog: confirmation_required: Vous devez saisir le mot de passe de votre compte pour confirmer cette modification. title: Confirmez votre mot de passe pour continuer + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Jetons d'accès description: Les jetons de fournisseur sont émis par OpenProject, ce qui permet à d'autres applications d'y accéder. Les jetons clients sont émis par d'autres applications, permettant à OpenProject d'y accéder. + expired_on: Expired on %{date} headers: action: Action expiration: Expiration @@ -4746,7 +5167,6 @@ fr: notice_password_confirmation_failed: Le mot de passe saisi est incorrect. notice_principals_found_multiple: Il y a %{number} résultats trouvés. Tabulation pour sélectionner le premier résultat. notice_principals_found_single: Il y a un seul résultat. Tabulation pour le sélectionner. - notice_project_cannot_update_custom_fields: 'Vous ne pouvez pas mettre à jour les champs personnalisés disponibles du projet. Le projet n''est pas valide : %{errors}' notice_project_not_deleted: Le projet n'a pas été supprimé. notice_project_not_found: Projet introuvable. notice_requires_enterprise_token: Le jeton Enterprise est manquant ou n'autorise pas l'accès à cette page. @@ -4756,9 +5176,6 @@ fr: notice_successful_create: Création réussie. notice_successful_delete: Suppression réussie. notice_successful_update: Mise à jour réussie. - notice_successful_update_custom_fields_added_to_project: | - Mise à jour réussie. Les champs personnalisés des types activés sont automatiquement activés - sur le formulaire du lot de travaux. Voir plus. notice_to_many_principals_to_display: |- Il y a trop de résultats. Limitez la recherche en tapant le nom du nouveau membre (ou groupe). @@ -4860,8 +5277,8 @@ fr: ' confirm_revoke_my_application: - one: Voulez-vous vraiment supprimer cette demande ? Cela aura pour effet de révoquer un jeton actif associé. - other: Voulez-vous vraiment supprimer cette demande ? Cela aura pour effet de révoquer %{count} jetons actifs associés. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Aucune application OAuth n'a été enregistrée. flows: authorization_code: Flux de code d'autorisation @@ -4951,8 +5368,6 @@ fr: not_found: est introuvable. respond_to?: ne met pas en œuvre la méthode requise. rules: - copy_workflow_from: - workflow_missing: n'a pas de flux de travail propre. custom_field: format_not_supported: Le format « %{field_format} » n'est pas pris en charge. item: @@ -4972,7 +5387,6 @@ fr: or: ou rules: blueprint: Modèle de plan - copy_workflow_from: Type de copie du flux de travail depth: Profondeur enabled: Activé item: Élément @@ -5044,8 +5458,8 @@ fr: label: Table des matières page_nr_footer: Page %{page} sur %{total} template_artefact: - caption: Détails du lot de travaux présentés sous la forme d'un artefact PMflex. - label: Artefact PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Tous les attributs présents dans le formulaire actuel, selon le modèle par défaut. label: Attributs et description @@ -5070,7 +5484,7 @@ fr: permission_change_work_package_status_explanation: Permet de modifier le statut sans avoir le droit de modifier les lots de travaux permission_comment_news: Commenter les actualités permission_commit_access: Accès au dépôt en lecture/écriture (« commit ») - permission_copy_projects: Copier des projets + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'Dans les modèles de projets, cette autorisation a une fonction secondaire : elle permet de créer de nouveaux projets dérivés du modèle.' permission_copy_work_packages: Dupliquer les lots de travaux permission_create_backup: Créer des sauvegardes @@ -5103,6 +5517,7 @@ fr: permission_export_projects: Exporter des projets permission_export_work_packages: Exporter les lots de travaux permission_header_for_project_module_work_package_tracking: Lots de travaux et diagrammes de Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Inviter des membres par e-mail permission_invite_members_by_email_explanation: 'Permet aux utilisateurs d''inviter de nouveaux membres par e-mail. Les utilisateurs invités recevront un e-mail contenant un lien leur permettant de définir leur mot de passe et d''activer leur compte. Cela dépend de l''autorisation de gérer les membres @@ -5113,6 +5528,9 @@ fr: permission_manage_dashboards: Gestion des tableaux de bord permission_manage_forums: Gérer les forums permission_manage_members: Gérer les membres + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Gérer les actualités permission_manage_own_reminders: Créer des rappels personnalisés permission_manage_own_working_times: Gérer son propre temps de travail @@ -5141,7 +5559,6 @@ fr: permission_save_bcf_queries: Enregistrer les requêtes BCF permission_save_queries: Enregistrer les vues permission_search_project: Rechercher un projet - permission_select_custom_fields: Sélectionner les champs personnalisés permission_select_project_custom_fields: Sélectionner les attributs du projet permission_select_project_modules: Sélectionner modules de projet permission_select_project_phases: Sélectionner les phases du projet @@ -5175,6 +5592,16 @@ fr: permission_work_package_assigned: Devenir assigné/responsable permission_work_package_assigned_explanation: Des lots de travaux peuvent être assignés à des utilisateurs et des groupes possédant ce rôle dans le projet respectif placeholder_users: + criteria: + activate: Activer les critères de filtrage + activate_caption: 'Cela permet d''ajouter à cet utilisateur fictif un ensemble de filtres qui définissent les utilisateurs pouvant répondre aux critères souhaités. + + ' + enable: Rechercher des utilisateurs selon des critères + enable_caption: Décrivez le type d'utilisateur que cet utilisateur fictif représente afin de pouvoir lui suggérer des utilisateurs correspondants. + matching_users: Utilisateurs répondant aux critères de filtrage + no_matching_users: Aucun utilisateur ne répond à ces critères. + show_all_matching_users: Afficher les %{count} utilisateurs correspondants delete_tooltip: Supprimer l'utilisateur fictif deletion_info: data_consequences: 'Toutes les occurrences de l''utilisateur fictif (par exemple, en tant que responsable ou autre valeur utilisateur) seront réaffectées à un compte appelé « Utilisateur supprimé ». Comme les données de chaque compte supprimé sont réaffectées à ce compte, il ne sera pas possible de distinguer les données que l''utilisateur a créées des données d''un autre compte supprimé. @@ -5196,7 +5623,7 @@ fr: name: OmniAuth SAML / authentification unique portfolio: count: - one: 1 portefeuille + one: "%{count} portfolio" other: "%{count} portefeuilles" zero: 0 portefeuille filters: @@ -5207,8 +5634,8 @@ fr: label: Filtre sur le nom du portefeuille placeholder: Rechercher des portefeuilles sub_items_html: - one: "1 sous-élément" - other: "%{count} sous-éléments" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Portefeuilles actifs archived: Portefeuilles archivés @@ -5222,7 +5649,7 @@ fr: Elle peut être utilisée pour mettre en évidence les lots de travaux dans le tableau. program: count: - one: 1 programme + one: "%{count} program" other: "%{count} programmes" zero: 0 programme filters: @@ -5234,7 +5661,7 @@ fr: confirmation_message: L'archivage de ce projet rendra celui-ci, ainsi que tous ses descendants, inaccessibles à tous les utilisateurs de cette instance. Les projets archivés peuvent être restaurés. title: Archiver le projet count: - one: 1 projet + one: "%{count} project" other: "%{count} projets" zero: 0 projet destroy: @@ -5339,11 +5766,11 @@ fr: no_status_when_submitted: Échec de l'activation de la demande d'initiation de projet, car le type de lot de travaux %{type} doit être associé à au moins un statut. Veuillez activer au moins un flux de travail de statut pour ce type de lot de travaux. no_work_package_type: La demande d'initiation de projet n'a pas pu être activée, car elle nécessite au moins un type de lot de travaux actif et ce projet n'en a pas. Veuillez ajouter au moins un type de lot de travaux à ce projet. export: - description_attachment_export: L'artefact généré sera enregistré en tant que pièce jointe au format PDF dans le lot de travaux de l'artefact. - description_file_link_export: Le lot de travaux de l'artefact contiendra un lien vers un fichier PDF stocké dans un espace de stockage de fichiers externe. Nécessite un espace de stockage de fichiers opérationnel avec des dossiers de projet gérés automatiquement pour ce projet. Actuellement, seuls les espaces de stockage de fichiers Nextcloud sont pris en charge. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Sélectionnez les espaces de stockage de fichiers externes configurés qui doivent être utilisés. external_file_storage: Espace de stockage de fichiers externe - label_artifact_export: Exportation d'artefacts + label_artifact_export: Artifact export label_attachment_export: Enregistrer en tant que pièce jointe au lot de travaux label_file_link_export: Importer le fichier vers un espace de stockage externe et ajouter un lien vers le lot de travaux pdf_file_storage: Stockage de fichiers PDF @@ -5353,6 +5780,12 @@ fr: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Il n'y a actuellement aucun champ personnalisé disponible. forums: no_results_content_text: Créer un nouveau forum @@ -5449,15 +5882,15 @@ fr: new_heading: Champs qui deviennent disponibles nothing_affected: Aucun champ ni statut n'est concerné. status_count: - one: 1 lot de travaux - other: "%{count} lots de travaux" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tableau)" value_count: - one: 1 lot de travaux a une valeur - other: "%{count} lots de travaux ont une valeur" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 lot de travaux utilisera la nouvelle configuration - other: "%{count} lots de travaux utiliseront la nouvelle configuration" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Le projet utilise désormais %{type}. target_label: Variante title: "%{type} : Changer de variante" @@ -5468,7 +5901,7 @@ fr: variants_not_allowed: Ce type ne permet pas la création de variantes au sein des projets. versions: no_results_content_text: Créer une nouvelle version - no_results_title_text: Aucune version du projet pour le moment. + no_results_title_text: Aucune version correspondant aux critères de filtrage n'a été trouvée pour ce projet. show_work_packages: Afficher les lots de travaux work_packages_graph: Graphique des lots de travaux work_package_priorities: @@ -5476,15 +5909,27 @@ fr: status: button_edit: Modifier le statut wizard: - create_artifact_storage_error: Échec de l'enregistrement de l'artefact dans l'espace de stockage de fichiers - create_artifact_work_package_error: Échec de la création d'un lot de travaux d'artefact + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Ce projet n'a aucun attribut de projet activé pour l'assistant. Activez-en au moins un dans les paramètres du projet. no_help_text: Cet attribut n'a pas de texte d'aide défini. progress_label: "%{current} sur %{total}" sections: Sections sidebar_content_title: Contenu - success: Les attributs du projet ont été enregistrés et le lot de travaux de l'artefact a été créé avec succès. + success: Project attributes saved and artifact work package created successfully. title: Demande de lancement du projet + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Appliquer le filtre préconfiguré configure_view: @@ -5513,8 +5958,8 @@ fr: action_title: Réagir add_reaction: Ajouter une réaction and_others: - one: et 1 autre - other: et %{count} autres + one: and %{count} other + other: and %{count} others and_user: et %{user} react_with: Réagir avec %{reaction} reaction_by: "%{reaction} par" @@ -5633,6 +6078,31 @@ fr: warnings: cannot_annotate: Ce fichier ne peut pas être annoté. roles: + delete_dialog: + confirm: Voulez-vous vraiment supprimer ce rôle ? + entry_projects: + one: "(Projet : %{projects})" + other: "(Projets : %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Voulez-vous vraiment supprimer le rôle « %{name} » ? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Parmi ces utilisateurs, %{count} perdront l'accès aux projets dans lesquels ce rôle était le seul qui leur était attribué. Voulez-vous vraiment supprimer ce rôle ? + zero: Aucun de ces utilisateurs ne perdra l'accès à ses projets. Voulez-vous vraiment supprimer ce rôle ? + show_memberships: Afficher toutes les appartenances associées à ce rôle + summary: "%{users} dans %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Supprimer le rôle edit: default_for_new_projects_warning: 'Ce rôle est configuré comme le rôle par défaut attribué aux utilisateurs non administrateurs qui créent un projet. Ne supprimez pas les autorisations suivantes, sinon les créateurs de projets ne pourront pas terminer la configuration de leurs projets nouvellement créés :' index: @@ -5644,6 +6114,15 @@ fr: permissions: section_check_all_label: Attribuer toutes les autorisations %{module} section_uncheck_all_label: Désattribuer toutes les autorisations %{module} + permissions_dialog: + edit_permissions: Modifier les autorisations du rôle + no_permissions: Ce rôle n'accorde aucune autorisation. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Afficher les autorisations + preview_aria_label: Afficher les autorisations de %{role} + title: Autorisations de « %{name} » report: matrix_caption: Matrice des autorisations pour le module %{module} matrix_check_all_label: Attribuer toutes les autorisations %{module} à tous les rôles @@ -5748,7 +6227,7 @@ fr: setting_default_projects_wiki: Activer par défaut la fonctionnalité wiki pour les nouveaux projets setting_diff_max_lines_displayed: Nombre maximal de lignes de «diff» affichées setting_disable_password_login: Désactiver l'authentification par mot de passe - setting_display_subprojects_work_packages: Par défaut, afficher les lots de travaux des sous-projets dans les projets parents + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Format de durée setting_duration_format_days_and_hours: Jours et heures setting_duration_format_hours_only: Heures seulement @@ -5863,6 +6342,7 @@ fr: setting_start_of_week: La semaine commence le setting_sys_api_description: Le service web de gestion de dépôt fournit l'intégration et l'autorisation d'accès aux dépôts. setting_sys_api_enabled: Activer le service web de gestion de dépôt + setting_sys_api_key: API key setting_time_format: Heure setting_total_percent_complete_mode: Calcul des totaux de la hiérarchie en % réalisé setting_total_percent_complete_mode_simple_average: Moyenne simple @@ -5915,7 +6395,7 @@ fr: description_html: 'Sélectionnez le mode dans lequel l''intégration du scanner antivirus doit fonctionner.
  • %{disabled_option}: Les fichiers importés ne sont pas scannés pour les virus.
  • %{socket_option}: Vous avez installé ClamAV sur le même serveur qu''OpenProject et le démon de scan clamd tourne en arrière-plan.
  • %{host_option}: Vous envoyez les fichiers à un hôte externe pour réaliser le scan antivirus .
' - remaining_quarantined_files_html: 'L''analyse des virus a été désactivée. Il reste %{file_count} fichier(s) en quarantaine. Pour les consulter, veuillez visiter ce lien : %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'L''analyse antivirus a été activée avec succès. %{file_count} fichiers ont été téléchargés précédemment et doivent encore être analysés. Ce processus a été planifié en arrière-plan. Les fichiers resteront accessibles pendant l''analyse. @@ -5926,6 +6406,7 @@ fr: ' title: Analyse de virus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Si vous désactivez cette option, la liste des pièces jointes dans l''onglet des fichiers des lots de travaux sera masquée pour les nouveaux projets. Les fichiers joints dans la description d''un lot de travaux seront toujours téléchargés dans l''espace de stockage interne des pièces jointes. ' @@ -6017,12 +6498,12 @@ fr: confirmation_message: L'assistant de demande de lancement ne sera plus disponible pour les nouveaux projets basés sur ce modèle. Les chefs de projet et les propriétaires de projet devront configurer et remplir manuellement les informations pertinentes dans la vue d'ensemble du projet. heading: Désactiver cette demande de lancement de projet ? title: Désactiver la demande de lancement de projet - header_description: 'OpenProject peut générer un assistant étape par étape pour aider les chefs de projet à remplir une demande de lancement de projet. Vous pouvez choisir les attributs du projet à inclure et créer un artefact PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nom de l'artefact - artifact_name_caption: Choisissez, pour cet artefact, le nom recommandé par votre cadre de gestion de projet. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Assistant de création de projet project_initiation_request: Demande de lancement du projet @@ -6042,8 +6523,8 @@ fr: Vous avez envoyé une demande de lancement de projet pour **%{project_name}**. Elle est actuellement en attente d'examen. Cliquez sur le lien ci-dessous pour accéder au lot de travaux contenant votre demande. confirmation_email_text: Texte de l'e-mail de confirmation - description: Lorsqu'un utilisateur soumet une demande de lancement de projet, un nouveau lot de travaux est créé, auquel est joint l'artefact de la demande sous forme de fichier PDF. Les paramètres ci-dessous définissent le type, le statut et la personne assignée à ce nouveau lot de travaux. - description_template: "**Ce lot de travaux a été créé automatiquement à l'issue du flux de travail %{wizard_name}.** Un artefact PDF contenant toutes les informations soumises a été généré et joint à ce lot de travaux à des fins de référence et d'audit. Pour mettre à jour ou relancer les étapes de lancement, vous pouvez rouvrir l'assistant à tout moment à l'aide du lien ci-dessous :\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Envoyer un e-mail de confirmation à l'utilisateur qui a soumis la demande de lancement du projet status_when_submitted: Statut lors de l'envoi status_when_submitted_caption: Le statut que le lot de travaux généré prendra une fois la demande envoyée. @@ -6051,7 +6532,7 @@ fr: work_package_comment_caption: Le responsable sélectionné ci-dessus sera automatiquement @mentionné dans le commentaire. work_package_comment_default: Une demande de lancement de projet pour **%{project_name}** a été envoyée et est en attente d'examen. work_package_type: Type de lot de travaux - work_package_type_caption: Le type de lot de travaux qui doit être utilisé pour stocker l'artefact terminé. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Ouvrir l'assistant de création de projet project_initiation_request: Ouvrir la demande de lancement du projet @@ -6071,6 +6552,7 @@ fr: heading: Nouvelle phase no_gate: Aucune porte non_defined: Aucune phase n'est actuellement définie. + order_changed: Order successfully changed. phase_gates: Portes de phase section_header: Phases start_gate: Porte de début @@ -6127,7 +6609,7 @@ fr: section_work_week: Semaine de travail sharing: count: - one: 1 utilisateur + one: "%{count} user" other: "%{count} utilisateurs" zero: 0 utilisateur denied: Vous n'avez pas l'autorisation de partager %{entities}. @@ -6215,19 +6697,19 @@ fr:
Remarque : les valeurs héritées (par exemple, des enfants ou des relations) s'appliquent toujours. index: + could_not_be_moved: Impossible de déplacer le statut. headers: - excluded_from_totals: Exclus des totaux is_closed: Fermé - is_default: Défaut is_readonly: Lecture seule + no_filter_results_title_text: Aucun statut ne correspond au filtre actuel. no_results_content_text: Ajouter un nouveau statut no_results_title_text: Aucun statut de lots de travaux pour le moment. + status_actions: Actions sur le statut support: array: sentence_connector: et skip_last_comma: faux text_access_token_hint: Les jetons d'accès vous permettent d'octroyer aux applications externes un accès aux ressources dans OpenProject. - text_accessibility_hint: Le mode d'accessibilité est conçu pour les utilisateurs aveugles, atteints d'un handicap moteur ou qui possèdent une vue déficiente. Pour ces derniers, les éléments actifs sont mis spécialement en évidence. Veuillez noter que le module de backlogs n'est pas disponible dans ce mode. text_analyze: 'Analyse suivante: %{subject}' text_are_you_sure: Êtes-vous sûr ? text_are_you_sure_continue: Voulez-vous vraiment continuer ? @@ -6270,12 +6752,6 @@ fr: ' text_custom_field_possible_values_info: Une ligne pour chaque valeur - text_custom_logo_instructions: 'Le logo s''adapte automatiquement à l''en-tête. Pour obtenir de meilleurs résultats, importez un logo blanc sur une image transparente de 130×47px. Vous pouvez ajouter autant d''espacement que vous le souhaitez à l''intérieur de cette image. - - ' - text_custom_logo_mobile_instructions: 'Le logo s''adapte automatiquement à l''en-tête. Pour obtenir de meilleurs résultats, importez un logo blanc sur une image transparente de 130×33px. Vous pouvez ajouter autant d''espacement que vous le souhaitez à l''intérieur de cette image. - - ' text_custom_touch_icon_instructions: 'Il s''agit de l''icône qui apparaît dans votre appareil mobile ou tablette lorsque vous placez un signet sur votre écran d''accueil. Il doit s''agir d''une image PNG carrée de 180 pixels x 180 pixels. Veuillez vous assurer que l''arrière-plan de l''image n''est pas transparent, sans quoi son apparence sera peu adaptée sur iOS. ' @@ -6325,6 +6801,7 @@ fr: text_length_between: Longueur entre %{min} et %{max} caractères. text_line_separated: Valeurs multiples autorisées (une ligne par valeur). text_load_default_configuration: Charger la configuration par défaut + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Il n'y a aucun jeton d'accès qui puisse être configuré. text_no_configuration_data: |- Les rôles, les types, l'état des lots de travaux et les flux de travail n'ont pas encore été configurés. @@ -6430,6 +6907,68 @@ fr: tree_view: label_empty_sub_tree: Aucun élément types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Comparer les variantes + blankslate: + description: Ajoutez une deuxième variante à ce type pour voir ce qui les différencie. + title: Il n'y a encore rien à comparer + description: Comparez les variantes de ce type avec le type parent. + labels: + duplicate: Doublon possible + duplicate_of: Configurée exactement comme %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Type parent + same_as_type: Identique au type parent + rows: + form: + fields: Champs + groups: Sections + required: Dont obligatoires + same_as_base: Identique au type parent + scope: + availability: Disponible pour + enabled_in_new_projects: Actif dans les nouveaux projets + projects: Projets + workflows: + roles: Rôles concernés + same_as_base: Identique au type parent + statuses: Statuts + transitions: Transitions + sections: + configuration: Vue d'ensemble de la configuration + form: Formulaire + scope: Périmètre + workflows: Flux de travail + title: Comparer les variantes + title_for_type: Comparer les variantes de %{name} + values: + global: Tous les projets + inheriting_from: Hérite de + project_specific: Propre au projet ([%{project}](project_url)) + same_as_base: Identique au type parent creation_wizard: add_variant: Ajouter une variante à %{name} create_type: Créer un type @@ -6439,14 +6978,40 @@ fr: finish: Terminer placeholder_description: Cette étape sera bientôt disponible. progress_label: Étape %{number} sur %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Valeurs par défaut details: Détails form_configuration: Formulaire - pdf: Génération de PDF + pdf: Generate PDF project_attributes: Attributs du projet projects: Projets - workflows: Flux de travail + start: Start + workflows: Workflow success: Création réussie. edit: breadcrumb_variant: 'Variante : %{name}' @@ -6455,8 +7020,10 @@ fr: caption: Définissez un modèle utilisant des attributs référencés et du texte pour générer automatiquement les sujets des lots de travaux. Les utilisateurs ne pourront pas modifier les sujets manuellement. label: Sujets générés automatiquement description: - caption: Ajoutez le texte qui sera inséré dans le champ « Description » de tous les nouveaux lots de travaux de ce type. - label: Texte de description par défaut + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Les utilisateurs peuvent saisir et modifier manuellement les sujets des lots de travaux sans restriction. label: Sujets modifiables manuellement @@ -6485,21 +7052,21 @@ fr: file_link: caption: Le PDF généré est chargé dans l'espace de stockage Nextcloud du projet, géré automatiquement, puis un lien vers ce fichier est ajouté au lot de travaux. Les lots de travaux des projets dépourvus d'un tel espace de stockage sont ignorés. label: Importer le fichier dans un espace de stockage externe et ajouter au lot de travaux un lien vers ce fichier - intro: Générer automatiquement un artefact PDF pour un lot de travaux de ce type chaque fois que son statut change. - invalid_mode: Mode d'exportation d'artefacts non valide. - label: Exportation automatique des artefacts + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Aucun fichier PDF n'est généré automatiquement. label: Désactivé - section_title: Exportation automatique des artefacts + section_title: Automatic artifact export unavailable: indisponible, aucun espace de stockage Nextcloud géré automatiquement n'est configuré - intro: Sélectionnez les modèles disponibles que vous souhaitez activer pour ce type. Le modèle détermine la conception et les attributs visibles dans le fichier PDF exporté d'un lot de travaux utilisant ce type. Le premier modèle de la liste est sélectionné par défaut. pdf_export_templates: actions: label_disable_all: Désactiver tout label_enable_all: Activer tout label_toggle_template: Activer/désactiver %{template} label: Modèles d'exportation PDF + order_changed: Order successfully changed. tab: Générer un fichier PDF templates: readonly_error: Ne peut pas être modifié tant qu'il est lié à un type source. @@ -6516,6 +7083,8 @@ fr: confirm_delete_group: Voulez-vous vraiment supprimer cette section ? Cette action ne peut pas être annulée automatiquement. confirm_reset: Voulez-vous vraiment réinitialiser le formulaire ? custom_field: Champ personnalisé + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Supprimer la section drag_to_activate: Faites glisser les champs à partir d'ici pour les activer drag_to_reorder: Faire glisser @@ -6537,6 +7106,14 @@ fr: query_group_label: Tableau des lots de travaux associés remove_attribute: Retirer de la section rename_group: Renommer la section + required: + already_required_globally: Ce champ personnalisé est obligatoire pour tous les types. + for_variant: Obligatoire dans ce type + globally: Obligatoire + globally_hint: Modifiez ce paramètre dans le champ personnalisé + mark: Rendre obligatoire dans ce type + not_a_custom_field: Seul un champ personnalisé peut être rendu obligatoire pour un type donné. + unmark: Ne pas rendre obligatoire dans ce type reset_description: 'Cette opération réaffectera les attributs à leur groupe par défaut et désactivera TOUS les champs personnalisés. ' @@ -6546,12 +7123,14 @@ fr: tab: Formulaire untitled_group: Groupe sans titre overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Mode de configuration - dependents: Types et variantes dépendants mode: always_manual: Toujours manuel - inheriting_from_html: Hérite de %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Configuré manuellement + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Paramètres tab: Vue d'ensemble project_attributes: @@ -6565,12 +7144,12 @@ fr: manual: description: Une fois que vous aurez [créé des attributs de projet](administration_url), ceux-ci apparaîtront ici et pourront être associés à un type. title: Aucun attribut de projet n'est disponible - description: Sélectionnez les attributs de projet à activer pour ce type de lot de travaux. Les attributs activés s'affichent dans un onglet distinct des lots de travaux de ce type. Les utilisateurs disposant des autorisations nécessaires peuvent les y consulter et les modifier. disabled: Désactivé exclusions: attribute_label: Hériter de %{attribute} filter: Rechercher par section ou par nom tab: Attributs du projet + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Retirer le type %{type} de %{project} ? @@ -6583,10 +7162,12 @@ fr: empty_state: description: Ajouter un projet pour y utiliser cette configuration. no_results: Aucun projet correspondant. + title: Not used in any project yet enable_all: Activer pour tous les projets select_projects: Sélectionner des projets select_projects_description: Sélectionnez les projets dans lesquels vous souhaitez utiliser ce type. tab: Projets + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6601,43 +7182,17 @@ fr: title: Copier la configuration invalid_source: La configuration ne peut pas être copiée depuis le type sélectionné. Veuillez sélectionner un autre type source. success: La configuration a été copiée. - dependents: - blank: - description: Aucun autre type ni aucune autre variante n'hérite de cette configuration - title: Aucun type dépendant - description: - one: La configuration suivante est héritée par un autre type ou une autre variante. Toute modification que vous y apporterez aura également des répercussions sur l'élément dépendant. - other: La configuration suivante est héritée par %{count} autres types ou variantes. Toute modification que vous y apportez aura également des répercussions sur les éléments qui en dépendent. - dialog: - description: Ces types et variantes héritent de la configuration de cette section. Toute modification que vous effectuez ici s'applique à l'ensemble de ces éléments. - direct_heading: Dépendants directs - indirect_heading: Dépendants indirects - title: Types dépendants - variant_of_html: Variante de %{type_name} - variant_of_via_html: Variante de %{type_name}, avec héritage via %{source_name} - via_html: Héritage via %{source_name} - title: - one: 1 type dépendant - other: "%{count} types dépendants" - view: Afficher les types dépendants exclusions: not_inherited: Vu que cette configuration n'est pas héritée, il n'y a rien à exclure. Modifiez-la directement. unknown_aspect: Section de configuration inconnue « %{aspect} ». inherited: - change_source: Modifier le type source configure_manually: Configurer manuellement confirm_dialog: - change_source: - description_html: En remplaçant le type source par %{source_name}, vous écraserez les paramètres actuels, ce qui pourrait affecter les informations existantes des lots de travaux de ce type. - heading: Modifier le type source ? - title: Modifier le type source check_box: Je comprends que cela remplacera les paramètres actuels from_manual: description: Tous les paramètres actuellement sélectionnés seront remplacés et pourraient avoir une incidence sur les informations existantes concernant les lots de travaux de ce type. heading: Changer de mode de configuration ? title: Changer de mode de configuration - description: Cette configuration est héritée du type source [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Cette configuration est héritée du type source %{source_name}%{source_suffix}. dialog: description: Définissez un type source dont cette configuration héritera. Toute nouvelle configuration ajoutée à la source s'applique également ici. source_label: Type source @@ -6645,6 +7200,9 @@ fr: submit: Changer title: Hériter d'un autre type invalid_source: La configuration ne peut pas être héritée du type sélectionné. Veuillez sélectionner un autre type source. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: Le mode de configuration a été modifié. title: Configuration héritée manual: @@ -6653,13 +7211,14 @@ fr: description: Tous les paramètres actuellement sélectionnés seront remplacés et pourraient avoir une incidence sur les informations existantes concernant les lots de travaux de ce type. heading: Changer de mode de configuration ? title: Changer de mode de configuration - copy_from_type: Copier à partir d'un autre type description: Aucun paramètre n'est hérité. Vous pouvez toutefois copier les paramètres d'un autre type une seule fois. dialog: submit: Changer title: Configurer manuellement - inherit_from_type: Hériter d'un autre type + inherit_from_type: Inherit from parent invalid_mode: Le mode sélectionné n'est pas disponible pour cette configuration. Veuillez choisir un autre mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Commencez par effectuer une copie ponctuelle des paramètres dont cette configuration hérite actuellement. @@ -6673,12 +7232,16 @@ fr: success: Le mode de configuration a été modifié. title: Configuration manuelle parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Vous pouvez créer des variantes afin de proposer différentes versions de ce type à divers projets.
Chaque variante peut hériter, copier ou disposer de sa propre configuration personnalisée pour le modèle par défaut, les champs personnalisés, les flux de travail et les préférences. ' title: Il n'existe aucune variante pour ce type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Créée dans %{project} delete: description: Les projets utilisant cette variante seront basculés vers la variante que vous choisirez ci-dessous avant que cette variante ne soit supprimée. @@ -6687,33 +7250,74 @@ fr: filter_no_results: Aucune variante ne correspond à ce filtre global_section: description: Ces variantes sont disponibles dans tous les projets. - title: Variantes + title: Variantes globales project_specific_section: description: Ces variantes ne sont disponibles que dans les projets au sein desquels elles ont été créées. title: Variantes spécifiques à un projet workflow: - tab: Flux de travail + tab: Workflow index: add_variant: Ajouter une variante à %{name} add_variant_action: Ajouter une variante + convert_to_global: Convertir en variante globale + convert_to_global_dialog: + confirm: Convertir + text: 'Cette variante propre au projet sera convertie en variante globale disponible pour tous les projets. L''administrateur du projet ne pourra plus la modifier. + + ' + workflow_text: 'Son flux de travail « %{name} » appartient à ce projet et deviendra lui aussi global. + + ' + convert_to_global_notice: "%{name} est désormais une variante globale." + convert_to_global_rename: + confirm: Convertir + text: Une variante globale portant déjà ce nom existe. Choisissez un autre nom. + title: Choisir un autre nom pour cette variante + created_by_migration: Migrated + delete: + description: Le type sera supprimé définitivement. Cette action est irréversible. + description_with_variants: Le type et toutes ses variantes seront supprimés définitivement. Cette action est irréversible. + heading: Supprimer le type « %{name} » ? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Supprimer le type description: 'Chaque zone de configuration des types et variantes peut être configurée indépendamment, copiée depuis un autre type ou entièrement liée à une source. ' duplicate_name: Copie de %{name} duplicate_notice: "%{name} a été dupliqué." enabled_in_new_projects: Actif dans les nouveaux projets + filter: Filter by name + filter_no_results: No types match this filter make_default: Activer dans les nouveaux projets make_default_notice: "%{name} est désormais activé dans les nouveaux projets." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Créer un nouveau type no_results_title_text: Il n'y a actuellement aucun type. project_variants_count: - one: 1 variante propre au projet - other: "%{count} variantes propres au projet" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: Ne pas activer dans les nouveaux projets remove_default_notice: "%{name} n'est plus activé dans les nouveaux projets." type_label: Type variant_label: Variante + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Jalon + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorer cet avertissement. message: Vous pouvez rencontrer des erreurs et une expérience dégradée sur cette page. @@ -6732,8 +7336,8 @@ fr: authorization_rejected: Vous n'êtes pas autorisé à vous authentifier. blocked: verrouillé temporairement blocked_num_failed_logins: - one: verrouillé temporairement (une tentative de connexion échouée) - other: verrouillé temporairement (%{count} tentatives de connexion échouées) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Vous êtes sur le point de changer le statut de '%{name}'. Voulez-vous vraiment continuer ? deleted: Utilisateur supprimé department_ldap_managed_caption: Ce service est géré par la synchronisation LDAP et ne peut pas être modifié ici. @@ -6833,7 +7437,7 @@ fr: deletion_warning: Voulez-vous vraiment révoquer cette session ? Vous serez déconnecté(e) sur cet appareil. device: Dispositif/système d'exploitation expires: Expiration - instructions: Vous êtes connecté(e) à votre compte via les appareils suivants. Révoquez les sessions que vous ne reconnaissez pas ou qui proviennent d'appareils que vous ne contrôlez pas. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Dernière connexion may_not_delete_current: Vous ne pouvez pas supprimer votre session actuelle. session_name: "%{browser_name} %{browser_version} sur %{os_name}" @@ -6893,13 +7497,19 @@ fr: start_date: Date de début work_days: Jours de travail work_days_count: - one: 1 jour ouvrable - other: "%{count} jours ouvrables" + one: "%{count} working day" + other: "%{count} working days" work_hours: Heures de travail version_status_closed: clôturé version_status_locked: verrouillé version_status_open: ouvert versions: + filter_status_labels: + closed: Fermée + locked: Verrouillée + open: Ouverte + index: + filter_label: Rechercher des versions overview: no_results_title_text: Il n'y a actuellement aucun lot de travaux assigné à cette version. work_packages_in_archived_projects: La version est partagée avec les projets archivés qui ont encore des lots de travaux assignés à cette version. Ils sont comptés, mais n'apparaîtront pas dans les vues liées. @@ -7069,13 +7679,15 @@ fr: required_description: Marque ce lot de travaux comme étant une exigence pour le lot de travaux correspondant requires_description: Marque le lot de travaux lié comme obligatoire pour celui-ci work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Les lots de travaux n'ont pas pu être copiés. could_not_be_deleted: 'Les lots de travaux suivants n''ont pas pu être supprimés :' could_not_be_saved: 'Les lots de travaux suivants n''ont pas pu être sauvegardés :' deletion_successful: - one: 1 lot de travaux a été supprimé avec succès. - other: "%{count} lots de travaux ont été supprimés avec succès." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: descendant de la sélection move_failed: Les lots de travaux n'ont pas pu être déplacés. none_could_be_saved: Aucun des %{total} lots de travaux n'a pu être mis à jour. @@ -7099,18 +7711,18 @@ fr: description_with_visible_descendants: Voulez-vous vraiment supprimer les lots de travaux sélectionnés et tous les descendants visibles ? heading: Supprimer définitivement ces %{count} lots de travaux ? hidden_descendants_only_warning: - one: Il y a un descendant que vous ne pouvez pas voir. Il ne sera pas supprimé, mais la relation sera retirée. - other: Il y a %{count} descendants que vous ne pouvez pas voir. Ils ne seront pas supprimés, mais toutes les relations hiérarchiques correspondantes seront retirées. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Tous les descendants visibles seront supprimés. Cependant, il existe un descendant que vous ne pouvez pas voir. Il ne sera pas supprimé, mais la relation sera retirée. - other: Tous les descendants visibles seront supprimés. Cependant, il existe %{count} descendants que vous ne pouvez pas voir. Ceux-ci ne seront pas supprimés, mais toutes les relations hiérarchiques les concernant seront retirées. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Supprimer %{count} lots de travaux undeletable_descendants_warning: - one: Vous ne pouvez pas supprimer un descendant, car vous ne disposez pas des autorisations nécessaires. Il sera conservé, mais la relation hiérarchique sera retirée. - other: Vous ne pouvez pas supprimer %{count} descendants, car vous ne disposez pas des autorisations nécessaires. Ils seront conservés, mais toutes les relations hiérarchiques correspondantes seront retirées. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Vous ne pouvez pas supprimer un descendant, car vous ne disposez pas des autorisations nécessaires dans %{projects}. Il sera conservé, mais la relation hiérarchique sera retirée. - other: Vous ne pouvez pas supprimer %{count} descendants, car vous ne disposez pas des autorisations nécessaires dans %{projects}. Ils seront conservés, mais toutes les relations hiérarchiques correspondantes seront retirées. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7167,18 +7779,154 @@ fr: description: Voulez-vous vraiment supprimer « %{name} » ? heading: Supprimer définitivement ce lot de travaux ? hidden_descendants_only_warning: - one: Ce lot de travaux comporte un descendant que vous ne pouvez pas voir. Il ne sera pas supprimé, mais la relation hiérarchique sera retirée. - other: Ce lot de travaux comporte %{count} descendants que vous ne pouvez pas voir. Ils ne seront pas supprimés, mais la relation hiérarchique sera retirée. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Tous les descendants visibles seront supprimés. Cependant, ce lot de travaux comporte un descendant que vous ne pouvez pas voir. Il ne sera pas supprimé, mais la relation hiérarchique sera retirée. - other: Tous les descendants visibles seront supprimés. Cependant, ce lot de travaux comporte %{count} descendants que vous ne pouvez pas voir. Ils ne seront pas supprimés, mais la relation hiérarchique sera retirée. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Supprimer le lot de travaux undeletable_descendants_warning: - one: Vous ne pouvez pas supprimer un descendant, car vous ne disposez pas des autorisations nécessaires. Il sera conservé, mais la relation hiérarchique sera retirée. - other: Vous ne pouvez pas supprimer %{count} descendants, car vous ne disposez pas des autorisations nécessaires. Ils seront conservés, mais toutes les relations hiérarchiques correspondantes seront retirées. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Vous ne pouvez pas supprimer un descendant, car vous ne disposez pas des autorisations nécessaires dans %{projects}. Il sera conservé, mais la relation hiérarchique sera retirée. - other: Vous ne pouvez pas supprimer %{count} descendants, car vous ne disposez pas des autorisations nécessaires dans %{projects}. Ils seront conservés, mais toutes les relations hiérarchiques correspondantes seront retirées. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Les types des lots de travaux ou de leurs descendants ne sont pas activés dans le projet cible. Activez les types manquants dans le projet cible pour qu''ils restent inchangés. Sinon, sélectionnez dans la liste un type disponible dans le projet cible. @@ -7210,37 +7958,53 @@ fr: version: no_results_title_text: Il n'y a actuellement aucune version disponible. x_descendants: - one: Un lot de travaux descendant - other: "%{count} lots de travaux descendants" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copiez le flux de travail actuel vers un ou plusieurs rôles dans le même type de lot de travaux. Si le rôle sélectionné a déjà un flux de travail, celui-ci sera remplacé. - label: Copier vers d'autres rôles - from_type: - caption: Copiez le flux de travail actuel vers un autre type de lots de travaux. Si le type sélectionné a déjà un flux de travail, celui-ci sera remplacé. Cela affecte tous les rôles. - label: Copier vers un autre type - source_role_id: - label: Rôle source target_role_ids: label: Rôles cibles - target_variant_ids: - label: Types cibles from_roles: create: notice: one: Copie réussie du flux de travail dans le rôle « %{role_name} ». other: Copie réussie du flux de travail vers les %{count} rôles. - from_variants: - create: - notice: - one: Le flux de travail a été copié avec succès dans « %{type_name} ». - other: Le flux de travail a été copié avec succès dans %{count} types. new: - title: Copier le flux de travail de « %{source_type} » + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Matrice de flux de travail matrix_caption_assignee: Matrice de flux de travail pour le responsable matrix_caption_author: Matrice de flux de travail pour l'auteur @@ -7249,12 +8013,88 @@ fr: matrix_check_uncheck_all_in_row_label_html: Activer/désactiver les transitions de %{old_status} à tous les nouveaux statuts matrix_checkbox_label: Permettre la transition de %{old_status} à %{new_status} matrix_uncheck_all_label: Interdire toutes les transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtrer par nom de type... + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configurer les transitions de statut pour chaque type de lot de travaux. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Changer les jours ouvrables dialog: diff --git a/config/locales/crowdin/he.seeders.yml b/config/locales/crowdin/he.seeders.yml index ada32cf49717..dcd1c5624178 100644 --- a/config/locales/crowdin/he.seeders.yml +++ b/config/locales/crowdin/he.seeders.yml @@ -250,70 +250,26 @@ he: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: קטגוריה 1 (שינוי בהגדרות הפרויקט) queries: item_0: name: תכנית פרויקט item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: משימות boards: @@ -345,12 +301,13 @@ he: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml index df8ef29c2bc1..869295582286 100644 --- a/config/locales/crowdin/he.yml +++ b/config/locales/crowdin/he.yml @@ -40,7 +40,9 @@ he: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: מחק חשבון delete_confirmation: האם אתה בטוח שברצונך למחוק את החשבון? deletion_info: @@ -65,7 +67,9 @@ he: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: או היכנס באמצעות החשבון הקיים שלך + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ he: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ he: repository: Repository comment: commented: תגובות - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ he: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ he: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: מספר עמודות page: דף row_count: מספר שורות widgets: ווידג'טים group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ he: title: Title member: blocked: Blocked + principal_type: Member type roles: תפקידים notification: read_ian: Read in-app @@ -235,6 +265,7 @@ he: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ he: ongoing: Ongoing spent_on: תאריך type: סוג + token/base: + expires_on: Expiration date token/ical: calendar: לוח שנה ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ he: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: מנהל מערכת auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ he: last_name: שם משפחה ldap_auth_source: LDAP connection new_password: סיסמה חדשה - password_confirmation: אימות + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ he: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ he: header_look_and_feel: Look and feel impaired: מצב נגישות increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: איזור זמן warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ he: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: אב @@ -519,6 +565,10 @@ he: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ he: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ he: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ he: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -690,6 +756,13 @@ he: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ he: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ he: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,9 +963,9 @@ he: numeric: מספריים (למשל ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: שומש בעבר. נא בחר אחד שונה מהאחרון שהשתמשתה בו. - two: שומש בעבר. נא בחר אחד שונה מ %{count} האחרונים שהשתמשתה בהם. - other: שומש בעבר. נא בחר אחד שונה מ %{count} האחרונים שהשתמשתה בהם. + one: has been used before. Please choose one that is different from your last %{count} password. + two: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: מיוחדים (למשל ' %') uppercase: אותיות רישיות (למשל ' A') password_confirmation: @@ -978,6 +1034,8 @@ he: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1005,6 +1063,8 @@ he: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'חבילת עבודה #%{id} אינה יעד אפשרי לשיוך של ערכי הזמן.' @@ -1013,9 +1073,9 @@ he: template: body: 'אנא בדוק את השדות הבאים:' header: - one: שגיאה אחת מנעה מ%{model} להשמר - two: "%{count} שגיאות מנעו מ%{model} זה להשמר" - other: "%{count} שגיאות מנעו מ%{model} זה להשמר" + one: "%{count} error prohibited this %{model} from being saved" + two: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1065,6 +1125,10 @@ he: one: Authentication provider two: Authentication providers other: Authentication providers + automation: + one: Automation + two: Automations + other: Automations backup: one: Backup two: Backups @@ -1093,10 +1157,6 @@ he: one: Comment two: Comments other: Comments - custom_action: - one: Custom action - two: Custom actions - other: Custom actions custom_field: one: Custom field two: Custom fields @@ -1157,6 +1217,10 @@ he: one: Export setting two: Export settings other: Export settings + form_configuration: + one: Form + two: Forms + other: Forms forum: one: Forum two: Forums @@ -1181,6 +1245,10 @@ he: one: עדיפות two: Priorities other: Priorities + label: + one: Label + two: Labels + other: Labels ldap_auth_source: one: LDAP connection two: LDAP connections @@ -1509,7 +1577,28 @@ he: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1542,7 +1631,11 @@ he: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1575,7 +1668,7 @@ he: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1583,12 +1676,15 @@ he: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1621,16 +1717,30 @@ he: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1734,31 +1844,31 @@ he: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" two: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" two: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" two: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" two: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" two: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" two: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" other: "%{count} work packages" revert_dialog: @@ -1825,7 +1935,7 @@ he: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" two: "%{count} projects selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. @@ -1891,23 +2001,54 @@ he: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + two: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1938,6 +2079,18 @@ he: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1951,7 +2104,7 @@ he: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. two: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? @@ -2081,7 +2234,7 @@ he: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" two: "... %{count} more projects" other: "... %{count} more projects" banner: @@ -2123,7 +2276,7 @@ he: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2157,14 +2310,21 @@ he: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" two: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2174,7 +2334,7 @@ he: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? two: Remove %{count} statuses? other: Remove %{count} statuses? title: Remove statuses @@ -2188,7 +2348,31 @@ he: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2196,7 +2380,7 @@ he: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2250,10 +2434,6 @@ he: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2324,6 +2504,7 @@ he: groups: קבוצות hexcode: קוד hex id: מזהה + inexistent: Inexistent is_default: ערך ברירת המחדל is_for_all: עבור כל הפרוייקטים issue: חבילת עבודה @@ -2374,6 +2555,7 @@ he: updated_at: עודכן בתאריך updated_on: עודכן בתאריך uploader: Uploader + url: URL user: משתמש username: Username value: ערך @@ -2388,6 +2570,29 @@ he: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2516,6 +2721,7 @@ he: button_set_reminder: Set reminder button_show: הצג button_sort: מיין + button_stop_timer: Stop timer button_submit: שלח button_test: בחינה button_unarchive: הסר מהארכיון @@ -2582,9 +2788,9 @@ he: text: failed: לא ניתן להעתיק את פרויקט "%{source_project_name}" לפרויקט "%{target_project_name}". succeeded: הועתק הפרויקט "%{source_project_name}" ל "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2622,13 +2828,9 @@ he: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: עבור כל הפרוייקטים hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2649,7 +2851,7 @@ he: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2714,16 +2916,17 @@ he: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2787,72 +2990,72 @@ he: datetime: distance_in_words: about_x_hours: - one: בערך שעה אחד - two: בערך %{count} שעות - other: בערך %{count} שעות + one: about %{count} hour + two: about %{count} hours + other: about %{count} hours about_x_months: - one: בערך חודש אחד - two: בערך %{count} חודשים - other: בערך %{count} חודשים + one: about %{count} month + two: about %{count} months + other: about %{count} months about_x_years: - one: בערך שנה אחד - two: בערך %{count} שנים - other: בערך %{count} שנים + one: about %{count} year + two: about %{count} years + other: about %{count} years almost_x_years: - one: כמעט שנה - two: כמעט %{count} שנים - other: כמעט %{count} שנים + one: almost %{count} year + two: almost %{count} years + other: almost %{count} years half_a_minute: חצי דקה less_than_x_minutes: one: פחות מדקה two: פחות מ- %{count} דקות other: פחות מ- %{count} דקות less_than_x_seconds: - one: פחות משנייה - two: פחות מ- %{count} שניות - other: פחות מ- %{count} שניות + one: less than %{count} second + two: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: מעל שנה - two: מעל %{count} שנים - other: מעל %{count} שנים + one: over %{count} year + two: over %{count} years + other: over %{count} years x_days: - one: יום אחד - two: "%{count} ימים" - other: "%{count} ימים" + one: "%{count} day" + two: "%{count} days" + other: "%{count} days" x_hours: - one: שעה אחת - two: "%{count} שעות" - other: "%{count} שעות" + one: "%{count} hour" + two: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" two: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: דקה אחת - two: "%{count} דקות" - other: "%{count} דקות" + one: "%{count} minute" + two: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" two: "%{count} mins" other: "%{count} mins" x_months: - one: חודש אחד - two: "%{count} חודשים" - other: "%{count} חודשים" + one: "%{count} month" + two: "%{count} months" + other: "%{count} months" x_seconds: - one: שנייה אחת - two: "%{count} שניות" - other: "%{count} שניות" + one: "%{count} second" + two: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" two: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" two: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" two: "%{count} years" other: "%{count} years" units: @@ -3007,7 +3210,7 @@ he: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" two: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: @@ -3350,9 +3553,158 @@ he: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + two: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + two: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + two: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + two: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + two: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + two: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + two: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + two: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3377,6 +3729,8 @@ he: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3402,6 +3756,10 @@ he: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3417,7 +3775,7 @@ he: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3426,7 +3784,7 @@ he: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3451,6 +3809,31 @@ he: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3487,8 +3870,10 @@ he: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3538,6 +3923,7 @@ he: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3690,10 +4076,10 @@ he: label_copy_target: יעד label_copy_workflow_from: העתק זרימת עבודה זו מתוך label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: גרסת ליבה label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: המצב הנוכחי label_current_version: גרסה נוכחית label_custom_comment: "%{name} comment" @@ -3717,8 +4103,6 @@ he: label_custom_field_default_type: סוג ריק label_custom_field_new: שדה מותאם אישית חדש label_custom_field_plural: שדות מותאמים אישית - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: עיצוב label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3727,11 +4111,12 @@ he: label_database_version: PostgreSQL version label_date: תאריך label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: מ label_date_from_to: מ- %{start} אל %{end} label_date_to: אל label_dates: תאריכים + label_day: ימים label_day_plural: ימים label_default: ברירת מחדל label_defaults: Defaults @@ -3742,6 +4127,7 @@ he: label_deleted_custom_field: "(למחוק שדה מותאם אישית)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3812,6 +4198,7 @@ he: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: פורום חדש label_forum_plural: פורומים @@ -3830,6 +4217,7 @@ he: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: קבוצה + label_group_attributes_plural: Group attributes label_group_by: קבץ לפי label_group_named: Group %{name} label_group_new: קבוצה חדשה @@ -3881,8 +4269,8 @@ he: label_journal_diff: Description Comparison label_jump_to_a_project: קפוץ אל פרוייקט... label_keyword_plural: Keywords + label_label_plural: Labels label_language: שפה - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3904,6 +4292,7 @@ he: label_list: רשימה label_loading: טוען... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: מחובר בשם @@ -3915,6 +4304,7 @@ he: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: גודל מרבי label_me: אני label_member_all_admin: "(All roles due to admin status)" @@ -3933,7 +4323,6 @@ he: label_menu_item_name: Name of menu item label_message: Message label_message_last: הודעה אחרונה - label_message_new: הודעה חדשה label_message_plural: הודעות label_message_posted: Message added label_minute_plural: minutes @@ -3945,6 +4334,7 @@ he: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: חודש label_months_from: months from label_more: עוד label_more_information: More information @@ -3958,6 +4348,7 @@ he: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: שם label_never: אף פעם label_new: חדש @@ -3972,7 +4363,10 @@ he: label_news_singular: חדשות label_news_view_all: הצג את כל החדשות label_next: הבא + label_next_day: Next day + label_next_month: Next month label_next_week: שבוע הבא + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(ללא שינוי)" label_no_data: אין נתונים להצגה @@ -3980,6 +4374,7 @@ he: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: אין תאריך התחלה + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4046,7 +4441,10 @@ he: label_preview: תצוגה מקדימה label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4165,6 +4563,7 @@ he: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: זמן שבוזבז + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4184,6 +4583,7 @@ he: label_subtask_plural: Subtasks label_summary: פירוט label_system: מערכת + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4198,6 +4598,7 @@ he: label_time: זמן label_time_entry_activity_plural: Spent time activities label_time_entry_plural: זמן שבוזבז + label_timer_since: Started at %{time} label_title: כותרת label_today: today label_today_as_date: Select today as date. @@ -4233,7 +4634,9 @@ he: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: ערוך גרסה label_version_new: גרסה חדשה label_version_plural: גירסאות @@ -4246,6 +4649,7 @@ he: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4269,6 +4673,8 @@ he: label_wiki_start: דף פתיחה label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: חבילת עבודה label_work_package_attachments: Work package attachments @@ -4291,48 +4697,49 @@ he: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: אחד סגור + one: "%{count} closed" other: "%{count} סגורים" zero: 0 closed label_x_comments: - one: תגובה אחד + one: "%{count} comment" other: "%{count} תגובות" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" two: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" two: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: אחד פתוח + one: "%{count} open" other: "%{count} פתוחים" zero: 0 open label_x_projects: - one: פרוייקט אחד + one: "%{count} project" other: "%{count} פרויקטים" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" two: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' two: 'Time off: %{count} working days' other: 'Time off: %{count} working days' label_yesterday: אתמול @@ -4388,7 +4795,7 @@ he: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4445,6 +4852,8 @@ he: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4501,7 +4910,7 @@ he: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. two: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser @@ -4687,6 +5096,14 @@ he: create_button: צור dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + two: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4700,10 +5117,26 @@ he: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4905,7 +5338,6 @@ he: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4915,9 +5347,6 @@ he: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -5020,7 +5449,7 @@ he: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. two: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. @@ -5112,8 +5541,6 @@ he: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5133,7 +5560,6 @@ he: or: או rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5205,8 +5631,8 @@ he: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5231,7 +5657,7 @@ he: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5264,6 +5690,7 @@ he: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5274,6 +5701,9 @@ he: permission_manage_dashboards: Manage dashboards permission_manage_forums: ניהול פורומים permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: ניהול חדשות permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5302,7 +5732,6 @@ he: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5336,6 +5765,16 @@ he: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5357,7 +5796,7 @@ he: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5368,7 +5807,7 @@ he: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" two: "%{count} sub-items" other: "%{count} sub-items" lists: @@ -5384,7 +5823,7 @@ he: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5396,7 +5835,7 @@ he: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: פרוייקט אחד + one: "%{count} project" other: "%{count} פרויקטים" zero: 0 projects destroy: @@ -5501,11 +5940,11 @@ he: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5515,6 +5954,12 @@ he: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: אין כרגע שדות מותאמים אישית. forums: no_results_content_text: Create a new forum @@ -5611,16 +6056,16 @@ he: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" two: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" two: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. @@ -5633,7 +6078,7 @@ he: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5641,15 +6086,27 @@ he: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5678,7 +6135,7 @@ he: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other two: and %{count} others other: and %{count} others and_user: and %{user} @@ -5801,6 +6258,36 @@ he: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + two: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + two: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + two: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + two: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + two: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5812,6 +6299,16 @@ he: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + two: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5916,7 +6413,7 @@ he: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6031,6 +6528,7 @@ he: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: זמן setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6083,7 +6581,7 @@ he: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6094,6 +6592,7 @@ he: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6185,12 +6684,12 @@ he: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6210,8 +6709,8 @@ he: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6219,7 +6718,7 @@ he: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6239,6 +6738,7 @@ he: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6295,7 +6795,7 @@ he: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6388,19 +6888,19 @@ he:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: סגור - is_default: ברירת מחדל is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: להוסיף סטטוס חדש no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: האם הינך בטוח? text_are_you_sure_continue: Are you sure you want to continue? @@ -6443,12 +6943,6 @@ he: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6498,6 +6992,7 @@ he: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6603,6 +7098,69 @@ he: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + two: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6612,14 +7170,40 @@ he: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6628,8 +7212,10 @@ he: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6658,21 +7244,21 @@ he: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6689,6 +7275,8 @@ he: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6710,6 +7298,14 @@ he: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6719,12 +7315,14 @@ he: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6738,12 +7336,12 @@ he: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6756,10 +7354,12 @@ he: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: פרויקטים + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6774,45 +7374,17 @@ he: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - two: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - two: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6820,6 +7392,9 @@ he: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6828,13 +7403,14 @@ he: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6848,12 +7424,16 @@ he: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6862,34 +7442,77 @@ he: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + two: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: ליצור סוג חדש no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" two: "%{count} project-specific variants" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + two: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6908,9 +7531,9 @@ he: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: נעול באופן זמני (נסיון כניסה כושל אחד) - two: נעול זמנית (%{count} ניסיונות כניסה) - other: נעול זמנית (%{count} ניסיונות כניסה) + one: locked temporarily (%{count} failed login attempt) + two: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7010,7 +7633,7 @@ he: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: חיבור אחרון may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7070,7 +7693,7 @@ he: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" two: "%{count} working days" other: "%{count} working days" work_hours: Work hours @@ -7078,6 +7701,12 @@ he: version_status_locked: locked version_status_open: פתוח versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: אין כרגע חבילות עבודה שהוקצו עבור גירסה זו. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7247,12 +7876,14 @@ he: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. two: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. descendant: descendant of selected @@ -7278,20 +7909,20 @@ he: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: @@ -7350,22 +7981,163 @@ he: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + two: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + two: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + two: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + two: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + two: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7397,40 +8169,56 @@ he: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" two: "%{count} work package descendants" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. two: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - two: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + two: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7439,12 +8227,94 @@ he: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + two: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + two: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + two: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + two: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + two: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + two: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/hi.seeders.yml b/config/locales/crowdin/hi.seeders.yml index 34fcfe9954a4..989d0ff25688 100644 --- a/config/locales/crowdin/hi.seeders.yml +++ b/config/locales/crowdin/hi.seeders.yml @@ -250,70 +250,26 @@ hi: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ hi: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml index 06b648bc8b30..f5e5f55aeadc 100644 --- a/config/locales/crowdin/hi.yml +++ b/config/locales/crowdin/hi.yml @@ -40,7 +40,9 @@ hi: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: खाता हटाएं delete_confirmation: आप सुनिश्चित करें कि आप खाता हटाना चाहते हैं ? deletion_info: @@ -65,7 +67,9 @@ hi: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: या अपने मौजूदा खाते से साइन इन करें + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ hi: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ hi: repository: Repository comment: commented: टिप्पणियाँकृत - custom_action: - actions: क्रियाएँ custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ hi: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ hi: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ hi: title: Title member: blocked: Blocked + principal_type: Member type roles: भूमिकाएं notification: read_ian: Read in-app @@ -235,6 +265,7 @@ hi: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ hi: ongoing: Ongoing spent_on: तिथि type: प्रकार + token/base: + expires_on: Expiration date token/ical: calendar: कैलेंडर ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ hi: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: व्यवस्थापक auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ hi: last_name: अंतिम नाम ldap_auth_source: LDAP connection new_password: नया पासवर्ड - password_confirmation: पुष्टिकरण + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ hi: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ hi: header_look_and_feel: Look and feel impaired: पहुँच क्षमता increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: समय क्षेत्र warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ hi: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: जनक @@ -519,6 +565,10 @@ hi: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ hi: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ hi: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ hi: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ hi: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ hi: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ hi: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ hi: numeric: सांख्यिक (उदा. ' 1 ') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: पहले इस्तेमाल किया गया है । कृपया एक है कि अपने पिछले एक से अलग है चुनें । + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: विशेष अक्षर (उदा. '% ') uppercase: अपरकेस (उदा. ' A ') @@ -976,6 +1032,8 @@ hi: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ hi: status_id: status_invalid_in_type: अमांय है क्योंकि वर्तमान स्थिति इस प्रकार में मौजूद नहीं है । status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: एक मील का पत्थर नहीं हो सकता क्योंकि यह कार्य पैकेज बच्चों का है । is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ hi: template: body: 'कृपया निंनलिखित क्षेत्रों की जांच करें:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ hi: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ hi: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ hi: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ hi: issue_priority: one: वरीयता other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ hi: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ hi: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ hi: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ hi: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ hi: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ hi: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ hi: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ hi: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ hi: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ hi: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ hi: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ hi: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ hi: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ hi: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ hi: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ hi: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ hi: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ hi: groups: समूह hexcode: हेक्स कोड id: आईडी + inexistent: Inexistent is_default: डिफ़ॉल्ट मान is_for_all: सभी परियोजनाओं के लिए issue: कार्य पैकेज @@ -2253,6 +2431,7 @@ hi: updated_at: पर अद्यतीत updated_on: पर अद्यतीत uploader: Uploader + url: URL user: उपयोगकर्ता username: Username value: मान @@ -2267,6 +2446,29 @@ hi: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ hi: button_set_reminder: Set reminder button_show: दिखाएँ button_sort: क्रम में लगायें + button_stop_timer: Stop timer button_submit: सबमिट करें button_test: परीक्षण button_unarchive: अपुरालेखित करें @@ -2461,9 +2664,9 @@ hi: text: failed: प्रोजेक्ट की प्रतिलिपि नहीं बना सका "%{source_project_name}" प्रोजेक्ट को "%{target_project_name}". succeeded: '"%{source_project_name}" प्रोजेक्ट की प्रतिलिपि "%{target_project_name}" में बनाई.' - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ hi: plural: विशेष या कस्टम क्रियाएँ custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: सभी परियोजनाओं के लिए hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ hi: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ hi: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'परियोजना में नई custom fields जोडनें हेतु, पहले आपको उनका सृजन करना पडेगा, तत्पष्चात ही आप उन्हें परियोजना में जोड सकेंगे. ' @@ -2666,56 +2866,56 @@ hi: datetime: distance_in_words: about_x_hours: - one: लगभग 1 घंटा + one: about %{count} hour other: about %{count} hours about_x_months: - one: लगभग 1 महीने + one: about %{count} month other: about %{count} months about_x_years: - one: लगभग 1 वर्ष + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: आधा मिनट less_than_x_minutes: one: एक मिनट से कम other: less than %{count} minutes less_than_x_seconds: - one: 1 सेकंड से कम + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: 1 वर्ष से अधिक + one: over %{count} year other: over %{count} years x_days: - one: 1 दिन + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 मिनट + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 महीना + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 सेकंड + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ hi: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ hi: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ hi: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ hi: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ hi: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ hi: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ hi: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ hi: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ hi: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ hi: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ hi: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ hi: label_database_version: PostgreSQL version label_date: तिथि label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: दिन label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ hi: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ hi: label_float: फ्लोट label_folder: Folder label_follows: फॉलो करें + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: नया मंच label_forum_plural: मंच @@ -3684,6 +4060,7 @@ hi: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: समूह + label_group_attributes_plural: Group attributes label_group_by: द्वारा समूहीकृत label_group_named: समूह %{name} label_group_new: नया समूह @@ -3735,8 +4112,8 @@ hi: label_journal_diff: विवरण तुलना label_jump_to_a_project: किसी प्रोजेक्ट पर जंप करें... label_keyword_plural: Keywords + label_label_plural: Labels label_language: भाषा  - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ hi: label_list: सूची label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ hi: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ hi: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ hi: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ hi: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: नाम label_never: Never label_new: नया @@ -3826,7 +4206,10 @@ hi: label_news_singular: नया label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: अगले सप्ताह + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(कोई परिवर्तन नहीं)" label_no_data: प्रदर्शित करने के लिए कोई डेटा नहीं @@ -3834,6 +4217,7 @@ hi: label_no_parent_group: "(No parent group)" label_no_parent_page: कोई पैरेंट पृष्ठ नहीं label_no_start_date: कोई प्रारंभ दिनांक नहीं + label_no_time: No time tracked label_nobody: कोई नहीं label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ hi: label_preview: पूर्वावलोकन label_preview_not_available: Preview not available label_previous: पिछला + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: पिछला सप्ताह + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ hi: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: समय बिताया + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ hi: label_subtask_plural: उपकार्य label_summary: सारांश label_system: सिस्टम + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: विषय सूची @@ -4052,6 +4441,7 @@ hi: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: समय बिताया + label_timer_since: Started at %{time} label_title: शीर्षक label_today: आज label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ hi: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: संस्करण @@ -4100,6 +4492,7 @@ hi: label_videos: वीडियो label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: तांकें हुए कार्य पैकेज @@ -4123,6 +4516,8 @@ hi: label_wiki_start: प्रारंभ पृष्ठ label_wiki_toc: विषय-सूची label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: कार्य पैकेज label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ hi: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ hi: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ hi: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ hi: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ hi: create_button: रचना करें dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ hi: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ hi: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ hi: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ hi: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ hi: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ hi: or: या rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ hi: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ hi: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ hi: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ hi: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ hi: permission_save_bcf_queries: Save BCF queries permission_save_queries: दृश्य सहेजें permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ hi: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ hi: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ hi: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ hi: ' program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ hi: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ hi: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ hi: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ hi: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ hi: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ hi: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ hi: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ hi: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ hi: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ hi: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ hi: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ hi: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ hi: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ hi: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ hi: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ hi: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ hi: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ hi: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ hi:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: बंद - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ hi: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ hi: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ hi: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ hi: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ hi: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ hi: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ hi: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ hi: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ hi: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ hi: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ hi: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ hi: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ hi: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ hi: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ hi: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ hi: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ hi: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ hi: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ hi: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: बंद version_status_locked: locked version_status_open: खोलें versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ hi: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ hi: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ hi: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ hi: version: no_results_title_text: There are currently no versions available. x_descendants: - one: एक वंशज काम पैकेज + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ hi: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/hr.seeders.yml b/config/locales/crowdin/hr.seeders.yml index 45e898a1d7d6..05902862bc67 100644 --- a/config/locales/crowdin/hr.seeders.yml +++ b/config/locales/crowdin/hr.seeders.yml @@ -250,70 +250,26 @@ hr: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Backlog produkta + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ hr: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml index aaa7b88c43bb..363564e70550 100644 --- a/config/locales/crowdin/hr.yml +++ b/config/locales/crowdin/hr.yml @@ -40,7 +40,9 @@ hr: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Izbriši korisnički račun delete_confirmation: Jeste li sigurni da želite izbrisati korisnički račun? deletion_info: @@ -65,7 +67,9 @@ hr: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: ili pristupite s vašim postojećim korinisičkim računom + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Molim vas prijavite se da bi ste aktivirali vaš korisnički račun. @@ -118,6 +122,8 @@ hr: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ hr: repository: Repozitorij comment: commented: Komentirano - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ hr: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ hr: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ hr: title: Title member: blocked: Blocked + principal_type: Member type roles: Role notification: read_ian: Read in-app @@ -235,6 +265,7 @@ hr: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ hr: ongoing: Ongoing spent_on: Datum type: Tip + token/base: + expires_on: Expiration date token/ical: calendar: Kalendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ hr: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Pristanak na current_password: Trenutna lozinka department: Department @@ -410,7 +441,7 @@ hr: last_name: Prezime ldap_auth_source: LDAP connection new_password: Nova lozinka - password_confirmation: Potvrda + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ hr: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ hr: header_look_and_feel: Look and feel impaired: Mod dostupnosti increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Vremenska zona warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ hr: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Matični @@ -519,6 +565,10 @@ hr: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: mora biti prihvaćeno. @@ -590,6 +640,8 @@ hr: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: mora biti manje od ili jednako maksimalnom trajanju. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ hr: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: je krive duljine (mora biti %{count} znakova). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ hr: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -690,6 +756,13 @@ hr: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ hr: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'još uvijek u uporabi od strane radnih paketa: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ hr: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,9 +963,9 @@ hr: numeric: numerički (npr. ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: koristila se prije. Molim vas odaberite lozinku različitu u odnosnu na prijašnju. - few: koristila se prije. Molim vas odaberite lozinku različitu u odnosnu na prijašnju %{count}. - other: koristila se prije. Molim vas odaberite lozinku različitu u odnosnu na prijašnju %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: specijalni (npr ' %') uppercase: velika slova (npr. ' A') password_confirmation: @@ -978,6 +1034,8 @@ hr: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: ne može biti u još jednom projektu. cannot_be_milestone: ne može biti ključna točka. @@ -1005,6 +1063,8 @@ hr: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: nije valjano, zato jer ne postoji valjan prijelaz s starog na novi status za trenutne korisničke role. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Radni paket #%{id} nije nadređen za ponovno dodjeljivanje vremena.' @@ -1013,9 +1073,9 @@ hr: template: body: 'Molim vas provjerite sljedeća polja:' header: - one: 1 pogreška ne dopušta predlošku %{model} trenutno spremanje - few: "%{count} pogreške ne dopuštaju predlošku %{model} trenutno spremanje" - other: "%{count} pogreške ne dopuštaju predlošku %{model} trenutno spremanje" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1065,6 +1125,10 @@ hr: one: Authentication provider few: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + other: Automations backup: one: Backup few: Backups @@ -1093,10 +1157,6 @@ hr: one: Comment few: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1157,6 +1217,10 @@ hr: one: Export setting few: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + other: Forms forum: one: Forum few: Forums @@ -1181,6 +1245,10 @@ hr: one: Prioritet few: Priorities other: Priorities + label: + one: Label + few: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1509,7 +1577,28 @@ hr: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1542,7 +1631,11 @@ hr: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1575,7 +1668,7 @@ hr: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1583,12 +1676,15 @@ hr: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1621,16 +1717,30 @@ hr: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1734,31 +1844,31 @@ hr: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" few: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" revert_dialog: @@ -1825,7 +1935,7 @@ hr: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. @@ -1891,23 +2001,54 @@ hr: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1938,6 +2079,18 @@ hr: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1951,7 +2104,7 @@ hr: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? @@ -2081,7 +2234,7 @@ hr: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" other: "... %{count} more projects" banner: @@ -2123,7 +2276,7 @@ hr: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2157,14 +2310,21 @@ hr: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2174,7 +2334,7 @@ hr: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? few: Remove %{count} statuses? other: Remove %{count} statuses? title: Remove statuses @@ -2188,7 +2348,31 @@ hr: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: trenutno prikazani is_inactive: trenutno nije prikazano show_until: Pokaži sve do @@ -2196,7 +2380,7 @@ hr: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2250,10 +2434,6 @@ hr: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Predviđena dopuna nije poveznica na resurs. - context_object_not_found: Ne mogu pronaći resurs zadan kao kontekst. - unsupported_context: Dani resurs nije podržan u obliku konteksta. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2324,6 +2504,7 @@ hr: groups: Grupe hexcode: Heksadecimalni kod id: ID + inexistent: Inexistent is_default: Zadane vrijednost is_for_all: Za sve projekte issue: Radni paket @@ -2374,6 +2555,7 @@ hr: updated_at: Ažurirano updated_on: Ažurirano uploader: Uploader + url: URL user: Korisnik username: Korisničko ime value: Vrijednost @@ -2388,6 +2570,29 @@ hr: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2516,6 +2721,7 @@ hr: button_set_reminder: Set reminder button_show: Prikaži button_sort: Sortiraj + button_stop_timer: Stop timer button_submit: Pošalji button_test: Test button_unarchive: Nemoj arhivirati @@ -2582,9 +2788,9 @@ hr: text: failed: Nije moguće kopirati projekt "%{source_project_name}" u projekt "%{target_project_name}". succeeded: Kopiran je projekt "%{source_project_name}" u "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2622,13 +2828,9 @@ hr: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Za sve projekte hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2649,7 +2851,7 @@ hr: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2714,16 +2916,17 @@ hr: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Novo prilagođeno polje - no_results_title_text: Trenutno nije dostupno niti jedno prilagođeno polje. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2787,72 +2990,72 @@ hr: datetime: distance_in_words: about_x_hours: - one: približno 1 sat - few: približno %{count} sata - other: približno %{count} sata + one: about %{count} hour + few: about %{count} hours + other: about %{count} hours about_x_months: - one: približno 1 mjesec - few: približno %{count} mjeseca - other: približno %{count} mjeseca + one: about %{count} month + few: about %{count} months + other: about %{count} months about_x_years: - one: približno 1 godinu - few: približno %{count} godine - other: približno %{count} godine + one: about %{count} year + few: about %{count} years + other: about %{count} years almost_x_years: - one: gotovo 1 godina - few: gotovo %{count} godine - other: gotovo %{count} godine + one: almost %{count} year + few: almost %{count} years + other: almost %{count} years half_a_minute: pola minute less_than_x_minutes: one: manje od 1 minute few: manje od %{count} minute other: manje od %{count} minute less_than_x_seconds: - one: manje od 1 sekunde - few: manje od %{count} sekundi - other: manje od %{count} sekundi + one: less than %{count} second + few: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: više od 1 godine - few: više od %{count} godine - other: više od %{count} godine + one: over %{count} year + few: over %{count} years + other: over %{count} years x_days: - one: 1 dan - few: "%{count} dana" - other: "%{count} dana" + one: "%{count} day" + few: "%{count} days" + other: "%{count} days" x_hours: - one: 1 sat - few: "%{count} sata" - other: "%{count} sata" + one: "%{count} hour" + few: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" few: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: 1 minuta - few: "%{count} minute" - other: "%{count} minute" + one: "%{count} minute" + few: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" few: "%{count} mins" other: "%{count} mins" x_months: - one: 1 mjesec - few: "%{count} mjeseca" - other: "%{count} mjeseca" + one: "%{count} month" + few: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekunda - few: "%{count} sekunde" - other: "%{count} sekunde" + one: "%{count} second" + few: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" few: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" few: "%{count} years" other: "%{count} years" units: @@ -3007,7 +3210,7 @@ hr: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: @@ -3348,9 +3551,158 @@ hr: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3375,6 +3727,8 @@ hr: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3400,6 +3754,10 @@ hr: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3415,7 +3773,7 @@ hr: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3424,7 +3782,7 @@ hr: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3449,6 +3807,31 @@ hr: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Informirajte se o novim značajkama i ažuriranjima proizvoda. learn_about: Learn more about all new features @@ -3485,8 +3868,10 @@ hr: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3536,6 +3921,7 @@ hr: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3688,10 +4074,10 @@ hr: label_copy_target: Cilj label_copy_workflow_from: Kopiranje tijek rada iz label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Temeljna verzija label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Trenutni status label_current_version: Trenutna verzija label_custom_comment: "%{name} comment" @@ -3715,8 +4101,6 @@ hr: label_custom_field_default_type: Prazan tip label_custom_field_new: Novo prilagođeno polje label_custom_field_plural: Prilagođena polja - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Dizajn label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3725,11 +4109,12 @@ hr: label_database_version: PostgreSQL version label_date: Datum label_date_and_time: Datum i vrijeme - label_date_format: Format datuma + label_date_and_time_formats: Date and time formats label_date_from: Od label_date_from_to: Od %{start} do %{end} label_date_to: Prima label_dates: Datumi + label_day: Dan label_day_plural: dani label_default: Zadana vrijednost label_defaults: Defaults @@ -3740,6 +4125,7 @@ hr: label_deleted_custom_field: "(izbrisano prilagođeno polje)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3810,6 +4196,7 @@ hr: label_float: Plutajući label_folder: Mapa label_follows: slijedi + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Novi forum label_forum_plural: Forumi @@ -3828,6 +4215,7 @@ hr: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grupa + label_group_attributes_plural: Group attributes label_group_by: Grupiraj po label_group_named: Group %{name} label_group_new: Nova grupa @@ -3879,8 +4267,8 @@ hr: label_journal_diff: Opis uspoređivanja label_jump_to_a_project: Pređi na projekt... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Jezik - label_language_based: Na osnovi jezika korisnika label_languages: Languages label_last_activity: Zadnja aktivnost label_last_change_on: Posljednja promjena @@ -3902,6 +4290,7 @@ hr: label_list: Popis label_loading: Učitavanje... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: zaključano label_logged_as: Prijavljen kao @@ -3913,6 +4302,7 @@ hr: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Upravljanje %{vendor} repozitorijima label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimalna veličina label_me: ja label_member_all_admin: "(All roles due to admin status)" @@ -3931,7 +4321,6 @@ hr: label_menu_item_name: Naziv stavke izbornika label_message: Poruka label_message_last: Posljednja poruka - label_message_new: Nova poruka label_message_plural: Poruke label_message_posted: Poruka dodana label_minute_plural: minute @@ -3943,6 +4332,7 @@ hr: label_module_plural: Moduli label_modules: Moduli label_modules_and_plugins: Modules and Plugins + label_month: Mjesec label_months_from: mjeseci od label_more: Više label_more_information: Više informacija @@ -3956,6 +4346,7 @@ hr: label_my_avatar: My avatar label_my_queries: Moji prilagođeni upiti label_my_security: Security + label_my_time: My time label_name: Naziv label_never: Nikad label_new: Novi @@ -3970,7 +4361,10 @@ hr: label_news_singular: Vijesti label_news_view_all: Pogledaj sve vijesti label_next: Sljedeći + label_next_day: Next day + label_next_month: Next month label_next_week: Sljedeći tjedan + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Nema promjene)" label_no_data: Nema podataka za prikaz @@ -3978,6 +4372,7 @@ hr: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: nema datuma početka + label_no_time: No time tracked label_nobody: nitko label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4044,7 +4439,10 @@ hr: label_preview: Pregled label_preview_not_available: Preview not available label_previous: Prethodni + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Prethodni tjedan + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " ili pozovite nove korisnike putem emaila" label_principal_search: Dodaj postojeće korisnike ili grupe @@ -4163,6 +4561,7 @@ hr: label_sort_lowest: Pomakni na dno label_sorted_by: sortirano po %{value} label_spent_time: Utrošeno vrijeme + label_stack: Stack label_start_to_end: s početka na kraj label_start_to_start: s početka na početak label_starts_with: starts with @@ -4182,6 +4581,7 @@ hr: label_subtask_plural: Podzadatci label_summary: Sažetak label_system: Sustav + label_system_or_language_default: Use system or language based default label_system_settings: Postavke sustava label_system_storage: Informacije o podatkovnom sustavu label_table_of_contents: Table of contents @@ -4196,6 +4596,7 @@ hr: label_time: Vrijeme label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Utrošeno vrijeme + label_timer_since: Started at %{time} label_title: Naziv label_today: danas label_today_as_date: Select today as date. @@ -4231,7 +4632,9 @@ hr: label_user_search: Traženje korisnika label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: Nova verzija label_version_plural: Verzije @@ -4244,6 +4647,7 @@ hr: label_videos: Videos label_view_all_revisions: Prikaži sve revizije label_view_diff: Prikaži razlike + label_view_mode_switcher: Change view label_view_revisions: Prikaz revizija label_view_x: 'View: %{x}' label_watched_work_packages: Nadgledani radni paketi @@ -4267,6 +4671,8 @@ hr: label_wiki_start: Početna stranica label_wiki_toc: Kazalo sadržaja label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Radni paket label_work_package_attachments: Work package attachments @@ -4289,48 +4695,49 @@ hr: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 zaključen + one: "%{count} closed" other: "%{count} zatvorenih" zero: 0 closed label_x_comments: - one: 1 komentar + one: "%{count} comment" other: "%{count} komentara" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 započet + one: "%{count} open" other: "%{count} započeta" zero: 0 open label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projekta" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' other: 'Time off: %{count} working days' label_yesterday: jučer @@ -4386,7 +4793,7 @@ hr: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4443,6 +4850,8 @@ hr: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4499,7 +4908,7 @@ hr: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. few: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser @@ -4685,6 +5094,14 @@ hr: create_button: Stvori dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Ne mogu postaviti pristupni token: %{error}' @@ -4698,10 +5115,26 @@ hr: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Radnja expiration: Vrijedi do @@ -4903,7 +5336,6 @@ hr: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: Projekt nije izbrisan. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4913,9 +5345,6 @@ hr: notice_successful_create: Uspješno kreirano. notice_successful_delete: Brisanje uspješno. notice_successful_update: Ažuriranje je uspješno završeno. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Prikazano je previše rezultata. Sužite rezultate pretrage na način da unesete ime novog člana (ili grupe). @@ -5018,7 +5447,7 @@ hr: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. @@ -5110,8 +5539,6 @@ hr: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5131,7 +5558,6 @@ hr: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5203,8 +5629,8 @@ hr: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5229,7 +5655,7 @@ hr: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentirajte vijest permission_commit_access: Read/write pristup repozitoriju (commit) - permission_copy_projects: Kopiraj projekte + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5262,6 +5688,7 @@ hr: permission_export_projects: Export projects permission_export_work_packages: Izvez radnih paketa permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5272,6 +5699,9 @@ hr: permission_manage_dashboards: Manage dashboards permission_manage_forums: Upravljanje Forumima permission_manage_members: Upravljanje korisnicima + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Upravljanje vijestima permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5300,7 +5730,6 @@ hr: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Odaberi module projekta permission_select_project_phases: Select project phases @@ -5334,6 +5763,16 @@ hr: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5355,7 +5794,7 @@ hr: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5366,7 +5805,7 @@ hr: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" few: "%{count} sub-items" other: "%{count} sub-items" lists: @@ -5382,7 +5821,7 @@ hr: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5394,7 +5833,7 @@ hr: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekt + one: "%{count} project" other: "%{count} projekta" zero: 0 projects destroy: @@ -5499,11 +5938,11 @@ hr: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5513,6 +5952,12 @@ hr: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Trenutno nije dostupno niti jedno prilagođeno polje. forums: no_results_content_text: Create a new forum @@ -5609,16 +6054,16 @@ hr: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. @@ -5631,7 +6076,7 @@ hr: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Dodaj novu verziju projekta - no_results_title_text: Trenutno nema dostupnih novih verzija projekta. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5639,15 +6084,27 @@ hr: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Primjenite prethodno konfigurirani filter configure_view: @@ -5676,7 +6133,7 @@ hr: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other few: and %{count} others other: and %{count} others and_user: and %{user} @@ -5797,6 +6254,36 @@ hr: warnings: cannot_annotate: Ovu datoteka ne može biti zabilježena. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5808,6 +6295,16 @@ hr: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5912,7 +6409,7 @@ hr: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maksimalan broj prikazanih redaka setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Prikaži radne pakete podprojekata na glavnom projektu kao početne + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6027,6 +6524,7 @@ hr: setting_start_of_week: Week starts on setting_sys_api_description: Web servis za upravljanje repozitorijom omogućava integraciju i autorizaciju za pristup repozitorijima. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Vrijeme setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6079,7 +6577,7 @@ hr: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6090,6 +6588,7 @@ hr: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6181,12 +6680,12 @@ hr: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6206,8 +6705,8 @@ hr: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6215,7 +6714,7 @@ hr: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6235,6 +6734,7 @@ hr: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6291,7 +6791,7 @@ hr: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6384,19 +6884,19 @@ hr:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Zaključeno - is_default: Zadana vrijednost is_readonly: Samo čitanje + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Novi status no_results_title_text: Trenutačno ne postoje izvješća o statusu radnih paketa. + status_actions: Status actions support: array: sentence_connector: i skip_last_comma: lažno text_access_token_hint: Pristupni tokeni omogućavaju vanjskim aplikacijama pristup resursima unutar OpenProjecta. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Dodatnaanaliza: %{subject}' text_are_you_sure: Da li ste sigurni? text_are_you_sure_continue: Are you sure you want to continue? @@ -6439,12 +6939,6 @@ hr: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6494,6 +6988,7 @@ hr: text_length_between: Duljina između %{min} i %{max} znakova. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Učitaj zadanu konfiguraciju + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Ne postoje pristupni tokeni koji mogu biti konfigurirani. text_no_configuration_data: Role, tipovi, statusi radnih paketa i tijek rada nisu konfiguirani. Preporuka je da učitate zadanu konfiguraciju. Moći ćete ju modificirati naokn što se učita. text_no_notes: Nema dostupnih komentar za ovaj randi paket. @@ -6597,6 +7092,69 @@ hr: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6606,14 +7164,40 @@ hr: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6622,8 +7206,10 @@ hr: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6652,21 +7238,21 @@ hr: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6683,6 +7269,8 @@ hr: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6704,6 +7292,14 @@ hr: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6713,12 +7309,14 @@ hr: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6732,12 +7330,12 @@ hr: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6750,10 +7348,12 @@ hr: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projekti + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6768,45 +7368,17 @@ hr: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6814,6 +7386,9 @@ hr: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6822,13 +7397,14 @@ hr: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6842,12 +7418,16 @@ hr: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6856,34 +7436,77 @@ hr: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Novi tip no_results_title_text: Trenutno ne postoji niti jedan tip projekta. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorirati ovo upozorenje. message: You may run into errors and degraded experience on this page. @@ -6902,9 +7525,9 @@ hr: authorization_rejected: Nije vam dopuštena prijava. blocked: privremeno zaključano blocked_num_failed_logins: - one: privremeno zaključano (jedan neuspjeli pokušaj spajanja) - few: privremeno zaključano (%{count} neuspjela pokušaja spajanja) - other: privremeno zaključano (%{count} neuspjela pokušaja spajanja) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Izbrisani korisnik department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7004,7 +7627,7 @@ hr: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Vrijedi do - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7064,7 +7687,7 @@ hr: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" work_hours: Work hours @@ -7072,6 +7695,12 @@ hr: version_status_locked: zaključano version_status_open: otvori versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Trenutno nije dostupan niti jedan radni paket pridružen ovoj verziji. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7241,12 +7870,14 @@ hr: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. descendant: descendant of selected @@ -7272,20 +7903,20 @@ hr: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: @@ -7344,22 +7975,163 @@ hr: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7391,40 +8163,56 @@ hr: version: no_results_title_text: Trenutno ne postoje dostupne verzije projekta. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" few: "%{count} work package descendants" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. few: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7433,12 +8221,94 @@ hr: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/hu.seeders.yml b/config/locales/crowdin/hu.seeders.yml index f96daf54abf6..49f4aa2e15a1 100644 --- a/config/locales/crowdin/hu.seeders.yml +++ b/config/locales/crowdin/hu.seeders.yml @@ -250,70 +250,26 @@ hu: Ebben a modulban projekthíreket közölhet csapattagjaival. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: 1. kategória (a Projekt beállításai között módosítható) queries: item_0: name: Projektterv item_1: - name: Termék backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Feladatok boards: @@ -345,12 +301,13 @@ hu: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index 5d83a57727a7..f2db78a489af 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -40,7 +40,9 @@ hu: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Felhasználói hozzáférés törölése delete_confirmation: Biztosan törölni akarja ezt a felhasználói hozzáférést? deletion_info: @@ -65,7 +67,9 @@ hu: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: vagy jelentkezzen be a meglévő hozzáférésével. + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Kérjük, jelentkezzen be, hogy aktiválja fiókját. @@ -118,6 +122,8 @@ hu: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ hu: repository: Csomagtároló comment: commented: Hozzászólás - custom_action: - actions: Műveletek custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -170,6 +174,7 @@ hu: uid: Ügyfél azonosító emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Vállalati támogatás kulcs @@ -181,20 +186,44 @@ hu: company: Cég favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Oszlopok száma page: Oldal row_count: Sorok száma widgets: Kisalkalmazások group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: A 'Jira' példány neve personal_access_token: Személyes hozzáférési token url: A Jira-példány URL-címe @@ -225,6 +254,7 @@ hu: title: Cím member: blocked: Blocked + principal_type: Member type roles: Szerepkörök notification: read_ian: Read in-app @@ -237,6 +267,7 @@ hu: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -369,6 +400,8 @@ hu: ongoing: Ongoing spent_on: dátum type: Típus + token/base: + expires_on: Expiration date token/ical: calendar: Naptár ical_token_query_assignment: Query assignment @@ -386,19 +419,17 @@ hu: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Adminisztrátor auth_source: Hitelesítési forrás + avatar_type: Avatar type consented_at: Ehhez hozzájárult a current_password: Jelenlegi jelszó department: Department @@ -412,7 +443,7 @@ hu: last_name: Vezetéknév ldap_auth_source: LDAP csatlakozás new_password: Új jelszó - password_confirmation: Új jelszó újra + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -421,11 +452,15 @@ hu: user_preference: auto_hide_popups: A sikeres műveletet jelző sávok automatikus elrejtése auto_hide_popups_caption: Ha ez a beállítás engedélyezve van, a zöld sikerjelző sávok 5 másodperc elteltével automatikusan eltűnnek. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -436,13 +471,23 @@ hu: header_look_and_feel: Look and feel impaired: Kisegítő mód increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Egyes üzemmódok a hozzáférhetőség és az olvashatóság érdekében felülírják az egyéni téma színeit. A teljes körű egyéni téma-támogatáshoz kérjük, válassza a „Világos” üzemmódot. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Színes mód engedélyezése + time_format: Time format time_zone: Idő zóna warn_on_leaving_unsaved: Figyelmeztess, ha úgy hagyom el a munkacsomagot, hogy nem mentett változások vannak rajta workdays: Munkanapok + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -493,6 +538,7 @@ hu: title: Munkanapok true: Munkaszüneti napok beleszámítva journal_internal: Internal Journal + labels: Labels notify: Értesítés observed_in_versions: Observed in versions parent: Szülő @@ -523,6 +569,10 @@ hu: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: el kell fogadni. @@ -598,6 +648,8 @@ hu: regex_invalid: nem lehet a hozzárendelt reguláris kifejezéssel ellenőrizni. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: a maximális hossznak kisebbnek vagy egyenlőnek kell lennie. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -622,6 +674,10 @@ hu: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: nem megfelelő hosszúságú (%{count} karakter szükséges). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -686,6 +742,16 @@ hu: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: a befejező értéknek nagyobbnak kell lennie mint a kezdőnek outside: hatókörön kívül van. @@ -703,6 +769,13 @@ hu: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -770,7 +843,6 @@ hu: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'munkacsomagok használatban vannak: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -885,42 +957,26 @@ hu: blank: Please provide a token name format: "%{message}\n" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -934,8 +990,8 @@ hu: numeric: Szám (pl. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: korábban már használta. Kérjük, válasszon egyet, amely eltér az utolsónak használttól. - other: korábban már használta. Kérjük, válasszon egyet, amely eltér a(z) %{count} utolsótól. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: Különleges karakter (pl. '%') uppercase: Nagybetű (pl. 'A') password_confirmation: @@ -1008,6 +1064,8 @@ hu: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nem lehet egy másik projektben. cannot_be_milestone: nem lehet egy mérföldkő. @@ -1037,6 +1095,8 @@ hu: status_id: status_invalid_in_type: érvénytelen, mert az aktuális állapot nem létezik ebben a típusban. status_transition_invalid: érvénytelen, mert nincs érvényes átmenet a régi és új felhasználói szerepkör állapota között. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: nem lehet mérföldkő, mert ez a feladatcsoport gyermekekkel rendelkezik. is_not_a_valid_target_for_time_entries: 'A #%{id} feladatcsoport nem érvényes cél az idő bejegyzések ismételt hozzárendeléséhez.' @@ -1045,8 +1105,8 @@ hu: template: body: 'Kérjük, ellenőrizze az alábbi mezőket:' header: - one: '1 hiba miatt nem menthető a következő: %{model}' - other: "%{count} hiba miatt nem menthető a következő: %{model}" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1084,6 +1144,9 @@ hu: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1105,9 +1168,6 @@ hu: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1153,6 +1213,9 @@ hu: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1171,6 +1234,9 @@ hu: issue_priority: one: Fontosság other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1435,7 +1501,28 @@ hu: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1468,7 +1555,11 @@ hu: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: A téma megváltoztatása felülírja az egyéni stílust. A forma elvész. Biztos, hogy folytatni akarod? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Töltse fel a Vállalati Verzió támogatási tokenjét book_now: Foglalás most @@ -1501,7 +1592,7 @@ hu: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1509,12 +1600,15 @@ hu: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Kérjük, segítsen nekünk a Jira Migrator fejlesztésében visszajelzéseivel és a magánadatok felajánlásával. Csatlakozhat a Jira Migrator [fejlesztői közösségéhez](link). ' description: Ez a Jira Migrator jelenleg béta verzióban van. Jelenleg kizárólag a Jira Server/Data Center 10.x és 11.x verzióit támogatjuk. A felhőalapú példányokat jelenleg nem támogatjuk. title: Béta – Próbáld ki! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1547,16 +1641,30 @@ hu: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1660,25 +1768,25 @@ hu: title: Kérjük, győződjön meg róla, hogy van biztonsági másolata! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1744,7 +1852,7 @@ hu: caption: Choose what you want to import into OpenProject caption_done: Kész caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Válassza ki, hogy a gazda Jira-példányból letöltött rendelkezésre álló adatok közül melyeket szeretné importálni. elements: @@ -1809,23 +1917,53 @@ hu: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Nem sikerült feldolgozni a szerverről érkező választ. Lehetséges, hogy a szerver nem érvényes Jira-példány. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: A modellkontextus-protokoll lehetővé teszi az AI-ügynökök számára, hogy felhasználóiknak az adott OpenProject-példány által elérhetővé tett eszközöket és erőforrásokat biztosítsák. Ez a funkció még béta állapotban van. @@ -1856,6 +1994,18 @@ hu: update: failure: Nem tudta frissíteni az MCP beállításokat. success: Az MCP-konfigurációk frissítése sikeresen befejeződött. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1869,7 +2019,7 @@ hu: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1998,7 +2148,7 @@ hu: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2039,7 +2189,7 @@ hu: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2072,13 +2222,20 @@ hu: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2088,7 +2245,7 @@ hu: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2101,7 +2258,31 @@ hu: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: jelenleg látható is_inactive: jelenleg nem látható show_until: Mutassa eddig @@ -2109,7 +2290,7 @@ hu: deleted_by_admin: A karanténba helyezett '%{filename}' fájlt a rendszergazda törölte. deleted_message: A '%{filename}' fájlban vírust észleltünk. A fájl törlésre került. not_processed_yet_message: A letöltés blokkolva van, mivel a fájlt még nem vizsgálták át vírusokra. Kérjük, próbálja meg később újra. - overridden_by_admin: A '%{filename}' fájl karanténját %{user} eltávolította. A fájl most már hozzáférhető. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Konténer delete: A karanténba helyezett fájl törlése @@ -2163,10 +2344,6 @@ hu: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: A keresett munkacsomag nem található, vagy törölve lett. - render: - context_not_parsable: A megadott kontextus nem erőforrásra hivatkozik. - context_object_not_found: Nem található a kontextusként megadott erőforrás. - unsupported_context: A megadott erőforrás nem támogatott kontextus. unable_to_create_attachment: Csatolmány mentése sikertelen unable_to_create_attachment_permissions: 'A melléklet mentése nem sikerült a fájlrendszer engedélyeinek hiánya miatt @@ -2241,6 +2418,7 @@ hu: groups: Csoportok hexcode: Hexa kód id: ID + inexistent: Inexistent is_default: Alap érték is_for_all: Minden projekthez issue: Feladatcsoport @@ -2291,6 +2469,7 @@ hu: updated_at: Frissítve updated_on: Frissítve uploader: Feltöltő + url: URL user: Felhasználó username: Felhasználónév value: Érték @@ -2305,6 +2484,29 @@ hu: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'A műveletet hiba miatt törölték: %{message}' @@ -2435,6 +2637,7 @@ hu: button_set_reminder: Set reminder button_show: Mutat button_sort: Rendez + button_stop_timer: Időzítő leállítása button_submit: Küldés button_test: Teszt button_unarchive: Nem archívált @@ -2501,9 +2704,9 @@ hu: text: failed: Nem lehet másolni a "%{source_project_name}" projektet a "%{target_project_name}" projektbe. succeeded: A "%{source_project_name}" projekt átmásolva a "%{target_project_name}" projektbe. - title: Projekt másolása %{source_project_name} + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Egy ilyen fajta objektum + one: "%{count} object of this type" other: "%{count} ilyen fajta objektum" zero: Nincs ilyen fajta objektum create_portfolio: @@ -2541,13 +2744,9 @@ hu: plural: Egyéni műveletek custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Minden projekthez hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2568,7 +2767,7 @@ hu: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2633,16 +2832,17 @@ hu: is_enabled_globally: Globálisan engedélyezve van multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Név szerinti sorrendbe rendezés reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Új egyéni mező létrehozása - no_results_title_text: Jelenleg nincsenek egyéni mezők. text_add_new_custom_field: 'Új egyéni mezők hozzáadásához először létre kell hozni őket, még mielőtt felvenné azokat a projekthez. ' @@ -2706,56 +2906,56 @@ hu: datetime: distance_in_words: about_x_hours: - one: körülbelül 1 óra - other: körülbelül %{count} óra + one: about %{count} hour + other: about %{count} hours about_x_months: - one: körülbelül 1 hónap - other: körülbelül %{count} hónap + one: about %{count} month + other: about %{count} months about_x_years: - one: körülbelül 1 év - other: körülbelül %{count} év + one: about %{count} year + other: about %{count} years almost_x_years: - one: majdnem 1 éve - other: majdnem %{count} éve + one: almost %{count} year + other: almost %{count} years half_a_minute: Fél perc less_than_x_minutes: one: kevesebb, mint 1 perc other: kevesebb, mint %{count} perce less_than_x_seconds: - one: kevesebb, mint 1 másodperc - other: kevesebb, mint %{count} másodperc + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: több mint 1 éve - other: több mint %{count} éve + one: over %{count} year + other: over %{count} years x_days: - one: 1 napja - other: "%{count} napja" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 óra - other: "%{count} óra" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 óra - other: "%{count} óra" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 perce - other: "%{count} perce" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 perc - other: "%{count} perc" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 hónapja - other: "%{count} hónapja" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 másodperce - other: "%{count} másodperce" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 mp - other: "%{count} mp" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 hét - other: "%{count} hét" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 év + one: "%{count} year" other: "%{count} years" units: day: @@ -2916,7 +3116,7 @@ hu: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3262,9 +3462,150 @@ hu: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Jelenleg nincs fórumbejegyzés. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3289,6 +3630,8 @@ hu: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3314,6 +3657,10 @@ hu: leave_project: Leave project no_favorite_projects: Nincs kedvenc projektje. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3327,7 +3674,7 @@ hu: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3336,7 +3683,7 @@ hu: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Tegye közzé ezt a nézetet, lehetővé téve más felhasználók számára, hogy hozzáférjenek a nézethez. A „Nyilvános nézetek kezelése” engedéllyel rendelkező felhasználók módosíthatják vagy eltávolíthatják a nyilvános lekérdezéseket. Ez nem befolyásolja a munkacsomag-eredmények láthatóságát abban a nézetben, és engedélyüktől függően a felhasználók eltérő eredményeket láthatnak. homescreen: @@ -3361,6 +3708,31 @@ hu: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Itt találhatóak az új funkciók és a frissítések learn_about: Learn more about all new features @@ -3397,8 +3769,10 @@ hu: journals: cause_descriptions: budget_deleted: A költségvetést törölték + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3448,6 +3822,7 @@ hu: budget_deleted: A költségvetést törölték dates_changed: Dátum módosítva default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3600,10 +3975,10 @@ hu: label_copy_target: Cél label_copy_workflow_from: Munkafolyamat másolása -ból label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core verzió label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Jelenlegi állapot label_current_version: Jelenlegi verzió label_custom_comment: "%{name} comment" @@ -3627,8 +4002,6 @@ hu: label_custom_field_default_type: Üres típus label_custom_field_new: Új választható mező label_custom_field_plural: Választható mezők - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Kinézet label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3637,11 +4010,12 @@ hu: label_database_version: PostgreSQL verzió label_date: dátum label_date_and_time: Dátum és idő - label_date_format: Dátum formátum + label_date_and_time_formats: Date and time formats label_date_from: tól label_date_from_to: "%{start}-tól %{end}-ig" label_date_to: címzett label_dates: Dátumok + label_day: Nap label_day_plural: nap label_default: alapértelmezett label_defaults: Defaults @@ -3652,6 +4026,7 @@ hu: label_deleted_custom_field: "(egyéni mező törölve)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(opció törlése)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3722,6 +4097,7 @@ hu: label_float: Mozgó label_folder: Mappa label_follows: követi ezt + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Új fórum label_forum_plural: Fórumok @@ -3740,6 +4116,7 @@ hu: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Csoport + label_group_attributes_plural: Group attributes label_group_by: Csoportosítás label_group_named: Csoport %{name} label_group_new: Új csoport @@ -3791,8 +4168,8 @@ hu: label_journal_diff: Leírás összehasonlítás label_jump_to_a_project: Ugrás a projekthez label_keyword_plural: Kulcsszavak + label_label_plural: Labels label_language: Nyelv - label_language_based: A felhasználói nyelv alapján label_languages: Languages label_last_activity: Utolsó aktivitás label_last_change_on: Utolsó módosítás a @@ -3814,6 +4191,7 @@ hu: label_list: Lista label_loading: Betöltés... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Felhasználó zárolása label_locked: zárolt label_logged_as: Bejelentkezve mint @@ -3825,6 +4203,7 @@ hu: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Kezelt %{vendor} adattárak label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximális mérete label_me: Nekem label_member_all_admin: "(Összes jogosultság az admin állapot végett)" @@ -3843,7 +4222,6 @@ hu: label_menu_item_name: A menüpont neve label_message: Üzenet label_message_last: Utolsó üzenet - label_message_new: Új üzenet label_message_plural: Üzenetek label_message_posted: Üzenet hozzáadva label_minute_plural: percek @@ -3855,6 +4233,7 @@ hu: label_module_plural: Modulok label_modules: Modulok label_modules_and_plugins: Modulok és kiegészítők + label_month: Havi label_months_from: hónaptól label_more: További label_more_information: További információ @@ -3868,6 +4247,7 @@ hu: label_my_avatar: My avatar label_my_queries: Az én egyéni lekérdezéseim label_my_security: Security + label_my_time: My time label_name: Név label_never: Soha label_new: Új @@ -3882,7 +4262,10 @@ hu: label_news_singular: Hírek label_news_view_all: Az összes hir megtekintése label_next: " Következő" + label_next_day: Holnap + label_next_month: Következő hónap label_next_week: A jövő héten + label_next_workweek: Következő munkahét label_next_year: Next year label_no_change_option: "(Nincs változás)" label_no_data: Nincs megjelenítendő adat @@ -3890,6 +4273,7 @@ hu: label_no_parent_group: "(No parent group)" label_no_parent_page: Nincs szülő oldal label_no_start_date: nincs kezdő dátuma + label_no_time: Nincs naplózott idő label_nobody: senki sem label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3956,7 +4340,10 @@ hu: label_preview: Előnézet label_preview_not_available: Preview not available label_previous: Korábbi + label_previous_day: Tegnap + label_previous_month: Előző hónap label_previous_week: Előző héten + label_previous_workweek: Előző munkahét label_previous_year: Previous year label_principal_invite_via_email: " vagy új felhasználót hívhat meg e-mailben" label_principal_search: Meglévő felhasználók vagy csoportok hozzáadása @@ -4075,6 +4462,7 @@ hu: label_sort_lowest: Mozgatás az aljára label_sorted_by: rendezve %{value} szerint label_spent_time: Eltöltött idő + label_stack: Stack label_start_to_end: elejétől a végéig label_start_to_start: elejétől az elejéig label_starts_with: starts with @@ -4094,6 +4482,7 @@ hu: label_subtask_plural: Altevékenységek label_summary: Összegzés label_system: Rendszer + label_system_or_language_default: Use system or language based default label_system_settings: Rendszerbeállítások label_system_storage: Tároló információ label_table_of_contents: Tartalomjegyzék @@ -4108,6 +4497,7 @@ hu: label_time: Idő label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Eltöltött idő + label_timer_since: Elkezdődött %{time}-kor label_title: Cím label_today: Ma label_today_as_date: Select today as date. @@ -4143,7 +4533,9 @@ hu: label_user_search: Felhasználó keresése label_user_settings: Felhasználói beállítások label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Módosított verzió label_version_new: Új verzió label_version_plural: Verzió @@ -4156,6 +4548,7 @@ hu: label_videos: Videók label_view_all_revisions: Az összes módosítás megtekintése label_view_diff: A különbségek megtekintése + label_view_mode_switcher: Nézet módosítása label_view_revisions: A változtatások megtekintése label_view_x: 'View: %{x}' label_watched_work_packages: Megfigyelt munkacsomagok @@ -4179,6 +4572,8 @@ hu: label_wiki_start: Kezdő oldal label_wiki_toc: Tartalomjegyzék label_wiki_toc_empty: A tartalomjegyzék üres, mivel nincs címsor. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Munka label_work_package: Feladatcsoport label_work_package_attachments: Munkacsomag mellékletek @@ -4201,45 +4596,46 @@ hu: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Munkahét label_x_closed_work_packages_abbr: - one: 1 lezárt + one: "%{count} closed" other: "%{count} lezárt" zero: 0 lezárt label_x_comments: - one: 1 komment + one: "%{count} comment" other: "%{count} hozzászólás" zero: nincsenek hozzászólások label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 nyitott + one: "%{count} open" other: "%{count} nyitott" zero: 0 nyitott label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projekt" zero: nincsenek projektek label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: tegnap label_zen_mode: Zen mode @@ -4294,7 +4690,7 @@ hu: start_tls: STARTTLS start_tls_description: STARTTLS parancs küldése a szabványos LDAP-porthoz való csatlakozás után. Titkosított kapcsolatokhoz ajánlott. tls_options: - tls_certificate_description: Ha az LDAP-kiszolgáló tanúsítványa nem szerepel a rendszer megbízható forrásai között, itt manuálisan hozzáadhatja. Írja be a PEM X509 tanúsítvány karakterláncát. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL tanúsítvány ellenőrzése verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4353,6 +4749,8 @@ hu: you_have: Neked van logo_alt_text: Logó mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 'Az értesítési központba @@ -4417,10 +4815,8 @@ hu: ' mentioned_by: "%{user} megemlített téged egy hozzászólásban" more_to_see: - one: 'Még 1 munkacsomag van értesítésekkel. - - ' - other: Még %{count} munkacsomag van értesítésekkel. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Megnyitás böngészőben reason: assigned: Hozzárendelve @@ -4608,6 +5004,13 @@ hu: create_button: Létrehoz dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Hozzáférési token helyreállítása sikertelen: %{error}' @@ -4621,10 +5024,26 @@ hu: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Hozzáférési token description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Művelet expiration: Lejár @@ -4830,7 +5249,6 @@ hu: notice_principals_found_single: |- Egyetlen találat van. A Tab billentyű megnyomásával ugrik rá a fókusz. - notice_project_cannot_update_custom_fields: 'Nem tudod firssíteni a projekt egyedi mezőit. A projekt érvénytelen: %{errors}' notice_project_not_deleted: A projekt nem lett törölve. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4840,9 +5258,6 @@ hu: notice_successful_create: Sikeres létrehozás. notice_successful_delete: Sikeres törlés. notice_successful_update: Sikeres frissítés. - notice_successful_update_custom_fields_added_to_project: | - Sikeres frissítés. Az aktivált típusok egyéni mezői automatikusan aktiválódnak - a munkacsomag űrlapon. További információ. notice_to_many_principals_to_display: Túl sok a találat. Szűkítse le a keresést az új tagok (vagy csoport) nevének beírásával. notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -4956,7 +5371,7 @@ hu: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -5053,8 +5468,6 @@ hu: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5074,7 +5487,6 @@ hu: or: vagy rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5146,8 +5558,8 @@ hu: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5172,7 +5584,7 @@ hu: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Megjegyzések írása a hírekehez permission_commit_access: Olvasási és írási jog a tárolóhoz (commit) - permission_copy_projects: Projekt másolása + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Ismétlődő munkacsomag permission_create_backup: Biztonsági mentés létrehozása @@ -5205,6 +5617,7 @@ hu: permission_export_projects: Export projects permission_export_work_packages: feladatcsoportok exportálása permission_header_for_project_module_work_package_tracking: Munkacsomagok és Gantt diagramok + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5215,6 +5628,9 @@ hu: permission_manage_dashboards: Manage dashboards permission_manage_forums: Fórum kezelése permission_manage_members: Tagok kezelése + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Hírek kezelése permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5243,7 +5659,6 @@ hu: permission_save_bcf_queries: Save BCF queries permission_save_queries: Nézet mentése permission_search_project: Search project - permission_select_custom_fields: Egyedi mezők kiválasztása permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Projekt modulok kiválasztása permission_select_project_phases: Select project phases @@ -5277,6 +5692,16 @@ hu: permission_work_package_assigned: Legyen megbízott/felelős permission_work_package_assigned_explanation: Munkacsomagok hozzárendelhetők a szerephez tartozó felhasználókhoz és csoportokhoz az adott projektben placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Teszt felhasználó törlése deletion_info: data_consequences: 'A teszt felhasználó minden előfordulása (pl. Mint jogosult, felelős vagy más felhasználói érték) át lesz rendelve a "Törölt felhasználó" nevű fiókba. Mivel minden törölt fiók adatait újra hozzárendeli ehhez a fiókhoz, nem lehet megkülönböztetni a felhasználó által létrehozott adatokat egy másik törölt fiók adataitól. @@ -5298,7 +5723,7 @@ hu: name: OmniAuth SAML / Egyszeri bejelentkezés portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5309,7 +5734,7 @@ hu: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5324,7 +5749,7 @@ hu: Ezzel kiemelhetők munkacsomagok a táblázatban. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5336,7 +5761,7 @@ hu: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekt + one: "%{count} project" other: "%{count} projekt" zero: 0 projects destroy: @@ -5443,11 +5868,11 @@ hu: no_status_when_submitted: A projektindítási kérelem engedélyezése nem sikerült, mivel a „ %{type} ” munkacsomag-típushoz legalább egy állapotot kell társítani. Kérjük, engedélyezzen legalább egy állapot-munkafolyamatot ehhez a munkacsomag-típushoz. no_work_package_type: A projektindítási kérelem engedélyezése nem sikerült, mivel ahhoz legalább egy aktív munkacsomag-típusra van szükség, ennek a projektnek viszont nincs ilyenje. Kérjük, adjon hozzá legalább egy munkacsomag-típust ehhez a projekthez. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5457,6 +5882,12 @@ hu: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Jelenleg nincs elérhető egyedi mező. forums: no_results_content_text: Új fórum létrehozása @@ -5555,14 +5986,14 @@ hu: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5574,7 +6005,7 @@ hu: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Új verzió létrehozása - no_results_title_text: Jelenleg nincsenek verziók a projekthez. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Munka-csomag grafikon work_package_priorities: @@ -5582,15 +6013,27 @@ hu: status: button_edit: Állapot szerkesztése wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Előre beállított szűrő alkalmazása configure_view: @@ -5619,10 +6062,8 @@ hu: action_title: React add_reaction: Add reaction and_others: - one: 'és 1 másik - - ' - other: és %{count} egyéb + one: and %{count} other + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5739,6 +6180,31 @@ hu: warnings: cannot_annotate: Ez a fájl nem annotálható. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5750,6 +6216,15 @@ hu: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5856,7 +6331,7 @@ hu: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: A különböző sorok megjelenítésének maximális száma setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Megjelenítendő alprojektek, feladatcsoportok a fő projekt alapértelmezett beállítása szerint + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5975,6 +6450,7 @@ hu: setting_start_of_week: Hét kezdőnapja setting_sys_api_description: A csomagtároló webszolgáltatás integrációt és felhasználói hozzáférést biztosít a tároló eléréséhez. setting_sys_api_enabled: Csomagtároló webszolgáltatás bekapcsolva + setting_sys_api_key: API key setting_time_format: Idő setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6027,7 +6503,7 @@ hu: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6038,6 +6514,7 @@ hu: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6133,12 +6610,12 @@ hu: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6158,8 +6635,8 @@ hu: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6167,7 +6644,7 @@ hu: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6187,6 +6664,7 @@ hu: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6243,7 +6721,7 @@ hu: section_work_week: Munkahét sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6336,19 +6814,19 @@ hu:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Lezárva - is_default: alapértelmezett is_readonly: Írásvédett + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Új státusz hozzáadása no_results_title_text: Jelenleg nincsenek feladatcsoport státuszok. + status_actions: Status actions support: array: sentence_connector: és skip_last_comma: hamis text_access_token_hint: Hozzáférés tokennel lehetővé teszi, hogy külső alkalmazások hozzáférhessenek az OpenProject forrásaihoz. - text_accessibility_hint: A kisegítő lehetőségek mód vakok és gyengén látók illetve mozgásukban korlátozottak számára lett tervezve. Gyengénlátók számára a fókuszált elemek kivételes kiemeléssel jelennek meg. Vegye figyelembe, hogy a "Backlogs" modul nem érhető el ebben a módban. text_analyze: 'További elemzése: %{subject}' text_are_you_sure: Biztos vagy benne? text_are_you_sure_continue: Are you sure you want to continue? @@ -6391,12 +6869,6 @@ hu: ' text_custom_field_possible_values_info: Az egyes értékek külön sorban - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6446,6 +6918,7 @@ hu: text_length_between: "%{min} és %{max} karakter közötti hosszúságú." text_line_separated: A többszörös érték adás megengedett (minden érték külön sorban). text_load_default_configuration: Az alapértelmezett konfiguráció betöltése + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Nincs hozzáférési token, amely konfigurálható. text_no_configuration_data: Szerepkörök, típusok, a feladatcsoport állapotok és a munkafolyamatok nincsenek beállítva. Erősen ajánlott, az alapértelmezett konfiguráció betöltése. Akkor képes lesz arra, hogy módosítsa. text_no_notes: Ehhez a munkacsomaghoz nincsenek megjegyzések. @@ -6545,6 +7018,68 @@ hu: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6554,14 +7089,40 @@ hu: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6570,8 +7131,10 @@ hu: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6600,21 +7163,21 @@ hu: file_link: caption: A létrehozott PDF-fájlt feltöltik a projekt automatikusan kezelt Nextcloud-tárolójába, és a munkacsomagból hivatkozással ellátják. Azoknál a projekteknél, amelyek nem rendelkeznek ilyen tárolóval, a munkacsomagokat kihagyják. label: Töltsd fel a fájlt egy külső fájltárolóba, és add hozzá a fájl linkjét a munkacsomaghoz - intro: Az ilyen típusú munkacsomagokról automatikusan hozzon létre PDF-fájlt, valahányszor azok állapota megváltozik. - invalid_mode: Érvénytelen műtárgy exportálási mód. - label: Műtárgyak automatikus exportálása + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: A rendszer nem hozott létre automatikusan PDF-fájlt. label: Kikapcsolva - section_title: Műtárgyak automatikus exportálása + section_title: Automatic artifact export unavailable: nem elérhető, nincs beállítva automatikusan kezelt Nextcloud-tároló - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6631,6 +7194,8 @@ hu: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6652,6 +7217,14 @@ hu: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6661,12 +7234,14 @@ hu: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6680,12 +7255,12 @@ hu: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6698,10 +7273,12 @@ hu: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Alapértelmezett az összes projektnél select_projects: Válasszon projektet select_projects_description: Válassza ki azokat a projekteket, amelyekben ezt a típust szeretné használni. tab: Projektek + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6716,43 +7293,17 @@ hu: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6760,6 +7311,9 @@ hu: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6768,13 +7322,14 @@ hu: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6788,12 +7343,16 @@ hu: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6802,33 +7361,74 @@ hu: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Új típus létrehozása no_results_title_text: Jelenleg nincsenek típusok. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Figyelmeztetés figyelmen kívül hagyása. message: Előfordulhat, hogy hibákba ütközik és romlik az élmény ezen az oldalon. @@ -6847,8 +7447,8 @@ hu: authorization_rejected: Nem megengedett bejelentkezés. blocked: ideiglenesen zárolva blocked_num_failed_logins: - one: ideiglenesen zárolva (egy sikertelen bejelentkezési kísérlet) - other: ideiglenesen zárolva (%{count} sikertelen bejelentkezési kísérlet) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: "'%{name}' állapotát készül megváltoztatni. Biztosan folytatja?" deleted: Törölt felhasználó department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6958,7 +7558,7 @@ hu: deletion_warning: Biztosan vissza akarja vonni ezt a munkamenetet? Ekkor kijelentkezik erről az eszközről. device: Eszköz / Operációs rendszer expires: Lejár - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: Az aktuális munkamenetet nem törölheti. session_name: "%{browser_name} %{browser_version} %{os_name} operációs rendszeren" @@ -7018,13 +7618,19 @@ hu: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: lezárt version_status_locked: zárolt version_status_open: nyitott versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Jelenleg nincsenek ehhez a verzióhoz hozzárendelt feladatcsoportok. work_packages_in_archived_projects: A verzió megosztásra kerül az archivált projektekkel, amelyekhez még mindig vannak ehhez a verzióhoz rendelt munkacsomagok. Ezek számításba kerülnek, de nem jelennek meg a kapcsolódó nézetekben. @@ -7196,12 +7802,14 @@ hu: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: A munkacsomagokat nem lehetett másolni. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Az alábbi munkacsomagot nem lehet elmenteni:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: a kijelöltek leszármazottja move_failed: The work packages could not be moved. @@ -7226,17 +7834,17 @@ hu: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7294,18 +7902,154 @@ hu: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7337,37 +8081,53 @@ hu: version: no_results_title_text: Nincs elérhető verzió. x_descendants: - one: Egy leszármazott feladatcsoport - other: "%{count} munkacsomag leszármazottai" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7376,12 +8136,88 @@ hu: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/hy.seeders.yml b/config/locales/crowdin/hy.seeders.yml index 33119016c5f6..625119987a21 100644 --- a/config/locales/crowdin/hy.seeders.yml +++ b/config/locales/crowdin/hy.seeders.yml @@ -250,70 +250,26 @@ hy: Այս մոդուլում կարող եք Ձեր թիմի անդամներին հաղորդել նախագծի նորությունները։ versions: item_0: - name: Վրիպակների բեքլոգ - item_1: - name: Արտադրանքի բեքլոգ - item_2: - name: Սպրինտ 1 wiki: - title: Սպրինտ 1 + title: Release 1.0 content: | - ### Սպրինտի պլանավորման հանդիպում - - _Խնդրում ենք այստեղ փաստագրել սպրինտի պլանավորման հանդիպման թեմաները_ - - * Ժամանակով սահմանափակված (8 ժ) - * Մուտք՝ Արտադրանքի բեքլոգ - * Ելք՝ Սպրինտի բեքլոգ - - * Բաժանված է 4 ժ տևողությամբ երկու լրացուցիչ ժամանակահատվածի՝ - - * Product Owner-ը թիմին ներկայացնում է [Արտադրանքի բեքլոգը]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) և առաջնահերթությունները և բացատրում է Սպրինտի նպատակը, որին թիմը պետք է համաձայնի։ Միասին նրանք ըստ առաջնահերթության դասավորում են Արտադրանքի բեքլոգի այն թեմաները, որոնցով թիմը կզբաղվի հաջորդ սպրինտում։ Թիմը պարտավորվում է կատարել քննարկված առաքումը։ - * Թիմն ինքնուրույն (առանց Product Owner-ի) մանրամասն պլանավորում է և քննարկված պահանջներից առանձնացնում է առաջադրանքները՝ [Սպրինտի բեքլոգը]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) ձևավորելու համար։ - - - ### Ամենօրյա Scrum հանդիպում - - _Խնդրում ենք այստեղ փաստագրել ամենօրյա Scrum հանդիպման թեմաները_ - - * Թիմի կարճ, ամենօրյա հանդիպում ընթացիկ վիճակի վերաբերյալ։ - * Ժամանակով սահմանափակված (առավ. 15 ր)։ - * Ոտքի վրա անցկացվող հանդիպում՝ [Առաջադրանքների տախտակից](##sprint:scrum_project__version__sprint_1) հետևյալ թեմաները քննարկելու համար։ - * Ի՞նչ եմ պլանավորում անել մինչև հաջորդ ամենօրյա Scrum-ը։ - * Ի՞նչն է խոչընդոտել իմ աշխատանքը (խոչընդոտներ)։ - * Scrum Master-ը վարում է հանդիպումը և գրանցում [սպրինտի խոչընդոտները](##sprint:scrum_project__version__sprint_1)։ - * Product Owner-ը կարող է մասնակցել՝ տեղեկացված մնալու համար։ - - ### Սպրինտի վերանայման հանդիպում + ### Release 1.0 - _Խնդրում ենք այստեղ փաստագրել սպրինտի վերանայման հանդիպման թեմաները_ + _Please document here what this release contains._ - * Ժամանակով սահմանափակված (4 ժ)։ - * Յուրաքանչյուր մասնակցի համար առավելագույնը մեկ ժամ նախապատրաստման ժամանակ։ - * Թիմը Product Owner-ին և այլ շահագրգիռ անձանց ցույց է տալիս, թե ինչ է ձեռք բերվել այս սպրինտում։ - * Կարևոր՝ ոչ մի մակետ և ոչ մի PowerPoint։ Պետք է ցուցադրվի միայն ավարտված արտադրանքի ֆունկցիոնալությունը (ինկրեմենտներ)։ - * Product Owner-ի, շահագրգիռ կողմերի և այլոց արձագանքը ցանկալի է և հաշվի կառնվի հետագա աշխատանքում։ - * Ցուցադրված ֆունկցիոնալության հիման վրա Product Owner-ը որոշում է այս ինկրեմենտը գործարկել կամ շարունակել մշակել այն։ Այս հնարավորությունը թույլ է տալիս ապահովել վաղ ROI։ - - - ### Սպրինտի ռետրոսպեկտիվ - - _Խնդրում ենք այստեղ փաստագրել սպրինտի ռետրոսպեկտիվ հանդիպման թեմաները_ - - * Ժամանակով սահմանափակված (3 ժ)։ - * Անցկացվում է Սպրինտի վերանայումից հետո, վարում է Scrum Master-ը։ - * Թիմը քննարկում է սպրինտը՝ ինչն է լավ անցել, ինչը պետք է բարելավել, որպեսզի հաջորդ սպրինտում ավելի արդյունավետ լինի կամ նույնիսկ ավելի հաճելի անցնի։ - item_3: - name: Սպրինտ 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Կատեգորիա 1 (ենթակա է փոփոխման նախագծի կարգավորումներում) queries: item_0: name: Նախագծի պլան item_1: - name: Արտադրանքի բեքլոգ + name: Version 1.1 item_2: - name: Սպրինտ 1 + name: Version 1.0 item_3: name: Առաջադրանքներ boards: @@ -339,20 +295,21 @@ hy: options: name: Ինչպես սկսել text: | - Ուրախ ենք, որ միացել եք։ Առաջարկում ենք փորձել մի քանի բան՝ OpenProject-ում աշխատանքը սկսելու համար։ + We are glad you joined! We suggest to try a few things to get started in OpenProject. - _Փորձեք հետևյալ քայլերը՝_ + _Try the following steps:_ - 1. *Հրավիրեք նոր անդամներ Ձեր նախագիծ*՝ → անցեք նախագծի նավիգացիայի [Անդամներ]({{opSetting:base_url}}/projects/your-scrum-project/members) բաժին։ - 2. *Դիտեք Ձեր Արտադրանքի բեքլոգը և Սպրինտի բեքլոգները*՝ → անցեք նախագծի նավիգացիայի [Բեքլոգներ]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) բաժին։ - 3. *Դիտեք Ձեր առաջադրանքների տախտակը*՝ → անցեք [Բեքլոգներ]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → սեղմեք սպրինտի աջ սլաքի վրա → ընտրեք [Առաջադրանքների տախտակ](##sprint:scrum_project__version__sprint_1)։ - 4. *Ստեղծեք նոր աշխատանքային փաթեթ*՝ → անցեք [Աշխատանքային փաթեթներ → Ստեղծել]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new)։ - 5. *Ստեղծեք և թարմացրեք նախագծի պլան*՝ → անցեք նախագծի նավիգացիայի [Նախագծի պլան](##query:scrum_project__query__project_plan) բաժին։ - 6. *Ստեղծեք Սպրինտի վիքի*՝ → անցեք [Բեքլոգներ]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) և սպրինտի աջ բացվող ընտրացանկից բացեք սպրինտի վիքին։ Դուք կարող եք խմբագրել [վիքի ձևանմուշը]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) ըստ Ձեր կարիքների։ - 7. *Ակտիվացրեք լրացուցիչ մոդուլներ*՝ → անցեք [Նախագծի կարգավորումներ → Մոդուլներ]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules)։ + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Այստեղ կգտնեք մեր [Օգտատերի ուղեցույցները](https://www.openproject.org/docs/user-guide/)։ - Խնդրում ենք տեղեկացնել մեզ, եթե հարցեր ունեք կամ աջակցության կարիք։ Կապվեք մեզ հետ՝ [support[at]openproject.com](mailto:support@openproject.com)։ + + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Աշխատանքային փաթեթներ diff --git a/config/locales/crowdin/hy.yml b/config/locales/crowdin/hy.yml index d58526bc09e0..c1becf78a4c0 100644 --- a/config/locales/crowdin/hy.yml +++ b/config/locales/crowdin/hy.yml @@ -40,7 +40,9 @@ hy: view: Մակրոյի միջոցով տեղադրված դինամիկ հղում տեսքին։ work_package: Մակրոյի միջոցով տեղադրված դինամիկ հղում աշխատանքային փաթեթին։ account: + already_have_an_account: You already have an account? auth_source_login_html: Ձեր հաշիվն ակտիվացնելու համար խնդրում ենք մտնել որպես %{login}։ + continue_with_provider: Continue with %{name} delete: Ջնջել հաշիվը delete_confirmation: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել հաշիվը։ deletion_info: @@ -65,7 +67,9 @@ hy: error_self_registration_limited_provider: 'Օգտատերերի գրանցումը սահմանափակված է ''%{name}'' Single sign-on մատակարարի համար։ Խնդրում ենք դիմել ադմինիստրատորին, որպեսզի նա ակտիվացնի Ձեր հաշիվը կամ փոփոխի այս մատակարարի ինքնագրանցման սահմանաչափը։ ' - login_with_auth_provider: կամ մտեք Ձեր գործող հաշվով + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Ձեր հաշիվն ակտիվացնելու համար խնդրում ենք մտնել։ @@ -118,6 +122,8 @@ hy: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM հաճախորդներ + automation: + actions: Actions calculated_value_error: customized_id: Հարմարեցված օբյեկտի ID customized_type: Հարմարեցված օբյեկտի տեսակ @@ -128,8 +134,6 @@ hy: repository: Պահոց comment: commented: Մեկնաբանված - custom_action: - actions: Գործողություններ custom_field: admin_only: Միայն ադմինիստրատորի համար allow_non_open_versions: Թույլատրել ոչ բաց տարբերակներ @@ -168,6 +172,7 @@ hy: uid: Հաճախորդի ID emoji_reaction: reactable: Արձագանքի օբյեկտ + reaction: Reaction enterprise_token: active_user_count_restriction: Ակտիվ օգտատերեր encoded_token: Enterprise աջակցության թոքեն @@ -179,20 +184,44 @@ hy: company: Ընկերություն favorite: favorited: Տարր + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Սյունակների թիվ page: Էջ row_count: Տողերի թիվ widgets: Վիջեթներ group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Խմբի օգտատերեր identity_url: Ինքնության URL organizational_unit: Կազմակերպական միավոր parent: Ծնող խումբ group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Կազմակերպական միավոր parent: Ծնող խումբ import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira համակարգի անվանում personal_access_token: Անձնական մուտքի թոքեն url: Jira համակարգի URL @@ -223,6 +252,7 @@ hy: title: Վերնագիր member: blocked: Արգելափակված + principal_type: Member type roles: Դերեր notification: read_ian: Հավելվածում կարդացված @@ -235,6 +265,7 @@ hy: position: Դիրք persisted_query: filters: Զտիչներ + group_bys: Group results by name: Անվանում orders: Դասավորություններ selects: Ընտրություններ @@ -367,6 +398,8 @@ hy: ongoing: Ընթացող spent_on: Ամսաթիվ type: Տեսակ + token/base: + expires_on: Expiration date token/ical: calendar: Օրացույց ical_token_query_assignment: Հարցման նշանակում @@ -384,19 +417,17 @@ hy: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Ադմինիստրատոր auth_source: Նույնականացման աղբյուր + avatar_type: Avatar type consented_at: Համաձայնության ժամանակ current_password: Ընթացիկ գաղտնաբառ department: Ստորաբաժանում @@ -410,7 +441,7 @@ hy: last_name: Ազգանուն ldap_auth_source: LDAP կապ new_password: Նոր գաղտնաբառ - password_confirmation: Հաստատում + password_confirmation: Password confirmation user_custom_field: custom_field_section: Բաժին user_non_working_time: @@ -419,11 +450,15 @@ hy: user_preference: auto_hide_popups: Ավտոմատ թաքցնել հաջողության ազդագրերը auto_hide_popups_caption: Միացված լինելու դեպքում հաջողության կանաչ ազդագրերն ավտոմատ կերպով կանհետանան 5 վայրկյան անց։ + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Թարմացնել ազդանշանները button_update_look_and_feel: Թարմացնել տեսքն ու ոճը button_update_user_information: Թարմացնել պրոֆիլը comments_sorting: Ցուցադրել աշխատանքային փաթեթի գործունեությունը դասավորված ըստ daily_reminders: Օրական հիշեցումներ + date_format: Date format disable_keyboard_shortcuts: Անջատել ստեղնաշարի դյուրանցումները dismissed_enterprise_banners: Թաքցված Enterprise ազդագրեր force_dark_theme_contrast: Պարտադրել բարձր հակադրություն մուգ ռեժիմում @@ -434,13 +469,23 @@ hy: header_look_and_feel: Տեսք և ոճ impaired: Մատչելիության ռեժիմ increase_contrast: Բարձրացնել հակադրությունը - increase_contrast_caption: Միացնում է բարձր հակադրության ռեժիմը ընտրված գունային ռեժիմի համար։ + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Բարձրացնել թեմայի հակադրությունը mode_guideline: Որոշ ռեժիմներ կվերագրեն հատուկ թեմայի գույները՝ մատչելիության և ընթեռնելիության համար։ Խնդրում ենք ընտրել բաց ռեժիմը՝ հատուկ թեմայի լիարժեք աջակցության համար։ + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Գունային ռեժիմ + time_format: Time format time_zone: Ժամային գոտի warn_on_leaving_unsaved: Նախազգուշացնել ինձ չպահպանված փոփոխություններով աշխատանքային փաթեթից հեռանալիս workdays: Աշխատանքային օրեր + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Հասանելիության գործակից days: Աշխատանքային օրեր @@ -491,6 +536,7 @@ hy: title: Աշխատանքային օրեր true: ներառել ոչ աշխատանքային օրերը journal_internal: Ներքին մատյան + labels: Labels notify: Ծանուցել observed_in_versions: Observed in versions parent: Ծնող @@ -519,6 +565,10 @@ hy: work_package: Աշխատանքային փաթեթ work_package_version: kind: Տիպ + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: պետք է ընդունվի։ @@ -590,6 +640,8 @@ hy: regex_invalid: չհաջողվեց վավերացնել համապատասխան կանոնավոր արտահայտությամբ։ regex_list_invalid: "%{invalid_lines} տողերը հնարավոր չէ վերլուծել որպես կանոնավոր արտահայտություն։" regex_match_failed: չի համապատասխանում %{expression} կանոնավոր արտահայտությանը։ + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: պետք է փոքր կամ հավասար լինի առավելագույն երկարությանը։ smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: խախտում է այս OpenProject համակարգի SSRF քաղաքականությունը։ @@ -612,6 +664,10 @@ hy: user_in_ldap_managed_department: Այս օգտատերը պատկանում է LDAP համաժամացմամբ կառավարվող ստորաբաժանման և չի կարող տեղափոխվել։ wrong_length: սխալ երկարություն ունի (պետք է լինի %{count} նշան)։ models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ hy: general_consent: Խնդրում ենք ընդունել պայմաններն ու դրույթները։ favorite: already_favorited: արդեն ավելացվել է ընտրանիում։ + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: ավարտի արժեքը պետք է մեծ լինի սկզբի արժեքից։ outside: ցանցի սահմաններից դուրս է։ @@ -689,6 +755,13 @@ hy: not_unique: արդեն օգտագործվում է։ Խնդրում ենք ընտրել այլ անվանում։ jira: invalid_protocol: Խնդրում ենք նշել վավեր պրոտոկոլ (http կամ https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ hy: types: cannot_assign_multiple_variants_of_parent: Նախագծում հնարավոր է միացնել Տեսակի միայն մեկ տարատեսակ cannot_assign_variant_and_parent: 'Հնարավոր չէ միաժամանակ նշանակել տարատեսակը և դրա ծնողը ' - cannot_assign_variants_yet: Տարատեսակները դեռ հնարավոր չէ միացնել նախագծում։ Տարատեսակները փորձարկելու համար միացրեք գործառույթի դրոշակը in_use_by_work_packages: դեռ օգտագործվում են աշխատանքային փաթեթների կողմից՝ %{types} switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ hy: blank: Խնդրում ենք նշել թոքենի անվանում format: "%{message}" in_use: Այս թոքենի անվանումն արդեն օգտագործվում է, խնդրում ենք ընտրել այլ անվանում + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ hy: numeric: թվային (օր. '1') requirements_not_met: Պետք է ներառի հետևյալ տեսակների նշաններ՝ %{rules} reused: - one: արդեն օգտագործվել է։ Խնդրում ենք ընտրել այնպիսին, որը տարբերվում է Ձեր վերջին գաղտնաբառից։ - other: արդեն օգտագործվել է։ Խնդրում ենք ընտրել այնպիսին, որը տարբերվում է Ձեր վերջին %{count} գաղտնաբառից։ + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: հատուկ (օր. '%') uppercase: մեծատառ (օր. 'A') password_confirmation: @@ -976,6 +1032,8 @@ hy: identifier: must_not_be_changed: 'չպետք է փոփոխվի ձեռքով։ Աշխատանքային փաթեթների նույնացուցիչները հատկացվում են ինքնաշխատ և որոշվում են alias աղյուսակի միջոցով, ուստի դրանք ձեռքով փոփոխելը խաթարում է հղումները և նույնացուցիչների պատմությունը։ Եթե այս փոփոխությունը կանխամտածված է, պահպանեք `save(context: :%{context})`-ով և ապահովեք work_package_semantic_aliases աղյուսակի համապատասխանությունը։' semantic_identifier_incomplete: և sequence_number-ը պետք է սահմանվեն միաժամանակ։ + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: չի կարող լինել այլ նախագծում։ cannot_be_milestone: չի կարող լինել հանգրվան։ @@ -1003,6 +1061,8 @@ hy: status_id: status_invalid_in_type: անվավեր է, քանի որ ընթացիկ կարգավիճակը գոյություն չունի այս տեսակում։ status_transition_invalid: անվավեր է, քանի որ ընթացիկ օգտատիրոջ դերերի համար հին կարգավիճակից նորին վավեր անցում գոյություն չունի։ + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: չի կարող լինել հանգրվան, քանի որ այս աշխատանքային փաթեթն ունի դուստր աշխատանքային փաթեթներ։ is_not_a_valid_target_for_time_entries: "#%{id} աշխատանքային փաթեթը ժամանակի գրառումների վերանշանակման վավեր թիրախ չէ։" @@ -1011,8 +1071,8 @@ hy: template: body: Խնդրում ենք ստուգել հետևյալ դաշտերը՝ header: - one: 1 սխալ արգելեց այս %{model}-ի պահպանումը - other: "%{count} սխալ արգելեց այս %{model}-ի պահպանումը" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ hy: auth_provider: one: Նույնականացման մատակարար other: Նույնականացման մատակարարներ + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ hy: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ hy: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ hy: issue_priority: one: Առաջնահերթություն other: Առաջնահերթություններ + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ hy: admin: banners: environment_configured_readonly: Այս արժեքները կազմաձևված են միջավայրի փոփոխականների միջոցով և հնարավոր չէ խմբագրել այստեղ։ + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ hy: tab_interface: Միջերես tab_pdf_export_font: PDF արտահանման տառատեսակ tab_pdf_export_styles: PDF արտահանման ոճեր - theme_warning: Թեմայի փոփոխությունը կվերագրի Ձեր հատուկ ոճը։ Այնուհետև ձևավորումը կկորչի։ Համոզվա՞ծ եք, որ ցանկանում եք շարունակել։ + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Վերբեռնել Enterprise edition-ի աջակցության թոքեն book_now: Ամրագրել հիմա @@ -1467,7 +1558,7 @@ hy: import: title: Ներմուծել info: - database_deprecation_html: 'Սկսած OpenProject 16.0-ից՝ OpenProject-ն օգտագործելու համար պահանջվում է PostgreSQL 16։ Ձեր տեղակայումը կշարունակի աշխատել ընթացիկ տվյալների բազայով, սակայն ապագա թողարկումներում ակնկալեք անհամատեղելիություն։
Մենք պատրաստել ենք [տեղակայման բոլոր եղանակների բարելավման ուղեցույցներ](upgrade_guide)։ Դուք կարող եք բարելավումը կատարել ցանկացած ժամանակ՝ դեռ մինչև հաջորդ թողարկումը, հետևելով ուղեցույցներին։ + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc հիշողության բաշխիչ @@ -1475,12 +1566,15 @@ hy: actions: button_edit: Խմբագրել կազմաձևումը button_open: Բացել գործարկումները + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Խնդրում ենք օգնել մեզ բարելավել Jira Migrator-ը Ձեր արձագանքներով և մասնավոր տվյալների նվիրաբերմամբ։ Դուք կարող եք միանալ Jira Migrator-ի [մշակման համայնքին](link)։ ' description: Այս Jira Migrator-ը ներկայումս բետա փուլում է։ Ներկայումս աջակցվում են միայն Jira Server/Data Center 10.x և 11.x տարբերակները։ Cloud համակարգերն այս պահին չեն աջակցվում։ title: Բետա - Փորձեք այն։ + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Կազմաձևեք Jira հոսթ՝ Jira-ից այս OpenProject համակարգ տարրերի ներմուծումը սկսելու համար։ title: Դեռ Jira հոսթեր կազմաձևված չեն @@ -1513,16 +1607,30 @@ hy: description: Jira-ն օգտագործում է խնդիրների նույնացուցիչներ, որոնք բաղկացած են նախագծի բանալիից և հերթական համարից (PRJ-123)։ OpenProject-ը նույնպես աջակցում է դրանց, սակայն այն պետք է միացվի [այստեղ](link)։ title: Նախագծի հիմքով իմաստային նույնացուցիչները պետք է միացված լինեն։ form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Ավելացնել կազմաձևում - button_delete_token: Ջնջել թոքենը + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Պահպանել կազմաձևումը - delete_token_confirm: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել թոքենը։ Դա կանջատի Jira-ի միացումը։ + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Անվանում - personal_access_token: Անձնական մուտքի թոքեն + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Կազմաձևման փորձարկում... - test_configuration_caption: Դուք կարող եք փորձարկել այս կազմաձևումը՝ [սեղմելով այստեղ](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Խմբագրել գործարկումը @@ -1626,26 +1734,26 @@ hy: title: Խնդրում ենք համոզվել, որ ունեք պահուստային պատճեն։ parts: issues: - one: 1 խնդիր - other: "%{count} խնդիր" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 նախագիծ - other: "%{count} նախագիծ" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 կարգավիճակ - other: "%{count} կարգավիճակ" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 տեսակ - other: "%{count} տեսակ" + one: "%{count} type" + other: "%{count} types" users: - one: 1 օգտատեր - other: "%{count} օգտատեր" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 աշխատանքային փաթեթ - other: "%{count} աշխատանքային փաթեթ" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Հասկանում եմ, որ այս հետարկումն ընդմիշտ կջնջի տվյալները description: Սա կջնջի բոլոր ներմուծված օբյեկտները (ներառյալ ամբողջական նախագծերը)։ @@ -1710,8 +1818,8 @@ hy: caption: Ընտրեք, թե ինչ եք ցանկանում ներմուծել OpenProject-ում caption_done: Ավարտված caption_done_description: - one: 1 նախագիծ ընտրված է որպես շրջանակ - other: "%{count} նախագիծ ընտրված է որպես շրջանակ" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Ընտրեք, թե ինչ տվյալներ եք ցանկանում ներմուծել հոսթ Jira համակարգից ստացված հասանելի տվյալներից։ elements: custom_fields: Հատուկ դաշտերի ենթաբազմություն @@ -1775,23 +1883,53 @@ hy: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API-ն վերադարձրել է %{status} սխալի կարգավիճակ։ Խնդրում ենք ստուգել Ձեր Jira համակարգի URL-ը և API թոքենը։ + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: Կապի սխալ՝ %{message} error: Կապը ստուգելիս անսպասելի սխալ է տեղի ունեցել failed: Կապը ձախողվեց՝ հնարավոր չէ ստանալ սերվերի տեղեկությունները invalid_url: Խնդրում ենք տրամադրել վավեր URL - missing_credentials: Կապը ստուգելու համար խնդրում ենք տրամադրել և՛ URL-ը, և՛ անձնական մուտքի թոքենը parse_error: Չհաջողվեց վերլուծել սերվերի պատասխանը։ Հնարավոր է՝ սերվերը վավեր Jira համակարգ չէ։ + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Հաջողությամբ միացվել է %{server}-ին (տարբերակ %{version}) - token_error: Անվավեր API թոքեն։ Խնդրում ենք ստուգել Ձեր հավատարմագրերը կազմաձևման մեջ։ + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira միգրացիոն գործիք - token_deleted: Թոքենը հաջողությամբ ջնջվել է։ user: unknown_name: Անհայտ journal_aggregation: caption_with_maximum: 'Աշխատանքային փաթեթի վրա օգտատիրոջ գործողությունները (նկարագրության, կարգավիճակի, արժեքների փոփոխում կամ մեկնաբանությունների գրում) խմբավորվում են, եթե կատարվում են այս ժամանակահատվածում։ Այն նաև կարգավորում է ծանուցումների և [վեբհուքի](webhook_link) ուշացումները։ Առավելագույնը %{max} րոպե է։ ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: Model Context Protocol-ը թույլ է տալիս AI գործակալներին իրենց օգտատերերին տրամադրել այս OpenProject համակարգի կողմից բացահայտված գործիքներ և ռեսուրսներ։ Այս հնարավորությունը դեռ բետա փուլում է։ @@ -1822,6 +1960,18 @@ hy: update: failure: MCP կազմաձևումը չհաջողվեց թարմացնել։ success: MCP կազմաձևումը հաջողությամբ թարմացվել է։ + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Լրացուցիչ տեղեկությունների համար տեսեք մեր ինտեգրացիաների և հավելումների էջը։ no_results_title_text: Ներկայումս տեղադրված հավելումներ չկան։ @@ -1835,8 +1985,8 @@ hy: confirm_button: Հանել նույնացուցիչի վերապահումը description: Այս նախագծի նույնացուցիչի վերապահման հանումն անշրջելի է։ Այն օգտագործող արտաքին հղումները և ինտեգրացիաները կդադարեն աշխատել, և անունը կդառնա հասանելի ցանկացած նոր նախագծի համար։ description_with_work_packages: - one: Այս նախագծի նույնացուցիչի (և դրա 1 աշխատանքային փաթեթի նույնացուցիչի) վերապահման հանումն անշրջելի է։ Այն օգտագործող արտաքին հղումները և ինտեգրացիաները կդադարեն աշխատել, և անունը կդառնա հասանելի ցանկացած նոր նախագծի համար։ - other: Այս նախագծի նույնացուցիչի (և դրա %{count} աշխատանքային փաթեթի նույնացուցիչի) վերապահման հանումն անշրջելի է։ Այն օգտագործող արտաքին հղումները և ինտեգրացիաները կդադարեն աշխատել, և անունը կդառնա հասանելի ցանկացած նոր նախագծի համար։ + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Հանե՞լ "%{identifier}"-ի վերապահումը։ title: Հանել նույնացուցիչի վերապահումը empty_body: Երբ նախագծի նույնացուցիչը փոխվում է, նախորդը կհայտնվի այստեղ, որպեսզի Դուք կարողանաք հանել դրա վերապահումը, երբ դա անվտանգ լինի։ @@ -1964,8 +2114,8 @@ hy: error_unknown: Պահանջում է ձեռքով վերանայում error_used_in_past: Վերապահված է այլ նախագծի նույնացուցիչների պատմությամբ remaining_projects: - one: "... ևս 1 նախագիծ" - other: "... ևս %{count} նախագիծ" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: "%{project_count} նախագծի առկա նույնացուցիչները չեն համապատասխանում նախագծի հիմքով իմաստային նույնացուցիչների պահանջներին։ OpenProject-ը կարող է ավտոմատ կերպով թարմացնել դրանք այնպես, որ դրանք վավեր լինեն ինչպես ստորև բերված օրինակներում։ Սեղմեք 'Փոխարկել նույնացուցիչները'՝ բոլոր նախագծերի նույնացուցիչներն այս կերպ թարմացնելու և նախագծի հիմքով իմաստային նույնացուցիչները միացնելու համար։\n" box_header: @@ -2003,7 +2153,7 @@ hy: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2036,13 +2186,20 @@ hy: ignore: Անտեսել փոփոխությունները save: Պահպանել փոփոխությունները և շարունակել title: Պահպանե՞լ փոփոխությունները շարունակելուց առաջ։ + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: Դեր՝ %{role} no_role: Ընտրեք դեր roles: - one: Ընտրված է մեկ դեր - other: Ընտրված է %{count} դեր + one: "%{count} role selected" + other: "%{count} roles selected" title: Ընտրեք դերեր + with_transitions: With transitions + without_transitions: Without transitions status_button: Կարգավիճակ statuses_dialog: caption: Ավելացրեք կամ հեռացրեք կարգավիճակներ, որոնք ցանկանում եք կապել այս տեսակի հետ։ Կարգավիճակի հեռացումը կջնջի նաև դրա հետ կապված աշխատանքային հոսքը։ @@ -2052,8 +2209,8 @@ hy: confirm: Հեռացնել description: Այս կարգավիճակների հեռացումը դրանք անհասանելի կդարձնի այս տեսակի համար և կջնջի առկա աշխատանքային հոսքերը։ Համոզվա՞ծ եք, որ ցանկանում եք շարունակել։ heading: - one: Հեռացնե՞լ 1 կարգավիճակ։ - other: Հեռացնե՞լ %{count} կարգավիճակ։ + one: Remove %{count} status? + other: Remove %{count} statuses? title: Հեռացնել կարգավիճակները tabs: always: Կանխադրված անցումներ @@ -2065,7 +2222,31 @@ hy: assignee: Աշխատանքային փաթեթի պատասխանատուին հասանելի լրացուցիչ անցումներ։ author: Աշխատանքային փաթեթի հեղինակին հասանելի լրացուցիչ անցումներ։ menu_label: Ցուցադրվող անցումներ + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: ներկայումս ցուցադրվում է is_inactive: ներկայումս չի ցուցադրվում show_until: Ցուցադրել մինչև @@ -2073,7 +2254,7 @@ hy: deleted_by_admin: "'%{filename}' մեկուսացված նիշքը ջնջվել է ադմինիստրատորի կողմից։" deleted_message: "'%{filename}' նիշքում հայտնաբերվել է վիրուս։ Նիշքը ջնջվել է։" not_processed_yet_message: Ներբեռնումն արգելափակված է, քանի որ նիշքը դեռ չի ստուգվել վիրուսների առկայության համար։ Խնդրում ենք փորձել ավելի ուշ։ - overridden_by_admin: "'%{filename}' նիշքի մեկուսացումը հեռացվել է %{user}-ի կողմից։ Այժմ նիշքը հասանելի է։" + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Պարունակող օբյեկտ delete: Ջնջել մեկուսացված նիշքը @@ -2127,10 +2308,6 @@ hy: not_found: reminder: Ձեր փնտրած հիշեցումը չի գտնվել կամ ջնջվել է։ work_package: Ձեր փնտրած աշխատանքային փաթեթը չի գտնվել կամ ջնջվել է։ - render: - context_not_parsable: Տրամադրված համատեքստը ռեսուրսի հղում չէ։ - context_object_not_found: Հնարավոր չէ գտնել որպես համատեքստ նշված ռեսուրսը։ - unsupported_context: Նշված ռեսուրսը չի աջակցվում որպես համատեքստ։ unable_to_create_attachment: Կցորդը չհաջողվեց ստեղծել unable_to_create_attachment_permissions: Կցորդը չհաջողվեց պահպանել նիշքային համակարգի բացակայող թույլտվությունների պատճառով user: @@ -2201,6 +2378,7 @@ hy: groups: Խմբեր hexcode: Տասնվեցական կոդ id: ID + inexistent: Inexistent is_default: Կանխադրված արժեք is_for_all: Բոլոր նախագծերի համար issue: Աշխատանքային փաթեթ @@ -2251,6 +2429,7 @@ hy: updated_at: Թարմացվել է updated_on: Թարմացվել է uploader: Վերբեռնող + url: URL user: Օգտատեր username: Օգտանուն value: Արժեք @@ -2265,6 +2444,29 @@ hy: ' login_and_registration: Մուտք և գրանցում + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: Աշխատանքը չեղարկվել է սխալի պատճառով՝ %{message} @@ -2393,6 +2595,7 @@ hy: button_set_reminder: Սահմանել հիշեցում button_show: Ցուցադրել button_sort: Դասավորել + button_stop_timer: Դադարեցնել ժամաչափը button_submit: Ուղարկել button_test: Փորձարկել button_unarchive: Հանել արխիվից @@ -2459,9 +2662,9 @@ hy: text: failed: Հնարավոր չեղավ պատճենել "%{source_project_name}" նախագիծը "%{target_project_name}" նախագծում։ succeeded: '"%{source_project_name}" նախագիծը պատճենվել է "%{target_project_name}"-ում։' - title: Պատճենել "%{source_project_name}" նախագիծը + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Այս տեսակի մեկ օբյեկտ + one: "%{count} object of this type" other: Այս տեսակի %{count} օբյեկտ zero: Այս տեսակի օբյեկտներ չկան create_portfolio: @@ -2499,13 +2702,9 @@ hy: plural: Հատուկ գործողություններ custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Այս հատուկ դաշտը միացված է բոլոր նախագծերում, քանի որ նշված է "Բոլոր նախագծերի համար" ընտրանքը։ Այն հնարավոր չէ անջատել առանձին նախագծերի համար։ - heading: Բոլոր նախագծերի համար hierarchy: subitems: - one: 1 ենթատարր + one: "%{count} sub-item" other: "%{count} ենթատարր" zero: ենթատարրեր չկան items: @@ -2526,7 +2725,7 @@ hy: short: Կարճ անվանում weight: Կշիռ notice: - remember_items_and_projects: Չմոռանաք սահմանել այս հատուկ դաշտի տարրերը և նախագծերը համապատասխան ներդիրներում։ + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Դուք կարող եք ավտոմատ կերպով տրամադրել նախագծի որոշակի դեր ցանկացած օգտատիրոջ, որը նշանակված է այս նախագծի հատկանիշին, անկախ տվյալ նախագծում այդ օգտատիրոջ սկզբնական դերից։ dialog: @@ -2591,16 +2790,17 @@ hy: is_enabled_globally: Միացված է գլոբալ մակարդակում multi_value_more: other: և ևս %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Առանց դերի նշանակման + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Նախ անհրաժեշտ է ընտրել աշխատանքային փաթեթ կամ նախագիծ reorder_alphabetical: Վերադասավորել արժեքներն այբբենական կարգով reorder_confirmation: Նախազգուշացում՝ հասանելի արժեքների ընթացիկ դասավորությունը, ինչպես նաև բոլոր չպահպանված արժեքները կկորչեն։ Համոզվա՞ծ եք, որ ցանկանում եք շարունակել։ semantic_keys: job_title: Պաշտոն none: Ոչ մեկը - tab: - no_results_content_text: Ստեղծեք նոր հատուկ դաշտ - no_results_title_text: Ներկայումս հատուկ դաշտեր չկան։ text_add_new_custom_field: 'Նախագծին նոր հատուկ դաշտեր ավելացնելու համար նախ անհրաժեշտ է ստեղծել դրանք, ապա ավելացնել այս նախագծում։ ' @@ -2664,57 +2864,57 @@ hy: datetime: distance_in_words: about_x_hours: - one: մոտ 1 ժամ - other: մոտ %{count} ժամ + one: about %{count} hour + other: about %{count} hours about_x_months: - one: մոտ 1 ամիս - other: մոտ %{count} ամիս + one: about %{count} month + other: about %{count} months about_x_years: - one: մոտ 1 տարի - other: մոտ %{count} տարի + one: about %{count} year + other: about %{count} years almost_x_years: - one: գրեթե 1 տարի - other: գրեթե %{count} տարի + one: almost %{count} year + other: almost %{count} years half_a_minute: կես րոպե less_than_x_minutes: one: մեկ րոպեից քիչ other: "%{count} րոպեից քիչ" less_than_x_seconds: - one: 1 վայրկյանից քիչ - other: "%{count} վայրկյանից քիչ" + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: ավելի քան 1 տարի - other: ավելի քան %{count} տարի + one: over %{count} year + other: over %{count} years x_days: - one: 1 օր - other: "%{count} օր" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 ժամ - other: "%{count} ժամ" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 ժ - other: "%{count} ժ" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 րոպե - other: "%{count} րոպե" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 ր - other: "%{count} ր" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 ամիս - other: "%{count} ամիս" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 վայրկյան - other: "%{count} վայրկյան" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 վրկ - other: "%{count} վրկ" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 շաբաթ - other: "%{count} շաբաթ" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 տարի - other: "%{count} տարի" + one: "%{count} year" + other: "%{count} years" units: day: one: օր @@ -2864,8 +3064,8 @@ hy: teaser: description_html: Դուք հասանելիություն ունեք %{trial_plan}-ի բոլոր հնարավորություններին։ title: - one: "%{trial_plan} փորձնական թոքենից մնացել է մեկ օր" - other: "%{trial_plan} փորձնական թոքենից մնացել է %{count} օր" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Ձեր փորձնական Enterprise թոքենն արդեն ստացվել է։ Խնդրում ենք ստուգել Ձեր էլ. նամակները՝ կցված թոքենը գտնելու համար։ Եթե Ձեզ նոր թոքեն է անհրաժեշտ, խնդրում ենք դիմել մեր աջակցության թիմին։ @@ -3202,9 +3402,150 @@ hy: selected: Ընտրվածները include_sub_items: Ներառել ենթատարրերը no_results_text: Արդյունքներ չկան + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Ներկայումս ֆորումում գրառումներ չկան։ + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3229,6 +3570,8 @@ hy: groups: edit: synchronized_groups: Համաժամացված խմբեր + form: + group_attributes: Group attributes index: description: Օգտատերերին խմբավորելով՝ Դուք կարող եք ավելացնել նրանց որպես անդամ նույն նախագծերում կամ նշանակել նրանց նույն գլոբալ դերերը։ memberships: @@ -3254,6 +3597,10 @@ hy: leave_project: Լքել նախագիծը no_favorite_projects: Դուք չունեք ընտրանի նախագծեր։ title: Նախագծեր + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3267,7 +3614,7 @@ hy: summary: failure: Որոշ ստուգումներ ձախողվել են, և համակարգը չի աշխատում սպասվածի պես։ success: Բոլոր կապերն ու համակարգերն աշխատում են սպասվածի պես։ - warning: Որոշ ստուգումներ վերադարձրել են նախազգուշացում։ Սա կարող է հանգեցնել անսպասելի վարքագծի։ + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Ձախողված @@ -3276,7 +3623,7 @@ hy: warning: Նախազգուշացում help_texts: views: - favoured: Նշեք այս տեսքը որպես ընտրանի և ավելացրեք ձախ կողմում գտնվող պահպանված տեսքերի կողային վահանակում։ + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} միշտ կապված են նախագծի հետ։ Այստեղ Դուք կարող եք ընտրել միայն այն նախագծերը, որտեղ %{plural} մոդուլն ակտիվ է։ %{singular} ստեղծելուց հետո Դուք կարող եք դրան ավելացնել այլ նախագծերի աշխատանքային փաթեթներ։\n" public: Հրապարակեք այս տեսքը՝ թույլ տալով այլ օգտատերերին մուտք գործել Ձեր տեսքին։ 'Կառավարել հանրային տեսքերը' թույլտվություն ունեցող օգտատերերը կարող են փոփոխել կամ հեռացնել հանրային հարցումը։ Սա չի ազդում այդ տեսքում աշխատանքային փաթեթների արդյունքների տեսանելիության վրա, և կախված իրենց թույլտվություններից՝ օգտատերերը կարող են տեսնել տարբեր արդյունքներ։ homescreen: @@ -3301,6 +3648,31 @@ hy: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Կարդացեք նոր հնարավորությունների և արտադրանքի թարմացումների մասին։ learn_about: Իմացեք ավելին բոլոր նոր հնարավորությունների մասին @@ -3337,8 +3709,10 @@ hy: journals: cause_descriptions: budget_deleted: Բյուջեն ջնջվել է + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} փոխվել է (%{link})" + csv: from CSV deleted_with_diff: "%{field} ջնջվել է (%{link})" field_changed: "%{field} փոխվել է %{old_value}-ից %{new_value}-ի" field_removed: "%{field} հեռացվել է" @@ -3388,6 +3762,7 @@ hy: budget_deleted: Բյուջեն ջնջվել է dates_changed: Ամսաթվերը փոխվել են default_attribute_written: Միայն ընթերցելի հատկանիշները գրանցվել են + forum_message_html: "Created from forum message %{message_information}" import: Ներմուծված meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3540,10 +3915,10 @@ hy: label_copy_target: Նպատակակետ label_copy_workflow_from: Պատճենել աշխատանքային հոսքը՝ label_copy_workflow_from_role: Պատճենել այլ դերերի - label_copy_workflow_from_type: Պատճենել այլ տեսակի label_core_build: Միջուկի բիլդ label_core_version: Միջուկի տարբերակ label_created_by: Ստեղծվել է %{user}-ի կողմից + label_criteria: Criteria label_current_status: Ընթացիկ կարգավիճակ label_current_version: Ընթացիկ տարբերակ label_custom_comment: "%{name} մեկնաբանություն" @@ -3567,8 +3942,6 @@ hy: label_custom_field_default_type: Դատարկ տեսակ label_custom_field_new: Նոր հատուկ դաշտ label_custom_field_plural: Հատուկ դաշտեր - label_custom_logo: Աշխատասեղանի հատուկ լոգո - label_custom_logo_mobile: Բջջայինի հատուկ լոգո label_custom_pdf_export_settings: PDF արտահանման հատուկ կարգավորումներ label_custom_style: Ձևավորում label_custom_style_description: Ընտրեք, թե ինչպիսի տեսք ունենա OpenProject-ը Ձեզ համար՝ թեմաների միջոցով, ընտրեք հավելվածում օգտագործվող Ձեր կանխադրված գույները և արտահանումների տեսքը։ @@ -3577,11 +3950,12 @@ hy: label_database_version: PostgreSQL-ի տարբերակ label_date: Ամսաթիվ label_date_and_time: Ամսաթիվ և ժամ - label_date_format: Ամսաթվի ձևաչափ + label_date_and_time_formats: Date and time formats label_date_from: Սկսած label_date_from_to: "%{start}-ից մինչև %{end}" label_date_to: Մինչև label_dates: Ամսաթվեր + label_day: Օր label_day_plural: օր label_default: Կանխադրված label_defaults: Կանխադրված արժեքներ @@ -3592,6 +3966,7 @@ hy: label_deleted_custom_field: "(ջնջված հատուկ դաշտ)" label_deleted_custom_item: "(ջնջված տարր)" label_deleted_custom_option: "(ջնջված ընտրանք)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Կազմակերպություն label_departments_description_html: 'Սահմանեք Ձեր ընկերության կառուցվածքը՝ հիերարխիկ կերպով ստեղծելով ստորաբաժանումներ և ենթաստորաբաժանումներ։ Սա թույլ է տալիս արտացոլել հաշվետվողականության կապերը և OpenProject-ում պահպանել Ձեր կազմակերպության հստակ ու կառուցվածքային պատկերը։ Կարող եք նաև ներմուծել առկա կազմակերպական կառուցվածքը [LDAP ստորաբաժանումների համաժամացման](ldap_docs_article) միջոցով։ @@ -3662,6 +4037,7 @@ hy: label_float: Տասնորդական թիվ label_folder: Պանակ label_follows: հետևում է + label_form_configuration_plural: Forms label_formula: Բանաձև label_forum_new: Նոր ֆորում label_forum_plural: Ֆորումներ @@ -3680,6 +4056,7 @@ hy: label_go_forward: Բացել %{module} ենթացանկը label_greater_or_equal: ">=" label_group: Խումբ + label_group_attributes_plural: Group attributes label_group_by: Խմբավորել ըստ label_group_named: Խումբ %{name} label_group_new: Նոր խումբ @@ -3731,8 +4108,8 @@ hy: label_journal_diff: Նկարագրության համեմատություն label_jump_to_a_project: Անցնել նախագծի... label_keyword_plural: Հիմնաբառեր + label_label_plural: Labels label_language: Լեզու - label_language_based: Ըստ օգտատիրոջ լեզվի label_languages: Լեզուներ label_last_activity: Վերջին գործունեություն label_last_change_on: Վերջին փոփոխության ամսաթիվ @@ -3754,6 +4131,7 @@ hy: label_list: Ցուցակ label_loading: Բեռնվում է... label_locale: Լեզու և տարածաշրջան + label_locale_based: Use default for user locale label_lock_user: Կողպել օգտատիրոջը label_locked: կողպված label_logged_as: Մուտք եք գործել որպես @@ -3765,6 +4143,7 @@ hy: label_managed_by_ldap: Կառավարվում է LDAP համաժամացման միջոցով label_managed_repositories_vendor: Կառավարվող %{vendor} պահոցներ label_mapping_for: Համապատասխանեցում՝ %{attribute} + label_markdown_version: Markdown version label_max_size: Առավելագույն չափ label_me: ես label_member_all_admin: "(Բոլոր դերերը՝ ադմինիստրատորի կարգավիճակի շնորհիվ)" @@ -3783,7 +4162,6 @@ hy: label_menu_item_name: Ցանկի տարրի անվանում label_message: Հաղորդագրություն label_message_last: Վերջին հաղորդագրություն - label_message_new: Նոր հաղորդագրություն label_message_plural: Հաղորդագրություններ label_message_posted: Հաղորդագրությունն ավելացվել է label_minute_plural: րոպե @@ -3795,6 +4173,7 @@ hy: label_module_plural: Մոդուլներ label_modules: Մոդուլներ label_modules_and_plugins: Մոդուլներ և հավելումներ + label_month: Ամիս label_months_from: ամիս սկսած label_more: Ավելին label_more_information: Լրացուցիչ տեղեկություններ @@ -3808,6 +4187,7 @@ hy: label_my_avatar: Իմ ավատարը label_my_queries: Իմ հատուկ հարցումները label_my_security: Անվտանգություն + label_my_time: My time label_name: Անվանում label_never: Երբեք label_new: Նոր @@ -3822,7 +4202,10 @@ hy: label_news_singular: Նորություններ label_news_view_all: Դիտել բոլոր նորությունները label_next: Հաջորդ + label_next_day: Հաջորդ օր + label_next_month: Հաջորդ ամիս label_next_week: Հաջորդ շաբաթ + label_next_workweek: Հաջորդ աշխատանքային շաբաթ label_next_year: Հաջորդ տարի label_no_change_option: "(Առանց փոփոխության)" label_no_data: Ցուցադրելու տվյալներ չկան @@ -3830,6 +4213,7 @@ hy: label_no_parent_group: "(Առանց ծնող խմբի)" label_no_parent_page: Առանց ծնող էջի label_no_start_date: առանց սկզբի ամսաթվի + label_no_time: Ժամանակ չի հաշվառվել label_nobody: ոչ ոք label_non_working_days: Հասանելիության օրացույց label_non_working_days_summary: Ամփոփում @@ -3896,7 +4280,10 @@ hy: label_preview: Նախադիտել label_preview_not_available: Նախադիտումը հասանելի չէ label_previous: Նախորդ + label_previous_day: Նախորդ օր + label_previous_month: Նախորդ ամիս label_previous_week: Նախորդ շաբաթ + label_previous_workweek: Նախորդ աշխատանքային շաբաթ label_previous_year: Նախորդ տարի label_principal_invite_via_email: " կամ հրավիրեք նոր օգտատերերի էլ. փոստի միջոցով" label_principal_search: Ավելացրեք առկա օգտատերեր կամ խմբեր @@ -4015,6 +4402,7 @@ hy: label_sort_lowest: Տեղափոխել վերջ label_sorted_by: դասավորված ըստ %{value} label_spent_time: Ծախսված ժամանակ + label_stack: Stack label_start_to_end: սկզբից մինչև ավարտ label_start_to_start: սկզբից մինչև սկիզբ label_starts_with: սկսվում է @@ -4034,6 +4422,7 @@ hy: label_subtask_plural: Ենթաառաջադրանքներ label_summary: Ամփոփում label_system: Համակարգ + label_system_or_language_default: Use system or language based default label_system_settings: Համակարգի կարգավորումներ label_system_storage: Պահեստի տեղեկություններ label_table_of_contents: Բովանդակության ցանկ @@ -4048,6 +4437,7 @@ hy: label_time: Ժամ label_time_entry_activity_plural: Ծախսված ժամանակի գործունեություններ label_time_entry_plural: Ծախսված ժամանակ + label_timer_since: Սկսվել է %{time}-ին label_title: Վերնագիր label_today: այսօր label_today_as_date: Ընտրեք այսօրը որպես ամսաթիվ։ @@ -4083,7 +4473,9 @@ hy: label_user_search: Որոնել օգտատեր label_user_settings: Օգտատիրոջ կարգավորումներ label_users_settings: Օգտատերերի կարգավորումներ + label_value: Value label_value_x: Արժեք՝ %{x} + label_version_custom_field_plural: Version custom fields label_version_edit: Խմբագրել տարբերակը label_version_new: Նոր տարբերակ label_version_plural: Տարբերակներ @@ -4096,6 +4488,7 @@ hy: label_videos: Տեսանյութեր label_view_all_revisions: Դիտել բոլոր ռևիզիաները label_view_diff: Դիտել տարբերությունները + label_view_mode_switcher: Փոխել տեսքը label_view_revisions: Դիտել ռևիզիաները label_view_x: Տեսք՝ %{x} label_watched_work_packages: Հետևվող աշխատանքային փաթեթներ @@ -4119,6 +4512,8 @@ hy: label_wiki_start: Սկզբնական էջ label_wiki_toc: Բովանդակության ցանկ label_wiki_toc_empty: Բովանդակության ցանկը դատարկ է, քանի որ վերնագրեր չկան։ + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Աշխատանք label_work_package: Աշխատանքային փաթեթ label_work_package_attachments: Աշխատանքային փաթեթի կցորդներ @@ -4141,46 +4536,47 @@ hy: label_working_days: Աշխատանքային օրեր label_working_days_and_hours: Աշխատանքային օրեր և ժամեր label_working_hours: Աշխատանքային ժամանակացույց + label_workweek: Աշխատանքային շաբաթ label_x_closed_work_packages_abbr: - one: 1 փակ + one: "%{count} closed" other: "%{count} փակ" zero: 0 փակ label_x_comments: - one: 1 մեկնաբանություն + one: "%{count} comment" other: "%{count} մեկնաբանություն" zero: մեկնաբանություններ չկան label_x_days: - one: 1 օր - other: "%{count} օր" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 նիշք + one: "%{count} file" other: "%{count} նիշք" zero: նիշքեր չկան label_x_items: - one: 1 տարր + one: "%{count} item" other: "%{count} տարր" zero: տարրեր չկան label_x_items_selected: - one: Ընտրված է մեկ տարր - other: Ընտրված է %{count} տարր + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 բաց + one: "%{count} open" other: "%{count} բաց" zero: 0 բաց label_x_projects: - one: 1 նախագիծ + one: "%{count} project" other: "%{count} նախագիծ" zero: նախագծեր չկան label_x_work_packages: - one: 1 աշխատանքային փաթեթ + one: "%{count} work package" other: "%{count} աշխատանքային փաթեթ" zero: Աշխատանքային փաթեթներ չկան label_x_working_days: - one: 1 աշխատանքային օր - other: "%{count} աշխատանքային օր" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: Բացակայություն՝ 1 աշխատանքային օր - other: Բացակայություն՝ %{count} աշխատանքային օր + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: երեկ label_zen_mode: Զեն ռեժիմ ldap_auth_sources: @@ -4234,7 +4630,7 @@ hy: start_tls: STARTTLS start_tls_description: Ուղարկում է STARTTLS հրաման՝ ստանդարտ LDAP պորտին միանալուց հետո։ Խորհուրդ է տրվում գաղտնագրված կապերի համար։ tls_options: - tls_certificate_description: Եթե LDAP սերվերի վկայագիրն այս համակարգի վստահության աղբյուրներում չէ, կարող եք այն ձեռքով ավելացնել այստեղ։ Մուտքագրեք PEM X509 վկայագրի տող։ + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Ստուգել SSL վկայագիրը verify_peer_description_html: 'Միացնում է վկայագրի վստահված շղթայի խիստ SSL ստուգումը։
Նախազգուշացում՝ Այս ընտրանքի նշումը հանելը անջատում է LDAP սերվերի վկայագրի SSL ստուգումը։ Դա Ձեր կապը ենթարկում է Man in the Middle տիպի հարձակումների վտանգին։ @@ -4291,6 +4687,8 @@ hy: you_have: Դուք ունեք logo_alt_text: Լոգո mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name}-ը հիշատակել է Ձեզ՝ %{id} - %{subject}" notification: center: Դեպի ծանուցումների կենտրոն @@ -4347,8 +4745,8 @@ hy: mentioned: Դուք հիշատակվել եք մեկնաբանության մեջ mentioned_by: "%{user}-ը հիշատակել է Ձեզ մեկնաբանության մեջ" more_to_see: - one: Ծանուցումներով ևս 1 աշխատանքային փաթեթ կա։ - other: Ծանուցումներով ևս %{count} աշխատանքային փաթեթ կա։ + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Բացել դիտարկիչում reason: assigned: Նշանակված @@ -4526,6 +4924,13 @@ hy: create_button: Ստեղծել dialog_body: Այս թոքենը թույլ կտա երրորդ կողմի հավելվածներին հաղորդակցվել Ձեր համակարգի հետ։ Նոր API թոքենը տարբերակելու համար խնդրում ենք անվանում տալ դրան։ dialog_title: Ստեղծել նոր API թոքեն + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Թոքենի անվանում failed_to_create_token: Չհաջողվեց ստեղծել մուտքի թոքենը՝ %{error} failed_to_reset_token: Չհաջողվեց վերակայել մուտքի թոքենը՝ %{error} @@ -4539,10 +4944,26 @@ hy: password_confirmation_dialog: confirmation_required: Այս փոփոխությունը հաստատելու համար անհրաժեշտ է մուտքագրել Ձեր հաշվի գաղտնաբառը։ title: Հաստատեք Ձեր գաղտնաբառը՝ շարունակելու համար + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Մուտքի թոքեններ description: Մատակարարի թոքենները տրվում են OpenProject-ի կողմից և թույլ են տալիս այլ հավելվածներին մուտք ունենալ դրան։ Հաճախորդի թոքենները տրվում են այլ հավելվածների կողմից և թույլ են տալիս OpenProject-ին մուտք ունենալ դրանց։ + expired_on: Expired on %{date} headers: action: Գործողություն expiration: Վավեր է մինչև @@ -4744,7 +5165,6 @@ hy: notice_password_confirmation_failed: Մուտքագրված գաղտնաբառը սխալ է։ notice_principals_found_multiple: "Գտնվել է %{number} արդյունք։ \n Առաջին արդյունքին անցնելու համար սեղմեք Tab։" notice_principals_found_single: "Կա մեկ արդյունք։ \n Դրան անցնելու համար սեղմեք Tab։" - notice_project_cannot_update_custom_fields: Դուք չեք կարող թարմացնել նախագծի հասանելի հատուկ դաշտերը։ Նախագիծն անվավեր է՝ %{errors} notice_project_not_deleted: Նախագիծը չի ջնջվել։ notice_project_not_found: Նախագիծը չի գտնվել։ notice_requires_enterprise_token: Enterprise թոքենը բացակայում է կամ թույլ չի տալիս մուտք գործել այս էջին։ @@ -4754,9 +5174,6 @@ hy: notice_successful_create: Հաջողությամբ ստեղծվել է։ notice_successful_delete: Հաջողությամբ ջնջվել է։ notice_successful_update: Հաջողությամբ թարմացվել է։ - notice_successful_update_custom_fields_added_to_project: | - Հաջողությամբ թարմացվել է։ Ակտիվացված տեսակների հատուկ դաշտերն ավտոմատ կերպով ակտիվացվում են - աշխատանքային փաթեթի ձևում։ Տեսնել ավելին։ notice_to_many_principals_to_display: |- Արդյունքները չափազանց շատ են։ Նեղացրեք որոնումը՝ մուտքագրելով նոր անդամի (կամ խմբի) անունը։ @@ -4858,8 +5275,8 @@ hy: ' confirm_revoke_my_application: - one: Իսկապե՞ս ցանկանում եք հեռացնել այս հավելվածը։ Դա հետ կկանչի դրա համար ակտիվ մեկ թոքեն։ - other: Իսկապե՞ս ցանկանում եք հեռացնել այս հավելվածը։ Դա հետ կկանչի դրա համար ակտիվ %{count} թոքեն։ + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: OAuth հավելվածներ գրանցված չեն։ flows: authorization_code: Լիազորման կոդի հոսք @@ -4947,8 +5364,6 @@ hy: not_found: չի գտնվել։ respond_to?: չի իրականացնում պահանջվող մեթոդը։ rules: - copy_workflow_from: - workflow_missing: չունի սեփական աշխատանքային հոսք։ custom_field: format_not_supported: "'%{field_format}' ձևաչափը չի աջակցվում։" item: @@ -4968,7 +5383,6 @@ hy: or: կամ rules: blueprint: Կաղապարի սխեմա - copy_workflow_from: Աշխատանքային հոսքի պատճենման տեսակ depth: Խորություն enabled: Միացված item: Տարր @@ -5040,8 +5454,8 @@ hy: label: Բովանդակության ցանկ page_nr_footer: Էջ %{page} %{total}-ից template_artefact: - caption: Աշխատանքային փաթեթի մանրամասները՝ ներկայացված որպես PMflex արտեֆակտ։ - label: PMflex արտեֆակտ + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Հատկանիշներ և նկարագրություն @@ -5066,7 +5480,7 @@ hy: permission_change_work_package_status_explanation: Թույլ է տալիս փոփոխել կարգավիճակը առանց աշխատանքային փաթեթների խմբագրման թույլտվության permission_comment_news: Մեկնաբանել նորությունները permission_commit_access: Պահոցի ընթերցման/գրման հասանելիություն (կոմիտ) - permission_copy_projects: Պատճենել նախագծերը + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: Ձևանմուշ նախագծերում այս թույլտվությունն ունի երկրորդական գործառույթ՝ այն թույլ է տալիս ստեղծել ձևանմուշից բխող նոր նախագծեր։ permission_copy_work_packages: Կրկնօրինակել աշխատանքային փաթեթները permission_create_backup: Ստեղծել պահուստային պատճեններ @@ -5099,6 +5513,7 @@ hy: permission_export_projects: Արտահանել նախագծերը permission_export_work_packages: Արտահանել աշխատանքային փաթեթները permission_header_for_project_module_work_package_tracking: Աշխատանքային փաթեթներ և Գանտի գծապատկերներ + permission_import_work_packages: Import work packages permission_invite_members_by_email: Հրավիրել անդամներ էլ. փոստով permission_invite_members_by_email_explanation: 'Թույլ է տալիս օգտատերերին էլ. փոստով հրավիրել նոր անդամներ։ Հրավիրված օգտատերերը կստանան էլ. նամակ՝ գաղտնաբառը սահմանելու և հաշիվն ակտիվացնելու հղումով։ Կախված է անդամներին կառավարելու թույլտվությունից @@ -5109,6 +5524,9 @@ hy: permission_manage_dashboards: Կառավարել վահանակները permission_manage_forums: Կառավարել ֆորումները permission_manage_members: Կառավարել անդամներին + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Կառավարել նորությունները permission_manage_own_reminders: Ստեղծել սեփական հիշեցումներ permission_manage_own_working_times: Կառավարել սեփական աշխատանքային ժամանակը @@ -5137,7 +5555,6 @@ hy: permission_save_bcf_queries: Պահպանել BCF հարցումները permission_save_queries: Պահպանել տեսքերը permission_search_project: Որոնել նախագծում - permission_select_custom_fields: Ընտրել հատուկ դաշտերը permission_select_project_custom_fields: Ընտրել նախագծի հատկանիշները permission_select_project_modules: Ընտրել նախագծի մոդուլները permission_select_project_phases: Ընտրել նախագծի փուլերը @@ -5171,6 +5588,16 @@ hy: permission_work_package_assigned: Դառնալ պատասխանատու/հաշվետու permission_work_package_assigned_explanation: Աշխատանքային փաթեթները կարող են նշանակվել համապատասխան նախագծում այս դերն ունեցող օգտատերերին և խմբերին placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Ջնջել տեղապահ օգտատիրոջը deletion_info: data_consequences: 'Տեղապահ օգտատիրոջ բոլոր հիշատակումները (օրինակ՝ որպես պատասխանատու, հաշվետու կամ օգտատիրոջ այլ արժեքներ) կվերանշանակվեն "Ջնջված օգտատեր" կոչվող հաշվին։ Քանի որ յուրաքանչյուր ջնջված հաշվի տվյալները վերանշանակվում են այս հաշվին, հնարավոր չի լինի տարբերել այս օգտատիրոջ ստեղծած տվյալները մեկ այլ ջնջված հաշվի տվյալներից։ @@ -5192,7 +5619,7 @@ hy: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 պորտֆոլիո + one: "%{count} portfolio" other: "%{count} պորտֆոլիո" zero: 0 պորտֆոլիո filters: @@ -5203,8 +5630,8 @@ hy: label: Պորտֆոլիոյի անվան զտիչ placeholder: Որոնել պորտֆոլիոներ sub_items_html: - one: "1 ենթատարր" - other: "%{count} ենթատարր" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Ակտիվ պորտֆոլիոներ archived: Արխիվացված պորտֆոլիոներ @@ -5218,7 +5645,7 @@ hy: Այն կարող է օգտագործվել աղյուսակում աշխատանքային փաթեթներն ընդգծելու համար։ program: count: - one: 1 ծրագիր + one: "%{count} program" other: "%{count} ծրագիր" zero: 0 ծրագիր filters: @@ -5230,7 +5657,7 @@ hy: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Արխիվացնել նախագիծը count: - one: 1 նախագիծ + one: "%{count} project" other: "%{count} նախագիծ" zero: 0 նախագիծ destroy: @@ -5335,11 +5762,11 @@ hy: no_status_when_submitted: Չհաջողվեց միացնել նախագծի նախաձեռնման հայտը, քանի որ %{type} աշխատանքային փաթեթի տեսակը պահանջում է առնվազն մեկ առնչվող կարգավիճակ։ Խնդրում ենք միացնել առնվազն մեկ կարգավիճակի աշխատանքային հոսք այս աշխատանքային փաթեթի տեսակի համար։ no_work_package_type: Չհաջողվեց միացնել նախագծի նախաձեռնման հայտը, քանի որ այն պահանջում է առնվազն մեկ ակտիվ աշխատանքային փաթեթի տեսակ, իսկ այս նախագիծը չունի այդպիսին։ Խնդրում ենք այս նախագծին ավելացնել առնվազն մեկ աշխատանքային փաթեթի տեսակ։ export: - description_attachment_export: Ստեղծված արտեֆակտը կպահպանվի որպես PDF կցորդ արտեֆակտի աշխատանքային փաթեթին։ - description_file_link_export: Արտեֆակտի աշխատանքային փաթեթը կունենա նիշքի հղում դեպի արտաքին նիշքերի պահեստում պահվող PDF։ Պահանջում է այս նախագծի համար ավտոմատ կերպով կառավարվող նախագծի պանակներով աշխատող նիշքերի պահեստ։ Այս պահին աջակցվում են միայն Nextcloud նիշքերի պահեստները։ + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Ընտրեք, թե կազմաձևված արտաքին նիշքերի պահեստներից որը պետք է օգտագործվի։ external_file_storage: Արտաքին նիշքերի պահեստ - label_artifact_export: Արտեֆակտի արտահանում + label_artifact_export: Artifact export label_attachment_export: Պահպանել որպես աշխատանքային փաթեթի նիշքային կցորդ label_file_link_export: Վերբեռնել նիշքն արտաքին նիշքերի պահեստ և ավելացնել նիշքի հղումն աշխատանքային փաթեթին pdf_file_storage: PDF-ի նիշքերի պահեստ @@ -5349,6 +5776,12 @@ hy: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Ներկայումս հասանելի հատուկ դաշտեր չկան։ forums: no_results_content_text: Ստեղծել նոր ֆորում @@ -5445,14 +5878,14 @@ hy: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5464,7 +5897,7 @@ hy: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Ստեղծել նոր տարբերակ - no_results_title_text: Ներկայումս նախագծում տարբերակներ չկան։ + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Ցուցադրել աշխատանքային փաթեթները work_packages_graph: Աշխատանքային փաթեթների գծապատկեր work_package_priorities: @@ -5472,15 +5905,27 @@ hy: status: button_edit: Խմբագրել կարգավիճակը wizard: - create_artifact_storage_error: Չհաջողվեց պահել արտեֆակտը նիշքերի պահեստում - create_artifact_work_package_error: Չհաջողվեց ստեղծել արտեֆակտի աշխատանքային փաթեթը + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: Այս հատկանիշի համար օգնության տեքստ սահմանված չէ։ progress_label: "%{current}-ը %{total}-ից" sections: Բաժիններ sidebar_content_title: Բովանդակություն - success: Նախագծի հատկանիշները պահպանվել են, և արտեֆակտի աշխատանքային փաթեթը հաջողությամբ ստեղծվել է։ + success: Project attributes saved and artifact work package created successfully. title: Նախագծի նախաձեռնման հայտ + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Կիրառել նախապես կազմաձևված զտիչը configure_view: @@ -5509,8 +5954,8 @@ hy: action_title: Արձագանքել add_reaction: Ավելացնել արձագանք and_others: - one: և ևս 1 օգտատեր - other: և ևս %{count} օգտատեր + one: and %{count} other + other: and %{count} others and_user: և %{user} react_with: Արձագանքել %{reaction}-ով reaction_by: Արձագանքել են %{reaction}-ով՝ @@ -5631,6 +6076,31 @@ hy: warnings: cannot_annotate: Այս նիշքը հնարավոր չէ ծանոթագրել։ roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: Այս դերը կազմաձևված է որպես կանխադրված դեր, որը տրվում է նախագիծ ստեղծող ոչ ադմինիստրատոր օգտատերերին։ Մի հեռացրեք հետևյալ թույլտվությունները, հակառակ դեպքում նախագիծ ստեղծողները չեն կարողանա ավարտել իրենց նոր ստեղծած նախագծերի կարգավորումը՝ index: @@ -5642,6 +6112,15 @@ hy: permissions: section_check_all_label: Նշանակել %{module} մոդուլի բոլոր թույլտվությունները section_uncheck_all_label: Հանել %{module} մոդուլի բոլոր թույլտվությունները + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: "%{module} մոդուլի թույլտվությունների աղյուսակ" matrix_check_all_label: Նշանակել %{module} մոդուլի բոլոր թույլտվությունները բոլոր դերերին @@ -5746,7 +6225,7 @@ hy: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Ցուցադրվող տարբերության տողերի առավելագույն քանակ setting_disable_password_login: Անջատել գաղտնաբառով նույնականացումը - setting_display_subprojects_work_packages: Ըստ կանխադրման ցուցադրել ենթանախագծերի աշխատանքային փաթեթները հիմնական նախագծերում + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Տևողության ձևաչափ setting_duration_format_days_and_hours: Օրեր և ժամեր setting_duration_format_hours_only: Միայն ժամեր @@ -5861,6 +6340,7 @@ hy: setting_start_of_week: Շաբաթը սկսվում է՝ setting_sys_api_description: Պահոցների կառավարման վեբ ծառայությունն ապահովում է ինտեգրում և օգտատերերի լիազորում պահոցներին հասանելիություն ստանալու համար։ setting_sys_api_enabled: Միացնել պահոցների կառավարման վեբ ծառայությունը + setting_sys_api_key: API key setting_time_format: Ժամ setting_total_percent_complete_mode: Կատարման %-ի հիերարխիայի ընդհանուր գումարների հաշվարկ setting_total_percent_complete_mode_simple_average: Պարզ միջին @@ -5911,7 +6391,7 @@ hy: description_html: 'Ընտրեք այն ռեժիմը, որով պետք է աշխատի հակավիրուսային սկաների ինտեգրումը։
  • %{disabled_option}՝ վերբեռնված նիշքերը վիրուսների առկայության համար չեն սկանավորվում։
  • %{socket_option}՝ Դուք ClamAV-ը տեղակայել եք OpenProject-ի հետ նույն սերվերում, և clamd սկանավորման դեմոնն աշխատում է ֆոնային ռեժիմում
  • %{host_option}՝ Դուք նիշքերը հոսքով փոխանցում եք արտաքին վիրուսների սկանավորման հոսթին։
' - remaining_quarantined_files_html: 'Վիրուսների սկանավորումն անջատվել է։ %{file_count} մնում են մեկուսացման մեջ։ Մեկուսացված նիշքերը վերանայելու համար խնդրում ենք այցելել այս հղումը՝ %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Վիրուսների սկանավորումը հաջողությամբ միացվել է։ Կան %{file_count}, որոնք վերբեռնվել են ավելի վաղ և դեռ պետք է սկանավորվեն։ Այս գործընթացը պլանավորվել է ֆոնային ռեժիմում։ Նիշքերը կմնան հասանելի սկանավորման ընթացքում։ @@ -5922,6 +6402,7 @@ hy: ' title: Վիրուսների սկանավորում attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Այս ընտրանքն ապաակտիվացնելը կթաքցնի կցորդների ցուցակը նոր նախագծերի աշխատանքային փաթեթների նիշքերի ներդիրում։ Աշխատանքային փաթեթի նկարագրությանը կցված նիշքերը դեռևս կվերբեռնվեն կցորդների ներքին պահեստում։ ' @@ -6013,12 +6494,12 @@ hy: confirmation_message: Նախաձեռնման հայտի օգնականն այլևս հասանելի չի լինի այս ձևանմուշի հիման վրա ստեղծված նոր նախագծերի համար։ Նախագծերի կառավարիչները և նախագծերի սեփականատերերը պետք է ձեռքով կազմաձևեն և լրացնեն համապատասխան տեղեկությունները Նախագծի ընդհանուր տեսքում։ heading: Անջատե՞լ նախագծի այս նախաձեռնման հայտը։ title: Անջատել նախագծի նախաձեռնման հայտը - header_description: 'OpenProject-ը կարող է ստեղծել քայլ առ քայլ օգնական, որը կօգնի նախագծերի կառավարիչներին լրացնել նախագծի նախաձեռնման հայտը։ Դուք կարող եք ընտրել, թե նախագծի որ հատկանիշները պետք է ներառվեն, և արդյունքում ստեղծել PDF արտեֆակտ։ + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Արտեֆակտի անվանում - artifact_name_caption: Ընտրեք այս արտեֆակտի այն անվանումը, որը խորհուրդ է տալիս Ձեր նախագծերի կառավարման մեթոդաբանությունը։ + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Նախագծի ստեղծման օգնական project_initiation_request: Նախագծի նախաձեռնման հայտ @@ -6038,8 +6519,8 @@ hy: Դուք ներկայացրել եք նախագծի նախաձեռնման հայտ **%{project_name}**-ի համար։ Այն այժմ սպասում է վերանայման։ Սեղմեք ստորև գտնվող հղումը՝ Ձեր հայտով աշխատանքային փաթեթին հասանելիություն ստանալու համար։ confirmation_email_text: Հաստատման էլ. նամակի տեքստ - description: Երբ օգտատերը ներկայացնում է նախագծի նախաձեռնման հայտ, կստեղծվի նոր աշխատանքային փաթեթ՝ որպես PDF նիշք կցված հայտի արտեֆակտով։ Ստորև բերված կարգավորումները սահմանում են այս նոր աշխատանքային փաթեթի տեսակը, կարգավիճակը և պատասխանատուն։ - description_template: "**Այս աշխատանքային փաթեթն ինքնաշխատ ստեղծվել է %{wizard_name} աշխատանքային հոսքի ավարտից հետո։** Բոլոր ներկայացված տեղեկությունները պարունակող PDF արտեֆակտը ստեղծվել և կցվել է այս աշխատանքային փաթեթին՝ տեղեկատվական և աուդիտի նպատակներով։ Եթե անհրաժեշտ է թարմացնել կամ կրկին գործարկել նախաձեռնման քայլերը, կարող եք ցանկացած պահի կրկին բացել օգնականը՝ օգտագործելով ստորև բերված հղումը՝\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Ուղարկել հաստատման նամակ նախագծի նախաձեռնման հայտը ներկայացրած օգտատիրոջը status_when_submitted: Կարգավիճակ ներկայացնելիս status_when_submitted_caption: Կարգավիճակը, որին կանցնի ստեղծված աշխատանքային փաթեթը, երբ հայտը ներկայացվի։ @@ -6047,7 +6528,7 @@ hy: work_package_comment_caption: Վերևում ընտրված պատասխանատուն ավտոմատ կերպով @-ով կհիշատակվի մեկնաբանության մեջ։ work_package_comment_default: "**%{project_name}**-ի համար ներկայացվել է նախագծի նախաձեռնման հայտ, որը սպասում է վերանայման։" work_package_type: Աշխատանքային փաթեթի տեսակ - work_package_type_caption: Աշխատանքային փաթեթի տեսակը, որը պետք է օգտագործվի ավարտված արտեֆակտը պահելու համար։ + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Բացել նախագծի ստեղծման օգնականը project_initiation_request: Բացել նախագծի նախաձեռնման հայտը @@ -6067,6 +6548,7 @@ hy: heading: Նոր փուլ no_gate: Առանց դարպասի non_defined: Ներկայումս փուլեր սահմանված չեն։ + order_changed: Order successfully changed. phase_gates: Փուլի դարպասներ section_header: Փուլեր start_gate: Սկզբի դարպաս @@ -6123,7 +6605,7 @@ hy: section_work_week: Աշխատանքային շաբաթ sharing: count: - one: 1 օգտատեր + one: "%{count} user" other: "%{count} օգտատեր" zero: 0 օգտատեր denied: Դուք չունեք %{entities} համօգտագործելու թույլտվություններ։ @@ -6216,19 +6698,19 @@ hy:
Նշում՝ ժառանգված արժեքները (օրինակ՝ ենթատարրերից կամ կապերից) դեռևս կկիրառվեն։ index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Բացառված ընդհանուր գումարներից is_closed: Փակված - is_default: Կանխադրված is_readonly: Միայն ընթերցելի + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Ավելացրեք նոր կարգավիճակ no_results_title_text: Ներկայումս աշխատանքային փաթեթների կարգավիճակներ չկան։ + status_actions: Status actions support: array: sentence_connector: և skip_last_comma: 'false' text_access_token_hint: Մուտքի թոքենները թույլ են տալիս Ձեզ արտաքին հավելվածներին տրամադրել OpenProject-ի ռեսուրսների հասանելիությունը։ - text_accessibility_hint: Մատչելիության ռեժիմը նախատեսված է կույր, շարժողական խնդիրներ ունեցող կամ թույլ տեսողությամբ օգտատերերի համար։ Վերջիններիս համար ֆոկուսում գտնվող տարրերը հատուկ ընդգծվում են։ Խնդրում ենք նկատի ունենալ, որ այս ռեժիմում Բեքլոգների մոդուլը հասանելի չէ։ text_analyze: Հետագա վերլուծություն՝ %{subject} text_are_you_sure: Համոզվա՞ծ եք։ text_are_you_sure_continue: Համոզվա՞ծ եք, որ ցանկանում եք շարունակել։ @@ -6271,12 +6753,6 @@ hy: ' text_custom_field_possible_values_info: Յուրաքանչյուր արժեքը՝ առանձին տողում - text_custom_logo_instructions: 'Լոգոն ավտոմատ մասշտաբավորվում է՝ վերնագոտուն համապատասխանելու համար։ Լավագույն արդյունքի համար վերբեռնեք սպիտակ լոգո թափանցիկ 130×47px պատկերի վրա։ Այդ պատկերի ներսում կարող եք ավելացնել այնքան ազատ տարածք, որքան ցանկանում եք։ - - ' - text_custom_logo_mobile_instructions: 'Լոգոն ավտոմատ մասշտաբավորվում է՝ վերնագոտուն համապատասխանելու համար։ Լավագույն արդյունքի համար վերբեռնեք սպիտակ լոգո թափանցիկ 130×33px պատկերի վրա։ Այդ պատկերի ներսում կարող եք ավելացնել այնքան ազատ տարածք, որքան ցանկանում եք։ - - ' text_custom_touch_icon_instructions: 'Սա այն պատկերակն է, որը հայտնվում է Ձեր բջջայինում կամ պլանշետում, երբ էջանիշ եք տեղադրում հիմնական էկրանին։ Այն պետք է լինի քառակուսի՝ 180 առ 180 պիքսել չափի PNG պատկերի նիշք։ Խնդրում ենք համոզվել, որ պատկերի ֆոնը թափանցիկ չէ, հակառակ դեպքում այն վատ տեսք կունենա iOS-ում։ ' @@ -6326,6 +6802,7 @@ hy: text_length_between: Երկարությունը՝ %{min}-ից մինչև %{max} նիշ։ text_line_separated: Թույլատրվում են բազմաթիվ արժեքներ (յուրաքանչյուր արժեքը՝ առանձին տողում)։ text_load_default_configuration: Բեռնել կանխադրված կազմաձևումը + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Կազմաձևման ենթակա մուտքի թոքեններ չկան։ text_no_configuration_data: |- Դերերը, տեսակները, աշխատանքային փաթեթների կարգավիճակները և աշխատանքային հոսքը դեռ կազմաձևված չեն։ @@ -6431,6 +6908,68 @@ hy: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Ստեղծել տեսակ @@ -6440,14 +6979,40 @@ hy: finish: Ավարտել placeholder_description: Այս քայլը շուտով հասանելի կլինի։ progress_label: Քայլ %{number} %{total}-ից + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Կանխադրված արժեքներ details: Մանրամասներ form_configuration: Form - pdf: PDF-ի ստեղծում + pdf: Generate PDF project_attributes: Նախագծի հատկանիշներ projects: Նախագծեր - workflows: Աշխատանքային հոսքեր + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: Տարատեսակ՝ %{name} @@ -6456,8 +7021,10 @@ hy: caption: Սահմանեք կաղապար՝ օգտագործելով հղված հատկանիշներ և տեքստ, աշխատանքային փաթեթների վերնագրերն ավտոմատ ստեղծելու համար։ Օգտատերերը չեն կարողանա ձեռքով խմբագրել վերնագրերը։ label: Ավտոմատ ստեղծվող վերնագրեր description: - caption: Ավելացրեք տեքստը, որը կավելացվի այս տեսակի բոլոր նոր աշխատանքային փաթեթների նկարագրության դաշտում։ - label: Կանխադրված նկարագրության տեքստ + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Օգտատերերը կարող են ձեռքով մուտքագրել և խմբագրել աշխատանքային փաթեթների վերնագրերն առանց սահմանափակումների։ label: Ձեռքով խմբագրվող վերնագրեր @@ -6486,21 +7053,21 @@ hy: file_link: caption: Ստեղծված PDF-ը վերբեռնվում է նախագծի ավտոմատ կառավարվող Nextcloud պահեստ և հղվում աշխատանքային փաթեթից։ Այդպիսի պահեստ չունեցող նախագծերի աշխատանքային փաթեթները բաց են թողնվում։ label: Վերբեռնել նիշքն արտաքին նիշքերի պահեստ և ավելացնել նիշքի հղումն աշխատանքային փաթեթին - intro: Ավտոմատ կերպով ստեղծել այս տեսակի աշխատանքային փաթեթի PDF արտեֆակտ ամեն անգամ, երբ դրա կարգավիճակը փոխվում է։ - invalid_mode: Արտեֆակտի արտահանման անվավեր ռեժիմ։ - label: Արտեֆակտի ավտոմատ արտահանում + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: PDF ավտոմատ կերպով չի ստեղծվում։ label: Անջատված - section_title: Արտեֆակտի ավտոմատ արտահանում + section_title: Automatic artifact export unavailable: անհասանելի է, ավտոմատ կառավարվող Nextcloud պահեստ կազմաձևված չէ - intro: Ընտրեք, թե հասանելի ձևանմուշներից որոնք եք ցանկանում միացնել այս տեսակի համար։ Ձևանմուշը որոշում է այս տեսակն օգտագործող աշխատանքային փաթեթի արտահանված PDF-ում տեսանելի ձևավորումն ու հատկանիշները։ Ցուցակի առաջին ձևանմուշն ընտրվում է կանխադրված։ pdf_export_templates: actions: label_disable_all: Անջատել բոլորը label_enable_all: Միացնել բոլորը label_toggle_template: Toggle %{template} label: PDF արտահանման ձևանմուշներ + order_changed: Order successfully changed. tab: Ստեղծել PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6517,6 +7084,8 @@ hy: confirm_delete_group: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս բաժինը։ Այս գործողությունը հնարավոր չէ ավտոմատ կերպով հետարկել։ confirm_reset: Are you sure you want to reset the form? custom_field: Հատուկ դաշտ + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Ջնջել բաժինը drag_to_activate: Ակտիվացնելու համար քաշեք դաշտերն այստեղից drag_to_reorder: Քաշեք՝ վերադասավորելու համար @@ -6538,6 +7107,14 @@ hy: query_group_label: Կապակցված աշխատանքային փաթեթների աղյուսակ remove_attribute: Հեռացնել բաժնից rename_group: Վերանվանել բաժինը + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'Սա հատկանիշները կվերակայի դրանց կանխադրված խմբում և կանջատի ԲՈԼՈՐ հատուկ դաշտերը։ ' @@ -6547,12 +7124,14 @@ hy: tab: Form untitled_group: Անանուն խումբ overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6566,12 +7145,12 @@ hy: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Ընտրեք նախագծի հատկանիշները, որոնք ցանկանում եք միացնել աշխատանքային փաթեթի այս տեսակի համար։ Միացված նախագծի հատկանիշները ցուցադրվում են այս տեսակի աշխատանքային փաթեթներում՝ առանձին ներդիրում։ Անհրաժեշտ թույլտվություններ ունեցող օգտատերերը կարող են այնտեղ դիտել և խմբագրել այդ հատկանիշները։ disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Որոնել ըստ բաժնի կամ անվանման tab: Նախագծի հատկանիշներ + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6584,10 +7163,12 @@ hy: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Միացնել բոլոր նախագծերի համար select_projects: Ընտրել նախագծերը select_projects_description: Ընտրեք նախագծերը, որոնցում ցանկանում եք օգտագործել այս տեսակը։ tab: Նախագծեր + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6602,43 +7183,17 @@ hy: title: Պատճենել կազմաձևումը invalid_source: Կազմաձևումը հնարավոր չէ պատճենել ընտրված տեսակից։ Խնդրում ենք ընտրել այլ աղբյուրի տեսակ։ success: Կազմաձևումը պատճենվել է։ - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6646,6 +7201,9 @@ hy: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6654,13 +7212,14 @@ hy: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6674,12 +7233,16 @@ hy: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (ծնող)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6688,33 +7251,74 @@ hy: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Աշխատանքային հոսքեր + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Ավելացնել տարատեսակ + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Տեսակների և տարատեսակների ներսում կազմաձևման յուրաքանչյուր հատված կարող է կազմաձևվել ինքնուրույն, սահմանափակվել այլ տեսակից կամ ամբողջությամբ կապակցվել աղբյուրին։ ' duplicate_name: "%{name}-ի պատճեն" duplicate_notice: "%{name}-ը կրկնօրինակվել է։" enabled_in_new_projects: Ակտիվ նոր նախագծերում + filter: Filter by name + filter_no_results: No types match this filter make_default: Ակտիվացնել նոր նախագծերում make_default_notice: "%{name}-ը այժմ ակտիվացված է նոր նախագծերում։" + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Ստեղծել նոր տեսակ no_results_title_text: Ներկայումս տեսակներ չկան։ project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Չակտիվացնել նոր նախագծերում remove_default_notice: "%{name}-ը այլևս ակտիվացված չէ նոր նախագծերում։" type_label: Տեսակ variant_label: Տարատեսակ + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Հանգրվան + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Անտեսել այս նախազգուշացումը։ message: Այս էջում Դուք կարող եք բախվել սխալների և օգտագործման որակի վատթարացման։ @@ -6733,8 +7337,8 @@ hy: authorization_rejected: Ձեզ թույլատրված չէ մտնել։ blocked: ժամանակավորապես արգելափակված blocked_num_failed_logins: - one: ժամանակավորապես արգելափակված (մուտքի մեկ ձախողված փորձ) - other: ժամանակավորապես արգելափակված (մուտքի %{count} ձախողված փորձ) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Դուք պատրաստվում եք փոխել '%{name}'-ի կարգավիճակը։ Համոզվա՞ծ եք, որ ցանկանում եք շարունակել։ deleted: Ջնջված օգտատեր department_ldap_managed_caption: Այս ստորաբաժանումը կառավարվում է LDAP համաժամացման միջոցով և չի կարող փոփոխվել այստեղ։ @@ -6834,7 +7438,7 @@ hy: deletion_warning: Համոզվա՞ծ եք, որ ցանկանում եք հետ կանչել այս աշխատաշրջանը։ Դուք դուրս կգաք համակարգից այս սարքում։ device: Սարք / ՕՀ expires: Վավեր է մինչև - instructions: Դուք մուտք եք գործել Ձեր հաշիվ հետևյալ սարքերի միջոցով։ Հետ կանչեք այն աշխատաշրջանները, որոնք չեք ճանաչում կամ որոնք Ձեր վերահսկողությունից դուրս գտնվող սարքերից են։ + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Վերջին միացում may_not_delete_current: Դուք չեք կարող ջնջել Ձեր ընթացիկ աշխատաշրջանը։ session_name: "%{browser_name} %{browser_version} %{os_name}-ի վրա" @@ -6894,13 +7498,19 @@ hy: start_date: Սկզբի ամսաթիվ work_days: Աշխատանքային օրեր work_days_count: - one: 1 աշխատանքային օր - other: "%{count} աշխատանքային օր" + one: "%{count} working day" + other: "%{count} working days" work_hours: Աշխատանքային ժամեր version_status_closed: փակ version_status_locked: կողպված version_status_open: բաց versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Ներկայումս այս տարբերակին նշանակված աշխատանքային փաթեթներ չկան։ work_packages_in_archived_projects: Տարբերակը համօգտագործվում է արխիվացված նախագծերի հետ, որոնք դեռևս ունեն այս տարբերակին նշանակված աշխատանքային փաթեթներ։ Դրանք հաշվառվում են, սակայն չեն ցուցադրվի կապակցված տեսքերում։ @@ -7070,13 +7680,15 @@ hy: required_description: Նշում է այս աշխատանքային փաթեթը որպես կապակցվածի պահանջ requires_description: Նշում է կապակցված աշխատանքային փաթեթը որպես սրա պահանջ work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Աշխատանքային փաթեթները չհաջողվեց պատճենել։ could_not_be_deleted: Հետևյալ աշխատանքային փաթեթները չհաջողվեց ջնջել՝ could_not_be_saved: Հետևյալ աշխատանքային փաթեթները չհաջողվեց պահպանել՝ deletion_successful: - one: 1 աշխատանքային փաթեթ հաջողությամբ ջնջվել է։ - other: "%{count} աշխատանքային փաթեթ հաջողությամբ ջնջվել է։" + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: ընտրվածի հետնորդ move_failed: Աշխատանքային փաթեթները չհաջողվեց տեղափոխել։ none_could_be_saved: "%{total} աշխատանքային փաթեթից ոչ մեկը չհաջողվեց թարմացնել։" @@ -7100,18 +7712,18 @@ hy: description_with_visible_descendants: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել ընտրված աշխատանքային փաթեթները և բոլոր տեսանելի հետնորդները։ heading: Ընդմիշտ ջնջե՞լ այս %{count} աշխատանքային փաթեթը։ hidden_descendants_only_warning: - one: Կա մեկ հետնորդ, որը Դուք չեք կարող տեսնել։ Այն չի ջնջվի, սակայն կապը կհեռացվի։ - other: Կա %{count} հետնորդ, որոնք Դուք չեք կարող տեսնել։ Դրանք չեն ջնջվի, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Բոլոր տեսանելի հետնորդները կհեռացվեն։ Սակայն կա մեկ հետնորդ, որը Դուք չեք կարող տեսնել։ Այն չի ջնջվի, սակայն կապը կհեռացվի։ - other: Բոլոր տեսանելի հետնորդները կհեռացվեն։ Սակայն կա %{count} հետնորդ, որոնք Դուք չեք կարող տեսնել։ Դրանք չեն ջնջվի, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Ջնջել %{count} աշխատանքային փաթեթ undeletable_descendants_warning: - one: Դուք չեք կարող ջնջել մեկ հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները։ Այն կպահպանվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Դուք չեք կարող ջնջել %{count} հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները։ Դրանք կպահպանվեն, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Դուք չեք կարող ջնջել մեկ հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները %{projects}-ում։ Այն կպահպանվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Դուք չեք կարող ջնջել %{count} հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները %{projects}-ում։ Դրանք կպահպանվեն, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7168,18 +7780,154 @@ hy: description: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել "%{name}"։ heading: Ընդմիշտ ջնջե՞լ այս աշխատանքային փաթեթը։ hidden_descendants_only_warning: - one: Այս աշխատանքային փաթեթն ունի մեկ հետնորդ, որը Դուք չեք կարող տեսնել։ Այն չի ջնջվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Այս աշխատանքային փաթեթն ունի %{count} հետնորդ, որոնք Դուք չեք կարող տեսնել։ Դրանք չեն ջնջվի, սակայն հիերարխիկ կապը կհեռացվի։ + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Բոլոր տեսանելի հետնորդները կջնջվեն։ Սակայն այս աշխատանքային փաթեթն ունի մեկ հետնորդ, որը Դուք չեք կարող տեսնել։ Այն չի ջնջվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Բոլոր տեսանելի հետնորդները կջնջվեն։ Սակայն այս աշխատանքային փաթեթն ունի %{count} հետնորդ, որոնք Դուք չեք կարող տեսնել։ Դրանք չեն ջնջվի, սակայն հիերարխիկ կապը կհեռացվի։ + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Ջնջել աշխատանքային փաթեթը undeletable_descendants_warning: - one: Դուք չեք կարող ջնջել մեկ հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները։ Այն կպահպանվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Դուք չեք կարող ջնջել %{count} հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները։ Դրանք կպահպանվեն, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Դուք չեք կարող ջնջել մեկ հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները %{projects}-ում։ Այն կպահպանվի, սակայն հիերարխիկ կապը կհեռացվի։ - other: Դուք չեք կարող ջնջել %{count} հետնորդ, քանի որ չունեք անհրաժեշտ թույլտվությունները %{projects}-ում։ Դրանք կպահպանվեն, սակայն հիերարխիկ բոլոր կապերը կհեռացվեն։ + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Աշխատանքային փաթեթների կամ դրանց հետնորդների տեսակները միացված չեն նպատակային նախագծում։ Խնդրում ենք միացնել բացակայող տեսակները նպատակային նախագծում, եթե ցանկանում եք, որ դրանք մնան անփոփոխ։ Հակառակ դեպքում ցուցակից ընտրեք նպատակային նախագծում հասանելի տեսակ։ @@ -7211,37 +7959,53 @@ hy: version: no_results_title_text: Ներկայումս հասանելի տարբերակներ չկան։ x_descendants: - one: Մեկ հետնորդ աշխատանքային փաթեթ - other: "%{count} հետնորդ աշխատանքային փաթեթ" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Պատճենել ընթացիկ աշխատանքային հոսքը աշխատանքային փաթեթի նույն տեսակի ներսում մեկ կամ մի քանի դերերի։ Եթե ընտրված դերն արդեն ունի աշխատանքային հոսք, այն կվերագրվի ընթացիկով։ - label: Պատճենել այլ դերերի - from_type: - caption: Պատճենել ընթացիկ աշխատանքային հոսքը աշխատանքային փաթեթի այլ տեսակի։ Եթե ընտրված տեսակն արդեն ունի աշխատանքային հոսք, այն կվերագրվի ընթացիկով։ Սա ազդում է բոլոր դերերի վրա։ - label: Պատճենել այլ տեսակի - source_role_id: - label: Աղբյուրի դեր target_role_ids: label: Նպատակային դերեր - target_variant_ids: - label: Target types from_roles: create: notice: one: Աշխատանքային հոսքը հաջողությամբ պատճենվել է '%{role_name}' դերին։ other: Աշխատանքային հոսքը հաջողությամբ պատճենվել է %{count} դերի։ - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Պատճենել "%{source_type}"-ի աշխատանքային հոսքը + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Աշխատանքային հոսքի մատրից matrix_caption_assignee: Աշխատանքային հոսքի մատրից պատասխանատուի համար matrix_caption_author: Աշխատանքային հոսքի մատրից հեղինակի համար @@ -7250,12 +8014,88 @@ hy: matrix_check_uncheck_all_in_row_label_html: Փոխարկել անցումները %{old_status}-ից դեպի բոլոր նոր կարգավիճակները matrix_checkbox_label: Թույլատրել անցումը %{old_status}-ից դեպի %{new_status} matrix_uncheck_all_label: Արգելել բոլոր անցումները + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Զտել ըստ տեսակի անվանման… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Կազմաձևեք կարգավիճակների անցումները աշխատանքային փաթեթի յուրաքանչյուր տեսակի համար։ + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Փոխել աշխատանքային օրերը dialog: diff --git a/config/locales/crowdin/id.seeders.yml b/config/locales/crowdin/id.seeders.yml index fcb7cb6ffdc2..f10a8f4238f6 100644 --- a/config/locales/crowdin/id.seeders.yml +++ b/config/locales/crowdin/id.seeders.yml @@ -250,70 +250,26 @@ id: Dalam modul ini, Anda dapat menyampaikan informasi proyek kepada anggota tim Anda. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategori 1 (akan diubah di Pengaturan Proyek) queries: item_0: name: Rencana proyek item_1: - name: Backlog produk + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tugas boards: @@ -345,12 +301,13 @@ id: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index 6950bd27d495..5a4502238294 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -40,7 +40,9 @@ id: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Hapus akun delete_confirmation: Yakin Anda ingin menghapus akun? deletion_info: @@ -65,7 +67,9 @@ id: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: atau Login dengan akun yang ada + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ id: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ id: repository: Repositori comment: commented: Komentar - custom_action: - actions: Tindakan custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ id: uid: ID Pelanggan emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Token pendukung perusahaan @@ -179,20 +184,44 @@ id: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Jumlah kolom page: Halaman row_count: Jumlah baris widgets: Widget group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ id: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ id: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ id: ongoing: Ongoing spent_on: Tanggal type: Tipe + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ id: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Setuju pada current_password: Current password department: Department @@ -410,7 +441,7 @@ id: last_name: Nama belakang ldap_auth_source: koneksi LDAP new_password: Password baru - password_confirmation: Konfirmasi + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ id: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ id: header_look_and_feel: Look and feel impaired: Mode aksesibel increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time Zone warn_on_leaving_unsaved: Ingatkan saya ketika meninggalkan sebuah paket kerja dengan perubahan yang belum disimpan workdays: Hari kerja + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ id: title: Hari kerja true: termasuk hari tidak bekerja journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Induk @@ -519,6 +565,10 @@ id: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: harus disetujui. @@ -590,6 +640,8 @@ id: regex_invalid: tidak dapat divalidasi dengan ekspresi reguler terkait. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: harus lebih kecil atau sama dengan panjang maksimum. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ id: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: panjang tidak sesuai (harus %{count} karakter). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ id: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: nilai akhir harus lebih besar dari nilai awal. outside: berada di luar jaringan. @@ -688,6 +754,13 @@ id: not_unique: sudah digunakan. Silakan pilih nama lain. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ id: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -856,42 +928,26 @@ id: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -974,6 +1030,8 @@ id: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: tidak boleh dari proyek lain. cannot_be_milestone: parent dari work package tidak bisa berupa milestone. @@ -1001,6 +1059,8 @@ id: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: gagal melakukan transisi dari status lama ke status baru untuk role ini. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Paket-Penugasan #%{id} tidak valid untuk reassigning di Time entri.' @@ -1009,7 +1069,7 @@ id: template: body: 'Silakan periksa isian berikut :' header: - other: "%{count} error menyebabkan %{model} gagal untuk disimpan" + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1035,6 +1095,8 @@ id: other: Work package attribute help texts auth_provider: other: Authentication providers + automation: + other: Automations backup: other: Backups capability: @@ -1049,8 +1111,6 @@ id: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ id: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1093,6 +1155,8 @@ id: other: Health reports issue_priority: other: Priorities + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1300,7 +1364,28 @@ id: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1333,7 +1418,11 @@ id: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: mengubah tema akan mengubah custom style anda. Desain akan menghilang. Apakah anda ingin melanjutkannya? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Unggah sebuah token bantuan Edisi Enterprise book_now: Pesan sekarang @@ -1366,7 +1455,7 @@ id: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1374,12 +1463,15 @@ id: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1412,16 +1504,30 @@ id: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1666,23 +1772,52 @@ id: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1713,6 +1848,18 @@ id: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1894,7 +2041,7 @@ id: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1926,12 +2073,19 @@ id: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1953,7 +2107,31 @@ id: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -1961,7 +2139,7 @@ id: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2015,10 +2193,6 @@ id: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Paket pekerjaan yang Anda cari tidak dapat ditemukan atau telah dihapus. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: Unduhan tidak bisa dibuat unable_to_create_attachment_permissions: Lampiran tidak dapat disimpan karena kurangnya izin sistem file user: @@ -2089,6 +2263,7 @@ id: groups: Grup hexcode: Kode Hexa id: ID + inexistent: Inexistent is_default: Nilai default is_for_all: Untuk semua Project issue: Paket-Penugasan @@ -2139,6 +2314,7 @@ id: updated_at: Diperbarui updated_on: Diperbarui uploader: Pengunggah + url: URL user: User username: Nama pengguna value: Nilai @@ -2153,6 +2329,29 @@ id: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Pekerjaan dibatalkan karena kesalahan: %{message}' @@ -2281,6 +2480,7 @@ id: button_set_reminder: Set reminder button_show: Tampilkan button_sort: Urutkan + button_stop_timer: Hentikan penghitung waktu button_submit: Kirim button_test: Test button_unarchive: Batalkan arsip @@ -2347,9 +2547,9 @@ id: text: failed: Tidak dapat meng-copy Project "%{source_project_name}" ke Project "%{target_project_name}". succeeded: Project "%{source_project_name}" ke "%{target_project_name}" telah di-copy. - title: Salin proyek "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Salah satu objek jenis ini + one: "%{count} object of this type" other: "%{count} objek jenis ini" zero: Tidak ada objek jenis ini create_portfolio: @@ -2387,13 +2587,9 @@ id: plural: Tindakan khusus custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Untuk semua Project hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2414,7 +2610,7 @@ id: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2479,16 +2675,17 @@ id: is_enabled_globally: Diaktifkan secara global multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Susun ulang nilai menurut abjad reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Buat bidang kustom baru - no_results_title_text: Tidak ada bidang kustom saat ini. text_add_new_custom_field: 'Untuk menambahkan kolom kustom baru untuk sebuah proyek, pertama-tama Anda harus membuatnya, sebelum Anda dapat menambahkannya ke proyek ini. ' @@ -2552,36 +2749,34 @@ id: datetime: distance_in_words: about_x_hours: - other: sekitar %{count} jam + other: about %{count} hours about_x_months: - other: sekitar %{count} bulan + other: about %{count} months about_x_years: - other: sekitar %{count} tahun + other: about %{count} years almost_x_years: - other: hampir %{count} tahun + other: almost %{count} years half_a_minute: setengah menit less_than_x_minutes: other: kurang dari %{count} menit less_than_x_seconds: - other: kurang dari %{count} detik + other: less than %{count} seconds over_x_years: - other: lebih dari %{count} tahun + other: over %{count} years x_days: - other: "%{count} hari" + other: "%{count} days" x_hours: - other: |- - 1 jam - %{count} jam + other: "%{count} hours" x_hours_abbreviated: other: "%{count} hrs" x_minutes: - other: "%{count} menit" + other: "%{count} minutes" x_minutes_abbreviated: other: "%{count} mins" x_months: - other: "%{count} bulan" + other: "%{count} months" x_seconds: - other: "%{count} detik" + other: "%{count} seconds" x_seconds_abbreviated: other: "%{count} s" x_weeks: @@ -3069,9 +3264,142 @@ id: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Saat ini tidak ada postingan di forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3096,6 +3424,8 @@ id: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3121,6 +3451,10 @@ id: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3132,7 +3466,7 @@ id: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3141,7 +3475,7 @@ id: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3166,6 +3500,31 @@ id: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3202,8 +3561,10 @@ id: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3253,6 +3614,7 @@ id: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3405,10 +3767,10 @@ id: label_copy_target: Target label_copy_workflow_from: Copy Alur-Tugas dari label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core versi label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Status saat ini label_current_version: Versi saat ini label_custom_comment: "%{name} comment" @@ -3432,8 +3794,6 @@ id: label_custom_field_default_type: Tipe kosong label_custom_field_new: Isian kustom baru label_custom_field_plural: Isian kustom - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Rancangan label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3442,11 +3802,12 @@ id: label_database_version: Versi PostgreSQL label_date: Tanggal label_date_and_time: Tanggal dan waktu - label_date_format: Format tanggal + label_date_and_time_formats: Date and time formats label_date_from: Dari label_date_from_to: Dari %{start} ke %{end} label_date_to: Ke label_dates: Tanggal + label_day: Hari label_day_plural: hari label_default: Default label_defaults: Defaults @@ -3457,6 +3818,7 @@ id: label_deleted_custom_field: "(isian kustom dihapus)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(opsi dihapus)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3527,6 +3889,7 @@ id: label_float: Float label_folder: Folder label_follows: Berikut + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Forum baru label_forum_plural: Forum @@ -3545,6 +3908,7 @@ id: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grup + label_group_attributes_plural: Group attributes label_group_by: Pengelompokan label_group_named: Grup %{name} label_group_new: Grup baru @@ -3596,8 +3960,8 @@ id: label_journal_diff: Deskripsi perbandingan label_jump_to_a_project: Lompat ke Project... label_keyword_plural: Kata kunci + label_label_plural: Labels label_language: Bahasa - label_language_based: Berdasarkan bahasa user label_languages: Bahasa label_last_activity: Aktivitas terakhir label_last_change_on: Last change on @@ -3619,6 +3983,7 @@ id: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Mengunci pengguna label_locked: terkunci label_logged_as: Login sbg @@ -3630,6 +3995,7 @@ id: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: "%{vendor} repository yang dikelola" label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Ukuran maks. label_me: saya label_member_all_admin: "(Semua peran karena status admin)" @@ -3648,7 +4014,6 @@ id: label_menu_item_name: Nama item menu label_message: Message label_message_last: Pesan terakhir - label_message_new: Pesan Baru label_message_plural: Pesan label_message_posted: Pesan ditambahkan label_minute_plural: menit @@ -3660,6 +4025,7 @@ id: label_module_plural: Modul label_modules: Modul label_modules_and_plugins: Modul dan Plugin + label_month: Bulan label_months_from: dari bulan label_more: Lanjut label_more_information: Informasi lebih lanjut @@ -3673,6 +4039,7 @@ id: label_my_avatar: My avatar label_my_queries: Query kustom saya label_my_security: Security + label_my_time: My time label_name: Nama label_never: Never label_new: Baru @@ -3687,7 +4054,10 @@ id: label_news_singular: News label_news_view_all: Tampilkan semua berita label_next: Lanjut + label_next_day: Besok + label_next_month: Bulan selanjutnya label_next_week: Minggu depan + label_next_workweek: Minggu kerja berikutnya label_next_year: Next year label_no_change_option: "(tdk berubah)" label_no_data: Tidak ada data untuk ditampilkan @@ -3695,6 +4065,7 @@ id: label_no_parent_group: "(No parent group)" label_no_parent_page: Tidak ada halaman induk label_no_start_date: tidak ada tanggal mulai + label_no_time: Tidak ada waktu yang dilacak label_nobody: tidak ada label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3761,7 +4132,10 @@ id: label_preview: Preview label_preview_not_available: Preview not available label_previous: Sebelumnya + label_previous_day: Kemarin + label_previous_month: Bulan sebelumnya label_previous_week: Minggu sebelumnya + label_previous_workweek: Minggu kerja sebelumnya label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -3880,6 +4254,7 @@ id: label_sort_lowest: Pindahkan paling bawah label_sorted_by: diurutkan berdasarkan %{value} label_spent_time: Durasi + label_stack: Stack label_start_to_end: start ke finish label_start_to_start: start untuk memulai label_starts_with: starts with @@ -3899,6 +4274,7 @@ id: label_subtask_plural: Sub-Tugas label_summary: Ringkasan label_system: Sistem + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Informasi storage label_table_of_contents: Daftar isi @@ -3913,6 +4289,7 @@ id: label_time: Waktu label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Durasi + label_timer_since: Dimulai dari %{time} label_title: Judul label_today: hari ini label_today_as_date: Select today as date. @@ -3948,7 +4325,9 @@ id: label_user_search: Cari user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Ubah versi label_version_new: Versi baru label_version_plural: Versi @@ -3961,6 +4340,7 @@ id: label_videos: Videos label_view_all_revisions: Tampilkan semua revisi label_view_diff: Lihat perbedaan + label_view_mode_switcher: Ubah tampilan label_view_revisions: Lihat revisi label_view_x: 'View: %{x}' label_watched_work_packages: Paket-Penugasan yang telah diakses @@ -3984,6 +4364,8 @@ id: label_wiki_start: Homepage label_wiki_toc: Daftar isi label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Paket-Penugasan label_work_package_attachments: Lampiran paket kerja @@ -4006,36 +4388,37 @@ id: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Minggu kerja label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} tertutup" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} komentar" zero: tak ada komentar label_x_days: other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} terbuka" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} proyek" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: @@ -4094,7 +4477,7 @@ id: start_tls: STARTTLS start_tls_description: Mengirimkan perintah STARTTLS setelah menyambung ke port LDAP standar. Direkomendasikan untuk koneksi terenkripsi. tls_options: - tls_certificate_description: Jika sertifikat server LDAP tidak ada dalam sumber kepercayaan sistem ini, Anda dapat menambahkannya secara manual di sini. Masukkan string sertifikat PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verifikasi sertifikat SSL verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4151,6 +4534,8 @@ id: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4379,6 +4764,12 @@ id: create_button: Buat baru dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Gagal untuk menset ulang akses token: %{error}' @@ -4392,10 +4783,26 @@ id: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Token akses description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4599,7 +5006,6 @@ id: notice_principals_found_single: |- Ada satu hasil. Tab untuk lebih fokus. - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: Project tidak dihapus. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4609,9 +5015,6 @@ id: notice_successful_create: Berhasil dibuat. notice_successful_delete: Berhasil dihapus. notice_successful_update: Berhasil diperbarui. - notice_successful_update_custom_fields_added_to_project: 'Pembaruan berhasil. Bidang kustom dari jenis yang diaktifkan secara otomatis diaktifkan pada formulir paket pekerjaan. Lihat selengkapnya. - - ' notice_to_many_principals_to_display: Ada terlalu banyak hasil. Persempit pencarian dengan mengetik nama member baru (atau grup). notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -4798,8 +5201,6 @@ id: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4819,7 +5220,6 @@ id: or: atau rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -4891,8 +5291,8 @@ id: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -4917,7 +5317,7 @@ id: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentar berita permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy Project + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -4950,6 +5350,7 @@ id: permission_export_projects: Export projects permission_export_work_packages: Ekspor work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -4960,6 +5361,9 @@ id: permission_manage_dashboards: Manage dashboards permission_manage_forums: Kelola Forum permission_manage_members: Kelola member + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Kelola Berita permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -4988,7 +5392,6 @@ id: permission_save_bcf_queries: Save BCF queries permission_save_queries: Simpan tampilan permission_search_project: Search project - permission_select_custom_fields: Pilih bidang khusus permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Pilih modul Project permission_select_project_phases: Select project phases @@ -5022,6 +5425,16 @@ id: permission_work_package_assigned: Menjadi penerima tugas/penanggung jawab permission_work_package_assigned_explanation: Paket kerja dapat ditetapkan untuk pengguna-pengguna tunggal dan kelompok-kelompok yang memiliki peran dalam proyek masing-masing placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Hapus pengguna placeholder deletion_info: data_consequences: 'Semua kemunculan pengguna placeholder (mis., sebagai penerima tugas, penanggung jawab, atau nilai pengguna lainnya) akan dipindahkan ke akun yang disebut "Pengguna yang dihapus". Karena data setiap akun yang dihapus dipindahkan ke akun ini, data yang dibuat pengguna tidak dapat dibedakan dari data akun lain yang dihapus. @@ -5043,7 +5456,7 @@ id: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5068,7 +5481,7 @@ id: Ini dapat digunakan untuk menyorot paket pekerjaan dalam tabel program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5080,7 +5493,7 @@ id: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} proyek" zero: 0 projects destroy: @@ -5185,11 +5598,11 @@ id: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5199,6 +5612,12 @@ id: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Buat forum baru @@ -5311,7 +5730,7 @@ id: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5319,15 +5738,27 @@ id: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Terapkan Filter yang telah dikonfigurasikan configure_view: @@ -5467,6 +5898,26 @@ id: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5478,6 +5929,14 @@ id: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5582,7 +6041,7 @@ id: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maks. tampilan baris diff setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Tampilkan Paket-Penugasan pada Sub-Project secara default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5697,6 +6156,7 @@ id: setting_start_of_week: Minggu dimulai pada setting_sys_api_description: Repository management web service menyediakan integrasi fungsi dan otorisasi untuk akses repository. setting_sys_api_enabled: Aktifkan web service untuk manajemen repository + setting_sys_api_key: API key setting_time_format: Waktu setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5749,7 +6209,7 @@ id: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5760,6 +6220,7 @@ id: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -5851,12 +6312,12 @@ id: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -5876,8 +6337,8 @@ id: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -5885,7 +6346,7 @@ id: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -5905,6 +6366,7 @@ id: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -5961,7 +6423,7 @@ id: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6054,19 +6516,19 @@ id:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: dan skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: Modus aksesibilitas dirancang untuk pengguna yang buta, terkendala secara motorik atau memiliki penglihatan yang buruk. Untuk elemen-elemen fokus terakhir secara khusus diperhatikan. Harap diperhatikan, bahwa modul Backlogs tidak tersedia dalam modus ini. text_analyze: 'Analisa lanjut: %{subject}' text_are_you_sure: Anda yakin? text_are_you_sure_continue: Are you sure you want to continue? @@ -6109,12 +6571,6 @@ id: ' text_custom_field_possible_values_info: Satu baris untuk tiap nilai - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6164,6 +6620,7 @@ id: text_length_between: Panjang antara %{min} dan %{max} karakter. text_line_separated: Jika ada beberapa nilai, satu baris untuk tiap nilai. text_load_default_configuration: Pakai konfigurasi default + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: Role, Tipe, status Paket-Penugasan dan Alur-Tugas belum dikonfigurasi. Disarankan untuk menggunakan konfigurasi default. Anda bisa mengubahnya setelah konfigurasi dibuat. text_no_notes: There are no comments available for this work package. @@ -6263,6 +6720,67 @@ id: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6272,14 +6790,40 @@ id: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6288,8 +6832,10 @@ id: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6318,21 +6864,21 @@ id: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6349,6 +6895,8 @@ id: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6370,6 +6918,14 @@ id: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6379,12 +6935,14 @@ id: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6398,12 +6956,12 @@ id: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6416,10 +6974,12 @@ id: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Project + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6434,41 +6994,17 @@ id: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6476,6 +7012,9 @@ id: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6484,13 +7023,14 @@ id: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6504,12 +7044,16 @@ id: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6518,23 +7062,51 @@ id: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: @@ -6543,7 +7115,18 @@ id: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Abaikan peringatan ini. message: You may run into errors and degraded experience on this page. @@ -6562,7 +7145,7 @@ id: authorization_rejected: Anda tidak diijinkan untuk login. blocked: dilock sementara blocked_num_failed_logins: - other: dilock sementara (karena %{count} kali gagal login) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Anda sedang mengubah status '%{name}'. Apakah Anda yakin ingin melanjutkan? deleted: User telah dihapus department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6662,7 +7245,7 @@ id: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Terakhir koneksi may_not_delete_current: Anda tidak dapat menghapus sesi Anda saat ini. session_name: "%{browser_name} %{browser_version} di %{os_name}" @@ -6728,6 +7311,12 @@ id: version_status_locked: terkunci version_status_open: buka versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -6897,6 +7486,8 @@ id: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Paket pekerjaan tidak dapat disalin. could_not_be_deleted: 'The following work packages could not be deleted:' @@ -6998,6 +7589,137 @@ id: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7029,39 +7751,50 @@ id: version: no_results_title_text: There are currently no versions available. x_descendants: - other: |- - Satu - Satu paket pekerjaan turunan - - Lainnya - %{count} keturunan paket kerja + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7070,12 +7803,82 @@ id: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Ubah hari kerja dialog: diff --git a/config/locales/crowdin/it.seeders.yml b/config/locales/crowdin/it.seeders.yml index f0539538d610..76e89bda71ae 100644 --- a/config/locales/crowdin/it.seeders.yml +++ b/config/locales/crowdin/it.seeders.yml @@ -250,70 +250,26 @@ it: In questo modulo puoi comunicare le notizie del progetto ai membri del tuo team. versions: item_0: - name: Arretrati Bug - item_1: - name: Prodotti Arretrati - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Riunione di pianificazione dello sprint (Sprint planning) - - _Documentare qui gli argomenti dello Sprint planning meeting_ - - * Tempo limitato (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Suddiviso in due fasce orarie di 4 ore ciascuna: - - * Il Product Owner presenta il [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e le priorità al team e spiega lo Sprint Goal, che il team deve accettare. Insieme, danno la priorità agli argomenti del Product Backlog di cui il team si occuperà nel prossimo sprint. Il team si impegna alla consegna discussa. - * Il team pianifica autonomamente (senza il Product Owner) in dettaglio e suddivide le attività dai requisiti discussi per consolidare uno [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Riunione giornaliera Scrum (Daily Scrum) - - _Documentare qui gli argomenti del Daily Scrum meeting_ + ### Release 1.0 - * Breve riunione quotidiana sullo stato della squadra. - * Tempo limitato (max. 15 min). - * Riunione in piedi per discutere i seguenti argomenti della [Task board](##sprint:scrum_project__version__sprint_1). - * Cosa intendo fare fino al prossimo Daily Scrum? - * Cosa ha impedito il mio lavoro (Impedimenti)? - * Lo Scrum Master modera e annota gli impedimenti allo sprint [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Il Product Owner può partecipare per rimanere informato. + _Documenta qui il contenuto di questa release._ - ### Riunione di revisione dello sprint (Sprint Review) - - _Documentare qui gli argomenti dello Sprint Review meeting_ - - * Tempo limitato (4 h). - * Massimo un'ora di preparazione a persona. - * Il team mostra al product owner e ad altre persone interessate cosa è stato realizzato in questo sprint. - * Importante: niente video e niente PowerPoint! Dovrebbe essere dimostrata la funzionalità del prodotto appena finito (incrementi). - * È gradito il feedback del Product Owner, delle parti interessate e di altre persone che saranno incluse in ulteriori lavori. - * Sulla base delle funzionalità dimostrate, il Product Owner decide di andare live con questo incremento o di svilupparlo ulteriormente. Questa possibilità consente un ROI anticipato. - - - ### Retrospettiva sullo sprint (Sprint Retrospective) - - _Documentare qui gli argomenti dello Sprint Retrospective meeting_ - - * Tempo limitato (3 h). - * Dopo lo Sprint Review, sarà moderato da uno Scrum Master. - * Il team discute dello sprint: cosa è andato bene, cosa deve essere migliorato per essere più produttivi per il prossimo sprint o anche per divertirsi di più. - item_3: - name: Sprint 2 + * Le macro-attività di questa release sono quelle con versione di destinazione 1.0. + * La data di rilascio corrisponde alla data della milestone *Release v1.0*. + * Apri la [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) per seguire l'avanzamento di tutte le versioni. + * Apri [Impostazioni del progetto → Versioni]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) per collegare un'altra pagina wiki a una versione. categories: item_0: Categoria 1 (da modificare nelle Impostazioni del progetto) queries: item_0: name: Piano del progetto item_1: - name: Backlog del prodotto + name: Versione 1.1 item_2: - name: Sprint 1 + name: Versione 1.0 item_3: name: Incarichi boards: @@ -339,20 +295,21 @@ it: options: name: Per cominciare text: | - Siamo lieti di averti tra noi! Ti suggeriamo di provare alcune cose per iniziare con OpenProject. + Siamo lieti che tu abbia iniziato a usare OpenProject. Ti suggeriamo alcune operazioni per cominciare. - _Prova i seguenti passaggi:_ + _Prova a seguire questi passaggi:_ + + 1. *Invita nuovi membri nel progetto*: → vai a [Membri]({{opSetting:base_url}}/projects/your-scrum-project/members) nella navigazione del progetto. + 2. *Visualizza il Product backlog e gli Sprint backlog*: → vai a [Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) nella navigazione del progetto. + 3. *Crea uno sprint*: → vai a [Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e fai clic su "+ Sprint" per creare un nuovo sprint. Sposta le macro-attività dal backlog allo sprint per pianificare il lavoro da svolgere. Quando hai terminato, fai clic su "Avvia sprint". + 4. *Visualizza la bacheca dello sprint*: → vai a [Bacheche]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → apri la bacheca dello sprint facendo clic sul nome dello sprint. + 5. *Crea una nuova macro-attività*: → vai a [Macro-attività → Crea]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Crea e aggiorna un piano di progetto*: → vai a [Piano di progetto](##query:scrum_project__query__project_plan) nella navigazione del progetto. + 7. *Attiva altri moduli*: → vai a [Impostazioni del progetto → Moduli]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 1. *Invita nuovi membri al tuo progetto*: → Vai su [Membri]({{opSetting:base_url}}/projects/your-scrum-project/members) nella navigazione del progetto. - 2. *Visualizza il tuo Product Backlog e gli Sprint Backlog*: → Vai su [Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) nella navigazione del progetto. - 3. *Visualizza il tuo pannello delle attività*: → Vai su [Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Fai clic sulla freccia destra su Sprint → Seleziona [Pannello delle attività](##sprint:scrum_project__version__sprint_1). - 4. *Crea una nuova macro-attività*: → Vai su [Macro-attività → Crea]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Crea e aggiorna un piano di progetto*: → Vai su [Piano del progetto](##query:scrum_project__query__project_plan) nella navigazione del progetto. - 6. *Crea una wiki di Sprint*: → Vai a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e apri la wiki dello sprint dal menu a discesa a destra in uno sprint. Puoi modificare il [modello wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) in base alle tue esigenze. - 7. *Attiva ulteriori moduli*: → Vai su [Impostazioni progetto → Moduli]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Qui troverai le nostre [Guide per l'utente](https://www.openproject.org/docs/user-guide/). - Facci sapere se hai domande o se hai bisogno di supporto. Contattaci su: [support[at]openproject.com](mailto:support@openproject.com). + Qui trovi le nostre [Guide utente](https://www.openproject.org/docs/user-guide/). + Contattaci se hai domande o hai bisogno di assistenza: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Macro-attività diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index 56d879dc18e2..d9cb02022920 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -40,7 +40,9 @@ it: view: Un collegamento dinamico a una vista inserito tramite una macro. work_package: Un collegamento dinamico a una macro-attività inserito tramite una macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Accedi come %{login} per attivare il tuo account. + continue_with_provider: Continue with %{name} delete: Cancella account delete_confirmation: Sei davvero sicuro di voler cancellare questo account? deletion_info: @@ -65,7 +67,9 @@ it: error_self_registration_limited_provider: 'La registrazione dell''utente è limitata per il fornitore di Single Sign-on "%{name}". Chiedi all''amministratore di attivare l''account per te o modificare il limite di registrazione autonoma per questo fornitore. ' - login_with_auth_provider: o accedi con il tuo account esistente + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continua per accedere omniauth_direct_login_redirecting: Reindirizzamento al provider di identità… omniauth_login: Accedi per attivare il tuo account. @@ -118,6 +122,8 @@ it: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Client SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID personalizzato customized_type: Tipo personalizzato @@ -128,8 +134,6 @@ it: repository: Archivio comment: commented: Commentato - custom_action: - actions: Azioni custom_field: admin_only: Solo amministratore allow_non_open_versions: Consenti versioni non aperte @@ -168,6 +172,7 @@ it: uid: Client ID emoji_reaction: reactable: Reazione il + reaction: Reaction enterprise_token: active_user_count_restriction: Utenti attivi encoded_token: Token di assistenza Enterprise @@ -179,20 +184,44 @@ it: company: Azienda favorite: favorited: Elemento + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Numero di colonne page: Pagina row_count: Numero di righe widgets: Widget group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Utenti del gruppo identity_url: URL identificativo organizational_unit: Unità organizzativa parent: Gruppo padre group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Unità organizzativa parent: Gruppo padre import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nome dell'istanza Jira personal_access_token: Token di accesso personale url: URL dell'istanza Jira @@ -223,6 +252,7 @@ it: title: Titolo member: blocked: Bloccato + principal_type: Tipo di membro roles: Ruoli notification: read_ian: Leggi in app @@ -235,6 +265,7 @@ it: position: Posizione persisted_query: filters: Filtri + group_bys: Raggruppa i risultati per name: Nome orders: Ordini selects: Seleziona @@ -367,6 +398,8 @@ it: ongoing: In Corso spent_on: Data type: Tipo + token/base: + expires_on: Expiration date token/ical: calendar: Calendario ical_token_query_assignment: Assegnazione della query @@ -384,19 +417,17 @@ it: type_variant: attribute_groups: Modulo default_work_package_description: Testo predefinito per la descrizione - defaults_source: Origine dei valori predefiniti enabled_in_new_projects: Attivo nei nuovi progetti - form_configuration_source: Origine del modulo + linked_aspects: Inherited configuration patterns: Pattern - pdf_export_source: Origine dell'esportazione PDF - project_attributes_source: Origine degli attributi del progetto project_types: Progetti che utilizzano questa variante variant: Variante variant_name: Nome - workflows_source: Origine dei flussi di lavoro + workflow: Workflow user: admin: Amministratore auth_source: Origine dell'autenticazione + avatar_type: Avatar type consented_at: Consenso a current_password: Password corrente department: Dipartimento @@ -410,7 +441,7 @@ it: last_name: Cognome ldap_auth_source: Connessione LDAP new_password: Nuova password - password_confirmation: Conferma + password_confirmation: Password confirmation user_custom_field: custom_field_section: Sezione user_non_working_time: @@ -419,11 +450,15 @@ it: user_preference: auto_hide_popups: Nascondi automaticamente i banner di successo auto_hide_popups_caption: Se l'opzione è abilitata, i banner di successo verdi scompariranno automaticamente dopo 5 secondi. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Aggiorna gli avvisi button_update_look_and_feel: Aggiorna l'aspetto button_update_user_information: Aggiorna il profilo comments_sorting: Visualizza le attività della macro-attività ordinate per daily_reminders: Promemoria giornalieri + date_format: Date format disable_keyboard_shortcuts: Disabilita le scorciatoie da tastiera dismissed_enterprise_banners: Banner aziendali nascosti force_dark_theme_contrast: Forza il contrasto alto quando è in modalità Scura @@ -434,13 +469,23 @@ it: header_look_and_feel: Aspetto impaired: Modalità di accesso facilitato increase_contrast: Aumenta contrasto - increase_contrast_caption: Attiva la modalità ad alto contrasto per la modalità colore scelta. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Aumenta il contrasto del tema mode_guideline: Alcune modalità sovrascriveranno i colori personalizzati del tema per l'accessibilità e la leggibilità. Seleziona la modalità Chiara per il supporto completo del tema personalizzato. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Modalità colore + time_format: Time format time_zone: Fuso orario warn_on_leaving_unsaved: Avvisami quando sto lasciando una macro-attività non salvata workdays: Giorni lavorativi + user_resource: + description: Descrizione + name: Nome + user_filter: Filtro utenti + user_resource_detail: + description: Descrizione + user_filter: Filtro utenti user_working_hours: availability_factor: Fattore di disponibilità days: Giorni lavorativi @@ -491,6 +536,7 @@ it: title: Giorni lavorativi true: includi giorni non lavorativi journal_internal: Diario interno + labels: Labels notify: Notifica observed_in_versions: Osservato nelle versioni parent: Superiore @@ -519,6 +565,10 @@ it: work_package: Macro-attività work_package_version: kind: Tipo + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: deve essere accettato. @@ -590,6 +640,8 @@ it: regex_invalid: non può essere convalidato con l'espressione regolare associata. regex_list_invalid: Le righe %{invalid_lines} non possono essere analizzate come espressione regolare. regex_match_failed: non corrisponde all'espressione regolare %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: deve essere minore o uguale alla lunghezza massima. smaller_than_or_equal_to_max_value: deve essere minore o uguale al valore massimo. ssrf_filtered: viola i criteri SSRF di questa istanza di OpenProject. @@ -612,6 +664,10 @@ it: user_in_ldap_managed_department: Questo utente appartiene a un dipartimento gestito dalla sincronizzazione LDAP e non può essere spostato. wrong_length: è della lunghezza sbagliata (dovrebbe essere %{count} caratteri). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ it: general_consent: Accetta i termini e le condizioni. favorite: already_favorited: è già stato aggiunto ai preferiti. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: il valore finale deve essere più grande del valore iniziale. outside: è fuori dalla griglia. @@ -689,6 +755,13 @@ it: not_unique: è già in uso. Sei pregato di selezionare un altro nome. jira: invalid_protocol: Fornisci un protocollo valido (http o https) + label: + attributes: + name: + blank: Il nome non può essere vuoto. + format: "%{message}" + taken: Esiste già un'etichetta con questo nome. Usane un'altra. + too_long: Il nome è troppo lungo (il massimo è di %{count} caratteri). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ it: types: cannot_assign_multiple_variants_of_parent: Nel progetto è possibile abilitare una sola variante di un tipo cannot_assign_variant_and_parent: 'Non è possibile assegnare una variante insieme al suo genitore ' - cannot_assign_variants_yet: Non è ancora possibile abilitare le varianti in un progetto. Abilita il flag di funzionalità per provarle in_use_by_work_packages: 'ancora in uso dalla macro-attività: %{types}' switch_target_blank: Seleziona la variante a cui passare switch_target_identical: Il tipo di destinazione deve essere diverso da quello attualmente utilizzato dal progetto @@ -857,42 +929,26 @@ it: blank: Indica un nome per il token format: "%{message}" in_use: Questo nome di token è già utilizzato, scegline uno differente + type: + attributes: + base: + in_use_by_work_packages: Questo tipo non può essere eliminato finché è ancora utilizzato da macro-attività. type_variant: attributes: - attribute_groups: - attribute_unknown: È stato utilizzato un attributo della macro-attività non valido. - attribute_unknown_name: 'È stato utilizzato un attributo della macro-attività non valido: %{attribute}' - duplicate_group: Il nome del gruppo '%{group}' è utilizzato più di una volta. I nomi dei gruppi devono essere univoci. - group_without_name: Il nome del gruppo non può essere vuoto. - query_invalid: 'La query incorporata "%{group}" non è valida: %{details}' base: - borrowed_by_variants: Non può essere eliminata mentre la sua configurazione è riutilizzata da %{names}. is_default_variant: La configurazione predefinita di un tipo non può essere eliminata. project_variants_not_allowed: Questo tipo non consente di creare varianti all'interno dei progetti. restrict_dependent_destroy: has_many: Non può essere eliminata mentre è ancora utilizzata da alcuni progetti. - defaults_source_id: - must_be_available_to_the_variant: deve essere una configurazione utilizzabile da questo progetto. - would_create_cycle: collegherebbe queste configurazioni creando un ciclo. enabled_in_new_projects: not_available_to_project_owned_variant: non può essere impostata su una variante appartenente a un progetto. taken: è già impostato per un'altra configurazione di questo tipo. - form_configuration_source_id: - must_be_available_to_the_variant: deve essere una configurazione utilizzabile da questo progetto. - would_create_cycle: collegherebbe queste configurazioni creando un ciclo. patterns: invalid_tokens: Uno o più attributi all'interno del campo non sono validi. Correggi gli attributi prima di salvare. - pdf_export_source_id: - must_be_available_to_the_variant: deve essere una configurazione utilizzabile da questo progetto. - would_create_cycle: collegherebbe queste configurazioni creando un ciclo. - project_attributes_source_id: - must_be_available_to_the_variant: deve essere una configurazione utilizzabile da questo progetto. - would_create_cycle: collegherebbe queste configurazioni creando un ciclo. variant: must_belong_to_the_type: deve essere una variante di questo tipo. - workflows_source_id: - must_be_available_to_the_variant: deve essere una configurazione utilizzabile da questo progetto. - would_create_cycle: collegherebbe queste configurazioni creando un ciclo. + workflow: + not_available_to_this_variant: deve essere un flusso di lavoro utilizzabile da questo progetto. user: attributes: base: @@ -906,12 +962,8 @@ it: numeric: numerico (es. '1') requirements_not_met: 'Deve includere caratteri dei seguenti tipi: %{rules}' reused: - one: |- - è già stata utilizzata. Si prega di sceglierne una che è diversa - dall'ultima. - other: |- - è già stata utilizzata in precedenza. Si prega di sceglierne - una che è diversa dalle ultime %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: speciale (es. '%') uppercase: maiuscolo (es. 'A') password_confirmation: @@ -980,6 +1032,8 @@ it: identifier: must_not_be_changed: 'non deve essere modificato manualmente. Gli identificatori delle macro-attività vengono assegnati automaticamente e risolti tramite la tabella degli alias, pertanto modificarli manualmente interrompe i collegamenti e la cronologia degli identificatori. Se questa modifica è intenzionale, salva con `save(context: :%{context})` e mantieni coerente la tabella `work_package_semantic_aliases`.' semantic_identifier_incomplete: e sequence_number devono essere entrambi impostati contemporaneamente. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: non può essere in un altro progetto. cannot_be_milestone: non può essere un traguardo. @@ -1007,6 +1061,8 @@ it: status_id: status_invalid_in_type: non è valido perché lo stato attuale non esiste per questo tipo. status_transition_invalid: non è valido perché non esiste alcuna transizione valida dal vecchio al nuovo status sulla base del ruolo dell'utente attuale. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: non può essere un traguardo, perché questa macro-attività ha figli. is_not_a_valid_target_for_time_entries: 'La macro-attività #%{id} non può essere utilizzata per riassegnare la cronologia.' @@ -1015,8 +1071,8 @@ it: template: body: 'Perfavore controlla i seguenti campi:' header: - one: 1 errore ha impedito di salvare questo %{model} - other: "%{count} errori hanno impedito di salvare questo %{model}" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Azione @@ -1054,6 +1110,9 @@ it: auth_provider: one: Servizio di autenticazione other: Servizi di autenticazione + automation: + one: Automation + other: Automations backup: one: Backup other: Backup @@ -1075,9 +1134,6 @@ it: comment: one: Commento other: Commenti - custom_action: - one: Azione personalizzata - other: Azioni personalizzate custom_field: one: Campo personalizzato other: Campi personalizzati @@ -1123,6 +1179,9 @@ it: export_setting: one: Impostazione di esportazione other: Impostazioni di esportazione + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forum @@ -1141,6 +1200,9 @@ it: issue_priority: one: Priorità other: Priorità + label: + one: Label + other: Labels ldap_auth_source: one: Connessione LDAP other: Connessioni LDAP @@ -1405,7 +1467,28 @@ it: admin: banners: environment_configured_readonly: Questi valori sono configurati tramite variabili ambiente e non possono essere modificati qui. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Colori di base main_menu: Menu laterale principale @@ -1438,7 +1521,11 @@ it: tab_interface: Interfaccia tab_pdf_export_font: Font per l'esportazione in PDF tab_pdf_export_styles: Stili di esportazione PDF - theme_warning: Cambiando il tema si sovrascriverà lo stile personalizzato. Il design andrà poi perso. Sei sicuro di voler continuare? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Carica un token di assistenza per Enterprise edition book_now: Prenota ora @@ -1471,7 +1558,7 @@ it: import: title: Importa info: - database_deprecation_html: 'A partire da OpenProject 16.0, è necessario PostgreSQL 16 per utilizzare OpenProject. La tua installazione continuerà a funzionare con il database attuale, ma è prevedibile un''incompatibilità nelle versioni future.
Abbiamo preparato [guide di aggiornamento per tutti i metodi di installazione](upgrade_guide). Puoi effettuare l''aggiornamento in qualsiasi momento prima della prossima versione seguendo le guide. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Allocatore di memoria Jemalloc @@ -1479,12 +1566,15 @@ it: actions: button_edit: Modifica configurazione button_open: Esecuzioni aperte + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Aiutaci a migliorare il migratore Jira con il tuo feedback e la donazione di dati privati. Puoi [unirti alla community di sviluppo](link) del migratore Jira. ' description: Questo migratore Jira è attualmente in versione beta. Al momento supportiamo solo Jira Server/Data Center versioni 10.x e 11.x. Le istanze Cloud non sono attualmente supportate. title: Beta - Provalo! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configura un host Jira per iniziare a importare elementi da Jira a questa istanza di OpenProject. title: Nessun host Jira ancora configurato @@ -1517,16 +1607,30 @@ it: description: Jira utilizza identificatori di problemi costituiti da una chiave di progetto e da un numero di sequenza (PRJ-123). Anche OpenProject lo supporta, ma deve essere abilitato [qui](link). title: Gli identificatori semantici basati sul progetto devono essere abilitati. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Aggiungi configurazione - button_delete_token: Elimina token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Salva configurazione - delete_token_confirm: Vuoi davvero eliminare il token? Questo disabiliterà la connessione Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nome - personal_access_token: Token di acceso personale + personal_access_token: Personal access token (PAT) url: URL del server/data center Jira label_testing: Configurazione di test... - test_configuration_caption: È possibile testare questa configurazione [cliccando qui](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Modifica esecuzione @@ -1630,26 +1734,26 @@ it: title: Assicurati di avere un backup! parts: issues: - one: 1 problema - other: "%{count} problemi" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 progetto - other: "%{count} progetti" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 stato - other: "%{count} stati" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 tipo - other: "%{count} tipi" + one: "%{count} type" + other: "%{count} types" users: - one: 1 utente - other: "%{count} utenti" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 macro-attività - other: "%{count} macro-attività" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Comprendo che questa operazione eliminerà i dati in modo permanente description: Questa operazione eliminerà tutti gli oggetti importati, inclusi interi progetti. @@ -1714,8 +1818,8 @@ it: caption: Scegli cosa vuoi importare in OpenProject caption_done: Completato caption_done_description: - one: 1 progetto selezionato come ambito - other: "%{count} progetti selezionati come ambito" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Seleziona i dati che desideri importare tra quelli disponibili recuperati dall'istanza host di Jira. elements: custom_fields: Un sottoinsieme di campi personalizzati @@ -1779,23 +1883,53 @@ it: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: L'API Jira ha restituito lo stato di errore %{status}. Controlla l'URL dell'istanza Jira e il token API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Errore di connessione: %{message}' error: Si è verificato un errore imprevisto durante il test della connessione failed: 'Connessione non riuscita: impossibile recuperare le informazioni sul server' invalid_url: Fornisci un URL valido - missing_credentials: Fornisci sia l'URL che il token di accesso personale per testare la connessione parse_error: Impossibile analizzare la risposta dal server. Il server potrebbe non essere un'istanza Jira valida. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Connessione riuscita a %{server} (versione %{version}) - token_error: Token API non valido. Controlla le tue credenziali nella configurazione. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Il token è stato eliminato con successo. user: unknown_name: Sconosciuto journal_aggregation: caption_with_maximum: 'Le azioni degli utenti su una macro-attività, come modificare descrizione, stato o valori, oppure aggiungere commenti, vengono raggruppate se eseguite entro questo intervallo. Questo controlla anche i ritardi delle notifiche e dei [webhook](webhook_link). Il massimo è %{max} minuti. ' + labels: + delete_dialog_component: + confirmation: Sono consapevole che questa azione è irreversibile + description_html: Questa operazione rimuoverà l'etichetta %{name} da tutte le macro-attività di tutti i progetti. + heading: Eliminare questa etichetta? + title: Eliminare questa etichetta? + dialog_component: + create_title: Crea etichetta + rename_title: Rinomina "%{name}" + index: + description: Tutti gli utenti che possono modificare le macro-attività possono assegnare liberamente alle macro-attività etichette esistenti o crearne subito di nuove. Sono incluse tutte le etichette create dagli utenti in tutti i progetti. + row_component: + used_in_work_packages: + one: "%{count} macro-attività" + other: "%{count} macro-attività" + sub_header_component: + button_add: Etichetta + label_add: Aggiungi etichetta + search_placeholder: Digita per cercare + table_component: + blank_slate: + description: Le etichette create dagli utenti sulle macro-attività appariranno qui. + title: Ancora nessuna etichetta + headers: + name: Etichetta + usage: Usata in + no_matches: + description: Prova con un altro termine di ricerca. + title: Nessuna etichetta corrisponde alla tua ricerca mcp_configurations: index: description: Il protocollo di contesto del modello consente agli agenti di intelligenza artificiale di fornire ai propri utenti strumenti e risorse esposti da questa istanza di OpenProject. Questa funzionalità è ancora in versione beta. @@ -1826,6 +1960,18 @@ it: update: failure: La configurazione MCP non può essere aggiornata. success: La configurazione MCP è stata aggiornata correttamente. + members: + index: + blank_description: Nessuna iscrizione corrisponde al filtro attuale. + blank_title: Nessuna iscrizione + filter_label: Cerca utenti + inheritance_source: "%{type} %{name}" + inherited_via: "(tramite: %{source})" + title: Iscrizioni + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Per maggiori informazioni, consulta la pagina delle integrazioni e dei plugin. no_results_title_text: Al momento non vi sono plugin installati. @@ -1839,8 +1985,8 @@ it: confirm_button: Annulla la prenotazione dell'identificatore description: L'annullamento della prenotazione di questo identificatore di progetto è irreversibile. I collegamenti esterni e le integrazioni che lo utilizzano non funzioneranno più e il nome diventerà disponibile per essere assegnato a un nuovo progetto. description_with_work_packages: - one: L'annullamento della prenotazione di questo identificatore di progetto (e del relativo identificatore della sua macro-attività) è irreversibile. I collegamenti esterni e le integrazioni che lo utilizzano non funzioneranno più e il nome diventerà disponibile per essere assegnato a un nuovo progetto. - other: L'annullamento della prenotazione di questo identificatore di progetto (e del relativo identificatore delle sue %{count} macro-attività) è irreversibile. I collegamenti esterni e le integrazioni che lo utilizzano non funzioneranno più e il nome diventerà disponibile per essere assegnato a un nuovo progetto. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Annullare la prenotazione di "%{identifier}"? title: Annulla la prenotazione dell'identificatore empty_body: Quando l'identificatore di un progetto viene modificato, quello precedente viene visualizzato qui, così potrai annullarne la prenotazione quando sarà possibile farlo in sicurezza. @@ -1968,8 +2114,8 @@ it: error_unknown: Necessita di controllo manuale error_used_in_past: Riservato dalla cronologia degli identificatori di un altro progetto remaining_projects: - one: "... 1 altro progetto" - other: "... altri %{count} progetti" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Gli identificatori esistenti per %{project_count} progetti non soddisfano i requisiti per gli identificatori semantici basati sul progetto. OpenProject può aggiornarli automaticamente per renderli validi, come negli esempi sotto. Fai clic su "Converti gli identificatori" per aggiornare gli identificatori di tutti i progetti in questo modo e abilitare gli identificatori semantici basati sul progetto. @@ -2009,7 +2155,7 @@ it: types_caption: Aggiungi i tipi di macro-attività per i quali questa azione deve essere disponibile. Tutte le varianti disponibili verranno incluse automaticamente. usage_scope_caption: 'Puoi limitare dove è visibile questa azione: ovunque (inclusi commenti, wiki e campi personalizzati), per tutti i tipi di macro-attività o per determinati tipi di macro-attività.' index: - description: Le azioni di trasformazione del testo offrono agli utenti azioni basate su LLM per scrivere, organizzare e revisionare il testo ovunque venga utilizzato l'editor di testo RTF, ad esempio nelle descrizioni delle macro-attività, nei commenti e nelle pagine wiki. Puoi creare nuove azioni usando prompt e istruzioni personalizzati. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Azione label_aria_add_action: Aggiungi azione di trasformazione del testo index_component: @@ -2042,13 +2188,20 @@ it: ignore: Ignora le modifiche save: Salva le modifiche e continua title: Salvare le modifiche prima di continuare? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Ruolo: %{role}' no_role: Seleziona il ruolo roles: - one: Un ruolo selezionato - other: "%{count} ruoli selezionati" + one: "%{count} role selected" + other: "%{count} roles selected" title: Seleziona ruoli + with_transitions: With transitions + without_transitions: Without transitions status_button: Stato statuses_dialog: caption: Aggiungi o rimuovi gli stati che desideri associare a questo tipo. La rimozione di uno stato eliminerà anche il workflow associato. @@ -2058,8 +2211,8 @@ it: confirm: Rimuovi description: La rimozione di questi stati li renderà non disponibili per questo tipo ed eliminerà i flussi di lavoro esistenti. Procedere? heading: - one: Rimuovere 1 stato? - other: Rimuovere %{count} stati? + one: Remove %{count} status? + other: Remove %{count} statuses? title: Rimuovi gli stati tabs: always: Transizioni predefinite @@ -2071,7 +2224,31 @@ it: assignee: Ulteriori transizioni disponibili per l'assegnatario della macro-attività. author: Ulteriori transizioni disponibili per l'autore della macro-attività. menu_label: Transizioni visualizzate + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: Non è stato possibile raggiungere il servizio IA. + not_available: L'assistente IA non è disponibile. + timeout: Il servizio IA non ha risposto in tempo. + upstream_error: Il servizio IA ha restituito un errore. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: attualmente visualizzato is_inactive: attualmente non visualizzato show_until: Mostra fino a @@ -2079,7 +2256,7 @@ it: deleted_by_admin: Il file in quarantena '%{filename}' è stato eliminato da un amministratore. deleted_message: È stato rilevato un virus nel file '%{filename}'. Il file è stato eliminato. not_processed_yet_message: Il download è bloccato perché il file non è stato ancora scansionato alla ricerca di virus. Riprova più tardi. - overridden_by_admin: La quarantena per il file '%{filename}' è stata rimossa da %{user}. Il file è ora accessibile. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Contenitore delete: Elimina il file in quarantena @@ -2133,10 +2310,6 @@ it: not_found: reminder: Il promemoria che stai cercando non può essere trovatoo è stato eliminato. work_package: La macro-attività che stai cercando non può essere trovata o è stata eliminata. - render: - context_not_parsable: Il contesto fornito non è un collegamento a una risorsa. - context_object_not_found: Impossibile trovare la risorsa indicata come contesto. - unsupported_context: La risorsa non è supportata come contesto. unable_to_create_attachment: Il tema potrebbe non essere creato unable_to_create_attachment_permissions: L'allegato non può essere salvato a causa della mancanza di permessi nel file system user: @@ -2207,6 +2380,7 @@ it: groups: Gruppi hexcode: Codice esadecimale id: ID + inexistent: Inexistent is_default: Valore predefinito is_for_all: Per tutti progetti issue: Macro-attività @@ -2257,6 +2431,7 @@ it: updated_at: Aggiornato il updated_on: Aggiornato il uploader: Caricatore + url: URL user: Utente username: Nome Utente value: Valore @@ -2271,6 +2446,29 @@ it: ' login_and_registration: Accesso e registrazione + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Il lavoro è stato annullato a causa di un errore: %{message}' @@ -2399,6 +2597,7 @@ it: button_set_reminder: Imposta promemoria button_show: Mostra button_sort: Ordina + button_stop_timer: Ferma il timer button_submit: Invia button_test: Prova button_unarchive: Rimuovi dall'archivio @@ -2465,9 +2664,9 @@ it: text: failed: Non posso copiare il progetto "%{source_project_name}" nel progetto "%{target_project_name}". succeeded: Progetto "%{source_project_name}" copiato in "%{target_project_name}". - title: Copia il progetto "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Un oggetto di questo tipo + one: "%{count} object of this type" other: "%{count} oggetti di questo tipo" zero: Nessun oggetto di questo tipo create_portfolio: @@ -2505,13 +2704,9 @@ it: plural: Azioni personalizzate custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Questo campo personalizzato è attivato in tutti i progetti, poiché l'opzione "Per tutti i progetti" è selezionata. Non può essere disattivato per i singoli progetti. - heading: Per tutti i progetti hierarchy: subitems: - one: 1 sottoelemento + one: "%{count} sub-item" other: "%{count} sottoelementi" zero: nessun sottoelemento items: @@ -2532,7 +2727,7 @@ it: short: Abbreviazione weight: Peso notice: - remember_items_and_projects: Ricorda di impostare elementi e progetti nelle rispettive schede per questo campo personalizzato. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Puoi assegnare automaticamente uno specifico ruolo di progetto a qualsiasi utente associato a questo attributo di progetto, indipendentemente dal ruolo originario dell'utente nel progetto. dialog: @@ -2597,16 +2792,17 @@ it: is_enabled_globally: Abilitato a livello globale multi_value_more: other: e altri %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Nessuna assegnazione di ruolo + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Prima è necessario selezionare la macro-attività o il progetto reorder_alphabetical: Riordina i valori alfabeticamente reorder_confirmation: 'Attenzione: l''ordine attuale dei valori disponibili e tutti i valori non salvati andranno persi. Vuoi continuare?' semantic_keys: job_title: Titolo professionale none: Nessuno - tab: - no_results_content_text: Crea un nuovo campo personalizzato - no_results_title_text: Al momento non esistono campi personalizzati. text_add_new_custom_field: 'Per aggiungere nuovi campi personalizzati a un progetto, è necessario prima crearli. ' @@ -2670,57 +2866,57 @@ it: datetime: distance_in_words: about_x_hours: - one: 1 ora circa - other: "%{count} ore circa" + one: about %{count} hour + other: about %{count} hours about_x_months: - one: circa 1 mese - other: circa %{count} mesi + one: about %{count} month + other: about %{count} months about_x_years: - one: circa un anno - other: circa %{count} anni + one: about %{count} year + other: about %{count} years almost_x_years: - one: quasi 1 anno - other: quasi %{count} anni + one: almost %{count} year + other: almost %{count} years half_a_minute: mezzo minuto less_than_x_minutes: one: meno di un minuto other: meno di %{count} minuti less_than_x_seconds: - one: meno di 1 secondo - other: meno di %{count} secondi + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: oltre 1 anno - other: oltre %{count} anni + one: over %{count} year + other: over %{count} years x_days: - one: 1 giorno - other: "%{count} giorni" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 ora - other: "%{count} ore" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 ora - other: "%{count} ore" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 minuto - other: "%{count} minuti" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 minuto - other: "%{count} minuti" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 mese - other: "%{count} mesi" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 secondo - other: "%{count} secondi" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 settimana - other: "%{count} settimane" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: '1 anno ' - other: "%{count} anni" + one: "%{count} year" + other: "%{count} years" units: day: one: giorno @@ -2870,8 +3066,8 @@ it: teaser: description_html: Hai accesso a tutte le funzionalità %{trial_plan}. title: - one: Un giorno rimanente del token di prova %{trial_plan} - other: "%{count} giorni rimanenti del token di prova %{trial_plan}" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Il token enterprise di prova è già stato recuperato. Controlla le tue e-mail per il token in allegato. Contatta il nostro team di assistenza se ne hai bisogno di uno nuovo. @@ -3208,9 +3404,150 @@ it: selected: Selezionati include_sub_items: Includi sottovoci no_results_text: Nessun risultato + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Al momento non vi sono post sul forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3235,6 +3572,8 @@ it: groups: edit: synchronized_groups: Gruppi sincronizzati + form: + group_attributes: Group attributes index: description: Raggruppando gli utenti, puoi aggiungerli come membri agli stessi progetti o assegnare loro gli stessi ruoli globali. memberships: @@ -3260,6 +3599,10 @@ it: leave_project: Abbandona il progetto no_favorite_projects: Non hai progetti preferiti. title: Progetti + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3273,7 +3616,7 @@ it: summary: failure: Alcuni controlli non sono riusciti e il sistema non funziona come previsto. success: Tutte le connessioni e i sistemi funzionano come previsto. - warning: Alcuni controlli hanno restituito un avviso. Questo può causare comportamenti imprevisti. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Non riuscito @@ -3282,7 +3625,7 @@ it: warning: Avviso help_texts: views: - favoured: Segna questa vista come preferita e aggiungila alla barra laterale delle viste salvate a sinistra. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} sono sempre allegati a un progetto. Qui puoi selezionare solo progetti in cui il modulo %{plural} è attivo. Dopo aver creato un %{singular} puoi aggiungervi macro-attività da altri progetti.\n" public: Pubblica questa vista, consentendo ad altri utenti di accedere alla tua vista. Gli utenti con il permesso "Gestisci viste pubbliche" possono modificare o rimuovere la query pubblica. Questo non influisce sulla visibilità dei risultati della macro-attività in quella vista e gli utenti possono vedere risultati diversi a seconda dei loro permessi. homescreen: @@ -3307,6 +3650,31 @@ it: line_6: Usa gli avvisi sulle date nella Community Edition. new_features_title: 'Questa versione include diverse nuove funzionalità e miglioramenti, tra cui: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Informati sulle nuove funzionalità e sugli aggiornamenti dei prodotti. learn_about: Scopri di più su tutte le nuove funzionalità @@ -3343,8 +3711,10 @@ it: journals: cause_descriptions: budget_deleted: Il budget è stato cancellato + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} modificato (%{link})" + csv: from CSV deleted_with_diff: "%{field} eliminato (%{link})" field_changed: "%{field} è cambiato da %{old_value} a %{new_value}" field_removed: "%{field} rimosso" @@ -3394,6 +3764,7 @@ it: budget_deleted: Il budget è stato cancellato dates_changed: Date cambiate default_attribute_written: Attributi di sola lettura scritti + forum_message_html: "Created from forum message %{message_information}" import: Importato meeting_agenda_item_added_html: "Aggiunto alla riunione %{meeting_title_information}" meeting_agenda_item_added_template_html: "Aggiunto a %{meeting_title_information}" @@ -3546,10 +3917,10 @@ it: label_copy_target: Destinazione label_copy_workflow_from: Copia flusso di lavoro da label_copy_workflow_from_role: Copia in altri ruoli - label_copy_workflow_from_type: Copia in un altro tipo label_core_build: Core build label_core_version: Versione core label_created_by: Creato da %{user} + label_criteria: Criteri label_current_status: Stato attuale label_current_version: Versione corrente label_custom_comment: Commento di %{name} @@ -3573,8 +3944,6 @@ it: label_custom_field_default_type: Tipo vuoto label_custom_field_new: Nuovo campo personalizzato label_custom_field_plural: Campo personalizzato - label_custom_logo: Logo desktop personalizzato - label_custom_logo_mobile: Logo mobile personalizzato label_custom_pdf_export_settings: Impostazioni di esportazione PDF personalizzate label_custom_style: Progettazione label_custom_style_description: Scegli l'aspetto che vuoi dare a OpenProject con i temi, seleziona i colori predefiniti da utilizzare nell'app e l'aspetto delle esportazioni. @@ -3583,11 +3952,12 @@ it: label_database_version: Versione di PostgreSQL label_date: Data label_date_and_time: Data e ora - label_date_format: Formato data + label_date_and_time_formats: Date and time formats label_date_from: Da label_date_from_to: Da %{start} a %{end} label_date_to: A label_dates: Date + label_day: Giorno label_day_plural: giorni label_default: Predefinito label_defaults: Predefiniti @@ -3598,6 +3968,7 @@ it: label_deleted_custom_field: "(campo personalizzato eliminato)" label_deleted_custom_item: "(elemento eliminato)" label_deleted_custom_option: "(opzione eliminata)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organizzazione label_departments_description_html: 'Definisci la struttura della tua azienda creando reparti e sottoreparti in modo gerarchico. In questo modo puoi rispecchiare le linee di riporto e mantenere una panoramica chiara e strutturata della tua organizzazione in OpenProject. Puoi anche importare una struttura organizzativa esistente tramite la [Sincronizzazione dei dipartimenti LDAP](ldap_docs_article). @@ -3668,6 +4039,7 @@ it: label_float: Virgola mobile label_folder: Cartella label_follows: segue + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nuovo forum label_forum_plural: Forum @@ -3686,6 +4058,7 @@ it: label_go_forward: Apri sottomenu %{module} label_greater_or_equal: ">=" label_group: Gruppo + label_group_attributes_plural: Group attributes label_group_by: Raggruppa per label_group_named: Gruppo %{name} label_group_new: Nuovo gruppo @@ -3737,8 +4110,8 @@ it: label_journal_diff: Confronto Descrizione label_jump_to_a_project: Salta ad altro progetto... label_keyword_plural: Parole chiave + label_label_plural: Etichette label_language: Lingua - label_language_based: Basato sulla lingua dell'utente label_languages: Lingue label_last_activity: Ultima attività label_last_change_on: Ultima modifica fatta il @@ -3760,6 +4133,7 @@ it: label_list: Elenca label_loading: Caricamento... label_locale: Lingua e paese + label_locale_based: Use default for user locale label_lock_user: Blocca utente label_locked: bloccato label_logged_as: Accesso eseguito come @@ -3771,6 +4145,7 @@ it: label_managed_by_ldap: Gestito tramite sincronizzazione LDAP label_managed_repositories_vendor: Archivio gestito %{vendor} label_mapping_for: 'Mappatura per: %{attribute}' + label_markdown_version: Markdown version label_max_size: Dimensione massima label_me: io label_member_all_admin: "(Tutti i ruoli a causa dello stato di admin)" @@ -3789,7 +4164,6 @@ it: label_menu_item_name: Nome della voce di menu label_message: "Messaggio\t" label_message_last: Ultimo messaggio - label_message_new: Nuovo messaggio label_message_plural: Messaggi label_message_posted: Messaggio aggiunto label_minute_plural: minuti @@ -3801,6 +4175,7 @@ it: label_module_plural: Moduli label_modules: Moduli label_modules_and_plugins: Moduli e Plugin + label_month: Mese label_months_from: mesi da label_more: Più label_more_information: Altre informazioni @@ -3814,6 +4189,7 @@ it: label_my_avatar: Il mio avatar label_my_queries: Le mie query personalizzate label_my_security: Sicurezza + label_my_time: My time label_name: Nome label_never: Mai label_new: Nuovo @@ -3828,7 +4204,10 @@ it: label_news_singular: Notizie label_news_view_all: Vedi tutte le notizie label_next: Prossimo + label_next_day: Giorno successivo + label_next_month: Prossimo mese label_next_week: Prossima settimana + label_next_workweek: Prossima settimana lavorativa label_next_year: Anno successivo label_no_change_option: "(Nessuna modifica)" label_no_data: Nessun dato da visualizzare @@ -3836,6 +4215,7 @@ it: label_no_parent_group: "(Nessun gruppo genitore)" label_no_parent_page: Nessuna pagina genitore label_no_start_date: nessuna data di inizio + label_no_time: Nessun tempo tracciato label_nobody: nessuno label_non_working_days: Calendario disponibilità label_non_working_days_summary: Riepilogo @@ -3902,7 +4282,10 @@ it: label_preview: Anteprima label_preview_not_available: Anteprima non disponibile label_previous: Precedente + label_previous_day: Giorno precedente + label_previous_month: Mese precedente label_previous_week: Settimana precedente + label_previous_workweek: Settimana lavorativa precedente label_previous_year: Anno precedente label_principal_invite_via_email: " o invita nuovi utenti via e-mail" label_principal_search: Aggiungi utenti o gruppi esistenti @@ -4021,6 +4404,7 @@ it: label_sort_lowest: Sposta in fondo label_sorted_by: ordinati per %{value} label_spent_time: Tempo speso + label_stack: Stack label_start_to_end: dall'inizio alla fine label_start_to_start: dall'inizio all'inizio label_starts_with: inizia con @@ -4040,6 +4424,7 @@ it: label_subtask_plural: Sottoattività label_summary: Sommario label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Impostazioni di sistema label_system_storage: Informazioni sullo spazio di archiviazione label_table_of_contents: Indice @@ -4054,6 +4439,7 @@ it: label_time: Ora label_time_entry_activity_plural: Attività che richiedono tempo label_time_entry_plural: Tempo speso + label_timer_since: Iniziato ore %{time} label_title: Titolo label_today: oggi label_today_as_date: Seleziona oggi come data. @@ -4089,7 +4475,9 @@ it: label_user_search: Cerca per utente label_user_settings: Impostazioni utente label_users_settings: Impostazioni utenti + label_value: Value label_value_x: 'Valore: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Modifica versione label_version_new: Nuova versione label_version_plural: Versioni @@ -4102,6 +4490,7 @@ it: label_videos: Video label_view_all_revisions: Mostra tutte le revisioni label_view_diff: Mostra le differenze + label_view_mode_switcher: Cambia vista label_view_revisions: Vedi revisioni label_view_x: 'Visualizza: %{x}' label_watched_work_packages: Macro-attività osservate @@ -4125,6 +4514,8 @@ it: label_wiki_start: Pagina iniziale label_wiki_toc: Sommario label_wiki_toc_empty: La tabella dei contenuti è vuota in quanto non è presente nessuna intestazione. + label_with_criteria: Con criteri + label_without_criteria: Senza criteri label_work: Lavoro label_work_package: Macro-attività label_work_package_attachments: Allegati macro-attività @@ -4147,46 +4538,47 @@ it: label_working_days: Giorni lavorativi label_working_days_and_hours: Giorni lavorativi e ore label_working_hours: Orario di lavoro + label_workweek: Settimana lavorativa label_x_closed_work_packages_abbr: - one: 1 chiuso + one: "%{count} closed" other: "%{count} chiusi" zero: 0 chiusi label_x_comments: - one: 1 commento + one: "%{count} comment" other: "%{count} commenti" zero: nessun commento label_x_days: - one: 1 giorno - other: "%{count} giorni" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} file" zero: nessun file label_x_items: - one: 1 elemento + one: "%{count} item" other: "%{count} elementi" zero: nessun elemento label_x_items_selected: - one: Un elemento selezionato - other: "%{count} elementi selezionati" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 aperto + one: "%{count} open" other: "%{count} aperti" zero: 0 aperti label_x_projects: - one: 1 progetto + one: "%{count} project" other: "%{count} progetti" zero: nessun progetto label_x_work_packages: - one: 1 macro-attività + one: "%{count} work package" other: "%{count} macro-attività" zero: Nessuna macro-attività label_x_working_days: - one: 1 giorno lavorativo - other: "%{count} giorni lavorativi" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Assenza: 1 giorno lavorativo' - other: 'Assenza: %{count} giorni lavorativi' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: ieri label_zen_mode: Modalità Zen ldap_auth_sources: @@ -4239,7 +4631,7 @@ it: start_tls: STARTTLS start_tls_description: Invia un comando STARTTLS dopo la connessione alla porta LDAP standard. Consigliato per connessioni cifrate. tls_options: - tls_certificate_description: Se il certificato del server LDAP non è nelle fonti di fiducia di questo sistema, è possibile aggiungerlo manualmente qui. Inserisci una stringa certificata PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verifica certificato SSL verify_peer_description_html: 'Abilita la rigorosa verifica della catena attendibile del certificato SSL.
Attenzione: deselezionare questa opzione disabilita la verifica del certificato SSL del server LDAP. Questo espone la tua connessione ad attacchi di tipo Man in the Middle. @@ -4296,6 +4688,8 @@ it: you_have: Hai logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} ti ha menzionato in %{id} - %{subject}" notification: center: Al centro notifiche @@ -4352,8 +4746,8 @@ it: mentioned: You have been menzionato in un commento mentioned_by: "%{user} ti ha citato in un commento" more_to_see: - one: C'è un altro pacchetto di lavoro con le notifiche. - other: Ci sono altri %{count} pacchetti di lavoro con notifiche. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Apri nel browser reason: assigned: Assegnato @@ -4531,6 +4925,13 @@ it: create_button: Crea dialog_body: Questo token consentirà alle applicazioni di terzi di comunicare con la tua istanza. Per distinguere il nuovo token API, assegnagli un nome. dialog_title: Crea nuovo token API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nome del token failed_to_create_token: 'Creazione del token di accesso non riuscita: %{error}' failed_to_reset_token: 'Impossibile reimpostare il token di accesso: %{error}' @@ -4544,10 +4945,26 @@ it: password_confirmation_dialog: confirmation_required: È necessario inserire la password dell'account per confermare la modifica. title: Conferma la password per continuare + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Token di accesso description: I token provider vengono emessi da OpenProject, consentendo ad altre applicazioni di accedervi. I token client vengono emessi da altre applicazioni, consentendo a OpenProject di accedervi. + expired_on: Expired on %{date} headers: action: Azione expiration: Scade @@ -4749,7 +5166,6 @@ it: notice_password_confirmation_failed: La password inserita non è corretta. notice_principals_found_multiple: "Trovati %{number} risultati. \n Premi Tab per evidenziare il primo." notice_principals_found_single: "Trovato un solo risultato. \n Premi Tab per evidenziarlo." - notice_project_cannot_update_custom_fields: 'Non è possibile aggiornare i campi personalizzati del progetto disponibili. Il progetto non è valido: %{errors}' notice_project_not_deleted: Il progetto non è stato eliminato. notice_project_not_found: Progetto non trovato. notice_requires_enterprise_token: Il token Enterprise è assente o non consente l'accesso a questa pagina. @@ -4759,9 +5175,6 @@ it: notice_successful_create: Creato con successo. notice_successful_delete: Cancellato con successo. notice_successful_update: Aggiornato con successo. - notice_successful_update_custom_fields_added_to_project: | - Aggiornamento riuscito. I campi personalizzati dei tipi attivati ​​vengono attivati ​​automaticamente - sul modulo della macro-attività. Maggiori dettagli. notice_to_many_principals_to_display: |- Ci sono troppi risultati. Affina la ricerca digitando il nome del nuovo membro (o gruppo). @@ -4863,8 +5276,8 @@ it: ' confirm_revoke_my_application: - one: Vuoi davvero rimuovere questa applicazione? Questo revocherà un token attivo per essa. - other: Vuoi davvero rimuovere questa applicazione? Questo revocherà %{count} token attivi per essa. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Nessuna applicazione OAuth è stata registrata. flows: authorization_code: Flusso del codice di autorizzazione @@ -4954,8 +5367,6 @@ it: not_found: non trovato. respond_to?: non implementa il metodo richiesto. rules: - copy_workflow_from: - workflow_missing: non ha un proprio flusso di lavoro. custom_field: format_not_supported: il formato '%{field_format}' non è supportato. item: @@ -4975,7 +5386,6 @@ it: or: oppure rules: blueprint: Schema del modello - copy_workflow_from: Tipo per la copia del flusso di lavoro depth: Profondità enabled: Attivata item: Elemento @@ -5047,8 +5457,8 @@ it: label: Sommario page_nr_footer: Pagina %{page} di %{total} template_artefact: - caption: Dettagli della macro-attività visualizzati come artefatto PMflex. - label: Artefatto PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Tutti gli attributi presenti nel modulo attuale utilizzando il modello predefinito. label: Attributi e descrizione @@ -5073,7 +5483,7 @@ it: permission_change_work_package_status_explanation: Consente di cambiare lo stato senza l'autorizzazione Modifica macro-attività permission_comment_news: Commentare le novità permission_commit_access: Accesso in lettura/scrittura all'archivio (commit) - permission_copy_projects: Copiare progetti + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'Nei progetti modello, questa autorizzazione ha una funzione secondaria: consente la creazione di nuovi progetti derivati dal modello.' permission_copy_work_packages: Duplica macro-attività permission_create_backup: Crea backup @@ -5106,6 +5516,7 @@ it: permission_export_projects: Esporta progetti permission_export_work_packages: Esportare macro-attività permission_header_for_project_module_work_package_tracking: Macro-attività e diagrammi di Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invita i membri via email permission_invite_members_by_email_explanation: 'Consente agli utenti di invitare nuovi membri tramite email. Gli utenti invitati riceveranno un''email con un link per impostare la password e attivare il proprio account. Dipende dall''autorizzazione a gestire i membri @@ -5116,6 +5527,9 @@ it: permission_manage_dashboards: Gestisci cruscotto permission_manage_forums: Gestire forum permission_manage_members: Gestire i membri dei team + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Gestire le notizie permission_manage_own_reminders: Crea promemoria permission_manage_own_working_times: Gestire i propri orari di lavoro @@ -5144,7 +5558,6 @@ it: permission_save_bcf_queries: Salva query BCF permission_save_queries: Salva viste permission_search_project: Cerca progetto - permission_select_custom_fields: Seleziona campi personalizzati permission_select_project_custom_fields: Selezionare gli attributi del progetto permission_select_project_modules: Seleziona moduli del progetto permission_select_project_phases: Seleziona fase di progetto @@ -5178,6 +5591,16 @@ it: permission_work_package_assigned: Diventa assegnatario/responsabile permission_work_package_assigned_explanation: È possibile assegnare macro-attività ad utenti e gruppi che hanno questo ruolo nel rispettivo progetto placeholder_users: + criteria: + activate: Attiva criteri di filtro + activate_caption: 'Consente di aggiungere a questo utente segnaposto un insieme di filtri usati per definire i possibili utenti che soddisfano i criteri desiderati. + + ' + enable: Abbina utenti in base ai criteri + enable_caption: Descrivi il tipo di utente rappresentato da questo segnaposto, in modo che possano essere suggeriti utenti corrispondenti. + matching_users: Utenti che soddisfano i criteri di filtro + no_matching_users: Nessun utente soddisfa questi criteri. + show_all_matching_users: Mostra tutti i %{count} utenti corrispondenti delete_tooltip: Elimina utente segnaposto deletion_info: data_consequences: 'Tutte le occorrenze dell''utente segnaposto (ad esempio, come assegnatario, responsabile o altri valori) saranno riassegnate a un account chiamato "Utente eliminato". Poiché i dati di ogni account eliminato vengono riassegnati a questo account, non sarà possibile distinguere i dati creati dall''utente dai dati di un altro account eliminato. @@ -5199,7 +5622,7 @@ it: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolio" zero: 0 portfolio filters: @@ -5210,8 +5633,8 @@ it: label: Filtro per nome del portfolio placeholder: Cerca nei portfolio sub_items_html: - one: "1 sottoelemento" - other: "%{count} sottoelementi" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Portfolio attivi archived: Portfolio archiviati @@ -5225,7 +5648,7 @@ it: Può essere utilizzato per evidenziare le macro-attività nella tabella. program: count: - one: 1 programma + one: "%{count} program" other: "%{count} programmi" zero: 0 programmi filters: @@ -5237,7 +5660,7 @@ it: confirmation_message: L'archiviazione di questo progetto renderà il progetto e tutti i suoi discendenti non disponibili per tutti gli utenti di questa istanza. I progetti archiviati possono essere ripristinati. title: Archivia progetto count: - one: 1 progetto + one: "%{count} project" other: "%{count} progetti" zero: 0 progetti destroy: @@ -5342,11 +5765,11 @@ it: no_status_when_submitted: Impossibile abilitare la richiesta di avvio del progetto perché il tipo di macro-attività %{type} richiede almeno uno stato associato. Abilitare almeno un flusso di lavoro di stato per questo tipo di macro-attività. no_work_package_type: Impossibile abilitare la richiesta di avvio del progetto perché richiede almeno un tipo di macro-attività attivo e questo progetto non ne ha nessuno. Aggiungere almeno un tipo di macro-attività a questo progetto. export: - description_attachment_export: L'artefatto generato verrà salvato come allegato PDF alla macro-attività dell'artefatto. - description_file_link_export: La macro-attività dell'artefatto includerà un collegamento a un file PDF archiviato in uno spazio di archiviazione esterno. Richiede uno spazio di archiviazione file funzionante con cartelle di progetto gestite automaticamente per questo progetto. Al momento sono supportati solo archivi file Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Seleziona quale degli archivi di file esterni configurati dovrebbe essere utilizzato. external_file_storage: Archivi di file esterni - label_artifact_export: Esportazione di artefatti + label_artifact_export: Artifact export label_attachment_export: Salva come file macro-attività allegato label_file_link_export: Carica il file su archivio esterno e aggiungi il link del file alla macro-attività pdf_file_storage: Archivio file PDF @@ -5356,6 +5779,12 @@ it: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Al momento non sono disponibili dei campi personalizzati. forums: no_results_content_text: Crea un nuovo forum @@ -5452,15 +5881,15 @@ it: new_heading: Campi che diventano disponibili nothing_affected: Nessun campo o stato è interessato. status_count: - one: 1 macro-attività - other: "%{count} macro-attività" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tabella)" value_count: - one: 1 macro-attività ha un valore - other: "%{count} macro-attività hanno un valore" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 macro-attività utilizzerà la nuova configurazione - other: "%{count} macro-attività utilizzeranno la nuova configurazione" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Il progetto ora utilizza %{type}. target_label: Variante title: "%{type}: cambia variante" @@ -5471,7 +5900,7 @@ it: variants_not_allowed: Questo tipo non consente di creare varianti all'interno dei progetti. versions: no_results_content_text: Crea una nuova versione - no_results_title_text: Al momento non esistono versioni per il progetto. + no_results_title_text: Non sono state trovate versioni corrispondenti ai criteri di filtro per questo progetto. show_work_packages: Mostra macro-attività work_packages_graph: Grafico delle macro-attività work_package_priorities: @@ -5479,15 +5908,27 @@ it: status: button_edit: Modifica lo stato wizard: - create_artifact_storage_error: Impossibile salvare l'artefatto nell'archivio file esterno - create_artifact_work_package_error: Creazione della macro-attività dell'artefatto non riuscita + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Questo progetto non ha attributi di progetto abilitati per la procedura guidata. Abilitane almeno uno nelle impostazioni del progetto. no_help_text: Questo attributo non ha un testo guida definito. progress_label: "%{current} di %{total}" sections: Sezioni sidebar_content_title: Contenuto - success: Attributi di progetto salvati e macro-attività dell'artefatto creata correttamente. + success: Project attributes saved and artifact work package created successfully. title: Richiesta di avvio del progetto + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Applica il filtro preconfigurato configure_view: @@ -5516,8 +5957,8 @@ it: action_title: Reagisci add_reaction: Aggiungi reazione and_others: - one: e 1 altro - other: e altri %{count} + one: and %{count} other + other: and %{count} others and_user: e %{user} react_with: Reagisci con %{reaction} reaction_by: "%{reaction} da" @@ -5636,6 +6077,31 @@ it: warnings: cannot_annotate: Questo file non può essere annotato. roles: + delete_dialog: + confirm: Vuoi eliminare questo ruolo? + entry_projects: + one: "(Progetto: %{projects})" + other: "(Progetti: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Vuoi eliminare il ruolo "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Tra questi utenti, %{count} perderanno l'accesso ai progetti in cui questo era il loro unico ruolo. Vuoi eliminare questo ruolo? + zero: Nessuno di questi utenti perderà l'accesso ai propri progetti. Vuoi eliminare questo ruolo? + show_memberships: Mostra tutte le appartenenze con questo ruolo + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Elimina ruolo edit: default_for_new_projects_warning: 'Questo ruolo è configurato come ruolo predefinito assegnato agli utenti non amministratori che creano un progetto. Non rimuovere le seguenti autorizzazioni, altrimenti i creatori di progetto non potranno completare la configurazione dei progetti appena creati:' index: @@ -5647,6 +6113,15 @@ it: permissions: section_check_all_label: Assegna tutti i permessi di %{module} section_uncheck_all_label: Annulla l'assegnazione di tutti i permessi di %{module} + permissions_dialog: + edit_permissions: Modifica le autorizzazioni del ruolo + no_permissions: Questo ruolo non concede alcuna autorizzazione. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Visualizza le autorizzazioni + preview_aria_label: Visualizza le autorizzazioni di %{role} + title: Autorizzazioni di "%{name}" report: matrix_caption: Matrice dei permessi per il modulo %{module} matrix_check_all_label: Assegna tutti i permessi di %{module} a tutti i ruoli @@ -5751,7 +6226,7 @@ it: setting_default_projects_wiki: Abilita la funzionalità wiki per impostazione predefinita nei nuovi progetti setting_diff_max_lines_displayed: Numero massimo di linee diff visualizzate setting_disable_password_login: Disabilita l'autenticazione con password - setting_display_subprojects_work_packages: Visualizza le macro-attività dei sotto-progetti nei progetti principali come impostazione predefinita + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Formato durata setting_duration_format_days_and_hours: Giorni e ore setting_duration_format_hours_only: Solo ore @@ -5866,6 +6341,7 @@ it: setting_start_of_week: La settimana inizia da setting_sys_api_description: Il web service di gestione archivio fornisce servizi per integrare ed autorizzare gli utenti nell'accesso agli archivi. setting_sys_api_enabled: Abilita la gestione di archivi via web service + setting_sys_api_key: API key setting_time_format: Ora setting_total_percent_complete_mode: Calcolo della % completamento totale della gerarchia setting_total_percent_complete_mode_simple_average: Media semplice @@ -5918,7 +6394,7 @@ it: description_html: 'Seleziona la modalità in cui deve funzionare l''integrazione dello scanner antivirus.
  • %{disabled_option}: i file caricati non vengono sottoposti a scansione antivirus.
  • %{socket_option}: hai configurato un ClamAV sullo stesso server di OpenProject e il daemon di scansione clamd è in esecuzione in background
  • %{host_option}: invierai il file a un host di scansione antivirus esterno.
' - remaining_quarantined_files_html: 'La scansione antivirus è stata disattivata. %{file_count} rimangono in quarantena. Per esaminare i file in quarantena, visita questo link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'La scansione antivirus è stata abilitata correttamente. Sono presenti %{file_count} che sono stati caricati in precedenza e devono ancora essere scansionati. Questo processo è stato pianificato in background. I file rimarranno accessibili durante la scansione. @@ -5929,6 +6405,7 @@ it: ' title: Scansione antivirus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'La disattivazione di questa opzione nasconderà l''elenco degli allegati nella scheda dei file delle macro-attività per i nuovi progetti. I file allegati nella descrizione di una macro-attività verranno comunque caricati nell''archivio interno degli allegati. ' @@ -6020,12 +6497,12 @@ it: confirmation_message: La procedura guidata per la richiesta di avvio non sarà più disponibile per i nuovi progetti basati su questo modello. I responsabili di progetto e i proprietari del progetto dovranno configurare manualmente e compilare le informazioni necessarie nella panoramica del progetto. heading: Disabilitare la richiesta di avvio del progetto? title: Disabilita la richiesta di avvio del progetto - header_description: 'OpenProject può generare una procedura guidata passo passo per aiutare i responsabili di progetto a compilare una richiesta di avvio del progetto. Puoi scegliere quali attributi di progetto includere e creare come risultato un artefatto PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nome dell'artefatto - artifact_name_caption: Scegli il nome per questo artefatto consigliato dal tuo framework di gestione dei progetti. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Creazione guidata del progetto project_initiation_request: Richiesta di avvio del progetto @@ -6045,8 +6522,8 @@ it: Hai inviato una richiesta di avvio del progetto per **%{project_name}**. La richiesta è ora in attesa di revisione. Fai clic sul link qui sotto per accedere alla macro-attività con la tua richiesta. confirmation_email_text: Testo email di conferma - description: Quando un utente invia una richiesta di avvio del progetto, viene creata una nuova macro-attività con l'artefatto della richiesta allegato come file PDF. Le impostazioni di seguito definiscono il tipo, lo stato e l'assegnatario di questa nuova macro-attività. - description_template: "**Questa macro-attività è stata creata automaticamente al completamento del flusso di lavoro %{wizard_name}.** È stato generato un artefatto PDF contenente tutte le informazioni inviate ed è stato allegato a questa macro-attività a fini di consultazione e audit. Se devi aggiornare o rieseguire i passaggi di avvio, puoi riaprire la procedura guidata in qualsiasi momento utilizzando il link qui sotto:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Invia un'email di conferma all'utente che ha inviato la richiesta di avvio del progetto status_when_submitted: Stato al momento dell'invio status_when_submitted_caption: Lo stato a cui passerà la macro-attività generata una volta inviata la richiesta. @@ -6054,7 +6531,7 @@ it: work_package_comment_caption: L'assegnatario selezionato sopra verrà automaticamente @menzionato nel commento. work_package_comment_default: È stata inviata una richiesta di avvio del progetto per **%{project_name}** ed è in attesa di revisione. work_package_type: Tipo di macro-attività - work_package_type_caption: Il tipo di macro-attività che dovrebbe essere utilizzato per memorizzare l'artefatto completato. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Apri la procedura guidata per la creazione del progetto project_initiation_request: Apri richiesta di avvio del progetto @@ -6074,6 +6551,7 @@ it: heading: Nuova fase no_gate: Nessun controllo non_defined: Nessuna fase è attualmente definita. + order_changed: Order successfully changed. phase_gates: Controlli di fase section_header: Fasi start_gate: Inizia controllo @@ -6130,7 +6608,7 @@ it: section_work_week: Settimana lavorativa sharing: count: - one: 1 utente + one: "%{count} user" other: "%{count} utenti" zero: 0 utenti denied: Non sei autorizzato a condividere %{entities}. @@ -6222,19 +6700,19 @@ it:
Nota : i valori ereditati (ad esempio, dai figli o dalle relazioni) verranno comunque applicati. index: + could_not_be_moved: Non è stato possibile spostare lo stato. headers: - excluded_from_totals: Escluso dai totali is_closed: Chiuso - is_default: Predefinito is_readonly: Sola lettura + no_filter_results_title_text: Nessuno stato corrisponde al filtro attuale. no_results_content_text: Aggiungi un nuovo stato no_results_title_text: Al momento non vi sono relazioni sullo stato delle macro-attività. + status_actions: Azioni dello stato support: array: sentence_connector: e skip_last_comma: falso text_access_token_hint: I token di accesso consentono di concedere ad applicazioni esterne l'accesso alle risorse in OpenProject. - text_accessibility_hint: La modalità di accesso facilitato è progettata per utenti non vedenti, con handicap fisici o con una vista scarsa. Per questi ultimi, gli elementi evidenziati vengono messi particolarmente in rilievo. Nota che il modulo di backlog non è disponibile in questa modalità. text_analyze: 'Analizzare ulteriormente: %{subject}' text_are_you_sure: Sei sicuro? text_are_you_sure_continue: Vuoi davvero continuare? @@ -6277,12 +6755,6 @@ it: ' text_custom_field_possible_values_info: Una riga per ogni valore - text_custom_logo_instructions: 'Il logo viene ridimensionato automaticamente per adattarsi all''intestazione. Per risultati ottimali, carica un logo bianco su un''immagine trasparente da 130×47 px. Puoi aggiungere all''interno dell''immagine tutto lo spazio che desideri. - - ' - text_custom_logo_mobile_instructions: 'Il logo viene ridimensionato automaticamente per adattarsi all''intestazione. Per risultati ottimali, carica un logo bianco su un''immagine trasparente da 130×33 px. Puoi aggiungere all''interno dell''immagine tutto lo spazio che desideri. - - ' text_custom_touch_icon_instructions: 'Questa è l''icona che appare nel tuo cellulare o tablet quando posizioni un segnalibro sulla pagina principale. Deve essere un''immagine quadrata di 180 per 180 pixel nel formato PNG. Assicurati che il fondo dell''immagine non sia trasparente, altrimenti non sarà esteticamente appetibile su iOS. ' @@ -6332,6 +6804,7 @@ it: text_length_between: Lunghezza compresa tra %{min} e %{max} caratteri. text_line_separated: Valori multipli consentiti (una linea per ogni valore). text_load_default_configuration: Carica la configurazione predefinita + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Non sono presenti token di accesso che possono essere configurati. text_no_configuration_data: Ruoli, tipi, stati delle macro-attività e flusso di lavoro non sono stati ancora configurati. Si consiglia di caricare la configurazione predefinita. Sarà possibile modificarla in seguito. text_no_notes: Non ci sono commenti disponibili per questa macro-attività. @@ -6433,6 +6906,68 @@ it: tree_view: label_empty_sub_tree: Nessun elemento types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Confronta varianti + blankslate: + description: Aggiungi una seconda variante a questo tipo per vedere cosa le distingue. + title: Non c'è ancora nulla da confrontare + description: Confronta le varianti di questo tipo con il tipo principale. + labels: + duplicate: Possibile duplicato + duplicate_of: Configurato esattamente come %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Tipo genitore + same_as_type: Uguale al tipo genitore + rows: + form: + fields: Campi + groups: Sezioni + required: Di cui obbligatori + same_as_base: Uguale al tipo genitore + scope: + availability: Disponibile per + enabled_in_new_projects: Attivo nei nuovi progetti + projects: Progetti + workflows: + roles: Ruoli coinvolti + same_as_base: Uguale al tipo genitore + statuses: Stati + transitions: Transizioni + sections: + configuration: Panoramica della configurazione + form: Modulo + scope: Ambito + workflows: Flussi di lavoro + title: Confronta varianti + title_for_type: Confronta le varianti di %{name} + values: + global: Tutti i progetti + inheriting_from: Eredita da + project_specific: Specifico del progetto ([%{project}](project_url)) + same_as_base: Identico al tipo genitore creation_wizard: add_variant: Aggiungi una variante a %{name} create_type: Crea tipo @@ -6442,14 +6977,40 @@ it: finish: Fine placeholder_description: Questo passo sarà disponibile presto. progress_label: Passo %{number} di %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Predefiniti details: Dettagli form_configuration: Modulo - pdf: Generazione PDF + pdf: Generate PDF project_attributes: Attributi del progetto projects: Progetti - workflows: Flussi di lavoro + start: Start + workflows: Workflow success: Creazione completata. edit: breadcrumb_variant: 'Variante: %{name}' @@ -6458,8 +7019,10 @@ it: caption: Definisci uno schema utilizzando attributi e testo referenziati per generare automaticamente gli oggetti delle macro-attività. Gli utenti non saranno in grado di modificare manualmente gli oggetti. label: Oggetti generati automaticamente description: - caption: Aggiungi il testo che verrà inserito nel campo della descrizione di tutte le nuove macro-attività di questo tipo. - label: Testo della descrizione predefinito + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Gli utenti possono inserire e modificare manualmente gli oggetti delle macro-attività senza restrizioni. label: Oggetti modificabili manualmente @@ -6488,21 +7051,21 @@ it: file_link: caption: Il PDF generato viene caricato nello spazio di archiviazione Nextcloud del progetto, gestito automaticamente, e collegato alla macro-attività. Le macro-attività appartenenti a progetti privi di tale spazio di archiviazione vengono ignorate. label: Carica il file su archivio esterno e aggiungi il link del file alla macro-attività - intro: Genera automaticamente un artefatto PDF per una macro-attività di questo tipo ogni volta che ne cambia lo stato. - invalid_mode: Modalità di esportazione degli artefatti non valida. - label: Esportazione automatica degli artefatti + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Non viene generato automaticamente nessun file PDF. label: 'Off' - section_title: Esportazione automatica degli artefatti + section_title: Automatic artifact export unavailable: non disponibile; non è configurato alcun spazio di archiviazione Nextcloud gestito automaticamente - intro: Seleziona quali modelli tra quelli disponibili desideri abilitare per questo tipo. Il modello determina il design e gli attributi visibili nel PDF esportato di una macro-attività che utilizza questo tipo. Il primo modello nell'elenco è selezionato per impostazione predefinita. pdf_export_templates: actions: label_disable_all: Disabilita tutto label_enable_all: Abilita tutto label_toggle_template: Attiva/disattiva %{template} label: Modelli di esportazione PDF + order_changed: Order successfully changed. tab: Genera PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6519,6 +7082,8 @@ it: confirm_delete_group: Vuoi davvero eliminare questa sezione? Questa azione non può essere annullata automaticamente. confirm_reset: Vuoi ripristinare il modulo? custom_field: Campo personalizzato + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Elimina sezione drag_to_activate: Trascina i campi da qui per attivarli drag_to_reorder: Trascina per riordinare @@ -6540,6 +7105,14 @@ it: query_group_label: Tabella di macro-attività correlate remove_attribute: Rimuovi dalla sezione rename_group: Rinomina sezione + required: + already_required_globally: Questo campo personalizzato è obbligatorio per tutti i tipi. + for_variant: Obbligatorio in questo tipo + globally: Obbligatorio + globally_hint: Modifica questa impostazione nel campo personalizzato + mark: Rendi obbligatorio in questo tipo + not_a_custom_field: Solo un campo personalizzato può essere reso obbligatorio per un singolo tipo. + unmark: Non rendere obbligatorio in questo tipo reset_description: 'Questa operazione ripristinerà gli attributi nel gruppo predefinito e disattiverà TUTTI i campi personalizzati. ' @@ -6549,12 +7122,14 @@ it: tab: Modulo untitled_group: Gruppo senza titolo overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Modalità di configurazione - dependents: Tipi e varianti dipendenti mode: always_manual: Sempre manuale - inheriting_from_html: Eredita da %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Configurato manualmente + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Impostazioni tab: Panoramica project_attributes: @@ -6568,12 +7143,12 @@ it: manual: description: Dopo aver [creato gli attributi del progetto](administration_url), saranno visibili qui e potranno essere aggiunti a un tipo. title: Nessun attributo del progetto disponibile - description: Seleziona gli attributi del progetto da abilitare per questo tipo di macro-attività. Gli attributi abilitati vengono visualizzati in una scheda separata nelle macro-attività di questo tipo. Gli utenti con le autorizzazioni necessarie possono visualizzarli e modificarli in tale scheda. disabled: Disabilitato exclusions: attribute_label: Eredita %{attribute} filter: Ricerca per sezione o per nome tab: Attributi del progetto + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Rimuovere il tipo %{type} da %{project}? @@ -6586,10 +7161,12 @@ it: empty_state: description: Aggiungi un progetto per utilizzare questa configurazione al suo interno. no_results: Nessun progetto corrispondente. + title: Not used in any project yet enable_all: Abilita per tutti i progetti select_projects: Seleziona progetti select_projects_description: Seleziona i progetti in cui desideri utilizzare questo tipo. tab: Progetti + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6604,43 +7181,17 @@ it: title: Copia configurazione invalid_source: La configurazione non può essere copiata dal tipo selezionato. Seleziona un tipo di origine diverso. success: La configurazione è stata copiata. - dependents: - blank: - description: Nessun altro tipo o variante eredita da questa configurazione - title: Nessun tipo dipendente - description: - one: La seguente configurazione è ereditata da 1 altro tipo o variante. Qualsiasi modifica apportata qui influirà anche sull'elemento dipendente. - other: La seguente configurazione è ereditata da altri %{count} tipi o varianti. Qualsiasi modifica apportata qui influirà anche sugli elementi dipendenti. - dialog: - description: Questi tipi e varianti ereditano la configurazione di questa sezione. Le modifiche apportate qui si applicano a tutti. - direct_heading: Dipendenti diretti - indirect_heading: Dipendenti tramite altri tipi - title: Tipi dipendenti - variant_of_html: Variante di %{type_name} - variant_of_via_html: Variante di %{type_name}, che eredita tramite %{source_name} - via_html: Eredita tramite %{source_name} - title: - one: 1 tipo dipendente - other: "%{count} tipi dipendenti" - view: Visualizza tipi dipendenti exclusions: not_inherited: Questa configurazione non è ereditata, quindi non c'è nulla da escludere. Modifica direttamente la configurazione. unknown_aspect: Sezione di configurazione "%{aspect}" sconosciuta. inherited: - change_source: Cambia tipo di origine configure_manually: Configura manualmente confirm_dialog: - change_source: - description_html: Cambiando il tipo di origine in %{source_name}, sovrascriverai le impostazioni attuali e potresti influire sulle informazioni esistenti nelle macro-attività di questo tipo. - heading: Cambiare il tipo di origine? - title: Cambia tipo di origine check_box: Ho compreso che questa operazione sovrascriverà le impostazioni attuali from_manual: description: Tutte le impostazioni attualmente selezionate verranno sovrascritte e ciò potrebbe influire sulle informazioni esistenti nelle macro-attività di questo tipo. heading: Cambiare modalità di configurazione? title: Cambia modalità di configurazione - description: Questa configurazione è ereditata dal tipo di origine [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Questa configurazione è ereditata dal tipo di origine %{source_name}%{source_suffix}. dialog: description: Eredita questa configurazione da un tipo di origine. Qualsiasi nuova configurazione aggiunta all'origine verrà applicata anche qui. source_label: Tipo di origine @@ -6648,6 +7199,9 @@ it: submit: Cambia title: Eredita da un altro tipo invalid_source: La configurazione non può essere ereditata dal tipo selezionato. Seleziona un tipo di origine diverso. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: La modalità di configurazione è stata cambiata. title: Configurazione ereditata manual: @@ -6656,13 +7210,14 @@ it: description: Tutte le impostazioni attualmente selezionate verranno sovrascritte e ciò potrebbe influire sulle informazioni esistenti nelle macro-attività di questo tipo. heading: Cambiare modalità di configurazione? title: Cambia modalità di configurazione - copy_from_type: Copia da un altro tipo description: Nessuna impostazione viene ereditata. Puoi comunque copiare una sola volta le impostazioni da un altro tipo. dialog: submit: Cambia title: Configura manualmente - inherit_from_type: Eredita da un altro tipo + inherit_from_type: Inherit from parent invalid_mode: La modalità selezionata non è disponibile per questa configurazione. Scegli una modalità diversa. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Inizia con una copia una tantum delle impostazioni attualmente ereditate da questa configurazione. @@ -6676,12 +7231,16 @@ it: success: La modalità di configurazione è stata cambiata. title: Configurazione manuale parent_suffix: " (genitore)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Puoi creare varianti per offrire versioni di questo tipo a progetti diversi.
Ogni variante può ereditare o copiare la configurazione oppure disporre di una propria configurazione personalizzata per il modello predefinito, i campi personalizzati, i flussi di lavoro e le preferenze. ' title: Non esistono varianti per questo tipo + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Creata in %{project} delete: description: Prima di eliminare questa variante, i progetti che la utilizzano passeranno alla variante scelta di seguito. @@ -6690,33 +7249,74 @@ it: filter_no_results: Nessuna variante corrisponde a questo filtro global_section: description: Queste varianti sono disponibili in tutti i progetti. - title: Varianti + title: Varianti globali project_specific_section: description: Queste varianti sono disponibili solo nei progetti in cui sono state create. title: Varianti specifiche del progetto workflow: - tab: Flussi di lavoro + tab: Workflow index: add_variant: Aggiungi una variante a %{name} add_variant_action: Aggiungi variante + convert_to_global: Converti in variante globale + convert_to_global_dialog: + confirm: Converti + text: 'Questa operazione trasformerà la variante specifica del progetto in una variante globale disponibile per tutti i progetti. L''amministratore del progetto non potrà più modificarla. + + ' + workflow_text: 'Anche il relativo flusso di lavoro "%{name}" appartiene a questo progetto e diventerà globale. + + ' + convert_to_global_notice: "%{name} è ora una variante globale." + convert_to_global_rename: + confirm: Converti + text: Esiste già una variante globale con questo nome. Scegli un nome diverso. + title: Scegli un altro nome per questa variante + created_by_migration: Migrated + delete: + description: Il tipo verrà eliminato definitivamente. Questa azione non può essere annullata. + description_with_variants: Il tipo e tutte le relative varianti verranno eliminati definitivamente. Questa azione non può essere annullata. + heading: Eliminare il tipo '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Elimina tipo description: 'Ogni area di configurazione dei tipi e delle varianti può essere configurata in modo indipendente, vincolata da un altro tipo oppure completamente collegata a un''origine. ' duplicate_name: Copia di %{name} duplicate_notice: "%{name} è stato duplicato." enabled_in_new_projects: Attivo nei nuovi progetti + filter: Filter by name + filter_no_results: No types match this filter make_default: Attiva nei nuovi progetti make_default_notice: "%{name} è ora attivo in nuovi progetti." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Crea un nuovo tipo no_results_title_text: Al momento non esistono tipi. project_variants_count: - one: 1 variante specifica del progetto - other: "%{count} varianti specifiche del progetto" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: Non attivare nei nuovi progetti remove_default_notice: "%{name} non è più attivo in nuovi progetti." type_label: Tipo variant_label: Variante + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignora questo avviso. message: Puoi incorrere in errori ed esperienza non ottimizzata su questa pagina. @@ -6735,8 +7335,8 @@ it: authorization_rejected: Non ti è consentito accedere. blocked: temporaneamente bloccato blocked_num_failed_logins: - one: bloccato temporaneamente (un tentativo di accesso fallito) - other: bloccato temporaneamente (%{count} tentativi di accesso falliti) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Stai per modificare lo stato di '%{name}'. Continuare? deleted: Utente cancellato department_ldap_managed_caption: Questo dipartimento è gestito dalla sincronizzazione LDAP e non può essere modificato qui. @@ -6836,7 +7436,7 @@ it: deletion_warning: Vuoi davvero revocare questa sessione? Ti disconnetterai da questo dispositivo. device: Dispositivo / SO expires: Scadenza - instructions: Hai effettuato l'accesso al tuo account tramite i seguenti dispositivi. Revoca le sessioni che non riconosci o provenienti da dispositivi che non controlli. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Ultima connessione may_not_delete_current: Non è possibile eliminare la sessione attuale. session_name: "%{browser_name} %{browser_version} su %{os_name}" @@ -6896,13 +7496,19 @@ it: start_date: Data di inizio work_days: Giorni feriali work_days_count: - one: 1 giorno lavorativo - other: "%{count} giorni lavorativi" + one: "%{count} working day" + other: "%{count} working days" work_hours: Orario di lavoro version_status_closed: chiuso version_status_locked: bloccato version_status_open: aperte versions: + filter_status_labels: + closed: Chiusa + locked: Bloccata + open: Aperta + index: + filter_label: Cerca versioni overview: no_results_title_text: Al momento non vi è alcuna macro-attività assegnata a questa versione. work_packages_in_archived_projects: La versione è condivisa con progetti archiviati che hanno ancora macro-attività assegnate a questa versione. Queste vengono conteggiate, ma non appariranno nelle viste collegate. @@ -7072,13 +7678,15 @@ it: required_description: Contrassegna questa macro-attività come obbligatoria per quella correlata requires_description: Contrassegna la macro-attività correlata come obbligatoria per questa work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Le macro-attività non possono essere aggiornate. could_not_be_deleted: 'Le seguenti macro-attività non possono essere eliminate:' could_not_be_saved: 'Le seguenti macro-attività non possono essere salvate:' deletion_successful: - one: 1 macro-attività eliminata con successo. - other: "%{count} macro-attività eliminate con successo." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: figlio della macro-attività selezionata move_failed: Le macro-attività non possono essere spostate. none_could_be_saved: Nessuna delle %{total} macro-attività può essere aggiornata. @@ -7102,18 +7710,18 @@ it: description_with_visible_descendants: Vuoi davvero eliminare le macro-attività selezionate e tutti i discendenti visibili? heading: Eliminare definitivamente queste %{count} macro-attività? hidden_descendants_only_warning: - one: Esiste un discendente che non puoi visualizzare. Non verrà eliminato, ma la relazione gerarchica verrà rimossa. - other: Esistono %{count} discendenti che non puoi vedere. Essi non saranno cancellati, ma le relazioni gerarchiche saranno rimosse. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Tutti i discendenti visibili saranno rimossi. Tuttavia, c'è un discendente che non puoi vedere. Non verrà eliminato, ma la relazione gerarchica verrà rimossa. - other: Tutti i discendenti visibili saranno rimossi. Tuttavia, ci sono %{count} discendenti che non puoi vedere. Essi non saranno cancellati, ma le relazioni gerarchiche saranno rimosse. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Elimina %{count} macro-attività undeletable_descendants_warning: - one: Non puoi eliminare un discendente perché non disponi delle autorizzazioni necessarie. Verrà mantenuto, ma la relazione gerarchica verrà rimossa. - other: Non puoi eliminare %{count} discendenti perché non disponi delle autorizzazioni necessarie. Verranno mantenuto, ma le relazioni gerarchiche verranno rimosse. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Non puoi eliminare un discendente perché non disponi delle autorizzazioni necessarie in %{projects}. Verrà mantenuto, ma la relazione gerarchica verrà rimossa. - other: Non puoi eliminare %{count} discendenti perché non disponi delle autorizzazioni necessarie in %{projects}. Verranno mantenuto, ma le relazioni gerarchiche verranno rimosse. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7170,18 +7778,154 @@ it: description: Vuoi davvero eliminare "%{name}"? heading: Eliminare definitivamente questa macro-attività? hidden_descendants_only_warning: - one: Questa macro-attività ha un discendente che non puoi visualizzare. Non verrà eliminato, ma la relazione gerarchica verrà rimossa. - other: Questa macro-attività ha %{count} discendenti che non puoi visualizzare. Non verranno eliminati, ma la relazione gerarchica verrà rimossa. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Tutti i discendenti visibili verranno eliminati. Tuttavia, questa macro-attività ha un discendente che non puoi visualizzare. Non verrà eliminato, ma la relazione gerarchica verrà rimossa. - other: Tutti i discendenti visibili verranno eliminati. Tuttavia, questa macro-attività ha %{count} discendenti che non puoi visualizzare. Non verranno eliminati, ma la relazione gerarchica verrà rimossa. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Cancella macro-attività undeletable_descendants_warning: - one: Non puoi eliminare un discendente perché non disponi delle autorizzazioni necessarie. Verrà mantenuto, ma la relazione gerarchica verrà rimossa. - other: Non puoi eliminare %{count} discendenti perché non disponi delle autorizzazioni necessarie. Verranno mantenuto, ma le relazioni gerarchiche verranno rimosse. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Non puoi eliminare un discendente perché non disponi delle autorizzazioni necessarie in %{projects}. Verrà mantenuto, ma la relazione gerarchica verrà rimossa. - other: Non puoi eliminare %{count} discendenti perché non disponi delle autorizzazioni necessarie in %{projects}. Verranno mantenuto, ma le relazioni gerarchiche verranno rimosse. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'I tipi delle macro-attività o dei relativi discendenti non sono abilitati nel progetto di destinazione. Se vuoi mantenerli invariati, abilita i tipi mancanti nel progetto di destinazione. In caso contrario, seleziona dall''elenco un tipo disponibile nel progetto di destinazione. @@ -7213,37 +7957,53 @@ it: version: no_results_title_text: Al momento non vi sono versioni disponibili. x_descendants: - one: Una macro-attività discendente - other: "%{count} macro-attività discendenti" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copia il flusso di lavoro corrente in uno o più ruoli all'interno dello stesso tipo di macro-attività. Se il ruolo selezionato ha già un flusso di lavoro, quello corrente verrà sovrascritto. - label: Copia in altri ruoli - from_type: - caption: Copia il flusso di lavoro corrente in un altro tipo di macro-attività. Se il tipo selezionato ha già un flusso di lavoro, quello corrente verrà sovrascritto. Questa operazione interessa tutti i ruoli. - label: Copia in un altro tipo - source_role_id: - label: Ruolo origine target_role_ids: label: Ruoli di destinazione - target_variant_ids: - label: Tipi di destinazione from_roles: create: notice: one: Il flusso di lavoro è stato copiato con successo nel ruolo '%{role_name}'. other: Il flusso di lavoro è stato copiato con successo in %{count} ruoli. - from_variants: - create: - notice: - one: Flusso di lavoro copiato correttamente in '%{type_name}'. - other: Flusso di lavoro copiato correttamente in %{count} tipi. new: - title: Copia il flusso di lavoro di "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Matrice del flusso di lavoro matrix_caption_assignee: Matrice del flusso di lavoro per l'assegnatario matrix_caption_author: Matrice del flusso di lavoro per l'autore @@ -7252,12 +8012,88 @@ it: matrix_check_uncheck_all_in_row_label_html: Attiva o disattiva le transizioni da %{old_status} a tutti i nuovi stati matrix_checkbox_label: Consenti la transizione da %{old_status} a %{new_status} matrix_uncheck_all_label: Non consentire tutte le transizioni + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtra per nome tipo… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configura le transizioni di stato per ciascun tipo di macro-attività. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Cambia giorni lavorativi dialog: diff --git a/config/locales/crowdin/ja.seeders.yml b/config/locales/crowdin/ja.seeders.yml index 8cd0612e2a45..cf0d7b104ab4 100644 --- a/config/locales/crowdin/ja.seeders.yml +++ b/config/locales/crowdin/ja.seeders.yml @@ -250,70 +250,26 @@ ja: このモジュールでは、プロジェクトのニュースをチームメンバーに伝えることができます。 versions: item_0: - name: バグバックログ - item_1: - name: 製品バックログ - item_2: - name: スプリント1 wiki: - title: スプリント1 + title: Release 1.0 content: | - ### スプリント計画会議 - - _スプリント計画会議へのトピックをここに文書化してください_ - - * タイムボックス(8時間) - * インプット:プロダクトバックログ - * アウトプット:スプリントバックログ - - * 4時間の追加タイムボックス2つに分割: - - * プロダクトオーナーは、[プロダクトバックログ]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)と優先順位をチームに提示し、チームが同意しなければならないスプリントゴールを説明する。一緒に、プロダクトバックログから、チームが次のスプリントで担当するトピックに優先順位をつける。チームは議論された納品にコミットする。 - * チームは自律的に(プロダクトオーナーなしで)詳細な計画を立て、議論された要件からタスクを分解して[スプリントバックログ]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)を統合する。 - - - ### デイリースクラムミーティング - - _デイリースクラムミーティングのトピックをここに文書化してください_ + ### Release 1.0 - * 短い、毎日のチームのステータスミーティング。 - * 時間枠(最大15分)。 - * タスクボード](##sprint:scrum_project__version__sprint_1)から以下のトピックについて議論する。 - * 次のデイリースクラムまで何をする予定か? - * 次のデイリースクラムまで何をする予定か? - * スクラムマスターがモデレーターとなり、[スプリントの阻害要因](##sprint:scrum_project__version__sprint_1)をメモします。 - * プロダクトオーナーは情報を得るために参加することができる。 + _Please document here what this release contains._ - ### スプリントレビューミーティング - - _スプリントレビューミーティングのトピックをここに記録してください_ - - * タイムボックス(4時間)。 - * 準備時間は1人あたり最大1時間。 - * チームは、プロダクトオーナーやその他の関係者に、このスプリントで達成されたことを示す。 - * 重要:ダミーやパワーポイントは使わない!完成した製品の機能(インクリメント)だけを示すこと。 - * プロダクトオーナー、利害関係者、その他からのフィードバックが望まれ、今後の作業に含まれる。 - * 実証された機能性に基づいて、プロダクトオーナーはこのインクリメントを本番稼動させるか、あるいはさらに開発するかを決定する。この可能性は、早期の ROI を可能にする。 - - - ### スプリントレトロスペクティブ - - _スプリントレトロスペクティブミーティングへのトピックをここに文書化してください_ - - * 時間枠(3時間)。 - * スプリントレビューの後、スクラムマスターが司会を務める。 - * チームはスプリントについて議論する:何がうまくいったか、次のスプリントでより生産的になるために何を改善する必要があるか、あるいはもっと楽しむ必要があるか。 - item_3: - name: スプリント2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: カテゴリー1(プロジェクト設定で変更可能) queries: item_0: name: プロジェクト計画 item_1: - name: プロダクトバックログ + name: Version 1.1 item_2: - name: スプリント1 + name: Version 1.0 item_3: name: タスク boards: @@ -339,20 +295,21 @@ ja: options: name: はじめに text: | - ご参加いただきありがとうございます!OpenProjectを始めるにあたって、いくつかのことを試してみることをお勧めします。 + We are glad you joined! We suggest to try a few things to get started in OpenProject. + _Try the following steps:_ + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 1.*プロジェクトに新しいメンバーを招待する: → プロジェクトナビゲーションの [メンバー]({{opSetting:base_url}}/projects/your-scrum-project/members) に移動します。 - 2.*プロダクトバックログとスプリントバックログを見る*: → プロジェクトナビゲーションの[Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)に行く。 - 3.*タスクボードを見る → Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → スプリントの右矢印をクリック → [Task Board](##sprint:scrum_project__version__sprint_1)を選択する。 - 4.*新しいワークパッケージを作成する: → Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new) に行く。 - 5.*プロジェクト計画の作成と更新*: → プロジェクトナビゲーションの[プロジェクト計画](##query:scrum_project__query__project_plan)に行く。 - 6.*スプリントWikiを作成する: → Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)に移動し、スプリント内の右ドロップダウンメニューからスプリントwikiを開きます。wiki テンプレート]({{opSetting:base_url}}/projects/your-scrum-project/wiki/)を必要に応じて編集する。 - 7.*さらにモジュールを有効にする → Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules) にアクセスしてください。 - ここに[ユーザーガイド](https://www.openproject.org/docs/user-guide/)があります。 - ご質問やサポートが必要な場合はご連絡ください。ご連絡ください:[support[at]openproject.com](mailto:support@openproject.com)。 + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: ワークパッケージ diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index c9c0f5bf6be3..e25707869ca2 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -40,7 +40,9 @@ ja: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: アカウントを削除 delete_confirmation: アカウントを削除してもよろしいですか? deletion_info: @@ -65,7 +67,9 @@ ja: error_self_registration_limited_provider: 'シングルサインオンプロバイダー ''%{name}'' のユーザー登録は制限されています。 管理者にアカウントを有効にするか、このプロバイダーの自己登録制限を変更してください。 ' - login_with_auth_provider: または、既存のアカウントでログインしてください。 + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: アカウントをアクティブにするのにログインしてください。 @@ -118,6 +122,8 @@ ja: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIMクライアント + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ja: repository: リポジトリ comment: commented: コメントしました - custom_action: - actions: 操作 custom_field: admin_only: 管理者のみ allow_non_open_versions: 開いていないバージョンを許可する @@ -168,6 +172,7 @@ ja: uid: クライアントID emoji_reaction: reactable: リアクション日時 + reaction: Reaction enterprise_token: active_user_count_restriction: アクティブなユーザー encoded_token: エンタープライズ サポート トークン @@ -179,20 +184,44 @@ ja: company: 会社 favorite: favorited: 項目 + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: 列数 page: ページ row_count: 行数 widgets: ウィジェット group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: アイデンティティ URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ja: title: Title member: blocked: Blocked + principal_type: Member type roles: ロール notification: read_ian: アプリ内の読み取り @@ -235,6 +265,7 @@ ja: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ja: ongoing: 継続中 spent_on: 日付 type: タイプ + token/base: + expires_on: Expiration date token/ical: calendar: カレンダー ical_token_query_assignment: クエリの割り当て @@ -384,19 +417,17 @@ ja: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: 管理者 auth_source: 認証ソース + avatar_type: Avatar type consented_at: 同意しました。 current_password: 現在のパスワード department: Department @@ -410,7 +441,7 @@ ja: last_name: 苗字 ldap_auth_source: LDAP 接続 new_password: 新しいパスワード - password_confirmation: 確認のため再入力 + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ja: user_preference: auto_hide_popups: サクセスバナーを自動的に隠す auto_hide_popups_caption: 有効にすると、緑色のサクセスバナーは5秒後に自動的に消えます。 + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: アラートの更新 button_update_look_and_feel: ルック&フィールを更新 button_update_user_information: Update profile comments_sorting: ワークパッケージのアクティビティを並べ替えて表示する daily_reminders: 毎日の通知 + date_format: Date format disable_keyboard_shortcuts: キーボードショートカットを無効にする dismissed_enterprise_banners: 非表示の企業バナー force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,15 +469,25 @@ ja: header_look_and_feel: ルック&フィール impaired: アクセシビリティモード increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: |- いくつかのモードはアクセシビリティや読みやすさのために選択したテーマカラーを上書きします。 完全なカスタムテーマを使用するにはライトモードを選択してください。 + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: カラーモード + time_format: Time format time_zone: タイムゾーン warn_on_leaving_unsaved: 変更を保存せずにワークパッケージから移動するときに警告 workdays: 営業時間 + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -493,6 +538,7 @@ ja: title: 営業時間 true: 休業日を含む journal_internal: 社内雑誌 + labels: Labels notify: 通知する observed_in_versions: Observed in versions parent: 親項目 @@ -521,6 +567,10 @@ ja: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: は受諾しなければなりません。 @@ -592,6 +642,8 @@ ja: regex_invalid: 関連付けられた正規表現を検証できませんでした。 regex_list_invalid: "%{invalid_lines}行は正規表現として解析できませんでした。" regex_match_failed: 正規表現 %{expression}と一致しません。 + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: は最大長さより以下でなければなりません。 smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -614,6 +666,10 @@ ja: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: は%{count}文字を入力してください。 models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ ja: general_consent: 利用規約に同意してください。 favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: 終了値は開始値よりも大きくする必要があります。 outside: グリッドの外側です。 @@ -690,6 +756,13 @@ ja: not_unique: は既に使用されています。別の名前を選択してください。 jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ ja: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'まだワークパッケージによって使用されています: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ ja: blank: トークン名を入力してください format: "%{message}" in_use: このトークン名は既に使用されています。違うトークン名を入力してください + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,7 +963,7 @@ ja: numeric: '数値 (例: ''1'')' requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - other: は以前に使用されています。前回の%{count}つと異なるものを選択してください。 + other: has been used before. Please choose one that is different from your last %{count}. special: '特殊 (例: ''%'')' uppercase: 'アルファベット大文字 (例: '' A'')' password_confirmation: @@ -976,6 +1032,8 @@ ja: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: は別のプロジェクトに属することはできません。 cannot_be_milestone: はマイルストーンにすることはできません。 @@ -1003,6 +1061,8 @@ ja: status_id: status_invalid_in_type: 現在のステータスがこのタイプに存在しないため無効です。 status_transition_invalid: 現在のユーザロールでは旧ステータスから新ステータスへの有効な遷移がないため無効 + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: このワークパッケージには子ワークパッケージがあるため、マイルストーンにはできません。 is_not_a_valid_target_for_time_entries: 'ワークパッケージ #%{id} は、作業時間の再割り当ての対象としては有効ではありません。' @@ -1011,7 +1071,7 @@ ja: template: body: 次のフィールドをチェックしてください: header: - other: "%{count} つのエラーにより %{model} を保存できませんでした" + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1037,6 +1097,8 @@ ja: other: Work package attribute help texts auth_provider: other: 認証プロバイダー + automation: + other: Automations backup: other: Backups capability: @@ -1051,8 +1113,6 @@ ja: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1083,6 +1143,8 @@ ja: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1095,6 +1157,8 @@ ja: other: Health reports issue_priority: other: 優先度 + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1295,7 +1359,28 @@ ja: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1328,7 +1413,11 @@ ja: tab_interface: インターフェース tab_pdf_export_font: PDFエクスポート時に使用するフォント tab_pdf_export_styles: PDF export styles - theme_warning: テーマを変更した場合、カスタムスタイルが上書きされ、失われます。本当に続けますか? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: エンタープライズ版サポートのトークンをアップロードする。 book_now: 今すぐ予約 @@ -1361,7 +1450,7 @@ ja: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc メモリアロケータ @@ -1369,12 +1458,15 @@ ja: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1407,16 +1499,30 @@ ja: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: 名前 - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1661,23 +1767,52 @@ ja: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1708,6 +1843,18 @@ ja: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: 詳しくは統合とプラグインのページをご覧ください。 no_results_title_text: 現在、プラグインはインストールされていません。 @@ -1734,13 +1881,13 @@ ja: title: Reserved project identifiers scim_clients: authentication_methods: - oauth2_client: OAuth 2.0クライアント認証情報 + oauth2_client: OAuth 2.0 クライアント資格情報 oauth2_token: 静的アクセストークン - sso: IDプロバイダーからのJWT + sso: アイデンティティプロバイダからのJWT created_client_credentials_dialog_component: - heading: クライアント認証情報が生成されました - one_time_hint: クライアント・シークレットが表示されるのはこの時だけです。必ずコピーしてください。 - title: クライアント認証情報の作成 + heading: クライアントの資格情報が生成されました + one_time_hint: クライアントのシークレットが表示される唯一の時間です。今すぐコピーしてください。 + title: クライアントの資格情報が作成されました created_token_dialog_component: heading: トークンが生成されました label_token: トークン @@ -1753,21 +1900,21 @@ ja: edit: label_delete_scim_client: SCIM クライアントを削除 form: - auth_provider_description: これは、SCIM プロバイダによって追加されたユーザが OpenProject で認証するために使用するサービスです。 - authentication_method_description_html: これは SCIM クライアントが OpenProject で認証する方法です。OAuth トークンにscim_v2スコープが含まれていることを確認してください。 - description: これらの設定オプションの詳細については、[SCIMクライアントの設定に関する文書](docs_url)を参照してください。 + auth_provider_description: これは、SCIMプロバイダが追加したユーザーがOpenProjectでの認証に使用するサービスです。 + authentication_method_description_html: これは SCIM クライアントが OpenProject で認証する方法です。OAuth トークンに scim_v2 スコープが含まれていることを確認してください。 + description: 設定オプションの詳細については、[SCIM クライアントの設定に関するドキュメント](docs_url)を参照してください。 jwt_sub_description: 例えば、Keycloakの場合、これはSCIMクライアントに関連付けられたサービスアカウントのUUIDです。あなたのユースケースにあった Subject claim を見つける方法については [ドキュメント](docs_url) を参照してください。 - name_description: このクライアントが設定された理由を他の管理者が理解しやすい名前を選んでください。 + name_description: 他の管理者がこのクライアントが設定された理由を理解するのに役立つ名前を選択してください。 index: - description: ここで設定された SCIM クライアントは、OpenProject SCIM サーバ API と対話し、ユーザアカウントやグループのプロビジョニング、更新、デプロビジョニングを行うことができます。 - label_create_button: SCIMクライアントの追加 + description: ここで設定されたSCIMクライアントは、OpenProjectのSCIMサーバー APIと相互作用して、ユーザーアカウントとグループのプロビジョニング、更新、およびデプロビジョニングを行うことができます。 + label_create_button: SCIMクライアントを追加 new: title: 新しいSCIMクライアント revoke_static_token_dialog_component: confirm_button: 取り消す - description: このトークンを使っている SCIM クライアントは、OpenProject の SCIM サーバ API にアクセスできなくなります。 - heading: このトークンを本当に取り消しますか? - title: 静的トークンの失効 + description: このトークンを使用する SCIM クライアントは、OpenProject の SCIM サーバ API にアクセスできなくなります。 + heading: このトークンを取り消してもよろしいですか? + title: 静的トークンを取り消す table_component: blank_slate: description: ここに表示するクライアントを追加 @@ -1889,7 +2036,7 @@ ja: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1921,12 +2068,19 @@ ja: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1948,7 +2102,31 @@ ja: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: 現在表示されています is_inactive: 現在表示されていません show_until: までを表示 @@ -1956,7 +2134,7 @@ ja: deleted_by_admin: 隔離されたファイル '%{filename}' は管理者によって削除されました。 deleted_message: ファイル '%{filename}' でウイルスが検出されました。ファイルは削除されました。 not_processed_yet_message: ファイルがウイルスをスキャンしていないため、ダウンロードはブロックされています。後でもう一度やり直してください。 - overridden_by_admin: "%{user}によって、ファイル '%{filename}' の隔離が解除されました。このファイルはアクセスできるようになりました。" + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: コンテナ delete: 隔離されたファイルを削除 @@ -2010,10 +2188,6 @@ ja: not_found: reminder: お探しのリマインダーが見つからないか、削除されました。 work_package: 探しているワークパッケージが見つからないか、削除されています。 - render: - context_not_parsable: このコンテキストはリソースへのリンクではありません。 - context_object_not_found: コンテキストで指定されたリソースが見つかりません。 - unsupported_context: 指定されたリソースは、コンテキストとしてはサポートされません。 unable_to_create_attachment: 添付ファイルを作成できませんでした unable_to_create_attachment_permissions: ファイルシステムのアクセス許可がないため、添付ファイルを保存できませんでした user: @@ -2084,6 +2258,7 @@ ja: groups: グループ hexcode: 16進コード id: ID + inexistent: Inexistent is_default: デフォルト値 is_for_all: 全プロジェクト向け issue: ワーク パッケージ @@ -2134,6 +2309,7 @@ ja: updated_at: 更新日時 updated_on: 更新日時 uploader: アップロード + url: URL user: ユーザ username: ユーザー名 value: 値 @@ -2148,6 +2324,29 @@ ja: ' login_and_registration: ログインと登録 + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'エラーが発生したため、ジョブはキャンセルされました。エラー: %{message}' @@ -2276,6 +2475,7 @@ ja: button_set_reminder: リマインダーを設定 button_show: 表示 button_sort: 並べ替え + button_stop_timer: タイマー停止 button_submit: 適用 button_test: テスト button_unarchive: アーカイブを解除 @@ -2342,9 +2542,9 @@ ja: text: failed: プロジェクト「%{target_project_name}」にプロジェクト「%{source_project_name}」をコピーできませんでした。 succeeded: プロジェクト「%{target_project_name}」にプロジェクト「%{source_project_name}」をコピーしました。 - title: プロジェクト "%{source_project_name}" をコピー + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: この種類のオブジェクトは 1 個 + one: "%{count} object of this type" other: この種類のオブジェクトは %{count} 個 zero: この種類のオブジェクトはありません create_portfolio: @@ -2382,13 +2582,9 @@ ja: plural: カスタムアクション custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: "「すべてのプロジェクトで」オプションがチェックされているため、このカスタムフィールドはすべてのプロジェクトで有効になります。個々のプロジェクトでは無効にすることはできません。" - heading: 全プロジェクト向け hierarchy: subitems: - one: 1 個の子項目があります + one: "%{count} sub-item" other: "%{count} 個の子項目があります" zero: 子項目はありません items: @@ -2409,7 +2605,7 @@ ja: short: ショートネーム weight: Weight notice: - remember_items_and_projects: このカスタムフィールドの各タブに項目とプロジェクトを設定することを忘れないでください。 + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2474,16 +2670,17 @@ ja: is_enabled_globally: グローバルで有効 multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: 最初にワークパッケージまたはプロジェクトの選択が必要です reorder_alphabetical: 値をアルファベット順に並べ替える reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: 新しいカスタム フィールドを作成 - no_results_title_text: 現在、カスタム フィールドはありません。 text_add_new_custom_field: '新しいカスタムフィールドをプロジェクトに追加するには、それをこのプロジェクトに追加する前に、まず作成する必要があります。 ' @@ -2547,40 +2744,40 @@ ja: datetime: distance_in_words: about_x_hours: - other: 約 %{count} 時間 + other: about %{count} hours about_x_months: - other: 約 %{count} ヶ月間 + other: about %{count} months about_x_years: - other: 約 %{count} 年間 + other: about %{count} years almost_x_years: - other: ほぼ %{count} 年間 + other: almost %{count} years half_a_minute: 30秒前後 less_than_x_minutes: other: "%{count} 分未満" less_than_x_seconds: - other: "%{count} 秒未満" + other: less than %{count} seconds over_x_years: - other: "%{count} 年間以上" + other: over %{count} years x_days: - other: "%{count} 日間" + other: "%{count} days" x_hours: - other: "%{count} 時間" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count}時間" + other: "%{count} hrs" x_minutes: - other: "%{count} 分間" + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count}分" + other: "%{count} mins" x_months: - other: "%{count} ヶ月間" + other: "%{count} months" x_seconds: - other: "%{count} 秒" + other: "%{count} seconds" x_seconds_abbreviated: - other: "%{count}秒" + other: "%{count} s" x_weeks: - other: "%{count}週" + other: "%{count} weeks" x_years: - other: "%{count} 年" + other: "%{count} years" units: day: other: 日 @@ -2727,7 +2924,7 @@ ja: teaser: description_html: You have access to all %{trial_plan} features. title: - other: "%{count} 日後 %{trial_plan} トライアルトークンです" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: '試用版のエンタープライズトークンはすでに取得されています。添付されているトークンのメールを確認してください。 新しいものが必要な場合は、サポートチームまでご連絡ください。 @@ -3064,9 +3261,142 @@ ja: selected: 選択済み include_sub_items: サブアイテムを含める no_results_text: 結果がありません + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: 現在、フォーラムへの投稿はありません。 + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3091,6 +3421,8 @@ ja: groups: edit: synchronized_groups: 同期したグループ + form: + group_attributes: Group attributes index: description: ユーザーをグループ化することで、メンバーを同じプロジェクトに追加したり、同じグローバルロールを割り当てたりできます。 memberships: @@ -3116,6 +3448,10 @@ ja: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3127,7 +3463,7 @@ ja: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3136,7 +3472,7 @@ ja: warning: Warning help_texts: views: - favoured: このビューをお気に入りとしてマークし、左側の保存されたビューのサイドバーに追加します。 + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} は常にプロジェクトに添付されます。ここで選択できるのは、 %{plural} モジュールがアクティブなプロジェクトだけです。 %{singular} を作成した後、他のプロジェクトのワークパッケージを追加することができます。\n" public: このビューを公開して、他のユーザーがビューにアクセスできるようにします。 「公開ビューの管理」権限を持つユーザーが、公開クエリを変更または削除できます。 これは、そのビューでのワークパッケージの結果の可視性に影響を与えないため、ユーザーの権限に応じて、異なる結果が表示される場合があります。 homescreen: @@ -3161,6 +3497,31 @@ ja: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: 新機能と製品のアップデートについて読む。 learn_about: すべての新機能の詳細 @@ -3197,8 +3558,10 @@ ja: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3248,6 +3611,7 @@ ja: budget_deleted: Budget has been deleted dates_changed: 日付を変更 default_attribute_written: 読み取り専用属性が書き込まれました + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3400,10 +3764,10 @@ ja: label_copy_target: コピー先 label_copy_workflow_from: ワークフローをここからコピー label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: コアビルド label_core_version: メインのバージョン label_created_by: 作成者: %{user} + label_criteria: Criteria label_current_status: 現在のステータス label_current_version: 最新版 label_custom_comment: "%{name} comment" @@ -3427,8 +3791,6 @@ ja: label_custom_field_default_type: 空の種類 label_custom_field_new: 新規カスタムフィールド label_custom_field_plural: カスタムフィールド - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: PDF エクスポートの設定 label_custom_style: デザイン label_custom_style_description: OpenProjectがテーマでどのように見えるかを選択し、アプリで使用するデフォルトの色を選択し、エクスポートがどのように見えるかを選択します。 @@ -3437,11 +3799,12 @@ ja: label_database_version: PostgreSQL バージョン label_date: 日付 label_date_and_time: 日付と時刻 - label_date_format: 日付の形式 + label_date_and_time_formats: Date and time formats label_date_from: '日付指定: ' label_date_from_to: "%{start} ~%{end}" label_date_to: から label_dates: 日付 + label_day: 日 label_day_plural: 日 label_default: 既定の項目 label_defaults: デフォルト @@ -3452,6 +3815,7 @@ ja: label_deleted_custom_field: "(削除されたカスタムフィールド)" label_deleted_custom_item: "(削除されたアイテム)" label_deleted_custom_option: "(削除されたオプション)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3522,6 +3886,7 @@ ja: label_float: 小数 label_folder: フォルダ label_follows: 次の項目に後続 + label_form_configuration_plural: Forms label_formula: 数式 label_forum_new: 新しいフォーラム label_forum_plural: フォーラム @@ -3540,6 +3905,7 @@ ja: label_go_forward: "%{module} サブメニューを開く" label_greater_or_equal: ">=" label_group: グループ + label_group_attributes_plural: Group attributes label_group_by: グループ化 label_group_named: グループ名 %{name} label_group_new: 新規グループ @@ -3591,8 +3957,8 @@ ja: label_journal_diff: 説明の比較 label_jump_to_a_project: プロジェクトへ移動... label_keyword_plural: キーワード + label_label_plural: Labels label_language: 言語 - label_language_based: ユーザの言語設定に基づく label_languages: 言語 label_last_activity: 最新の活動 label_last_change_on: 最終更新 @@ -3614,6 +3980,7 @@ ja: label_list: リスト label_loading: 読み込み中... label_locale: 言語と地域 + label_locale_based: Use default for user locale label_lock_user: ユーザーをロック label_locked: ロック済み label_logged_as: ログイン中 @@ -3625,6 +3992,7 @@ ja: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: 管理された %{vendor} リポジトリ label_mapping_for: 'マッピング: %{attribute}' + label_markdown_version: Markdown version label_max_size: 最大サイズ label_me: 自分 label_member_all_admin: "(管理ステータスのすべての役割)" @@ -3643,7 +4011,6 @@ ja: label_menu_item_name: メニュー項目の名称 label_message: メッセージ label_message_last: 最新のメッセージ - label_message_new: 新規メッセージ label_message_plural: メッセージ label_message_posted: メッセージが追加されました。 label_minute_plural: 分 @@ -3655,6 +4022,7 @@ ja: label_module_plural: モジュール label_modules: モジュール label_modules_and_plugins: モジュールとプラグイン + label_month: 月 label_months_from: ヶ月分 label_more: 続き label_more_information: 詳細情報 @@ -3668,6 +4036,7 @@ ja: label_my_avatar: 自分のアバター label_my_queries: 個人のクエリ label_my_security: Security + label_my_time: My time label_name: 名称 label_never: なし label_new: 新しく作成 @@ -3682,7 +4051,10 @@ ja: label_news_singular: ニュース label_news_view_all: 全てのニュースを表示 label_next: 次へ + label_next_day: 翌日 + label_next_month: 来月 label_next_week: 次の週 + label_next_workweek: 次の営業週 label_next_year: Next year label_no_change_option: "(変更なし)" label_no_data: 表示できるデータがありません。 @@ -3690,6 +4062,7 @@ ja: label_no_parent_group: "(No parent group)" label_no_parent_page: 親ページはありません label_no_start_date: 開始日なし + label_no_time: 記録された作業時間はありません label_nobody: 無記名 label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3756,7 +4129,10 @@ ja: label_preview: プレビュー label_preview_not_available: プレビューは利用できません label_previous: 前へ + label_previous_day: 昨日 + label_previous_month: 先月 label_previous_week: 先週 + label_previous_workweek: 前の営業週 label_previous_year: Previous year label_principal_invite_via_email: " またはメールで新しいユーザを招待" label_principal_search: 既存のユーザーまたはグループを追加する @@ -3875,6 +4251,7 @@ ja: label_sort_lowest: 一番下へ移動 label_sorted_by: "%{value}で並べ替えている" label_spent_time: 作業時間の記録 + label_stack: Stack label_start_to_end: 最初~最後 label_start_to_start: 最初~最初 label_starts_with: starts with @@ -3894,6 +4271,7 @@ ja: label_subtask_plural: 子タスク label_summary: サマリー(概要) label_system: システム + label_system_or_language_default: Use system or language based default label_system_settings: システム設定 label_system_storage: ストレージ情報 label_table_of_contents: 目次 @@ -3908,6 +4286,7 @@ ja: label_time: 時間 label_time_entry_activity_plural: 経過した時間のアクティビティ label_time_entry_plural: 作業時間の記録 + label_timer_since: "%{time} で開始" label_title: タイトル label_today: 今日 label_today_as_date: 日付として今日を選択します。 @@ -3943,7 +4322,9 @@ ja: label_user_search: 'ユーザーを検索:' label_user_settings: ユーザー設定 label_users_settings: ユーザー設定 + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: バージョンを編集 label_version_new: 新しいバージョン label_version_plural: バージョン @@ -3956,6 +4337,7 @@ ja: label_videos: ビデオ label_view_all_revisions: 全てのリビジョンを表示 label_view_diff: 差分を表示 + label_view_mode_switcher: 表示を変更 label_view_revisions: リビジョンを表示 label_view_x: 'View: %{x}' label_watched_work_packages: ウォッチしているワークパッケージ @@ -3979,6 +4361,8 @@ ja: label_wiki_start: 開始ページ label_wiki_toc: 目次 label_wiki_toc_empty: 見出しが存在しないため、目次は空です。 + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: 予定時間 label_work_package: ワーク パッケージ label_work_package_attachments: ワークパッケージの添付ファイル @@ -4001,36 +4385,37 @@ ja: label_working_days: Working days label_working_days_and_hours: 稼働日・時間 label_working_hours: Work schedule + label_workweek: 作業週 label_x_closed_work_packages_abbr: - one: 1件完了 + one: "%{count} closed" other: "%{count}件完了" zero: 0 クローズ label_x_comments: - one: 1件のコメント + one: "%{count} comment" other: "%{count}件のコメント" zero: コメントがありません label_x_days: other: "%{count} days" label_x_files: - one: 1 ファイル + one: "%{count} file" other: "%{count} ファイル" zero: ファイルがありません label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1件未完了 + one: "%{count} open" other: "%{count}件未完了" zero: 0 オープン label_x_projects: - one: 1 プロジェクト + one: "%{count} project" other: "%{count} プロジェクト" zero: プロジェクトがありません label_x_work_packages: - one: 1つのワークパッケージ + one: "%{count} work package" other: "%{count} ワークパッケージ" zero: ワークパッケージがありません label_x_working_days: @@ -4090,7 +4475,7 @@ ja: start_tls: STARTTLS start_tls_description: 標準の LDAP ポートに接続した後に STARTTLS コマンドを送信します。暗号化された接続に推奨します。 tls_options: - tls_certificate_description: LDAP サーバ証明書がこのシステムの信頼ソースにない場合は、ここで手動で追加できます。PEM X509証明書文字列を入力します。 + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL 証明書の確認 verify_peer_description_html: '証明書のTrusted Chainの厳密なSSL検証を有効にします。
警告このオプションをオフにすると、LDAP サーバー証明書の SSL 検証が無効になります。これにより、接続が中間者攻撃 (Man in the Middle) にさらされることになります。 @@ -4147,6 +4532,8 @@ ja: you_have: あなたへの logo_alt_text: ロゴ mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 通知センターへ @@ -4203,7 +4590,7 @@ ja: mentioned: あなたはコメントでメンションされています mentioned_by: "%{user} さんがコメントであなたをメンションしました" more_to_see: - other: 通知付きの %{count} 件以上のワークパッケージがあります。 + other: There are %{count} more work packages with notifications. open_in_browser: ブラウザで開く reason: assigned: 割り当て済み @@ -4301,9 +4688,9 @@ ja: also_work_packages_shared_with_user_html: other: また、 %{shared_work_packages_link} はこのユーザーと共有されています。 can_remove_direct_but_not_shared_roles: このユーザーを直接プロジェクトメンバーとして削除することはできますが、彼らが参加しているグループはこのプロジェクトのメンバーでもあります。 グループを経由して引き続きメンバーになっていきます。 - cannot_delete_inherited_membership: このプロジェクトのメンバーであるグループに所属しているため、このメンバーを削除することはできません。 - cannot_delete_inherited_membership_note_admin_html: "%{administration_settings_link}で、プロジェクトのメンバーとしてグループを削除することも、特定のメンバーをグループから削除することもできます。" - cannot_delete_inherited_membership_note_non_admin: プロジェクトのメンバーとしてグループを削除するか、管理者に連絡してこの特定のメンバーをグループから削除することができます。 + cannot_delete_inherited_membership: このメンバーはこのプロジェクトのメンバーであるグループに属しているため、削除できません。 + cannot_delete_inherited_membership_note_admin_html: プロジェクトのメンバーとしてグループを削除するか、 %{administration_settings_link} のグループからこの特定のメンバーを削除することができます。 + cannot_delete_inherited_membership_note_non_admin: プロジェクトのメンバーとしてグループを削除するか、管理者に問い合わせてグループから特定のメンバーを削除することができます。 however_work_packages_shared_with_group_html: other: ただし、 %{shared_work_packages_link} もこのグループと共有されています。 however_work_packages_shared_with_user_html: @@ -4313,26 +4700,26 @@ ja: remove_work_packages_shared_with_user_too: メンバーから削除されたユーザーは、まだ共有ワークパッケージにアクセスできます。共有も削除しますか? title: メンバーを削除 will_not_affect_inherited_shares: "(これはグループと共有されているワークパッケージには影響しません)。" - will_remove_all_group_access_priveleges: このメンバを削除すると、プロジェクトに対するグループのすべてのアクセス権が削除されます。グループはサイトの一部としてまだ存在します。 + will_remove_all_group_access_priveleges: このメンバーを削除すると、グループのすべてのアクセス権がプロジェクトに削除されます。グループはサイトの一部として存在します。 will_remove_all_user_access_priveleges: このメンバーを削除すると、プロジェクトへのユーザーのすべてのアクセス権が削除されます。ユーザーはまだサイトの一部として存在します。 will_remove_the_groups_role: これにより、このプロジェクトからグループのロールが削除されます。 will_remove_the_users_role: これにより、このプロジェクトからユーザーのロールが削除されます。 delete_work_package_shares_dialog: - cannot_remove_inherited: グループで共有されたワークパッケージの共有は削除できません。 - cannot_remove_inherited_note_admin_html: "%{administration_settings_link}、グループへの共有を取り消すか、グループからこの特定のメンバーを削除することができます。" - cannot_remove_inherited_note_non_admin: グループへの共有を取り消すか、管理者に連絡して特定のメンバーをグループから削除することができます。 - cannot_remove_inherited_with_role: ロール %{shared_role_name} で共有されるワークパッケージは、グループを介して共有され、削除することはできません。 - revoke_all_or_with_role: すべての共有ワークパッケージ、または %{shared_role_name} 権限を持つワークパッケージのみへのアクセス権を剥奪しますか? + cannot_remove_inherited: グループ間で共有されるワークパッケージは削除できません。 + cannot_remove_inherited_note_admin_html: あなたは、グループへの共有を取り消すか、 %{administration_settings_link} のグループからこの特定のメンバーを削除することができます。 + cannot_remove_inherited_note_non_admin: 共有をグループに取り消すか、管理者に問い合わせてグループから特定のメンバーを削除することができます。 + cannot_remove_inherited_with_role: ワークパッケージとロール %{shared_role_name} が共有されているため、削除できません。 + revoke_all_or_with_role: 共有されたワークパッケージ、または %{shared_role_name} 権限を持つワークパッケージのみへのアクセスを取り消しますか? shared_with_permission_html: other: "%{shared_work_packages_link} のみが %{shared_role_name} 権限と共有されています。" shared_with_this_group_html: other: "%{all_shared_work_packages_link} はこのグループと共有されています。" shared_with_this_user_html: other: "%{all_shared_work_packages_link} はこのユーザーと共有されています。" - title: ワーク・パッケージ・シェアの破棄 - will_not_affect_inherited_shares: "(これは、そのグループと共有しているワークパッケージには影響しません)。" - will_revoke_access_to_all: このアクションは、すべてのアクセス権を剥奪する。 - will_revoke_directly_granted_access: このアクションは、グループと共有されているワークパッケージ以外の、すべてのワークパッケージへのアクセス権を剥奪する。 + title: ワークパッケージの共有の取り消し + will_not_affect_inherited_shares: "(これはグループと共有されているワークパッケージには影響しません)。" + will_revoke_access_to_all: このアクションは、すべてのユーザーへのアクセスを取り消します。 + will_revoke_directly_granted_access: このアクションは、すべてのユーザーへのアクセスを取り消しますが、グループと共有されているワークパッケージです。 filters: all_shares: すべてのシェア index: @@ -4375,23 +4762,45 @@ ja: create_button: 作成 dialog_body: このトークンによって、サードパーティのアプリケーションがあなたのサイトと通信できるようになります。新しいAPIトークンを区別するために、名前を付けてください。 dialog_title: 新しいAPIトークンを作成 + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: トークン名 failed_to_create_token: 'アクセストークンの作成に失敗しました: %{error}' failed_to_reset_token: 'アクセストークンをリセットできませんでした: %{error}' failed_to_revoke_token: 'アクセストークンの取り消しに失敗しました: %{error}' no_results_title_text: 現在、有効なアクセス トークンはありません。 notice_api_token_revoked: APIトークンが削除されました。新しいトークンを作成するには、APIセクションの作成ボタンを使用してください。 - notice_ical_token_revoked: プロジェクト "%{project_name}" のカレンダー "%{calendar_name}" の iCalendar トークン "%{token_name}" が失効しました。このトークンを持つiCalendar URLは無効になりました。 + notice_ical_token_revoked: プロジェクト "%{token_name}" のカレンダー "%{calendar_name}" の iCalendar トークン "%{project_name}" が取り消されました。 このトークンのiCalendar URLは無効です。 notice_reset_token: '新しい %{type} トークンが生成されました。アクセストークンは:' notice_rss_token_revoked: RSSトークンが削除されました。新しいトークンを作成するには、RSSセクションのリンクを使用してください。 token_value_warning: '注: これはこのトークンが表示される唯一の機会です。今すぐコピーして確認してください。' password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: アクセストークン description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: 操作 expiration: 有効期限 @@ -4593,7 +5002,6 @@ ja: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "%{number} の検索結果があります。 \n タブで最初の結果へフォーカスします。" notice_principals_found_single: "1 つの結果があります。 \n タブでフォーカスします。" - notice_project_cannot_update_custom_fields: 'プロジェクトの有効なカスタムフィールドを更新できません。プロジェクトは無効です: %{errors}' notice_project_not_deleted: プロジェクトを削除していません。 notice_project_not_found: プロジェクトが見つかりません。 notice_requires_enterprise_token: エンタープライズトークンが見つからないか、このページへのアクセスを許可していません。 @@ -4603,9 +5011,6 @@ ja: notice_successful_create: 正常に作成しました。 notice_successful_delete: 正常に削除しました。 notice_successful_update: 正常に更新しました。 - notice_successful_update_custom_fields_added_to_project: | - 更新に成功しました。有効化されたタイプのカスタムフィールドは、ワークパッケージフォームで - 自動的に有効化されます。 詳細は を参照してください。 notice_to_many_principals_to_display: 検索結果が多すぎです。新たにメンバー名(またはグループ名)を入力して検索を絞り込んでください。 notice_unsuccessful_create: 作成に失敗しました notice_unsuccessful_create_with_reason: 作成失敗: %{reason} @@ -4794,8 +5199,6 @@ ja: not_found: 見つかりません。 respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: 独自のワークフローはありません。 custom_field: format_not_supported: フォーマット '%{field_format}' はサポートされていません。 item: @@ -4815,7 +5218,6 @@ ja: or: または rules: blueprint: パターンの建設計画 - copy_workflow_from: ワークフローコピーのタイプ depth: 深さ enabled: 有効 item: 項目 @@ -4887,8 +5289,8 @@ ja: label: Table of contents page_nr_footer: ページ %{page} / %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: 属性と説明 @@ -4913,7 +5315,7 @@ ja: permission_change_work_package_status_explanation: ワークパッケージの編集権限なしで状態を変更できます permission_comment_news: ニュースへのコメント permission_commit_access: リポジトリに読み取り/書き込みアクセス (コミット) - permission_copy_projects: プロジェクトのコピー + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: ワークパッケージの重複 permission_create_backup: バックアップの作成 @@ -4946,6 +5348,7 @@ ja: permission_export_projects: Export projects permission_export_work_packages: ワークパッケージのエクスポート permission_header_for_project_module_work_package_tracking: ワークパッケージとガントチャート + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -4956,6 +5359,9 @@ ja: permission_manage_dashboards: ダッシュボードの管理 permission_manage_forums: フォーラムの管理 permission_manage_members: メンバーの管理 + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: ニュースの管理 permission_manage_own_reminders: 自分のリマインダーを作成する permission_manage_own_working_times: Manage own working times @@ -4984,7 +5390,6 @@ ja: permission_save_bcf_queries: BCF クエリを保存 permission_save_queries: ビューを保存 permission_search_project: プロジェクトを検索 - permission_select_custom_fields: カスタムフィールドの選択 permission_select_project_custom_fields: プロジェクト属性の選択 permission_select_project_modules: プロジェクトでモジュールの選択 permission_select_project_phases: プロジェクトフェーズの選択 @@ -5018,7 +5423,17 @@ ja: permission_work_package_assigned: 担当者/責任者になる permission_work_package_assigned_explanation: それぞれのプロジェクトで、ワークパッケージはこの役割をもつユーザーおよびグループに割り当てることができます。 placeholder_users: - delete_tooltip: プレースホルダー・ユーザーの削除 + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users + delete_tooltip: プレースホルダー ユーザーを削除 deletion_info: data_consequences: 'プレースホルダー ユーザのすべての発生(担当者、担当者、その他のユーザ値など)は、「削除されたユーザー」というアカウントに再割り当てられます。 削除されたすべてのアカウントのデータがこのアカウントに再割り当てられるため、ユーザーが作成したデータと別の削除されたアカウントのデータを区別することはできません。 @@ -5039,7 +5454,7 @@ ja: name: OmniAuth SAML / シングルサインオン portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5064,7 +5479,7 @@ ja: 表でワークパッケージの強調色として利用されます。 program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5076,7 +5491,7 @@ ja: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 プロジェクト + one: "%{count} project" other: "%{count} プロジェクト" zero: 0件のプロジェクト destroy: @@ -5181,11 +5596,11 @@ ja: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5195,6 +5610,12 @@ ja: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: 現在、有効なカスタム フィールドはありません。 forums: no_results_content_text: 新しいフォーラムを作成する @@ -5307,7 +5728,7 @@ ja: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: 新しいバージョンを作成 - no_results_title_text: 現在、プロジェクトのバージョンはありません。 + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: ワークパッケージのグラフ work_package_priorities: @@ -5315,15 +5736,27 @@ ja: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: 構成済みのフィルタを適用する configure_view: @@ -5352,10 +5785,10 @@ ja: action_title: リアクト add_reaction: リアクションを追加 and_others: - other: と %{count} その他 - and_user: および %{user} - react_with: "%{reaction} と リアクト" - reaction_by: "%{reaction} によって" + other: and %{count} others + and_user: と %{user} + react_with: "%{reaction} で反応する" + reaction_by: "%{reaction} による" reportings: index: no_results_content_text: ステータス報告を追加 @@ -5471,6 +5904,26 @@ ja: warnings: cannot_annotate: このファイルに注釈を付けることはできません。 roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5482,6 +5935,14 @@ ja: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5586,7 +6047,7 @@ ja: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: 差分の表示行数の上限 setting_disable_password_login: パスワード認証を無効にする - setting_display_subprojects_work_packages: デフォルトで子プロジェクトのワークパッケージを親プロジェクトに表示する + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: 期間の形式 setting_duration_format_days_and_hours: 日数と時間 setting_duration_format_hours_only: 時間のみ @@ -5701,6 +6162,7 @@ ja: setting_start_of_week: 週の開始 setting_sys_api_description: リポジトリ管理Webサービスは、リポジトリへのアクセスの統合およびユーザー認証を提供します。 setting_sys_api_enabled: リポジトリ管理Webサービスを有効にする + setting_sys_api_key: API key setting_time_format: 時間 setting_total_percent_complete_mode: 完了率階層合計の計算 setting_total_percent_complete_mode_simple_average: 単純平均 @@ -5751,7 +6213,7 @@ ja: description_html: 'アンチウイルススキャナの統合が動作するモードを選択します。
  • %{disabled_option}:アップロードされたファイルはウイルススキャンされません。
  • %{socket_option}:OpenProject と同じサーバに ClamAV をセットアップし、スキャンデーモン clamd がバックグラウンドで動作している。
  • %{host_option}:外部のウイルススキャンホストにファイルをストリーミングしている。
' - remaining_quarantined_files_html: 'ウイルススキャンは中止されました。 %{file_count} は隔離されたままです。隔離されたファイルを確認するには、このリンクを参照してください: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'ウイルススキャンは正常に有効化されました。以前アップロードされ、まだスキャンが必要な %{file_count} があります。このプロセスはバックグラウンドでスケジュールされています。スキャン中もファイルへのアクセスは可能です。 @@ -5762,6 +6224,7 @@ ja: ' title: ウイルススキャン attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'このオプションを無効にすると、新規プロジェクトのワークパッケージのファイルタブにある添付ファイルリストが非表示になります。ワークパッケージの説明に添付されたファイルは、内部添付ファイルストレージにアップロードされます。 ' @@ -5853,12 +6316,12 @@ ja: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -5878,8 +6341,8 @@ ja: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -5887,7 +6350,7 @@ ja: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -5907,6 +6370,7 @@ ja: heading: 新しいフェーズ no_gate: ゲートなし non_defined: 現在定義されているフェーズはありません。 + order_changed: Order successfully changed. phase_gates: フェーズゲート section_header: フェーズ start_gate: ゲートを開始 @@ -5963,7 +6427,7 @@ ja: section_work_week: 作業週 sharing: count: - one: 1人のユーザー + one: "%{count} user" other: "%{count} ユーザー" zero: 0 ユーザー denied: "%{entities} を共有する権限がありません。" @@ -6042,33 +6506,34 @@ ja: status_color_text: | このステータスの色を割り当てたり変更する場合にクリックします。 ステータスボタンに表示され、テーブル内のワークパッケージを強調表示するために使用できます。 - status_default_text: 新しいワークパッケージは、デフォルトでこのタイプに設定される。読み取り専用にはできない。 + status_default_text: 新しいワークパッケージはデフォルトでこのタイプに設定されています。読み取り専用にすることはできません。 status_excluded_from_totals_text: |- - このステータスを持つワークパッケージを、階層内の「作業」、「 - 残作業」、「完了率」の合計から除外するには、このオプションをオンにします。 + このオプションをオンにすると、このステータスのワークパッケージを合計作業量、 + 残作業量、および階層構造で完了させることができます。 status_percent_complete_text_html: |- In [status-based progress calculation mode](setting_url), the % Complete of a work package is automatically set to this value when this status is selected. Ignored in work-based mode. status_readonly_html: | - このステータスを持つワークパッケージを読み取り専用としてマークするには、このオプションをチェックする。 - ステータス以外の属性は変更できません。 + ワークパッケージを読み取り専用としてマークするには、このオプションをオンにしてください。 + ステータスを除いて変更することはできません。 +
- 注意: 継承された値 (子やリレーションなど) は適用されます。 + メモ: 継承された値 (例えば、子や関連) が適用されます。 index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: 合計から除外 is_closed: 終了 - is_default: 既定の項目 is_readonly: 読み取り専用 + no_filter_results_title_text: No status matches the current filter. no_results_content_text: 新しいステータスを追加 no_results_title_text: 現在、ワークパッケージのステータスはありません。 + status_actions: Status actions support: array: sentence_connector: 及び skip_last_comma: 偽 text_access_token_hint: アクセストークンで、外部アプリケーションが OpenProject のリソースへのアクセスを許可することができます。 - text_accessibility_hint: アクセシビリティ モードは目の不自由な人、視覚障害者、視力が悪いユーザーのためにデザインされています。後者向けには、フォーカスされた要素が特に強調表示されます。バックログ モジュールはこのモードで使用できないことにご注意ください。 text_analyze: 'さらに分析: %{subject}' text_are_you_sure: よろしいですか? text_are_you_sure_continue: 続行してもよろしいですか? @@ -6111,12 +6576,6 @@ ja: ' text_custom_field_possible_values_info: 選択肢の値は1行に1個ずつ記述してください。 - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'ホーム画面にブックマークを置くと、モバイルまたはタブレットに表示されるアイコンです。 180 x 180 ピクセルサイズの PNG イメージファイルである必要があります。 画像の背景が透明でないことを確認してください。そうしないと、iOS では悪く見えません。 ' @@ -6166,6 +6625,7 @@ ja: text_length_between: 長さは%{min}から%{max}文字までです。 text_line_separated: "(1行ごとに書くことで)複数の値を設定できます。" text_load_default_configuration: デフォルト設定をロード + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: 設定できるアクセストークンがありません。 text_no_configuration_data: |- ロール、ワークパッケージのステータスとタイプ、ワークフローが未設定です。 @@ -6230,7 +6690,7 @@ ja: text_zoom_in: 拡大 text_zoom_out: 拡大 themes: - dark: 暗い + dark: ダーク light: ライト sync_with_os: 自動(OSのテーマ設定に追従) time: @@ -6271,6 +6731,67 @@ ja: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6280,14 +6801,40 @@ ja: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6296,8 +6843,10 @@ ja: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6326,21 +6875,21 @@ ja: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: このタイプで有効にするテンプレートを選択します。 テンプレートは、このタイプを使用してワークパッケージのエクスポートされた PDF に表示されるデザインと属性を決定します。 リストの最初のテンプレートがデフォルトで選択されています。 pdf_export_templates: actions: label_disable_all: すべて無効 label_enable_all: すべて有効 label_toggle_template: Toggle %{template} label: PDF エクスポート テンプレート + order_changed: Order successfully changed. tab: PDFを生成 templates: readonly_error: Cannot be changed while linked to a source type. @@ -6357,6 +6906,8 @@ ja: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6378,6 +6929,14 @@ ja: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6387,12 +6946,14 @@ ja: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6406,12 +6967,12 @@ ja: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6424,10 +6985,12 @@ ja: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: すべてのプロジェクトで有効 select_projects: プロジェクトを選択 select_projects_description: このタイプを使用するプロジェクトを選択。 tab: プロジェクト + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6442,41 +7005,17 @@ ja: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6484,6 +7023,9 @@ ja: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6492,13 +7034,14 @@ ja: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6512,12 +7055,16 @@ ja: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6526,23 +7073,51 @@ ja: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: 新しい種類を作成 no_results_title_text: 現在、種類はありません。 project_variants_count: @@ -6551,7 +7126,18 @@ ja: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: この警告を無視する。 message: このページでエラーと崩れを体験するかもしれません。 @@ -6570,7 +7156,7 @@ ja: authorization_rejected: ログインすることはできません。 blocked: 一時的ロック blocked_num_failed_logins: - other: 一時的にロックされています(ログインに %{count} 回失敗しました) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: "'%{name}' のステータスを変更しようとしています。続行してもよろしいですか?" deleted: 削除されたユーザー department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6599,11 +7185,11 @@ ja: ' users: autologins: - prompt: ログインしたまま %{num_days} + prompt: "%{num_days} のログインを維持" force_password_change_hint: The user must set a new password on their next login. Automatically enabled when sending credentials via email. groups: member_in_these_groups: このユーザーは現在以下のグループのメンバーです: - more: "%{count} もっと見る" + more: "%{count} 以上" no_results_title_text: このユーザーは現在どのグループのメンバーでもありません。 summary_html: Member of %{names}. summary_with_more_html: Member of %{names} and %{count_link}. @@ -6661,7 +7247,7 @@ ja: title: Invite user to %{project_name} memberships: no_results_title_text: このユーザは現在プロジェクトのメンバーではありません。 - open_profile: プロフィール + open_profile: プロファイルを開く send_information_hint: Emails the password in plain text. When checked, the user will be required to change their password on first login. sessions: browser: ブラウザ @@ -6670,9 +7256,9 @@ ja: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: デバイス / OS expires: 有効期限 - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: 前回の接続 - may_not_delete_current: 現在のセッションを削除することはできません。 + may_not_delete_current: 現在のセッションは削除できません。 session_name: "%{browser_name} %{browser_version} の %{os_name}" title: セッション管理 unknown: "(unknown)" @@ -6736,6 +7322,12 @@ ja: version_status_locked: ロック済み version_status_open: 未完了 versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: このバージョンに割り当てられているワークパッケージはありません。 work_packages_in_archived_projects: バージョンは、まだこのバージョンにワークパッケージが割り当てられているアーカイブされたプロジェクトと共有されます。 これらはカウントされますが、リンクされたビューには表示されません。 @@ -6830,10 +7422,10 @@ ja: ' work_package_relations_tab: index: - action_bar_title: 他のワークパッケージとのリレーションを追加して、それらの間にリンクを作成する。 + action_bar_title: 他のワークパッケージにリレーションを追加して、その間にリンクを作成します。 blankslate_description: このワークパッケージにはまだリレーションがありません。 - blankslate_heading: 関係なし - no_results_title_text: 現在、利用可能な関係はない。 + blankslate_heading: リレーションなし + no_results_title_text: 現在利用可能なリレーションはありません。 label_add_child_button: 子要素 label_add_description: 説明を追加 label_add_x: "%{x} を追加" @@ -6905,16 +7497,18 @@ ja: required_description: このワークパッケージを関連するものの要件としてマークする requires_description: このワークパッケージに対する要件として関連するワークパッケージをマークします work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: ワークパッケージをコピーできませんでした。 could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: '次のワークパッケージを保存できませんでした:' deletion_successful: other: Successfully deleted %{count} work packages. - descendant: 選択された子孫 + descendant: 選択された子孫です move_failed: ワークパッケージを移動できませんでした。 none_could_be_saved: "%{total} ワークパッケージのどれも更新できませんでした。" - selected_because_descendants: "%{selected} のワークパッケージが選択されたが、合計 %{total} のワークパッケージが影響を受け、その中には子孫も含まれる。" + selected_because_descendants: "%{selected} ワークパッケージが選択されている間、合計で %{total} ワークパッケージが子孫を含む影響を受けます。" x_out_of_y_could_be_saved: "%{failing} の %{total} ワークパッケージのうち、 %{success} を更新できませんでした。" bulk_delete_dialog: children_label: 'The following descendants will also be deleted:' @@ -7006,6 +7600,137 @@ ja: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7037,34 +7762,50 @@ ja: version: no_results_title_text: 現在、有効なバージョンはありません。 x_descendants: - other: "%{count} つのワークパッケージの子孫" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7073,12 +7814,82 @@ ja: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: 営業日を変更する dialog: diff --git a/config/locales/crowdin/js-af.yml b/config/locales/crowdin/js-af.yml index ee4211f87115..dbdc76f464a4 100644 --- a/config/locales/crowdin/js-af.yml +++ b/config/locales/crowdin/js-af.yml @@ -61,6 +61,7 @@ af: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ af: button_stop_timer: Stop timer button_uncheck_all: Ontmerk almal button_update: Opdateer + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ af: description_subwork_package: 'Kind van werkspakket #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ af: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ af: label_reset: Herstel label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ af: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ af: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Kies asseblief subject: Enter subject here @@ -806,12 +812,32 @@ af: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ af: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log tyd - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ af: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 dag + one: "%{count} day" other: "%{count} dae" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-ar.yml b/config/locales/crowdin/js-ar.yml index c23fa15a33db..c887f2f64b3e 100644 --- a/config/locales/crowdin/js-ar.yml +++ b/config/locales/crowdin/js-ar.yml @@ -61,6 +61,7 @@ ar: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ ar: button_stop_timer: Stop timer button_uncheck_all: إلغاء اختيار الكل button_update: التحديث + button_view_markdown: View Markdown caption_rate_history: تاريخ السعر card: add_new: Add new card @@ -202,6 +204,7 @@ ar: description_subwork_package: 'إنتاج مجموعة العمل #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ar: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ar: label_reset: إعادة تعيين label_resize_project_menu: Resize project menu label_save_as: احفظ بشكل + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: اختر مراقبًا... label_selected_filter_list: عوامل التصفية المٌختارة @@ -624,7 +629,7 @@ ar: center: and_more_users: zero: and %{count} others - one: and 1 other + one: and %{count} other two: and %{count} others few: and %{count} others many: and %{count} others @@ -724,6 +729,7 @@ ar: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: انقر لإضافة وصف لهذه العلاقة selection: من فضلك اختر subject: Enter subject here @@ -810,12 +816,40 @@ ar: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + zero: Could not extend the range. %{count} items selected. + one: Could not extend the range. %{count} item selected. + two: Could not extend the range. %{count} items selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + zero: "%{count} items selected." + one: "%{count} item selected." + two: "%{count} items selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -829,9 +863,7 @@ ar: text_user_wrote: "%{value} كتب:" text_work_packages_destroy_confirmation: هل أنت متأكد من أنك تريد حذف العناصر المحددة؟ time_entry: - stop: Stop title: وقت السجل - tracking: تعقب الوقت work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -867,23 +899,23 @@ ar: units: child_work_packages: zero: "%{count} work package children" - one: one child work package + one: "%{count} child work package" two: "%{count} work package children" few: "%{count} work package children" many: "%{count} work package children" other: "%{count} work package children" day: - one: 1 يوم + one: "%{count} day" other: "%{count} يوم" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: zero: "%{count} words" - one: 1 word + one: "%{count} word" two: "%{count} words" few: "%{count} words" many: "%{count} words" diff --git a/config/locales/crowdin/js-az.yml b/config/locales/crowdin/js-az.yml index 529875a8250d..192e75c80eef 100644 --- a/config/locales/crowdin/js-az.yml +++ b/config/locales/crowdin/js-az.yml @@ -61,6 +61,7 @@ az: single: '"%{name}" seç' remove: "%{name} çıxart" autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ az: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Yeniləmə + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ az: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ az: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ az: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Fərqli saxla + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: İzləyici seç... label_selected_filter_list: Seçilmiş filtrlər @@ -623,7 +628,7 @@ az: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ az: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ az: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ az: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Jurnal vaxtı - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ az: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-be.yml b/config/locales/crowdin/js-be.yml index d0819e9f07ba..ecfe397e657e 100644 --- a/config/locales/crowdin/js-be.yml +++ b/config/locales/crowdin/js-be.yml @@ -61,6 +61,7 @@ be: single: Select "%{name}" remove: Выдаліць %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ be: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Абнавіць + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ be: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ be: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ be: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ be: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other few: and %{count} others many: and %{count} others other: and %{count} others @@ -722,6 +727,7 @@ be: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -808,12 +814,36 @@ be: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -827,9 +857,7 @@ be: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -864,21 +892,21 @@ be: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" few: "%{count} work package children" many: "%{count} work package children" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" many: "%{count} words" other: "%{count} words" diff --git a/config/locales/crowdin/js-bg.yml b/config/locales/crowdin/js-bg.yml index c092d6cc1a45..7f496c6288d7 100644 --- a/config/locales/crowdin/js-bg.yml +++ b/config/locales/crowdin/js-bg.yml @@ -61,6 +61,7 @@ bg: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ bg: button_stop_timer: Stop timer button_uncheck_all: Размаркирай всички button_update: Обнови + button_view_markdown: View Markdown caption_rate_history: Оценете историята card: add_new: Add new card @@ -202,6 +204,7 @@ bg: description_subwork_package: 'Подработен пакет #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ bg: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ bg: label_reset: Нулиране label_resize_project_menu: Resize project menu label_save_as: Запиши като + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Изберете наблюдаващ... label_selected_filter_list: Избрани филтри @@ -623,7 +628,7 @@ bg: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ bg: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Моля изберете subject: Enter subject here @@ -806,12 +812,32 @@ bg: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ bg: text_user_wrote: "%{value} написа:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Отчетено време - tracking: Проследяване по време work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ bg: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 ден + one: "%{count} day" other: "%{count} дни" zero: 0 days hour: - one: 1 ч + one: "%{count} h" other: "%{count} часа" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-ca.yml b/config/locales/crowdin/js-ca.yml index 4c21b4f079bb..9f9fc6831e9b 100644 --- a/config/locales/crowdin/js-ca.yml +++ b/config/locales/crowdin/js-ca.yml @@ -61,6 +61,7 @@ ca: single: Seleccionar "%{name}" remove: Eliminar %{name} autocompleter: + create_label: Create label notFoundText: Elements no trobats placeholder: Escriviu per cercar project: @@ -161,7 +162,8 @@ ca: button_start_timer: Start timer button_stop_timer: Stop timer button_uncheck_all: Desmarca-ho tot - button_update: Actualitzar + button_update: Actualitza + button_view_markdown: View Markdown caption_rate_history: Història d'índex card: add_new: Afegir nova targeta @@ -202,6 +204,7 @@ ca: description_subwork_package: 'Fill del paquet de treball #%{id}' editor: ckeditor_error: S'ha produït un error amb el CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'No s''ha pogut guardar el document per culpa del següent error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ca: ical_sharing_modal: copy_url_label: Copia l'URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: S'ha produït un error en carregar les dades. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ca: label_reset: Reinciar label_resize_project_menu: Resize project menu label_save_as: Desa com a + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Seleccioneu un observador... label_selected_filter_list: Filtres seleccionats @@ -623,8 +628,8 @@ ca: notifications: center: and_more_users: - one: " i 1 altre" - other: " i %{count} altres" + one: and %{count} other + other: and %{count} others empty_state: no_notification: Sembla que ja estàs al dia. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -720,6 +725,7 @@ ca: placeholders: default: "-" description: 'Descripció: Fes clic per editar...' + description_double_click: 'Description: Double click to edit...' relation_description: Fes clic per afegir una descripció per aquesta relació selection: Si us plau, selecciona subject: Introdueixi l'assumpte aquí @@ -806,12 +812,32 @@ ca: sorting_disabled: ordenació deshabilitada sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ ca: text_user_wrote: "%{value} va escriure:" text_work_packages_destroy_confirmation: "¿Estàs segur que vols eliminar el(s) paquet(s) de treball seleccionat(s)?" time_entry: - stop: Aturar title: Registrar temps - tracking: Seguiment de temps work_package_required: Requereix seleccionar un paquet de treball primer. timer: button_stop: Aturar el temporitzador actual @@ -862,19 +886,19 @@ ca: label_two_factor_authentication: Autentificació en dos passos units: child_work_packages: - one: un paquet de treball fill - other: "%{count} paquets de treball fills" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 dia + one: "%{count} day" other: "%{count} dies" zero: 0 dies hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: paquet de treball diff --git a/config/locales/crowdin/js-ckb-IR.yml b/config/locales/crowdin/js-ckb-IR.yml index 2bd011513ed7..00a064143069 100644 --- a/config/locales/crowdin/js-ckb-IR.yml +++ b/config/locales/crowdin/js-ckb-IR.yml @@ -61,6 +61,7 @@ ckb-IR: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ ckb-IR: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ ckb-IR: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ckb-IR: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ckb-IR: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ ckb-IR: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ ckb-IR: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ ckb-IR: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ ckb-IR: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ ckb-IR: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-cs.yml b/config/locales/crowdin/js-cs.yml index 90b518045219..1dbbd44bf2ce 100644 --- a/config/locales/crowdin/js-cs.yml +++ b/config/locales/crowdin/js-cs.yml @@ -61,6 +61,7 @@ cs: single: Vybrat "%{name}" remove: Odstranit %{name} autocompleter: + create_label: Create label notFoundText: Nenalezeny žádné položky placeholder: Zadejte hledaný text project: @@ -162,6 +163,7 @@ cs: button_stop_timer: Zastavit časovač button_uncheck_all: Odznačit vše button_update: Aktualizovat + button_view_markdown: View Markdown caption_rate_history: Historie sazeb card: add_new: Přidat novou kartu @@ -202,6 +204,7 @@ cs: description_subwork_package: 'Podřazený pracovního balíčku #%{id}' editor: ckeditor_error: Došlo k chybě v CKEditoru + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Uložení dokumentu se nezdařilo s následující chybou: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ cs: ical_sharing_modal: copy_url_label: Kopírovat URL description: Můžete použít URL (iCalendar) k odběru tohoto kalendáře v externím klientovi a zobrazit aktuální informace o pracovním balíčku. - ical_generation_error_text: Při generování adresy URL kalendáře došlo k chybě. - inital_setup_error_message: Při načítání dat došlo k chybě. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL "%{name}" byla úspěšně zkopírována do vaší schránky. Vložte ji do vašeho klienta kalendáře pro dokončení odběru. title: Přihlásit kalendář k odběru token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ cs: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Uložit jako + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Vyhledávání ve sloupci label_select_watcher: Zvolte sledujícího... label_selected_filter_list: Vybrané filtry @@ -623,10 +628,10 @@ cs: notifications: center: and_more_users: - one: a 1 další - few: a %{count} dalšich - many: a %{count} dalšich - other: a %{count} dalšich + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others empty_state: no_notification: Vypadá to, že jste všechno dohnali... no_notification_for_filter: Vypadá to, že jste všichni zachytili tento filtr. @@ -726,6 +731,7 @@ cs: placeholders: default: "-" description: 'Popis: Klikněte pro úpravu...' + description_double_click: 'Description: Double click to edit...' relation_description: Kliknutím přidáte popis pro tento vztah selection: Zvolte prosím subject: Zde zadejte předmět @@ -812,12 +818,36 @@ cs: sorting_disabled: řazení zakázáno sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Zavřít modal @@ -831,9 +861,7 @@ cs: text_user_wrote: "%{value} napsal:" text_work_packages_destroy_confirmation: Jste si jisti, že chcete odstranit vybrané pracovní balíčky? time_entry: - stop: Zastavit title: Vykázat čas - tracking: Sledování času work_package_required: Vyžaduje nejprve výběr pracovního balíčku. timer: button_stop: Zastavit aktuální časovač @@ -868,24 +896,24 @@ cs: label_two_factor_authentication: Dvoufázové ověření units: child_work_packages: - one: jeden podřazený pracovní balíček - few: "%{count} podřazených pracovních balíčků" - many: "%{count} podřazených pracovních balíčků" - other: "%{count} podřazených pracovních balíčků" + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 den + one: "%{count} day" other: "%{count} dní" zero: 0 dní hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 slovo - few: "%{count} slov" - many: "%{count} slov" - other: "%{count} slov" + one: "%{count} word" + few: "%{count} words" + many: "%{count} words" + other: "%{count} words" workPackage: one: pracovní balíček few: pracovní balíčky diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml index 9a9d60c438b3..9e88ca1343dd 100644 --- a/config/locales/crowdin/js-da.yml +++ b/config/locales/crowdin/js-da.yml @@ -61,6 +61,7 @@ da: single: Vælg "%{name}" remove: Fjern %{name} autocompleter: + create_label: Opret mærkat notFoundText: Ingen elementer fundet placeholder: Skriv for at søge project: @@ -161,7 +162,8 @@ da: button_start_timer: Start tidtagning button_stop_timer: Stop tidtagning button_uncheck_all: Fjern alle markeringer - button_update: Opdatér + button_update: Opdater + button_view_markdown: Vis Markdown caption_rate_history: Satshistorik card: add_new: Tilføj nyt kort @@ -202,6 +204,7 @@ da: description_subwork_package: 'Underordnet arbejdspakke #%{id}' editor: ckeditor_error: Der opstod en fejl i CKEditor + ckeditor_error_reload: Editoren holdt op med at virke. Din tekst er her stadig, men du kan ikke ændre den. Kopiér den tekst, som du vil beholde, og genindlæs derefter siden. error_saving_failed: 'Lagring af dokumentet mislykkedes med følgende fejl: %{error}' macro: attribute_reference: @@ -358,7 +361,7 @@ da: ical_sharing_modal: copy_url_label: Kopiér URL description: Du kan bruge URL'en (iCalendar) til at abonnere på kalenderen i et eksternt program og se opdaterede oplysninger om arbejdspakker derfra. - ical_generation_error_text: Der opstod en fejl under oprettelse af kalender-URL'en. + ical_generation_error_text: Der opstod en fejl under dannelsen af kalenderens URL. inital_setup_error_message: Der opstod en fejl under hentning af data. success_message: URL'en "%{name}" er kopieret til udklipsholderen. Indsæt den i dit kalenderprogram for at gøre abonnementet færdigt. title: Abonner på kalender @@ -551,6 +554,8 @@ da: label_reset: Nulstil label_resize_project_menu: Tilpas størrelsen på projektmenuen label_save_as: Gem som + label_scroll_left: Rul til venstre + label_scroll_right: Rul til højre label_search_columns: Søg efter en kolonne label_select_watcher: Vælg en følger... label_selected_filter_list: Valgte filtre @@ -623,7 +628,7 @@ da: notifications: center: and_more_users: - one: og 1 anden + one: og %{count} anden other: og %{count} andre empty_state: no_notification: Det ser ud til, at du er helt opdateret. @@ -720,6 +725,7 @@ da: placeholders: default: "-" description: 'Beskrivelse: Klik for at redigere...' + description_double_click: 'Beskrivelse: Dobbeltklik for at redigere...' relation_description: Klik for at tilføje en beskrivelse af relationen selection: Vælg subject: Skriv emnet her @@ -806,12 +812,32 @@ da: sorting_disabled: sortering er deaktiveret sortable_lists: announcements: + batch_too_large: "%{count} elementer kan ikke flyttes på én gang. Vælg højst %{max}." fallback_item_label: Element fallback_list_name: en anden liste move_failed_check_position: Flytningen mislykkedes. Tjek elementets aktuelle placering. + move_failed_check_positions_batch: + other: Flytningen mislykkedes. Tjek elementernes aktuelle placeringer. move_failed_rolled_back: Flytningen mislykkedes. %{label} er sat tilbage på sin tidligere placering. + move_failed_rolled_back_batch: + other: Flytningen mislykkedes. %{count} elementer er sat tilbage på deres tidligere placeringer. moved: "%{label} er flyttet til placering %{position} af %{total}" + moved_batch: + other: "%{count} elementer er flyttet til placering %{first} til %{last} af %{total}" + moved_batch_to_list: + other: "%{count} elementer er flyttet til %{list}, placering %{first} til %{last} af %{total}" moved_to_list: "%{label} er flyttet til %{list}, placering %{position} af %{total}" + selection: + cleared: Valget er ryddet. + not_selectable: Valget er uændret. Elementet indgår ikke i listens rækkefølge. + range_blocked: Valget er uændret. Området indeholder et element, der ikke indgår i listens rækkefølge. + range_restarted: + one: Området kunne ikke udvides. %{count} element valgt. + other: Området kunne ikke udvides. %{count} elementer valgt. + range_unavailable: Valget er uændret. Fold listen ud for at vælge området. + selected: + one: "%{count} element valgt." + other: "%{count} elementer valgt." spot: drop_modal: close: Luk dialogboks @@ -825,9 +851,7 @@ da: text_user_wrote: "%{value} skrev:" text_work_packages_destroy_confirmation: Er du sikker på, at du vil slette de valgte arbejdspakker? time_entry: - stop: Stop title: Tidsregistrering - tracking: Tidsregistrering work_package_required: Kræver, at du først vælger en arbejdspakke. timer: button_stop: Stop aktuel tidtagning @@ -862,19 +886,19 @@ da: label_two_factor_authentication: To-faktor-godkendelse units: child_work_packages: - one: én underordnet arbejdspakke + one: "%{count} underordnet arbejdspakke" other: "%{count} underordnede arbejdspakker" day: - one: 1 dag + one: "%{count} dag" other: "%{count} dage" zero: 0 dage hour: - one: 1 t + one: "%{count} t" other: "%{count} t" zero: 0 t hour_string: "%{hours} t" word: - one: 1 ord + one: "%{count} ord" other: "%{count} ord" workPackage: one: arbejdspakke diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml index 9ecde9f2bb4e..ea2000f61d58 100644 --- a/config/locales/crowdin/js-de.yml +++ b/config/locales/crowdin/js-de.yml @@ -61,6 +61,7 @@ de: single: "%{name} auswählen" remove: Entferne %{name} autocompleter: + create_label: Create label notFoundText: Keine Elemente gefunden placeholder: Suchbegriff eintippen project: @@ -162,6 +163,7 @@ de: button_stop_timer: Timer anhalten button_uncheck_all: Alle abwählen button_update: Aktualisieren + button_view_markdown: View Markdown caption_rate_history: Stundensatz-Historie card: add_new: Neue Karte hinzufügen @@ -199,9 +201,10 @@ de: description_available_columns: Verfügbare Spalten description_current_position: 'Sie sind hier: ' description_select_work_package: 'Arbeitspaket #%{id} auswählen' - description_subwork_package: 'Unteraufgabe von Arbeitspaket #%{id}' + description_subwork_package: 'Kind von Arbeitspaket #%{id}' editor: ckeditor_error: Innerhalb des Editors ist ein Fehler aufgetreten + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Fehler beim Speichern des Dokuments: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ de: ical_sharing_modal: copy_url_label: URL kopieren description: Sie können die URL (iCalendar) verwenden, um diesen Kalender in einem externen Client zu abonnieren und aktuelle Arbeitspaket-Informationen von dort aus anzuzeigen. - ical_generation_error_text: Beim Generieren der Kalender-URL ist ein Fehler aufgetreten. - inital_setup_error_message: Beim Abrufen der Daten ist ein Fehler aufgetreten. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: Die URL "%{name}" wurde erfolgreich in Ihre Zwischenablage kopiert. Fügen Sie sie in Ihren Kalender-Client ein, um das Abonnement abzuschließen. title: Kalender abonnieren token_name_description_text: Wenn Sie diesen Kalender auf mehreren Geräten abonnieren, wird Ihnen dieser Name helfen, zwischen diesen in der Liste der Zugriffstoken zu unterscheiden. @@ -551,6 +554,8 @@ de: label_reset: Zurücksetzen label_resize_project_menu: Größe des Projektmenüs ändern label_save_as: Speichern unter + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Spalte suchen label_select_watcher: Beobachter auswählen ... label_selected_filter_list: Ausgewählte Filter @@ -582,7 +587,7 @@ de: label_uploaded_by: Hochgeladen von label_user_plural: Benutzer label_validation_error: 'Das Arbeitspaket konnte aufgrund folgender Fehler nicht gespeichert werden:' - label_value_derived_from_children: "(aggregierter Wert von Unteraufgaben)" + label_value_derived_from_children: "(aggregierter Wert von Kindelementen)" label_version_plural: Versionen label_view_has_changed: Diese Ansicht hat ungespeicherte Änderungen. Klicken, um sie zu speichern. label_visibility_settings: Sichtbarkeits-Einstellungen @@ -623,8 +628,8 @@ de: notifications: center: and_more_users: - one: und ein weiterer - other: und %{count} weitere + one: and %{count} other + other: and %{count} others empty_state: no_notification: Alle Benachrichtungen abgearbeitet. no_notification_for_filter: Keine Benachrichtigungen für diesen Filter vorhanden. @@ -722,6 +727,7 @@ de: placeholders: default: "-" description: 'Beschreibung: Zum Bearbeiten klicken...' + description_double_click: 'Description: Double click to edit...' relation_description: Klicken, um eine Beschreibung für diese Beziehung anzulegen selection: Bitte auswählen subject: Titel hier eingeben @@ -808,12 +814,32 @@ de: sorting_disabled: Sortierung ist deaktiviert sortable_lists: announcements: + batch_too_large: Es ist nicht möglich, %{count} Element auf einmal zu verschieben. Wählen Sie nicht mehr als %{max} aus. fallback_item_label: Element fallback_list_name: andere Liste move_failed_check_position: Verschieben fehlgeschlagen. Überprüfen Sie die aktuelle Position des Elements. + move_failed_check_positions_batch: + other: Verschieben fehlgeschlagen. Überprüfen Sie die aktuelle Position des Elements. move_failed_rolled_back: Verschieben fehlgeschlagen. %{label} wieder an seiner vorherigen Position. + move_failed_rolled_back_batch: + other: Die Verschiebung ist fehlgeschlagen. %{count} Elemente wurden an ihre ursprünglichen Positionen zurückgesetzt. moved: "%{label} verschoben auf Position %{position} von %{total}" + moved_batch: + other: "%{count} Elemente auf die Positionen %{first} bis %{last} von %{total} verschoben" + moved_batch_to_list: + other: "%{count} Elemente zu %{list} auf die Positionen %{first} bis %{last} von %{total} verschoben" moved_to_list: "%{label} verschoben nach %{list}, Position %{position} von %{total}" + selection: + cleared: Auswahl aufgehoben. + not_selectable: Auswahl unverändert. Dieses Element hat keinen Einfluss auf die Reihenfolge dieser Liste. + range_blocked: Auswahl unverändert. Sie enthält ein Element ohne Einfluss auf die Reihenfolge dieser Liste. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Auswahl unverändert. Erweitern Sie diese Liste, um diesen Bereich auszuwählen. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Modal schließen @@ -827,9 +853,7 @@ de: text_user_wrote: "%{value} schrieb:" text_work_packages_destroy_confirmation: Sind Sie sicher, dass Sie die ausgewählten Arbeitspakete löschen möchten? time_entry: - stop: Anhalten title: Zeit buchen - tracking: Zeiterfassung work_package_required: Benötigt zuerst die Auswahl eines Arbeitspakets. timer: button_stop: Aktuellen Timer stoppen @@ -864,20 +888,20 @@ de: label_two_factor_authentication: Zwei-Faktor-Authentifizierung units: child_work_packages: - one: eine Unteraufgabe - other: "%{count} untergeordnete Arbeitspakete" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 Tag + one: "%{count} day" other: "%{count} Tage" zero: 0 Tage hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 Wort - other: "%{count} Wörter" + one: "%{count} word" + other: "%{count} words" workPackage: one: Arbeitspaket other: Arbeitspakete @@ -930,7 +954,7 @@ de: button: Erstellen header: 'Neu: %{type}' header_no_type: Neues Arbeitspaket (Typ noch nicht gesetzt) - header_with_parent: 'Neu: %{type} (Unteraufgabe von %{parent_type} #%{id})' + header_with_parent: 'Neu: %{type} (Kind von %{parent_type} #%{id})' title: Neues Arbeitspaket default_queries: all_open: Alle offenen diff --git a/config/locales/crowdin/js-el.yml b/config/locales/crowdin/js-el.yml index 73e017407ca9..ebc9f93a2166 100644 --- a/config/locales/crowdin/js-el.yml +++ b/config/locales/crowdin/js-el.yml @@ -61,6 +61,7 @@ el: single: Επιλογή "%{name}" remove: Διαγραφή %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Πληκτρολογήστε για αναζήτηση project: @@ -162,6 +163,7 @@ el: button_stop_timer: Διακοπή χρονόμετρου button_uncheck_all: Αποεπιλογή όλων button_update: Ενημέρωση + button_view_markdown: View Markdown caption_rate_history: Ιστορικό αμοιβής card: add_new: Προσθέστε νέα κάρτα @@ -202,6 +204,7 @@ el: description_subwork_package: 'Παιδί του πακέτου εργασίας #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Η αποθήκευση του αρχείου απέτυχε δίνοντας το ακόλουθο μήνυμα: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ el: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ el: label_reset: Επαναφορά label_resize_project_menu: Resize project menu label_save_as: Αποθήκευση ως + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Επιλέξτε έναν παρατηρητή... label_selected_filter_list: Επιλεγμένα φίλτρα @@ -623,7 +628,7 @@ el: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ el: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Κάντε κλικ για να προσθέσετε περιγραφή για αυτή την σχέση selection: Παρακαλώ επιλέξτε subject: Εισάγετε θέμα εδώ @@ -806,12 +812,32 @@ el: sorting_disabled: η ταξινόμηση είναι απενεργοποιημένη sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ el: text_user_wrote: "%{value} έγραψε:" text_work_packages_destroy_confirmation: Είστε βέβαιοι ότι θέλετε να διαγράψετε το(-α) επιλεγμένο(-α) πακέτο(-α) εργασίας; time_entry: - stop: Stop title: Καταγραφή χρόνου - tracking: Παρακολούθηση χρόνου work_package_required: Πρέπει πρώτα να επιλεγεί ένα πακέτο εργασίας. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ el: label_two_factor_authentication: Ταυτοποίηση δύο παραγόντων units: child_work_packages: - one: ένα παιδί πακέτο εργασίας - other: "%{count} παιδιά πακέτα εργασίας" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 ημέρα + one: "%{count} day" other: "%{count} ημέρες" zero: 0 days hour: - one: 1 ώρα + one: "%{count} h" other: "%{count} ώρες" zero: 0 ω hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: πακέτο εργασίας diff --git a/config/locales/crowdin/js-eo.yml b/config/locales/crowdin/js-eo.yml index 434ab05dcec9..0c4be54270f8 100644 --- a/config/locales/crowdin/js-eo.yml +++ b/config/locales/crowdin/js-eo.yml @@ -61,6 +61,7 @@ eo: single: Elekti "%{name}" remove: Forigi %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Tajpu por serĉi project: @@ -162,6 +163,7 @@ eo: button_stop_timer: Stop timer button_uncheck_all: Malelekti ĉion button_update: Ĝisdatigi + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Aldoni novan karton @@ -202,6 +204,7 @@ eo: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Ne eblis konservi la dokumenton pro la jena eraro: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ eo: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ eo: label_reset: Restarigi label_resize_project_menu: Resize project menu label_save_as: Konservi kiel + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Serĉi kolumnon label_select_watcher: Select a watcher... label_selected_filter_list: Elekti filtrilon @@ -623,7 +628,7 @@ eo: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ eo: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Klaki por aldoni priskribon al tiu ĉi rilato selection: Bonvolu elekti subject: Enter subject here @@ -806,12 +812,32 @@ eo: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ eo: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Tempoprotokolo - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ eo: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: unu laborpakaĵa filo + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 tago + one: "%{count} day" other: "%{count} tagoj" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: laborpakaĵo diff --git a/config/locales/crowdin/js-es.yml b/config/locales/crowdin/js-es.yml index 778983f20aaa..73ee524babae 100644 --- a/config/locales/crowdin/js-es.yml +++ b/config/locales/crowdin/js-es.yml @@ -59,6 +59,7 @@ es: single: Seleccione "%{name}" remove: Elimine "%{name}" autocompleter: + create_label: Create label notFoundText: No se encontraron elementos placeholder: Escriba para buscar project: @@ -160,6 +161,7 @@ es: button_stop_timer: Detener temporizador button_uncheck_all: Deseleccionar todos button_update: Actualizar + button_view_markdown: View Markdown caption_rate_history: Historial de tasas card: add_new: Añadir nueva tarjeta @@ -200,6 +202,7 @@ es: description_subwork_package: 'Seleccione el paquete de trabajo #%{id}' editor: ckeditor_error: Se ha producido un error dentro de CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'No se pudo guardar el documento debido al siguiente error: %{error}' macro: attribute_reference: @@ -356,8 +359,8 @@ es: ical_sharing_modal: copy_url_label: Copiar URL description: Puede utilizar la URL (iCalendar) para suscribirse a este calendario en un cliente externo y ver desde allí la información actualizada de los paquetes de trabajo. - ical_generation_error_text: Se ha producido un error al generar la URL del calendario. - inital_setup_error_message: Se ha producido un error al obtener los datos. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: La URL «%{name}» se ha copiado correctamente en su portapapeles. Péguela en su cliente de calendario para completar la suscripción. title: Suscribirse al calendario token_name_description_text: Si se suscribe a este calendario desde varios dispositivos, este nombre le ayudará a distinguirlos en su lista de tokens de acceso. @@ -549,6 +552,8 @@ es: label_reset: Reiniciar label_resize_project_menu: Cambiar el tamaño del menú del proyecto label_save_as: Guardad como + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Buscar una columna label_select_watcher: Selecciona un observador... label_selected_filter_list: Filtros seleccionados @@ -621,8 +626,8 @@ es: notifications: center: and_more_users: - one: y 1 más - other: y %{count} más + one: and %{count} other + other: and %{count} others empty_state: no_notification: Parece que ya estás al día. no_notification_for_filter: Parece que ya está al día completamente para este filtro. @@ -718,6 +723,7 @@ es: placeholders: default: "-" description: 'Descripción: Haga clic para editar...' + description_double_click: 'Description: Double click to edit...' relation_description: Haga clic para añadir la descripción a esta relación selection: Por favor, elija subject: Escriba aquí el asunto @@ -804,12 +810,32 @@ es: sorting_disabled: ordenación deshabilitada sortable_lists: announcements: + batch_too_large: No se pueden trasladar %{count} elementos a la vez. Seleccione no más de %{max}. fallback_item_label: Elemento fallback_list_name: otra lista move_failed_check_position: No se ha podido trasladar. Comprueba la posición actual del elemento. + move_failed_check_positions_batch: + other: No se ha podido trasladar. Compruebe las posiciones actuales de los elementos. move_failed_rolled_back: No se ha podido trasladar. %{label} regresó a su posición anterior. + move_failed_rolled_back_batch: + other: No se pudo trasladar. %{count} elementos regresaron a sus posiciones anteriores. moved: "%{label} se trasladó al puesto %{position} de %{total}" + moved_batch: + other: "%{count} elementos se han trasladado a las posiciones %{first}-%{last} de %{total}" + moved_batch_to_list: + other: "%{count} elementos se han trasladado a %{list}, a las posiciones %{first}-%{last} de %{total}" moved_to_list: "%{label} se trasladó a %{list}, posición %{position} de %{total}" + selection: + cleared: Selección eliminada. + not_selectable: La selección no ha cambiado. Este elemento no influye en el orden de esta lista. + range_blocked: La selección no ha cambiado. Ese rango contiene un elemento que no influye en el orden de esta lista. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: La selección no ha cambiado. Amplíe esta lista para seleccionar ese rango. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Cerrar ventana modal @@ -823,9 +849,7 @@ es: text_user_wrote: "%{value} escribió:" text_work_packages_destroy_confirmation: "¿Esta usted seguro que desea eliminar paquete(s) de trabajo seleccionado(s)?" time_entry: - stop: Detener title: Registro de tiempo - tracking: Control de tiempo work_package_required: Es necesario seleccionar primero un paquete de trabajo. timer: button_stop: Detener el temporizador actual @@ -860,20 +884,20 @@ es: label_two_factor_authentication: Autenticación de dos factores units: child_work_packages: - one: un sub-paquete de trabajo - other: "%{count} paquetes de trabajo secundarios" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 día + one: "%{count} day" other: "%{count} días" zero: 0 días hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 palabra - other: "%{count} palabras" + one: "%{count} word" + other: "%{count} words" workPackage: one: paquete de trabajo other: paquetes de trabajo diff --git a/config/locales/crowdin/js-et.yml b/config/locales/crowdin/js-et.yml index 2150dac0c1a6..81456b440d4b 100644 --- a/config/locales/crowdin/js-et.yml +++ b/config/locales/crowdin/js-et.yml @@ -61,6 +61,7 @@ et: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ et: button_stop_timer: Stop timer button_uncheck_all: Tühjenda valik button_update: Uuenda + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ et: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ et: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ et: label_reset: Nulli label_resize_project_menu: Resize project menu label_save_as: Salvesta kui + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Vali jälgija... label_selected_filter_list: Valitud filtrid @@ -623,7 +628,7 @@ et: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ et: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Palun vali subject: Enter subject here @@ -806,12 +812,32 @@ et: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ et: text_user_wrote: "%{value} kirjutas:" text_work_packages_destroy_confirmation: Oled Sa kindel oma soovis valitud teema(d) kustutada? time_entry: - stop: Stop title: Ajakulu - tracking: Ajakulu arvestus work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ et: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 päev + one: "%{count} day" other: "%{count} päeva" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-eu.yml b/config/locales/crowdin/js-eu.yml index e09ba03854b8..41b14f1505f4 100644 --- a/config/locales/crowdin/js-eu.yml +++ b/config/locales/crowdin/js-eu.yml @@ -61,6 +61,7 @@ eu: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ eu: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ eu: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ eu: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ eu: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ eu: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ eu: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ eu: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ eu: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ eu: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-fa.yml b/config/locales/crowdin/js-fa.yml index 98ec205dd7c6..6092cb91def0 100644 --- a/config/locales/crowdin/js-fa.yml +++ b/config/locales/crowdin/js-fa.yml @@ -61,6 +61,7 @@ fa: single: انتخاب «%{name}» remove: حذف %{name} autocompleter: + create_label: Create label notFoundText: موردی یافت نشد placeholder: برای جستجو تایپ کنید project: @@ -162,6 +163,7 @@ fa: button_stop_timer: توقف تایمر button_uncheck_all: لغو انتخاب همه button_update: به روز رسانی + button_view_markdown: View Markdown caption_rate_history: تاریخچه نرخ card: add_new: افزودن کارت جدید @@ -202,6 +204,7 @@ fa: description_subwork_package: 'فرزند بسته کاری #%{id}' editor: ckeditor_error: خطایی در CKEditor رخ داد + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'ذخیره سند با خطای زیر ناموفق بود: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ fa: ical_sharing_modal: copy_url_label: کپی URL description: می‌توانید از URL (iCalendar) برای اشتراک این تقویم در یک کلاینت خارجی استفاده کنید و اطلاعات به‌روز بسته‌های کاری را از آنجا ببینید. - ical_generation_error_text: هنگام تولید URL تقویم خطایی رخ داد. - inital_setup_error_message: هنگام دریافت داده خطایی رخ داد. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL «%{name}» با موفقیت در کلیپ‌بورد کپی شد. برای تکمیل اشتراک آن را در کلاینت تقویم خود جای‌گذاری کنید. title: اشتراک در تقویم token_name_description_text: اگر از چند دستگاه در این تقویم مشترک شوید، این نام کمک می‌کند آن‌ها را در فهرست توکن‌های دسترسی از هم تشخیص دهید. @@ -551,6 +554,8 @@ fa: label_reset: بازنشانی label_resize_project_menu: تغییر اندازه منوی پروژه label_save_as: ذخیره به‌عنوان + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: جستجوی ستون label_select_watcher: انتخاب دنبال‌کننده... label_selected_filter_list: فیلترهای انتخاب‌شده @@ -623,8 +628,8 @@ fa: notifications: center: and_more_users: - one: و ۱ نفر دیگر - other: و %{count} نفر دیگر + one: and %{count} other + other: and %{count} others empty_state: no_notification: به نظر می‌رسد همه‌چیز را بررسی کرده‌اید. no_notification_for_filter: به نظر می‌رسد همه موارد این فیلتر را بررسی کرده‌اید. @@ -720,6 +725,7 @@ fa: placeholders: default: "-" description: 'توضیحات: برای ویرایش کلیک کنید...' + description_double_click: 'Description: Double click to edit...' relation_description: برای افزودن توضیح به این رابطه کلیک کنید selection: لطفاً انتخاب کنید subject: موضوع را اینجا وارد کنید @@ -806,12 +812,32 @@ fa: sorting_disabled: مرتب‌سازی غیرفعال است sortable_lists: announcements: + batch_too_large: امکان جابه‌جایی %{count} مورد به‌صورت هم‌زمان وجود ندارد. حداکثر %{max} مورد را انتخاب کنید. fallback_item_label: مورد fallback_list_name: فهرست دیگر move_failed_check_position: انتقال ناموفق بود. موقعیت فعلی مورد را بررسی کنید. + move_failed_check_positions_batch: + other: جابه‌جایی ناموفق بود. موقعیت فعلی موارد را بررسی کنید. move_failed_rolled_back: انتقال ناموفق بود. %{label} به موقعیت قبلی بازگشت. + move_failed_rolled_back_batch: + other: جابه‌جایی ناموفق بود. %{count} مورد به موقعیت‌های قبلی خود بازگشتند. moved: "%{label} به موقعیت %{position} از %{total} منتقل شد" + moved_batch: + other: "%{count} مورد به موقعیت‌های %{first} تا %{last} از %{total} منتقل شدند" + moved_batch_to_list: + other: "%{count} مورد به %{list}، موقعیت‌های %{first} تا %{last} از %{total} منتقل شدند" moved_to_list: "%{label} به %{list}، موقعیت %{position} از %{total} منتقل شد" + selection: + cleared: انتخاب پاک شد. + not_selectable: انتخاب بدون تغییر ماند. این مورد در ترتیب این فهرست نقشی ندارد. + range_blocked: انتخاب بدون تغییر ماند. این بازه شامل موردی است که در ترتیب این فهرست نقشی ندارد. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: انتخاب بدون تغییر ماند. برای انتخاب آن بازه، این فهرست را گسترش دهید. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: بستن پنجره Modal @@ -825,9 +851,7 @@ fa: text_user_wrote: "%{value} نوشت:" text_work_packages_destroy_confirmation: مطمئنید می‌خواهید بسته(های) کاری انتخاب‌شده را حذف کنید؟ time_entry: - stop: توقف title: ثبت زمان - tracking: ثبت زمان work_package_required: ابتدا باید یک بسته کاری انتخاب شود. timer: button_stop: توقف تایمر فعلی @@ -862,20 +886,20 @@ fa: label_two_factor_authentication: احراز هویت دومرحله‌ای units: child_work_packages: - one: یک بسته کاری فرزند - other: "%{count} بسته کاری فرزند" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: ۱ روز + one: "%{count} day" other: "%{count} روز" zero: ۰ روز hour: - one: ۱ ساعت + one: "%{count} h" other: "%{count} ساعت" zero: ۰ ساعت hour_string: "%{hours} ساعت" word: - one: ۱ واژه - other: "%{count} واژه" + one: "%{count} word" + other: "%{count} words" workPackage: one: بسته کاری other: بسته‌های کاری diff --git a/config/locales/crowdin/js-fi.yml b/config/locales/crowdin/js-fi.yml index 64a30fee92dc..8f2a3a292a0f 100644 --- a/config/locales/crowdin/js-fi.yml +++ b/config/locales/crowdin/js-fi.yml @@ -61,6 +61,7 @@ fi: single: Select "%{name}"Valitse remove: Remove %{name} Poista autocompleter: + create_label: Create label notFoundText: No items found placeholder: Haku project: @@ -162,6 +163,7 @@ fi: button_stop_timer: Stop timer button_uncheck_all: Poista valinnat button_update: Päivitä + button_view_markdown: View Markdown caption_rate_history: Tuntihinnan historia card: add_new: Uusi kortti @@ -202,6 +204,7 @@ fi: description_subwork_package: 'Tehtävän #%{id} alitehtävä' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Tallennus epäonnistui: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ fi: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ fi: label_reset: Nollaus label_resize_project_menu: Resize project menu label_save_as: Tallenna nimellä + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Valitse seuraaja... label_selected_filter_list: Valitut suodattimet @@ -623,7 +628,7 @@ fi: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ fi: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Painamalla tästä voit lisätä kuvauksen tälle suhteelle selection: Valitse subject: Lisää aihe @@ -806,12 +812,32 @@ fi: sorting_disabled: lajittelu on poistettu käytöstä sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ fi: text_user_wrote: "%{value} kirjoitti:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Kirjaa työaika - tracking: Työajanseuranta work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ fi: label_two_factor_authentication: Kaksivaiheinen tunnistautuminen units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: päivä + one: "%{count} day" other: "%{count} päivää" zero: 0 days hour: - one: 1 t + one: "%{count} h" other: "%{count} t" zero: 0 t hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-fil.yml b/config/locales/crowdin/js-fil.yml index c5e3ae4b3662..d66e9a318e6d 100644 --- a/config/locales/crowdin/js-fil.yml +++ b/config/locales/crowdin/js-fil.yml @@ -61,6 +61,7 @@ fil: single: Pumili ng "%{name}" remove: Alisin ang %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ fil: button_stop_timer: Stop timer button_uncheck_all: I-uncheck lahat button_update: I-update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ fil: description_subwork_package: 'Bata ng work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ fil: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ fil: label_reset: I-reset label_resize_project_menu: Resize project menu label_save_as: I-save bilang + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Pumili ng manunuod... label_selected_filter_list: Napiling mga filter @@ -623,7 +628,7 @@ fil: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ fil: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Pindutin upang magdagdag ng deskripsyon sa kaugnay na ito selection: Pakiusap pumili subject: Ipasok ang paksa dito @@ -806,12 +812,32 @@ fil: sorting_disabled: ang pagsasaayos ay hindi pinagana sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ fil: text_user_wrote: "%{value} isinulat:" text_work_packages_destroy_confirmation: Sigurado ka ba na gusto mong burahin ang napiling work package? time_entry: - stop: Stop title: Ang oras ng tala - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ fil: label_two_factor_authentication: Ang dalwang-Dahilan sa authentication units: child_work_packages: - one: isang bata work package - other: "%{count} work package mga bata" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: Isang araw + one: "%{count} day" other: mga Isang %{count} araw zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index 49c0d08e3198..3a6c5bb1dfde 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -61,6 +61,7 @@ fr: single: Sélectionner «%{name} » remove: Supprimer %{name} autocompleter: + create_label: Create label notFoundText: Aucun élément trouvé placeholder: Saisir pour rechercher project: @@ -162,6 +163,7 @@ fr: button_stop_timer: Arrêter le suivi du temps button_uncheck_all: Tout désélectionner button_update: Mettre à jour + button_view_markdown: View Markdown caption_rate_history: Historique des tarifs card: add_new: Ajouter une nouvelle carte @@ -202,6 +204,7 @@ fr: description_subwork_package: 'Enfant du lot de travaux #%{id}' editor: ckeditor_error: Une erreur s'est produite dans CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'L''enregistrement du document a échoué en raison de l''erreur suivante : %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ fr: ical_sharing_modal: copy_url_label: Copier l'URL description: Vous pouvez utiliser l'URL (iCalendar) pour vous abonner à ce calendrier dans un client externe et afficher les informations mises à jour du lot de travaux à partir de là. - ical_generation_error_text: Une erreur s'est produite lors de la génération de l'URL du calendrier. - inital_setup_error_message: Une erreur est survenue lors de la récupération des données. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: L'adresse URL « %{name} » a été copiée avec succès dans votre presse-papiers. Collez-la dans votre client de calendrier pour compléter l'abonnement. title: S'abonner au calendrier token_name_description_text: Si vous vous abonnez à ce calendrier à partir de plusieurs appareils, ce nom vous permettra de les distinguer dans votre liste de jetons d'accès. @@ -551,6 +554,8 @@ fr: label_reset: Réinitialiser label_resize_project_menu: Redimensionner le menu du projet label_save_as: Enregistrer sous + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Rechercher une colonne label_select_watcher: Sélectionner un observateur... label_selected_filter_list: Filtres sélectionnés @@ -623,8 +628,8 @@ fr: notifications: center: and_more_users: - one: et 1 autre personne - other: et %{count} autres personnes + one: and %{count} other + other: and %{count} others empty_state: no_notification: Il semble que vous êtes à jour. no_notification_for_filter: Il semble que vous êtes à jour pour ce filtre. @@ -720,6 +725,7 @@ fr: placeholders: default: "-" description: 'Description : Cliquez pour modifier...' + description_double_click: 'Description: Double click to edit...' relation_description: Cliquez pour ajouter une description à cette relation selection: Veuillez sélectionner subject: Saisir l'objet ici @@ -806,12 +812,32 @@ fr: sorting_disabled: le tri est désactivé sortable_lists: announcements: + batch_too_large: Impossible de déplacer %{count} éléments à la fois. Sélectionnez-en au maximum %{max}. fallback_item_label: Élément fallback_list_name: une autre liste move_failed_check_position: Le déplacement a échoué. Vérifiez la position actuelle de l'élément. + move_failed_check_positions_batch: + other: Échec du déplacement. Vérifiez les positions actuelles des éléments. move_failed_rolled_back: Le déplacement a échoué. %{label} est revenu à sa position précédente. + move_failed_rolled_back_batch: + other: Échec du déplacement. %{count} éléments ont retrouvé leurs positions précédentes. moved: "%{label} a été déplacé à la position %{position} sur %{total}" + moved_batch: + other: "%{count} éléments déplacés aux positions %{first} à %{last} sur %{total}" + moved_batch_to_list: + other: "%{count} éléments déplacés vers %{list}, aux positions %{first} à %{last} sur %{total}" moved_to_list: "%{label} a été déplacé vers %{list}, à la position %{position} sur %{total}" + selection: + cleared: Sélection effacée. + not_selectable: Sélection inchangée. Cet élément n'est pas pris en compte dans l'ordre de cette liste. + range_blocked: Sélection inchangée. Cette plage contient un élément qui n'est pas pris en compte dans l'ordre de cette liste. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Sélection inchangée. Dépliez cette liste pour sélectionner cette plage. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Fermer la fenêtre modale @@ -825,9 +851,7 @@ fr: text_user_wrote: "%{value} a écrit :" text_work_packages_destroy_confirmation: Voulez-vous vraiment supprimer le(s) lot(s) de travaux sélectionné(s) ? time_entry: - stop: Arrêter title: Consigner du temps - tracking: Suivi du temps work_package_required: Nécessite d'abord la sélection d'un lot de travaux. timer: button_stop: Arrêter le suivi du temps actuel @@ -862,20 +886,20 @@ fr: label_two_factor_authentication: Authentification à deux facteurs units: child_work_packages: - one: un lot de travaux enfant - other: "%{count} lots de travaux enfants" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 jour + one: "%{count} day" other: "%{count} jours" zero: 0 jour hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 mot - other: "%{count} mots" + one: "%{count} word" + other: "%{count} words" workPackage: one: lot de travaux other: lots de travaux diff --git a/config/locales/crowdin/js-he.yml b/config/locales/crowdin/js-he.yml index b32fa5200b8f..c2b99d3c6735 100644 --- a/config/locales/crowdin/js-he.yml +++ b/config/locales/crowdin/js-he.yml @@ -61,6 +61,7 @@ he: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ he: button_stop_timer: Stop timer button_uncheck_all: נקה הכל button_update: עדכון + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ he: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ he: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ he: label_reset: איפוס label_resize_project_menu: Resize project menu label_save_as: שמירה בשם + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: בחר צופה... label_selected_filter_list: 'מסננים נבחרים: %s' @@ -623,7 +628,7 @@ he: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other two: and %{count} others other: and %{count} others empty_state: @@ -721,6 +726,7 @@ he: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: אנא בחר subject: Enter subject here @@ -807,12 +813,34 @@ he: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + two: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + two: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -826,9 +854,7 @@ he: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: נרשם ביומן - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -863,20 +889,20 @@ he: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" two: "%{count} work package children" other: "%{count} work package children" day: - one: יום אחד + one: "%{count} day" other: "%{count} ימים" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" two: "%{count} words" other: "%{count} words" workPackage: diff --git a/config/locales/crowdin/js-hi.yml b/config/locales/crowdin/js-hi.yml index 6e86bee1ae61..30b662dd1247 100644 --- a/config/locales/crowdin/js-hi.yml +++ b/config/locales/crowdin/js-hi.yml @@ -61,6 +61,7 @@ hi: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ hi: button_stop_timer: Stop timer button_uncheck_all: सभी अचयनित करें button_update: अद्यतन करें + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ hi: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'दस्तावेज़ को सहेजना निम्न त्रुटि के साथ विफल हुआ: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ hi: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ hi: label_reset: रीसेट करें label_resize_project_menu: Resize project menu label_save_as: के रूप में सहेजें... + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: एक द्रष्टा का चयन करें.. label_selected_filter_list: चयनित फ़िल्टर्स @@ -623,7 +628,7 @@ hi: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ hi: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: कृपया चयन करें subject: Enter subject here @@ -806,12 +812,32 @@ hi: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ hi: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: लॉग समय - tracking: समय ट्रैकिंग work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ hi: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 दिन + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-hr.yml b/config/locales/crowdin/js-hr.yml index cb12a5b4b38c..b383b20a7e58 100644 --- a/config/locales/crowdin/js-hr.yml +++ b/config/locales/crowdin/js-hr.yml @@ -61,6 +61,7 @@ hr: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ hr: button_stop_timer: Stop timer button_uncheck_all: Nemoj odabrati sve button_update: Ažuriraj + button_view_markdown: View Markdown caption_rate_history: Povijest satnica card: add_new: Add new card @@ -202,6 +204,7 @@ hr: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ hr: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ hr: label_reset: Resetiraj label_resize_project_menu: Resize project menu label_save_as: Spremiti kao + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Odaberite nadglednika... label_selected_filter_list: Odabrani filteri @@ -623,7 +628,7 @@ hr: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other few: and %{count} others other: and %{count} others empty_state: @@ -721,6 +726,7 @@ hr: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Molimo odaberite subject: Enter subject here @@ -807,12 +813,34 @@ hr: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -826,9 +854,7 @@ hr: text_user_wrote: "%{value} je napisao:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Vrijeme pristupa - tracking: Praćenje vremena work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -863,20 +889,20 @@ hr: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" few: "%{count} work package children" other: "%{count} work package children" day: - one: 1 dan + one: "%{count} day" other: "%{count} dana" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" other: "%{count} words" workPackage: diff --git a/config/locales/crowdin/js-hu.yml b/config/locales/crowdin/js-hu.yml index 3c265686b4cc..7389932dd9df 100644 --- a/config/locales/crowdin/js-hu.yml +++ b/config/locales/crowdin/js-hu.yml @@ -61,6 +61,7 @@ hu: single: '"%{name}" kiválasztása' remove: "%{name} törlése" autocompleter: + create_label: Create label notFoundText: Nem található elem placeholder: Gépeljen a kereséshez project: @@ -168,6 +169,7 @@ hu: button_stop_timer: Időzítő leállítása button_uncheck_all: Az összes kijelölés megszüntetése button_update: Frissítés + button_view_markdown: View Markdown caption_rate_history: Díj előzmények card: add_new: Új kártya hozzáadása @@ -214,6 +216,7 @@ hu: ckeditor_error: 'Hiba történt a CKEditorban ' + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'A dokumentum mentése a következő hiba miatt nem sikerült: %{error}' macro: attribute_reference: @@ -374,8 +377,8 @@ hu: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Feliratkozás az iCalendars-ra token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -567,6 +570,8 @@ hu: label_reset: Visszaállít, reset label_resize_project_menu: Resize project menu label_save_as: Mentés másként + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Megfigyelők választása... label_selected_filter_list: Szűrők választása @@ -641,10 +646,8 @@ hu: notifications: center: and_more_users: - one: 'és 1 másik - - ' - other: és %{count} egyéb + one: and %{count} other + other: and %{count} others empty_state: no_notification: Looks like you are all caught up. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -756,6 +759,7 @@ hu: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Kapcsolat leírásának hozzáadása ide kattintva selection: Kérem válasszon subject: Itt adja meg a témát @@ -842,12 +846,32 @@ hu: sorting_disabled: rendezés kikapcsolva sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -861,9 +885,7 @@ hu: text_user_wrote: "%{value} írta:" text_work_packages_destroy_confirmation: Biztosan törli a kijelölt feladatcsoportot? time_entry: - stop: Stop title: Eltöltött idő rögzítése - tracking: Munkaidő követése work_package_required: Először ki kell választania egy munkacsomagot. timer: button_stop: Stop current timer @@ -898,19 +920,19 @@ hu: label_two_factor_authentication: Kétlépcsős hitelesítés units: child_work_packages: - one: egy gyermek munkacsomag - other: "%{count} gyermek feladatcsoport" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 nap + one: "%{count} day" other: "%{count} nap" zero: 0 days hour: - one: 1 óra + one: "%{count} h" other: "%{count} ó" zero: 0 óra hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: munkacsomag diff --git a/config/locales/crowdin/js-hy.yml b/config/locales/crowdin/js-hy.yml index 7ba022b54da6..1024344fe846 100644 --- a/config/locales/crowdin/js-hy.yml +++ b/config/locales/crowdin/js-hy.yml @@ -61,6 +61,7 @@ hy: single: Ընտրել "%{name}" remove: Հեռացնել %{name} autocompleter: + create_label: Create label notFoundText: Տարրեր չեն գտնվել placeholder: Մուտքագրեք որոնելու համար project: @@ -162,6 +163,7 @@ hy: button_stop_timer: Դադարեցնել ժամաչափը button_uncheck_all: Հանել բոլոր նշումները button_update: Թարմացնել + button_view_markdown: View Markdown caption_rate_history: Դրույքի պատմություն card: add_new: Ավելացնել նոր քարտ @@ -202,6 +204,7 @@ hy: description_subwork_package: "#%{id} աշխատանքային փաթեթի ենթատարր" editor: ckeditor_error: CKEditor-ում սխալ է տեղի ունեցել + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: Փաստաթղթի պահպանումը ձախողվեց հետևյալ սխալով՝ %{error} macro: attribute_reference: @@ -358,8 +361,8 @@ hy: ical_sharing_modal: copy_url_label: Պատճենել URL-ը description: Դուք կարող եք օգտագործել URL-ը (iCalendar)՝ արտաքին հաճախորդում այս օրացույցին բաժանորդագրվելու և այնտեղից աշխատանքային փաթեթների արդիական տեղեկությունները դիտելու համար։ - ical_generation_error_text: Օրացույցի URL-ը ստեղծելիս սխալ առաջացավ։ - inital_setup_error_message: Տվյալները ստանալիս սխալ առաջացավ։ + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: '"%{name}" URL-ը հաջողությամբ պատճենվել է Ձեր փոխանակման բուֆերում։ Տեղադրեք այն Ձեր օրացույցի հաճախորդում՝ բաժանորդագրությունն ավարտելու համար։' title: Բաժանորդագրվել օրացույցին token_name_description_text: Եթե այս օրացույցին բաժանորդագրվեք մի քանի սարքից, այս անունը կօգնի Ձեզ տարբերել դրանք Ձեր մուտքի թոքենների ցանկում։ @@ -551,6 +554,8 @@ hy: label_reset: Վերակայել label_resize_project_menu: Փոխել նախագծի ցանկի չափը label_save_as: Պահպանել որպես + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Որոնել սյունակ label_select_watcher: Ընտրեք հետևող... label_selected_filter_list: Ընտրված զտիչներ @@ -623,8 +628,8 @@ hy: notifications: center: and_more_users: - one: և ևս 1 օգտատեր - other: և ևս %{count} օգտատեր + one: and %{count} other + other: and %{count} others empty_state: no_notification: Կարծես թե ամեն ինչ արդեն դիտված է։ no_notification_for_filter: Կարծես թե այս զտիչի համար ամեն ինչ արդեն դիտված է։ @@ -720,6 +725,7 @@ hy: placeholders: default: "-" description: Նկարագրություն՝ սեղմեք խմբագրելու համար... + description_double_click: 'Description: Double click to edit...' relation_description: Սեղմեք՝ այս կապի նկարագրությունն ավելացնելու համար selection: Ընտրեք subject: Մուտքագրեք վերնագիրն այստեղ @@ -806,12 +812,32 @@ hy: sorting_disabled: դասավորումն անջատված է sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Տարր fallback_list_name: մեկ այլ ցանկ move_failed_check_position: Տեղափոխումը ձախողվեց։ Ստուգեք տարրի ընթացիկ դիրքը։ + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Տեղափոխումը ձախողվեց։ %{label} վերադարձավ իր նախորդ դիրքին։ + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} տեղափոխվեց դիրք %{position} %{total}-ից" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} տեղափոխվեց %{list}, դիրք %{position} %{total}-ից" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Փակել պատուհանը @@ -825,9 +851,7 @@ hy: text_user_wrote: "%{value}-ը գրել է՝" text_work_packages_destroy_confirmation: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել ընտրված աշխատանքային փաթեթ(ներ)ը։ time_entry: - stop: Դադարեցնել title: Գրանցել ժամանակ - tracking: Ժամանակի հաշվառում work_package_required: Նախ անհրաժեշտ է ընտրել աշխատանքային փաթեթ։ timer: button_stop: Դադարեցնել ընթացիկ ժամաչափը @@ -862,20 +886,20 @@ hy: label_two_factor_authentication: Երկգործոն նույնականացում units: child_work_packages: - one: մեկ դուստր աշխատանքային փաթեթ - other: "%{count} դուստր աշխատանքային փաթեթ" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 օր + one: "%{count} day" other: "%{count} օր" zero: 0 օր hour: - one: 1 ժ + one: "%{count} h" other: "%{count} ժ" zero: 0 ժ hour_string: "%{hours} ժ" word: - one: 1 բառ - other: "%{count} բառ" + one: "%{count} word" + other: "%{count} words" workPackage: one: աշխատանքային փաթեթ other: աշխատանքային փաթեթ diff --git a/config/locales/crowdin/js-id.yml b/config/locales/crowdin/js-id.yml index 5f7e3f00e85f..320cc7a454ba 100644 --- a/config/locales/crowdin/js-id.yml +++ b/config/locales/crowdin/js-id.yml @@ -61,6 +61,7 @@ id: single: Pilih "%{name}" remove: Hapus %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ id: button_stop_timer: Stop timer button_uncheck_all: Uncek semua button_update: Update + button_view_markdown: View Markdown caption_rate_history: Histori rate card: add_new: Add new card @@ -202,6 +204,7 @@ id: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ id: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ id: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Simpan sebagai + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Pilih pemantau... label_selected_filter_list: Filter terpilih @@ -719,6 +724,7 @@ id: placeholders: default: Hapus nilai description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Silakan pilih subject: Masukkan subjek di sini @@ -805,12 +811,30 @@ id: sorting_disabled: pengurutan dinonaktifkan sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -824,9 +848,7 @@ id: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Yakin akan menghapus? time_entry: - stop: Stop title: Catatan waktu - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -861,13 +883,13 @@ id: label_two_factor_authentication: Autentikasi dua faktor units: child_work_packages: - other: Paket kerja %{count} turunan + other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} hari" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" diff --git a/config/locales/crowdin/js-it.yml b/config/locales/crowdin/js-it.yml index 1931d5e7b043..7899fa55e82f 100644 --- a/config/locales/crowdin/js-it.yml +++ b/config/locales/crowdin/js-it.yml @@ -61,6 +61,7 @@ it: single: Seleziona "%{name}" remove: Rimuovi %{name} autocompleter: + create_label: Create label notFoundText: Nessun elemento trovato placeholder: Digita per cercare project: @@ -162,6 +163,7 @@ it: button_stop_timer: Ferma il timer button_uncheck_all: Deseleziona tutti button_update: Aggiorna + button_view_markdown: View Markdown caption_rate_history: Cronologia tariffe card: add_new: Aggiungi una nuova carta @@ -202,6 +204,7 @@ it: description_subwork_package: 'Subordinata alla macro-attività #%{id}' editor: ckeditor_error: Si è verificato un errore all'interno di CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Il salvataggio del documento è fallito con il seguente errore: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ it: ical_sharing_modal: copy_url_label: Copia URL description: Puoi utilizzare l'URL (iCalendar) per iscriverti a questo calendario su un client esterno e per visualizzare le informazioni sul pacchetto di lavoro aggiornate da lì. - ical_generation_error_text: Si è verificato un errore nella creazione dell'URL del calendario. - inital_setup_error_message: Si è verificato un errore recuperando i dati. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: L'URL "%{name}" è stato copiato con successo negli appunti. Incollalo nel tuo client di calendario per completare l'iscrizione. title: Iscriviti al calendario token_name_description_text: Se ti iscrivi a questo calendario da più dispositivi, questo nome ti aiuterà a distinguerli nel tuo elenco di token di accesso. @@ -551,6 +554,8 @@ it: label_reset: Reimposta label_resize_project_menu: Ridimensiona il menu del progetto label_save_as: Salva come + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Cerca una colonna label_select_watcher: Seleziona un osservatore... label_selected_filter_list: Filtri selezionati @@ -623,8 +628,8 @@ it: notifications: center: and_more_users: - one: e 1 altro - other: e altri %{count} + one: and %{count} other + other: and %{count} others empty_state: no_notification: Sembra che siate tutti coinvolti. no_notification_for_filter: A quanto pare ti piace molto questo filtro. @@ -720,6 +725,7 @@ it: placeholders: default: "-" description: 'Descrizione: Clicca per modificare...' + description_double_click: 'Description: Double click to edit...' relation_description: Clicca per aggiungere una descrizione per la relazione selection: Si prega di selezionare subject: Inserisci l'oggetto qui @@ -806,12 +812,32 @@ it: sorting_disabled: ordinamento disabilitato sortable_lists: announcements: + batch_too_large: Non è possibile spostare %{count} elementi alla volta. Selezionane al massimo %{max}. fallback_item_label: Elemento fallback_list_name: un'altra lista move_failed_check_position: Spostamento non riuscito. Verifica la posizione attuale dell'elemento. + move_failed_check_positions_batch: + other: Spostamento non riuscito. Controlla le posizioni attuali degli elementi. move_failed_rolled_back: Spostamento non riuscito. %{label} è tornato alla posizione precedente. + move_failed_rolled_back_batch: + other: Spostamento non riuscito. %{count} elementi sono tornati alle posizioni precedenti. moved: "%{label} spostato in posizione %{position} di %{total}" + moved_batch: + other: "%{count} elementi spostati nelle posizioni da %{first} a %{last} di %{total}" + moved_batch_to_list: + other: "%{count} elementi spostati in %{list}, nelle posizioni da %{first} a %{last} di %{total}" moved_to_list: "%{label} spostato in %{list}, posizione %{position} di %{total}" + selection: + cleared: Selezione azzerata. + not_selectable: Selezione invariata. Questo elemento non partecipa all'ordinamento di questo elenco. + range_blocked: Selezione invariata. L'intervallo contiene un elemento che non partecipa all'ordinamento di questo elenco. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selezione invariata. Espandi questo elenco per selezionare l'intervallo. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Chiusura modale @@ -825,9 +851,7 @@ it: text_user_wrote: "%{value} ha scritto:" text_work_packages_destroy_confirmation: Sei sicuro di che voler eliminare le/le macro-attività selezionata/e? time_entry: - stop: Interrompi title: Registra l'orario effettuato - tracking: Monitoraggio tempi work_package_required: Richiede prima di selezionare una macro-attività. timer: button_stop: Interrompi il timer corrente @@ -862,20 +886,20 @@ it: label_two_factor_authentication: Autenticazione a due fattori units: child_work_packages: - one: una macro-attività subordinata - other: "%{count} macro-attività subordinate" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 giorno + one: "%{count} day" other: "%{count} giorni" zero: 0 giorni hour: - one: 1 o + one: "%{count} h" other: "%{count} o" zero: 0 o hour_string: "%{hours} h" word: - one: 1 parola - other: "%{count} parole" + one: "%{count} word" + other: "%{count} words" workPackage: one: macro-attività other: macro-attività diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index 44fb41d64e79..8c64114407c2 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -30,11 +30,11 @@ ja: warning_progress_calculation_mode_change_from_status_to_field_html: 進捗計算モードをステータスベースからワークベースに変更すると、「完了率」フィールドが自由に編集できるようになります。オプションで「作業」または「残作業」の値を入力した場合、それらは「完了率」にもリンクされます。残りの作業量を変更すると、完了率が更新されます。 working_days: add_non_working_day: 休業日を追加 - already_added_error: この日付の非作業日はすでに存在します。それぞれの日付に1つの非作業日が作成されます。 + already_added_error: この日付の非営業日はすでに存在します。一意の日付に対して作成できる非営業日は1つだけです。 calendar: empty_state_description: 休業日が定義されていません。「休業日を追加」ボタンをクリックして日付を追加してください。 empty_state_header: 休業日 - new_date: "(新規)" + new_date: "(新)" ajax: hide: 非表示 loading: 読み込み中… @@ -47,12 +47,12 @@ ja: draggable_hint: | 埋め込み画像または添付ファイルをエディタにドラッグします。 ドラッグしつづけると閉じているエディタ領域が開きます。 - quarantined_hint: ウイルスが発見されたように、ファイルは隔離されています。ダウンロードできません。 + quarantined_hint: ウイルスが発見されたため,ファイルは隔離されています。ダウンロードできません。 autocomplete_ng_select: - add_tag: アイテムを追加 + add_tag: 項目を追加 clear_all: すべてクリア loading: 読み込み中... - not_found: アイテムが見つかりません + not_found: 見つかりませんでした type_to_search: 検索キーワードを入力 autocomplete_select: active: アクティブ %{label} %{name} @@ -61,6 +61,7 @@ ja: single: '"%{name}" を選択' remove: "%{name} を削除" autocompleter: + create_label: Create label notFoundText: 見つかりませんでした placeholder: 検索キーワードを入力 project: @@ -93,7 +94,7 @@ ja: none: "-" yesterday: 昨日 from: From - header_description: 過去のいずれかの時点からこのリストに加えられた変更を強調する。 + header_description: 過去の選択した時点からこのリストに加えられた変更をハイライト help_description: ベースラインの基準タイムゾーン。 icon_tooltip: added: 比較対象期間内の表示に追加 @@ -118,7 +119,7 @@ ja: button_back: 戻る button_back_to_list_view: リスト表示に戻る button_cancel: キャンセル - button_change_project: 別のプロジェクトに移動 + button_change_project: 他のプロジェクトに移る button_check_all: 全てを選択 button_clear: Clear button_close: 閉じる @@ -131,7 +132,7 @@ ja: button_copy_link_to_clipboard: クリップボードにリンクをコピー button_copy_numeric_id_to_clipboard: Copy numeric ID to clipboard button_copy_to_clipboard: クリップボードにコピー - button_copy_to_other_project: 別のプロジェクトで複製 + button_copy_to_other_project: 別のプロジェクトで複製する button_create: 作成 button_custom-fields: カスタムフィールド button_delete: 削除 @@ -142,7 +143,7 @@ ja: button_expand_all: 全てを展開 button_export-atom: Atomをダウンロード button_filter: フィルタ - button_generate_pdf: PDFを生成 + button_generate_pdf: PDF作成 button_list_view: 一覧表示 button_log_time: 時間を記録 button_more: 続き @@ -156,12 +157,13 @@ ja: button_show_fullscreen: 全画面表示 button_show_gantt: ガントビューを表示 button_show_list: リストビュー表示 - button_show_table: テーブルビューを表示 + button_show_table: テーブル表示 button_show_view: 全画面表示 button_start_timer: Start timer button_stop_timer: タイマー停止 button_uncheck_all: 全てを選択解除 button_update: 更新 + button_view_markdown: View Markdown caption_rate_history: 単価設定(予算とコスト) card: add_new: 新規カード追加 @@ -202,6 +204,7 @@ ja: description_subwork_package: 'ワークパッケージの子 #%{id}' editor: ckeditor_error: CKEditor内でエラーが発生しました + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: '次のエラーで文書を保存するのに失敗しました: %{error}' macro: attribute_reference: @@ -210,7 +213,7 @@ ja: aria_label_work_package_attribute: A dynamic work package attribute placed using a macro. aria_label_work_package_link: A dynamic link to a work package placed using a macro. invalid_attribute: 選択した属性 '%{name}' は存在しません。 - nested_macro: このマクロは %{model} %{id} を再帰的に参照しています。 + nested_macro: このマクロは %{model} %{id}を再帰的に参照している。 not_found: 要求されたリソースが見つかりませんでした child_pages: button: List of sub-pages @@ -254,9 +257,9 @@ ja: mode: manual: Markdownソースに切り替える wysiwyg: WYSIWYGエディタに切り替えます - no_revisions: ローカルの変更は見つかりませんでした + no_revisions: ローカルでの修正は見つからず preview: プレビューモードの切り替え - revisions: ローカルの変更を表示 + revisions: ローカルの修正を表示 source_code: Markdown ソースモードの切り替え enumeration_activities: 作業分類 (時間の追跡) enumeration_doc_categories: ドキュメントのカテゴリ @@ -354,18 +357,18 @@ ja: general: エラーが発生しました。 update_conflict_refresh: リソースを更新して最新のバージョンに更新するには、ここをクリックしてください。 help_texts: - show_modal: ヘルプテキストを表示 + show_modal: ヘルプテキストを表示する ical_sharing_modal: copy_url_label: URLをコピー - description: URL(iCalendar)を使って外部クライアントでこのカレンダーを購読し、そこから最新のワークパッケージ情報を見ることができます。 - ical_generation_error_text: カレンダー URL の生成中にエラーが発生しました。 - inital_setup_error_message: データ取得中にエラーが発生しました。 - success_message: URL "%{name}" は正常にクリップボードにコピーされました。サブスクリプションを完了するためにカレンダークライアントに貼り付けてください。 + description: URL(iCalendar)を使用して、外部クライアントでこのカレンダーを購読し、そこから最新のワークパッケージ情報を表示することができます。 + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. + success_message: URL "%{name}" がクリップボードにコピーされました。カレンダークライアントに貼り付けて購読を完了してください。 title: カレンダーを購読する token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. - token_name_label: どこで使うのですか? + token_name_label: どこで使うのですか?? token_name_placeholder: 名前を入力してください。例:"電話" - warning: このURLを他のユーザーと共有しないでください。このリンクがあれば、誰でもアカウントやパスワードなしでワークパッケージの詳細を見ることができます。 + warning: このURLを他のユーザーと共有しないでください。このリンクを持つ誰でもアカウントやパスワードなしでワークパッケージの詳細を表示することができます。 include_projects: apply: 適用 clear_selection: 選択をクリア @@ -420,7 +423,7 @@ ja: label_add_row_before: 前に行を追加 label_add_selected_columns: 選択した列を追加 label_added_by: 追加した人 - label_added_time_by: %{author} が %{age} に追加しました + label_added_time_by: 追加 %{author} %{age} label_ago: "○日前" label_all: 全て label_all_projects: すべてのプロジェクト @@ -551,7 +554,9 @@ ja: label_reset: リセット label_resize_project_menu: Resize project menu label_save_as: 名前をつけて保存 - label_search_columns: 列を検索 + label_scroll_left: Scroll left + label_scroll_right: Scroll right + label_search_columns: 列を検索する label_select_watcher: ウォッチャーを選択... label_selected_filter_list: 選択されたフィルタ label_show_attributes: すべての属性を表示 @@ -593,8 +598,8 @@ ja: label_watcher_added_successfully: ウォッチャーが正常に追加されました ! label_watcher_deleted_successfully: ウォッチャーが正常に削除されました ! label_work_package: ワーク パッケージ - label_work_package_context_menu: ワークパッケージのコンテキスト メニュー - label_work_package_details_you_are_here: あなたは %{tab} %{type} %{subject} のタブにいます。 + label_work_package_context_menu: ワークパッケージのコンテキストメニュー + label_work_package_details_you_are_here: あなたは %{type} %{subject}の %{tab} タブを表示しています。 label_work_package_parent: 親のワークパッケージ label_work_package_plural: ワークパッケージ label_work_package_upload_notification: 'ワークパッケージ#%{id}: %{subject} 用ファイルをアップロード中' @@ -623,7 +628,7 @@ ja: notifications: center: and_more_users: - other: と %{count} その他 + other: and %{count} others empty_state: no_notification: もう追いついたようだね。 no_notification_for_filter: どうやら、このフィルターにすべて引っかかったようだ。 @@ -683,7 +688,7 @@ ja: lists_kanban: ここでは、ボード内に複数のリスト(列)を作成することができます。この機能により、例えば、カンバンボードを作成することができます。 overview: "ボードを選択してビューをシフトし、アジャイルボードビューを使ってプロジェクトを管理する。" help_menu: ヘルプ(?)メニューは、その他のヘルプリソースを提供します。ここでは、ユーザーガイド、役立つハウツービデオなどを見つけることができます。
OpenProjectでの作業をお楽しみください! - members: 新しい メンバー をプロジェクトに招待します。 + members: 新しいメンバーをプロジェクトに招待する。 quick_add_button: ヘッダーナビゲーションにあるプラス(+)アイコンをクリックして、新規プロジェクトを作成したり、同僚を招待したりできます。 sidebar_arrow: プロジェクトのメインメニューに戻るには、左上の矢印を使います。 team_planner: @@ -713,19 +718,20 @@ ja: page_navigation: ページネーション・ナビゲーション pages: page_number: ページ %{number} - show_per_page: ページあたり %{number} を表示 - pages_skipped: ページがスキップされました。 + show_per_page: ページごとに %{number} + pages_skipped: ページスキップ。 per_page_navigation: ページ毎のアイテム選択 placeholders: default: "-" description: 説明クリックして編集... + description_double_click: 'Description: Double click to edit...' relation_description: クリックしてこの関係に説明を追加 selection: 選択してください subject: ここにタイトルを入力します project: autocompleter: label: プロジェクト名の入力補完 - click_to_switch_to_project: 'プロジェクト: %{projectname}' + click_to_switch_to_project: プロジェクト: %{projectname} context: プロジェクトのコンテキスト not_available: プロジェクトなし required_outside_context: 'ワークパッケージを作成するプロジェクトを選択して、すべての属性を確認してください。 上記で有効になっているタイプのプロジェクトのみ選択できます。 @@ -805,12 +811,30 @@ ja: sorting_disabled: 並べ替えは無効です sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: モーダルを閉じる @@ -824,9 +848,7 @@ ja: text_user_wrote: "%{value} が書き込みました:" text_work_packages_destroy_confirmation: 選択したワークパッケージを削除してもよろしいですか? time_entry: - stop: ストップ title: 時間を記録 - tracking: 作業時間の記録 work_package_required: 最初にワークパッケージを選択する必要があります。 timer: button_stop: 現在のタイマーを停止する @@ -861,13 +883,13 @@ ja: label_two_factor_authentication: 2要素認証 units: child_work_packages: - other: "%{count} の子ワークパッケージ" + other: "%{count} work package children" day: - one: 1日 + one: "%{count} day" other: "%{count} 日間" zero: 0日 hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" diff --git a/config/locales/crowdin/js-ka.yml b/config/locales/crowdin/js-ka.yml index 3d1b93a26f27..16854257e70b 100644 --- a/config/locales/crowdin/js-ka.yml +++ b/config/locales/crowdin/js-ka.yml @@ -61,6 +61,7 @@ ka: single: Select "%{name}" remove: "%{name}-ის წაშლა" autocompleter: + create_label: Create label notFoundText: ელემენტები ვერ ვიპოვე placeholder: მოსაძებნად აკრიფეთ project: @@ -162,6 +163,7 @@ ka: button_stop_timer: Stop timer button_uncheck_all: ყველა მონიშვნის მოხსნა button_update: განახლება + button_view_markdown: View Markdown caption_rate_history: ტარიფის ისტორია card: add_new: ახალი ბარათის დამატება @@ -202,6 +204,7 @@ ka: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ka: ical_sharing_modal: copy_url_label: ბმულის კოპირება description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ka: label_reset: ჩამოყრა label_resize_project_menu: Resize project menu label_save_as: შენახვა, როგორც + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,8 +628,8 @@ ka: notifications: center: and_more_users: - one: და კიდევ 1 - other: და კიდევ %{count} + one: and %{count} other + other: and %{count} others empty_state: no_notification: Looks like you are all caught up. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -720,6 +725,7 @@ ka: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: გთხოვთ, აირჩიეთ subject: Enter subject here @@ -806,12 +812,32 @@ ka: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ ka: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: გაჩერება title: ჟურნალში დროის ჩაწერა - tracking: დროის ტრეკინგი work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ ka: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 დღე + one: "%{count} day" other: "%{count} დღე" zero: 0 დღე hour: - one: 1 სთ + one: "%{count} h" other: "%{count} სთ" zero: 0 სთ hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: სამუშაო პაკეტი diff --git a/config/locales/crowdin/js-kk.yml b/config/locales/crowdin/js-kk.yml index 919b21b05b6e..8265a49cb39a 100644 --- a/config/locales/crowdin/js-kk.yml +++ b/config/locales/crowdin/js-kk.yml @@ -61,6 +61,7 @@ kk: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ kk: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Жаңарту + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ kk: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ kk: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ kk: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ kk: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ kk: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ kk: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ kk: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ kk: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-ko.yml b/config/locales/crowdin/js-ko.yml index 3b429ef8d034..e1f7e263981c 100644 --- a/config/locales/crowdin/js-ko.yml +++ b/config/locales/crowdin/js-ko.yml @@ -61,6 +61,7 @@ ko: single: '"%{name}" 선택' remove: "%{name} 삭제" autocompleter: + create_label: Create label notFoundText: 항목 없음 placeholder: 검색할 유형 project: @@ -162,6 +163,7 @@ ko: button_stop_timer: 타이머 중지 button_uncheck_all: 모두 선택 취소 button_update: 업데이트 + button_view_markdown: View Markdown caption_rate_history: 요금 기록 card: add_new: 새로운 카드를 추가하다 @@ -202,6 +204,7 @@ ko: description_subwork_package: '작업 패키지 #%{id}의 자식' editor: ckeditor_error: CKEditor에서 오류가 발생했습니다 + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: '다음 오류로 인해 문서를 저장하지 못했습니다: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ko: ical_sharing_modal: copy_url_label: URL 복사 description: URL(iCalendar)을 사용하여 외부 클라이언트에서 이 캘린더를 구독하고 여기에서 최신 작업 패키지 정보를 볼 수 있습니다. - ical_generation_error_text: 캘린더 URL을 생성하는 중에 오류가 발생했습니다. - inital_setup_error_message: 데이터를 가져오는 중에 오류가 발생했습니다. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: '"%{name}" URL이 클립보드에 복사되었습니다. 구독을 완료하려면 캘린더 클라이언트에 붙여넣으세요.' title: 캘린더 구독 token_name_description_text: 여러 장치에서 이 캘린더를 구독하는 경우 이 이름은 액세스 토큰 목록에서 장치를 구분하는 데 도움이 됩니다. @@ -551,6 +554,8 @@ ko: label_reset: 재설정 label_resize_project_menu: 프로젝트 메뉴 크기 조정 label_save_as: 다른 이름으로 저장 + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: 열 검색 label_select_watcher: 주시하는 사람을 선택 label_selected_filter_list: 선택된 필터 @@ -623,7 +628,7 @@ ko: notifications: center: and_more_users: - other: 외 %{count}건 + other: and %{count} others empty_state: no_notification: 모두 확인하신 것 같습니다. no_notification_for_filter: 이 필터에 대한 모든 알림을 본 것 같습니다. @@ -719,6 +724,7 @@ ko: placeholders: default: "-" description: '설명: 클릭하여 편집...' + description_double_click: 'Description: Double click to edit...' relation_description: 이 관계에 대한 설명을 추가하려면 클릭 selection: 선택하십시오 subject: 여기에 제목 입력 @@ -805,12 +811,30 @@ ko: sorting_disabled: 정렬이 불가능합니다 sortable_lists: announcements: + batch_too_large: "%{count}개 항목을 한 번에 이동할 수 없습니다. %{max}개까지만 선택하세요." fallback_item_label: 항목 fallback_list_name: 다른 목록 move_failed_check_position: 이동하지 못했습니다. 항목의 현재 위치를 확인하세요. + move_failed_check_positions_batch: + other: 이동하지 못했습니다. 항목의 현재 위치를 확인하세요. move_failed_rolled_back: 이동하지 못했습니다. %{label}이(가) 이전 위치로 돌아갔습니다. + move_failed_rolled_back_batch: + other: 이동하지 못했습니다. %{count}개 항목이 이전 위치로 돌아갔습니다. moved: "%{label}이(가) %{total}개 중 %{position} 위치로 이동됨" + moved_batch: + other: "%{count}개 항목이 %{total}개 중 %{first} ~ %{last} 위치로 이동됨" + moved_batch_to_list: + other: "%{count}개 항목이 %{list}(으)로 이동됨, 위치 %{first} ~ %{last}/%{total}" moved_to_list: "%{label}이(가) %{list}(으)로 이동됨, 위치 %{position}/%{total}" + selection: + cleared: 선택 항목이 지워졌습니다. + not_selectable: 선택 항목이 변경되지 않았습니다. 이 항목은 해당 목록의 순서 지정에 영향을 미치지 않습니다. + range_blocked: 선택 항목이 변경되지 않았습니다. 해당 범위에는 이 목록의 순서 지정에 영향을 미치지 않는 항목이 포함되어 있습니다. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: 선택 항목이 변경되지 않았습니다. 이 목록을 확장하여 해당 범위를 선택하세요. + selected: + other: "%{count} items selected." spot: drop_modal: close: 모달 닫기 @@ -824,9 +848,7 @@ ko: text_user_wrote: "%{value}이(가) 작성함:" text_work_packages_destroy_confirmation: 선택한 작업 패키지를 삭제하시겠습니까? time_entry: - stop: 중지 title: 작업시간 기록 - tracking: 시간 추적 work_package_required: 먼저 작업 패키지를 선택해야 합니다. timer: button_stop: 현재 타이머 중지 @@ -861,18 +883,18 @@ ko: label_two_factor_authentication: 2단계 인증 units: child_work_packages: - other: "%{count}개의 작업 패키지 자식" + other: "%{count} work package children" day: - one: 1일 + one: "%{count} day" other: "%{count}일" zero: 0일 hour: - one: 1시간 + one: "%{count} h" other: "%{count}시간" zero: 0 h hour_string: "%{hours}시간" word: - other: 단어 %{count}개 + other: "%{count} words" workPackage: other: 작업 패키지 upsell: diff --git a/config/locales/crowdin/js-li.yml b/config/locales/crowdin/js-li.yml index 881baa07436a..4cebc16b21dc 100644 --- a/config/locales/crowdin/js-li.yml +++ b/config/locales/crowdin/js-li.yml @@ -61,6 +61,7 @@ li: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ li: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Beejwerke + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ li: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ li: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ li: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ li: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ li: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ li: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ li: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ li: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 daag + one: "%{count} day" other: "%{count} daag" zero: 0 daag hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-lt.yml b/config/locales/crowdin/js-lt.yml index 10002208a2f6..dd33483121c1 100644 --- a/config/locales/crowdin/js-lt.yml +++ b/config/locales/crowdin/js-lt.yml @@ -61,6 +61,7 @@ lt: single: Pažymėti „%{name}“ remove: Pašalinti %{name} autocompleter: + create_label: Create label notFoundText: Nieko nerasta placeholder: Paieškai pradėkite rinkti tekstą project: @@ -162,6 +163,7 @@ lt: button_stop_timer: Stop timer button_uncheck_all: Atžymėti visus button_update: Atnaujinti + button_view_markdown: View Markdown caption_rate_history: Koeficiento istorija card: add_new: Pridėti naują kortelę @@ -202,6 +204,7 @@ lt: description_subwork_package: 'Darbų paketo vaikas #%{id}' editor: ckeditor_error: CKEditor'iuje įvyko klaida + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Dokumento išsaugoti nepavyko. Klaida: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ lt: ical_sharing_modal: copy_url_label: Kopijuoti URL description: Jūs galite naudoti URL (iCalendar), kad prenumeruotumėte šį kalendorių išoriniame kliente ir žiūrėti naujausią darbo paketų informaciją. - ical_generation_error_text: Kuriant kalendoriaus URL įvyko klaida. - inital_setup_error_message: Gaunant duomenis įvyko klaida. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL „%{name}“ buvo sėkmingai nukopijuotas į jūsų iškarpinę. Įkelkite jį į jūsų kalendoriaus klientą, kad baigtumėte prenumeratą. title: Prenumeruoti kalendorių token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ lt: label_reset: Atstatyti label_resize_project_menu: Resize project menu label_save_as: Įrašyti kaip + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Ieškoti stulpelio label_select_watcher: Parinkti stebėtoją... label_selected_filter_list: Parinkti filtrus @@ -623,10 +628,10 @@ lt: notifications: center: and_more_users: - one: ir dar 1 - few: ir dar %{count} - many: ir dar %{count} - other: ir dar %{count} + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others empty_state: no_notification: Panašu, kad jūs pilnai pasivijote. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -722,6 +727,7 @@ lt: placeholders: default: "-" description: 'Aprašymas: spauskite, kad keistumėte...' + description_double_click: 'Description: Double click to edit...' relation_description: Paspauskite, kad pridėtumėte šio ryšio aprašymą selection: Prašome pasirinkti subject: Įveskite temą čia @@ -808,12 +814,36 @@ lt: sorting_disabled: rikiavimas išjungtas sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -827,9 +857,7 @@ lt: text_user_wrote: "%{value} parašė:" text_work_packages_destroy_confirmation: Ar tikrai norite ištrinti pasirinktus(-ą) darbų paketus(-ą)? time_entry: - stop: Stabdyti title: Registruoti laiką - tracking: Laiko apskaita work_package_required: Reikia pirma pasirinkti darbo paketą. timer: button_stop: Stabdyti dabartinį laikmatį @@ -864,21 +892,21 @@ lt: label_two_factor_authentication: Dviejų veiksnių autentifikavimas units: child_work_packages: - one: vieno vaiko darbų paketas - few: "%{count} darbo paketo vaikai" - many: "%{count} darbo paketo vaikų" - other: "%{count} darbų paketo vaikai" + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 dieną + one: "%{count} day" other: "%{count} dienas (-ą, -ų)" zero: 0 dienų hour: - one: 1 val + one: "%{count} h" other: "%{count} val" zero: 0 val hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" many: "%{count} words" other: "%{count} words" diff --git a/config/locales/crowdin/js-lv.yml b/config/locales/crowdin/js-lv.yml index 386e89a9524d..6902dff1e937 100644 --- a/config/locales/crowdin/js-lv.yml +++ b/config/locales/crowdin/js-lv.yml @@ -61,6 +61,7 @@ lv: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ lv: button_stop_timer: Stop timer button_uncheck_all: Noņemt visus button_update: Atjaunot + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ lv: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ lv: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ lv: label_reset: Atjaunot label_resize_project_menu: Resize project menu label_save_as: Saglabāt kā + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Atlasītajiem filtriem @@ -624,7 +629,7 @@ lv: center: and_more_users: zero: and %{count} others - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -721,6 +726,7 @@ lv: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Lūdzu, atlasiet subject: Enter subject here @@ -807,12 +813,34 @@ lv: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + zero: Could not extend the range. %{count} items selected. + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + zero: "%{count} items selected." + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -826,9 +854,7 @@ lv: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Laika uzskaite work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -864,20 +890,20 @@ lv: units: child_work_packages: zero: "%{count} work package children" - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 dienas + one: "%{count} day" other: "%{count} dienām" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: zero: "%{count} words" - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: zero: work packages diff --git a/config/locales/crowdin/js-mn.yml b/config/locales/crowdin/js-mn.yml index 1eb8ce3325e3..210bff62b976 100644 --- a/config/locales/crowdin/js-mn.yml +++ b/config/locales/crowdin/js-mn.yml @@ -61,6 +61,7 @@ mn: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ mn: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Шинэчлэх + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ mn: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ mn: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ mn: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ mn: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ mn: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ mn: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ mn: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ mn: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-ms.yml b/config/locales/crowdin/js-ms.yml index 064c9c21f400..75c147ea8cc8 100644 --- a/config/locales/crowdin/js-ms.yml +++ b/config/locales/crowdin/js-ms.yml @@ -61,6 +61,7 @@ ms: single: Pilih "%{name}" remove: Keluarkan %{name} autocompleter: + create_label: Create label notFoundText: Tiada item ditemui placeholder: Taip untuk cari project: @@ -162,6 +163,7 @@ ms: button_stop_timer: Stop timer button_uncheck_all: Batalkan semua pilihan button_update: Kemas kini + button_view_markdown: View Markdown caption_rate_history: Sejarah kadar card: add_new: Tambah kad baharu @@ -202,6 +204,7 @@ ms: description_subwork_package: 'Anak kepada pakej kerja #%{id}' editor: ckeditor_error: Ralat berlaku dalam CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Penyimpanan dokumen gagal dengan ralat yang berikut: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ms: ical_sharing_modal: copy_url_label: Salin URL description: Anda boleh menggunakan URL (iCalendar) untuk melanggan kalendar ini dalam pelanggan luaran dan lihat maklumat pakej kerja terkini dari situ. - ical_generation_error_text: Ralat berlaku semasa menjana URL kalendar. - inital_setup_error_message: Ralat berlaku ketika sedang mengambil data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: '"%{name}" URL berjaya disalin ke papan klip anda. Sisipkan ia dalam kalendar pelanggan anda untuk lengkapkan langganan.' title: Langgan kalendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ms: label_reset: Tetapkan semula label_resize_project_menu: Resize project menu label_save_as: Simpan sebagai + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Cari kolum label_select_watcher: Pilih pemerhati... label_selected_filter_list: Penyaring yang dipilih @@ -623,7 +628,7 @@ ms: notifications: center: and_more_users: - other: dan %{count} yang lain + other: and %{count} others empty_state: no_notification: Nampaknya anda telah selesaikan semuanya. no_notification_for_filter: Nampaknya anda semua terperangkap untuk penapis ini. @@ -719,6 +724,7 @@ ms: placeholders: default: "-" description: 'Deskripsi: Klik untuk edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Klik untuk tambah deskripsi untuk hubungan ini selection: Sila pilih subject: Masukkan subjek di sini @@ -805,12 +811,30 @@ ms: sorting_disabled: penyusunan dinyahaktifkan sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: Tutup modal @@ -824,9 +848,7 @@ ms: text_user_wrote: "%{value} menulis:" text_work_packages_destroy_confirmation: Adakah anda pasti anda ingin memadam pakej kerja yang dipilih tersebut? time_entry: - stop: Berhenti title: Masa log - tracking: Penjejakan masa work_package_required: Memerlukan pemilihan pakej kerja dahulu. timer: button_stop: Hentikan pemasa semasa @@ -861,18 +883,18 @@ ms: label_two_factor_authentication: Pengesahan dua faktor units: child_work_packages: - other: "%{count} pakej kerja anak" + other: "%{count} work package children" day: - one: 1 hari + one: "%{count} day" other: "%{count} hari" zero: 0 hari hour: - one: 1 j + one: "%{count} h" other: "%{count} j" zero: 0 j hour_string: "%{hours} h" word: - other: "%{count} perkataan" + other: "%{count} words" workPackage: other: pakej kerja upsell: diff --git a/config/locales/crowdin/js-ne.yml b/config/locales/crowdin/js-ne.yml index 5852ddf83980..bd856b45254d 100644 --- a/config/locales/crowdin/js-ne.yml +++ b/config/locales/crowdin/js-ne.yml @@ -61,6 +61,7 @@ ne: single: छान्नुहोस "%{name}" remove: हटाउनुहोस %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ ne: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: नयाँ कार्ड थप्नुहोस् @@ -202,6 +204,7 @@ ne: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ne: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ne: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ ne: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ ne: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: कृपया छान्नुहोस् subject: Enter subject here @@ -806,12 +812,32 @@ ne: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ ne: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: सबै भन्दा पहिले कार्य प्याकेज चयन गर्न आवश्यक छ। timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ ne: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-nl.yml b/config/locales/crowdin/js-nl.yml index badc15d2fe7f..4fe1c8c5c023 100644 --- a/config/locales/crowdin/js-nl.yml +++ b/config/locales/crowdin/js-nl.yml @@ -61,6 +61,7 @@ nl: single: Selecteer "%{name}" remove: Verwijder %{name} autocompleter: + create_label: Create label notFoundText: Geen items gevonden placeholder: Typ om te zoeken project: @@ -162,6 +163,7 @@ nl: button_stop_timer: Stop timer button_uncheck_all: Deselecteer alles button_update: Bijwerken + button_view_markdown: View Markdown caption_rate_history: Tarief geschiedenis card: add_new: Nieuwe kaart toevoegen @@ -202,6 +204,7 @@ nl: description_subwork_package: 'Kind van werkpakket #%{id}' editor: ckeditor_error: Er is een fout opgetreden in CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: Het opslaan van het document is mislukt met de volgende foutmelding:%{error} macro: attribute_reference: @@ -358,8 +361,8 @@ nl: ical_sharing_modal: copy_url_label: URL kopiëren description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: Er is een fout opgetreden tijdens het genereren van de agenda-URL. - inital_setup_error_message: Er is een fout opgetreden tijdens het ophalen van gegevens. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Abonneren op agenda token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ nl: label_reset: Herstel label_resize_project_menu: Resize project menu label_save_as: Opslaan als + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Kies een toezichter... label_selected_filter_list: Geselecteerde filters @@ -623,8 +628,8 @@ nl: notifications: center: and_more_users: - one: en 1 ander - other: en %{count} anderen + one: and %{count} other + other: and %{count} others empty_state: no_notification: Het lijkt erop dat u helemaal bij bent. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -720,6 +725,7 @@ nl: placeholders: default: "-" description: 'Beschrijving: Klik om te bewerken...' + description_double_click: 'Description: Double click to edit...' relation_description: Klik om een beschrijving voor deze relatie toe te voegen selection: Gelieve te selecteren subject: Onderwerp hier invoeren @@ -806,12 +812,32 @@ nl: sorting_disabled: sorteren is uitgeschakeld sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ nl: text_user_wrote: "%{value} schreef:" text_work_packages_destroy_confirmation: Weet u zeker dat u geselecteerd(e) werkpakket(ten) wilt verwijderen? time_entry: - stop: Stop title: Gelogde tijd - tracking: Tijdregistratie work_package_required: Vereist eerst een werkpakket te selecteren. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ nl: label_two_factor_authentication: Twee-staps authenticatie units: child_work_packages: - one: één onderliggend werkpakket - other: "%{count} werkpakket kinderen" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 dag + one: "%{count} day" other: "%{count} dagen" zero: 0 dagen hour: - one: 1 u + one: "%{count} h" other: "%{count} u" zero: 0 uur hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: werkpakket diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml index bd5194d7ef2a..08e569ba69b4 100644 --- a/config/locales/crowdin/js-no.yml +++ b/config/locales/crowdin/js-no.yml @@ -61,6 +61,7 @@ single: Velg "%{name}" remove: Fjern %{name} autocompleter: + create_label: Create label notFoundText: Ingen elementer funnet placeholder: Skriv for å søke project: @@ -161,7 +162,8 @@ button_start_timer: Start timer button_stop_timer: Stop timer button_uncheck_all: Avmerk alle - button_update: Oppdater + button_update: Oppdatèr + button_view_markdown: View Markdown caption_rate_history: Satshistorikk card: add_new: Legg til nytt kort @@ -202,6 +204,7 @@ description_subwork_package: 'Barn av arbeidspakke #%{id}' editor: ckeditor_error: Det oppstod en feil i CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Lagring av dokumentet mislyktes med følgende feil: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ical_sharing_modal: copy_url_label: Kopier URL description: Du kan bruke URLen (iCalendar) til å abonnere på denne kalenderen i en ekstern klient og vise oppdatert arbeidspakkeinformasjon derfra. - ical_generation_error_text: Det oppstod en feil ved generering av kalenderURL. - inital_setup_error_message: En feil oppstod under henting av data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL-adressen "%{name}" ble vellykket kopiert til utklippstavlen. Lim den inn i kalenderklienten for å fullføre abonnementet. title: Abonner på kalender token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ label_reset: Nullstill label_resize_project_menu: Resize project menu label_save_as: Lagre som + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Søk i en kolonne label_select_watcher: Velg en overvåker... label_selected_filter_list: Valgte filtre @@ -623,8 +628,8 @@ notifications: center: and_more_users: - one: og 1 annen - other: og %{count} andre + one: and %{count} other + other: and %{count} others empty_state: no_notification: Ser ut som du er helt oppdatert. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -720,6 +725,7 @@ placeholders: default: "-" description: 'Beskrivelse: Klikk for å redigere...' + description_double_click: 'Description: Double click to edit...' relation_description: Klikk for å legge til beskrivelse for denne relasjonen selection: Vennligst velg subject: Angi emne her @@ -806,12 +812,32 @@ sorting_disabled: Sortering er deaktivert sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Lukk modal @@ -825,9 +851,7 @@ text_user_wrote: "%{value} skrev:" text_work_packages_destroy_confirmation: Er du sikker på at du vil slette valgte arbeidspakke(r)? time_entry: - stop: Stopp title: Logg tid - tracking: Tidsstyring work_package_required: Valg av arbeidspakke er påkrevd timer: button_stop: Stopp nåværende tidtaker @@ -862,19 +886,19 @@ label_two_factor_authentication: Tofaktorautentisering units: child_work_packages: - one: en underordnet arbeidspakke - other: "%{count} underordnet arbeidspakke" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 dag + one: "%{count} day" other: "%{count} dager" zero: 0 dager hour: - one: 1 t + one: "%{count} h" other: "%{count} t" zero: 0 t hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: arbeidspakke diff --git a/config/locales/crowdin/js-pl.yml b/config/locales/crowdin/js-pl.yml index 8135f9bca77d..0706927c9c82 100644 --- a/config/locales/crowdin/js-pl.yml +++ b/config/locales/crowdin/js-pl.yml @@ -61,6 +61,7 @@ pl: single: Wybierz %{name} remove: Usuń %{name} autocompleter: + create_label: Create label notFoundText: Nie znaleziono elementów placeholder: Wpisz szukaną frazę project: @@ -162,6 +163,7 @@ pl: button_stop_timer: Zatrzymaj zegar button_uncheck_all: Odznacz wszystko button_update: Aktualizacja + button_view_markdown: View Markdown caption_rate_history: Historia stawek card: add_new: Dodaj nową kartę @@ -202,6 +204,7 @@ pl: description_subwork_package: 'Otwórz zadanie-dziecko #%{id}' editor: ckeditor_error: Wystąpił błąd w CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Zapisywanie dokumentu nie powiodło się, błąd: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ pl: ical_sharing_modal: copy_url_label: Kopiuj adres URL description: Możesz użyć adresu URL (iCalendar), aby subskrybować ten kalendarz w kliencie zewnętrznym i wyświetlać z niego aktualne informacje o pakietach roboczych. - ical_generation_error_text: Podczas generowania adresu URL kalendarza wystąpił błąd. - inital_setup_error_message: Podczas pobierania danych wystąpił błąd. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: Adres URL „%{name}” został skopiowany do schowka. Wklej go w kliencie kalendarza, aby dokonać subskrypcji. title: Subskrybuj kalendarz token_name_description_text: Jeśli subskrybujesz ten kalendarz na wielu urządzeniach, nazwa ta pomoże Ci rozróżnić je na liście tokenów dostępu. @@ -551,6 +554,8 @@ pl: label_reset: Reset label_resize_project_menu: Zmień rozmiar menu projektu label_save_as: Zapisz jako + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Wyszukaj kolumnę label_select_watcher: Wybierz obserwatora... label_selected_filter_list: Wybrane filtry @@ -623,10 +628,10 @@ pl: notifications: center: and_more_users: - one: i 1 inny - few: i %{count} inne - many: i %{count} inne - other: i %{count} innych + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others empty_state: no_notification: Wygląda na to, że jesteś już na bieżąco. no_notification_for_filter: Wygląda na to, że wszystko jest na bieżąco dla tego filtru. @@ -722,6 +727,7 @@ pl: placeholders: default: "-" description: 'Opis: Kliknij, aby edytować...' + description_double_click: 'Description: Double click to edit...' relation_description: Kliknij, aby dodać opis do tej relacji selection: Proszę wybrać subject: Wpisz tutaj temat @@ -808,12 +814,36 @@ pl: sorting_disabled: sortowanie jest wyłączone sortable_lists: announcements: + batch_too_large: Nie można przenieść %{count} elementów naraz. Wybierz nie więcej niż %{max}. fallback_item_label: Element fallback_list_name: inna lista move_failed_check_position: Przeniesienie nie powiodło się. Sprawdź bieżącą pozycję elementu. + move_failed_check_positions_batch: + other: Przeniesienie nie powiodło się. Sprawdź bieżące pozycje elementów. move_failed_rolled_back: Przeniesienie nie powiodło się. Przywrócono poprzednią pozycję %{label}. + move_failed_rolled_back_batch: + other: Przeniesienie nie powiodło się. Elementy (%{count}) powróciły na swoje poprzednie pozycje. moved: "%{label} przeniesiono do pozycji %{position} z %{total}" + moved_batch: + other: "%{count} elementy przeniesiono do pozycji od %{first} do %{last} z %{total}" + moved_batch_to_list: + other: "%{count} elementy przeniesiono do %{list}, pozycje od %{first} do %{last} z %{total}" moved_to_list: "%{label} przeniesiono do %{list}, pozycja %{position} z %{total}" + selection: + cleared: Wyczyszczono wybór. + not_selectable: Wybór pozostaje bez zmian. Ten element nie ma wpływu na kolejność pozycji na tej liście. + range_blocked: Wybór pozostaje bez zmian. Ten zakres zawiera element, który nie ma wpływu na kolejność pozycji na tej liście. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Wybór pozostaje bez zmian. Rozwiń tę listę, aby wybrać ten zakres. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Zamknij okno modalne @@ -827,9 +857,7 @@ pl: text_user_wrote: "%{value} napisał(a):" text_work_packages_destroy_confirmation: Czy na pewno chcesz usunąć wybrane pakiety robocze? time_entry: - stop: Zatrzymaj title: Rejestruj czas pracy - tracking: Zarządzanie czasem work_package_required: Wymaga wybrania najpierw pakietu roboczego. timer: button_stop: Zatrzymaj bieżące odliczanie @@ -864,24 +892,24 @@ pl: label_two_factor_authentication: Uwierzytelnianie dwuskładnikowe units: child_work_packages: - one: jeden potomny pakiet roboczy - few: "%{count} potomnych pakietów roboczych" - many: "%{count} potomnych pakietów roboczych" - other: "%{count} potomnych pakietów roboczych" + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 dzień + one: "%{count} day" other: "%{count} dni" zero: 0 dni hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours}h" word: - one: 1 słowo - few: "%{count} słowa" - many: "%{count} słów" - other: "%{count} słowa" + one: "%{count} word" + few: "%{count} words" + many: "%{count} words" + other: "%{count} words" workPackage: one: pakiet roboczy few: pakiety robocze diff --git a/config/locales/crowdin/js-pt-BR.yml b/config/locales/crowdin/js-pt-BR.yml index 74aeaad61bbe..ea58767e295f 100644 --- a/config/locales/crowdin/js-pt-BR.yml +++ b/config/locales/crowdin/js-pt-BR.yml @@ -61,6 +61,7 @@ pt-BR: single: Selecionar "%{name}" remove: Remover %{name} autocompleter: + create_label: Create label notFoundText: Nenhum item encontrado placeholder: Escreva para pesquisar project: @@ -162,6 +163,7 @@ pt-BR: button_stop_timer: Parar temporizador button_uncheck_all: Desmarcar todos button_update: Atualizar + button_view_markdown: View Markdown caption_rate_history: Taxa histórica card: add_new: Adicionar novo cartão @@ -202,6 +204,7 @@ pt-BR: description_subwork_package: 'Filho do pacote de trabalho #%{id}' editor: ckeditor_error: 'Ocorreu um erro no CKEditor ' + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Não foi possível salvar o documento pelo seguinte erro: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ pt-BR: ical_sharing_modal: copy_url_label: Copiar URL description: Você pode usar a URL (iCalendar) para assinar este calendário em um cliente externo e exibir informações atualizadas do pacote de trabalho a partir dele. - ical_generation_error_text: Ocorreu um erro ao gerar o URL do calendário. - inital_setup_error_message: Ocorreu um erro ao buscar dados. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: O URL "%{name}" foi copiado com sucesso para sua área de transferência. Cole-o em seu cliente de calendário para concluir a assinatura. title: Assinar calendário token_name_description_text: Se você assinar este calendário em vários dispositivos, este nome ajudará a diferenciá-los na sua lista de tokens de acesso. @@ -551,6 +554,8 @@ pt-BR: label_reset: Reiniciar label_resize_project_menu: Redimensionar menu do projeto label_save_as: Salvar como + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Buscar uma coluna label_select_watcher: Selecione um observador... label_selected_filter_list: Filtros selecionados @@ -623,8 +628,8 @@ pt-BR: notifications: center: and_more_users: - one: e 1 outro - other: e %{count} outros + one: and %{count} other + other: and %{count} others empty_state: no_notification: Parece que você já está com tudo em dia. no_notification_for_filter: Parece que você já está com tudo em dia para este filtro. @@ -720,6 +725,7 @@ pt-BR: placeholders: default: "-" description: 'Descrição: Clique em editar...' + description_double_click: 'Description: Double click to edit...' relation_description: Clique para adicionar a descrição para esta relação selection: Por favor selecione subject: Informe o assunto aqui @@ -806,12 +812,32 @@ pt-BR: sorting_disabled: ordenação está desativada sortable_lists: announcements: + batch_too_large: Não é possível mover %{count} itens de uma vez. Selecione no máximo %{max}. fallback_item_label: Item fallback_list_name: outra lista move_failed_check_position: Falha ao mover. Verifique a posição atual do item. + move_failed_check_positions_batch: + other: Falha ao mover. Verifique as posições atuais dos itens. move_failed_rolled_back: Falha ao mover. %{label} retornou à sua posição anterior. + move_failed_rolled_back_batch: + other: Falha ao mover. %{count} pacotes de trabalho retornaram às suas posições anteriores. moved: "%{label} foi movido para a posição %{position} de %{total}" + moved_batch: + other: "%{count} itens movidos para as posições %{first} a %{last} de %{total}" + moved_batch_to_list: + other: "%{count} itens movidos para %{list}, posições %{first} a %{last} de %{total}" moved_to_list: "%{label} foi movido para %{list}, na posição %{position} de %{total}" + selection: + cleared: Seleção removida. + not_selectable: Seleção inalterada. Este item não faz parte da ordenação desta lista. + range_blocked: Seleção inalterada. Esse intervalo contém um item que não faz parte da ordenação desta lista. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Seleção inalterada. Expanda a lista para selecionar todo o intervalo. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Fechar o modal @@ -825,9 +851,7 @@ pt-BR: text_user_wrote: "%{value} escreveu:" text_work_packages_destroy_confirmation: Tem certeza que deseja excluir o(s) pacote(s) de trabalho selecionado(s)? time_entry: - stop: Parar title: Registro de tempo - tracking: Controle de tempo work_package_required: É necessário selecionar primeiro um pacote de trabalho. timer: button_stop: Interromper temporizador atual @@ -862,20 +886,20 @@ pt-BR: label_two_factor_authentication: Autenticação de dois fatores units: child_work_packages: - one: um pacote de trabalho filho - other: "%{count} pacotes de trabalho filhos" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 dia + one: "%{count} day" other: "%{count} dias" zero: 0 dias hour: - one: 1 h + one: "%{count} h" other: "%{count} hs" zero: 0 h hour_string: "%{hours} h" word: - one: 1 palavra - other: "%{count} palavras" + one: "%{count} word" + other: "%{count} words" workPackage: one: pacote de trabalho other: pacotes de trabalho diff --git a/config/locales/crowdin/js-pt-PT.yml b/config/locales/crowdin/js-pt-PT.yml index ea89d461c8cf..a671d401d00d 100644 --- a/config/locales/crowdin/js-pt-PT.yml +++ b/config/locales/crowdin/js-pt-PT.yml @@ -61,6 +61,7 @@ pt-PT: single: Selecionar "%{name}" remove: Remover %{name} autocompleter: + create_label: Create label notFoundText: Nenhum elemento encontrado placeholder: Digite para pesquisar project: @@ -162,6 +163,7 @@ pt-PT: button_stop_timer: Parar temporizador button_uncheck_all: Desmarcar tudo button_update: Atualizar + button_view_markdown: View Markdown caption_rate_history: Histórico de tarifas card: add_new: Adicionar novo cartão @@ -202,6 +204,7 @@ pt-PT: description_subwork_package: 'Filho de pacote de trabalho #%{id}' editor: ckeditor_error: Ocorreu um erro no CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Ao guardar o documento, ocorreu o seguinte erro: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ pt-PT: ical_sharing_modal: copy_url_label: Copiar URL description: Pode utilizar o URL (iCalendar) para subscrever este calendário num cliente externo e ver informações atualizadas sobre o pacote de trabalho a partir daí. - ical_generation_error_text: Ocorreu um erro ao gerar o URL do calendário. - inital_setup_error_message: Ocorreu um erro ao recuperar os dados. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: O URL "%{name}" foi copiado com sucesso para a área de transferência. Cole-o no seu cliente de Calendários para concluir a subscrição. title: Subscrever o calendário token_name_description_text: Se subscrever este calendário a partir de vários dispositivos, este nome irá ajudar a distinguir entre eles na sua lista de tokens de acesso. @@ -551,6 +554,8 @@ pt-PT: label_reset: Repor label_resize_project_menu: Redimensionar menu do projeto label_save_as: Guardar como + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Pesquisar uma coluna label_select_watcher: Selecionar um observador... label_selected_filter_list: Filtros selecionados @@ -623,8 +628,8 @@ pt-PT: notifications: center: and_more_users: - one: e 1 outro - other: e %{count} outros + one: and %{count} other + other: and %{count} others empty_state: no_notification: Parece que tem tudo em dia. no_notification_for_filter: Parece que está em dia neste filtro. @@ -720,6 +725,7 @@ pt-PT: placeholders: default: "-" description: 'Descrição: Clique para editar...' + description_double_click: 'Description: Double click to edit...' relation_description: Clique para adicionar a descrição desta relação selection: Selecione subject: Introduza aqui o assunto @@ -806,12 +812,32 @@ pt-PT: sorting_disabled: ordenação desativada sortable_lists: announcements: + batch_too_large: Não é possível mover %{count} elementos de uma só vez. Selecione, no máximo, %{max}. fallback_item_label: Elemento fallback_list_name: outra lista move_failed_check_position: Erro ao mover. Verifique a posição atual do elemento. + move_failed_check_positions_batch: + other: Erro ao mover. Verifique as posições atuais dos elementos. move_failed_rolled_back: Erro ao mover. %{label} voltou à sua posição anterior. + move_failed_rolled_back_batch: + other: Erro ao mover. %{count} elementos voltaram às suas posições anteriores. moved: "%{label} movido para a posição %{position} de %{total}" + moved_batch: + other: "%{count} elementos foram transferidos para as posições %{first} até %{last} de %{total}" + moved_batch_to_list: + other: "%{count} elementos transferidos para %{list}, posições %{first} até %{last} de %{total}" moved_to_list: "%{label} transferido para %{list}, cargo %{position} de %{total}" + selection: + cleared: Seleção limpa. + not_selectable: Seleção inalterada. Este elemento não tem qualquer influência na ordenação desta lista. + range_blocked: Seleção inalterada. Esse intervalo contém um elemento que não intervém na ordenação desta lista. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Seleção inalterada. Expanda esta lista para selecionar esse intervalo. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Fechar modal @@ -825,9 +851,7 @@ pt-PT: text_user_wrote: "%{value} escreveu:" text_work_packages_destroy_confirmation: Tem certeza que quer eliminar o(s) pacote(s) de trabalho selecionado(s)? time_entry: - stop: Parar title: Hora de registo - tracking: Controlo do tempo work_package_required: É necessário selecionar primeiro um pacote de trabalho. timer: button_stop: Parar temporizador atual @@ -862,20 +886,20 @@ pt-PT: label_two_factor_authentication: Autenticação de dois fatores units: child_work_packages: - one: um pacote de trabalho secundário - other: "%{count} pacotes de trabalho secundários" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 dia + one: "%{count} day" other: "%{count} dias" zero: 0 dias hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 palavra - other: "%{count} palavras" + one: "%{count} word" + other: "%{count} words" workPackage: one: pacote de trabalho other: pacotes de trabalho diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index 533968dc8e12..cd0a1210795a 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -61,6 +61,7 @@ ro: single: Selectează "%{name}" remove: Elimină ”%{name}” autocompleter: + create_label: Create label notFoundText: Niciun articol găsit placeholder: Tastează pentru a căuta project: @@ -161,7 +162,8 @@ ro: button_start_timer: Pornește cronometrul button_stop_timer: Oprește cronometrul button_uncheck_all: Deselectează tot - button_update: Actualizează + button_update: Actualizare + button_view_markdown: View Markdown caption_rate_history: Istoric cotă card: add_new: Adaugă card nou @@ -202,6 +204,7 @@ ro: description_subwork_package: 'Copil al pachetului de lucru #%{id}' editor: ckeditor_error: A apărut o eroare în cadrul CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Salvarea documentului a eșuat cu următoarea eroare: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ro: ical_sharing_modal: copy_url_label: Copiază URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: A apărut o eroare la preluarea datelor. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL-ul "%{name}" a fost copiat cu succes în clipboard-ul tău. Lipiți-l în clientul calendar pentru a finaliza abonamentul. title: Abonează-te la calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ ro: label_reset: Resetare label_resize_project_menu: Resize project menu label_save_as: Salvează ca + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Caută o coloană label_select_watcher: Selectează un observator... label_selected_filter_list: Filtre selectate @@ -623,9 +628,9 @@ ro: notifications: center: and_more_users: - one: și încă unul - few: și %{count} alții - other: și %{count} alții + one: and %{count} other + few: and %{count} others + other: and %{count} others empty_state: no_notification: Se pare că ești cu toate la zi. no_notification_for_filter: Looks like you are all caught up for this filter. @@ -721,6 +726,7 @@ ro: placeholders: default: "-" description: 'Descriere: Clic pentru editare ...' + description_double_click: 'Description: Double click to edit...' relation_description: Clic pentru a adăuga o descriere pentru această relație selection: Te rog selectează subject: Introdu subiectul aici @@ -807,12 +813,34 @@ ro: sorting_disabled: sortarea este dezactivată sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -826,9 +854,7 @@ ro: text_user_wrote: "%{value} a scris:" text_work_packages_destroy_confirmation: Ești sigur că vrei să ștergi pachetele de lucru selectate? time_entry: - stop: Oprire title: Registru timp - tracking: Monitorizare efort work_package_required: Necesită să se selecteze mai întâi un pachet de lucru. timer: button_stop: Oprește cronometrul curent @@ -863,20 +889,20 @@ ro: label_two_factor_authentication: Autentificare doi factori units: child_work_packages: - one: Un pachet de lucru descendent - few: "%{count} descendenți ai pachetului de lucru" - other: "%{count} copii din pachetul de lucru" + one: "%{count} child work package" + few: "%{count} work package children" + other: "%{count} work package children" day: - one: o zi + one: "%{count} day" other: "%{count} zile" zero: 0 zile hour: - one: 1 oră + one: "%{count} h" other: "%{count} ora" zero: 0 ore hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" other: "%{count} words" workPackage: diff --git a/config/locales/crowdin/js-ru.yml b/config/locales/crowdin/js-ru.yml index 25c8d71a60d3..6a4197f40a01 100644 --- a/config/locales/crowdin/js-ru.yml +++ b/config/locales/crowdin/js-ru.yml @@ -61,6 +61,7 @@ ru: single: Выберите "%{name}" remove: Удалить %{name} autocompleter: + create_label: Create label notFoundText: Элементов не найдено placeholder: Введите для поиска project: @@ -161,7 +162,8 @@ ru: button_start_timer: Запустить таймер button_stop_timer: Остановить таймер button_uncheck_all: Снять все отметки - button_update: Обновить + button_update: Обновление + button_view_markdown: View Markdown caption_rate_history: История оценок card: add_new: Добавить новую карту @@ -202,6 +204,7 @@ ru: description_subwork_package: 'Дочерний пакет работ #%{id}' editor: ckeditor_error: Произошла ошибка в CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Не удалось сохранить документ по следующей причине: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ ru: ical_sharing_modal: copy_url_label: Копировать URL description: Вы можете использовать URL-адрес (iCalendar), чтобы подписаться на этот календарь во внешнем клиенте и просматривать информацию о рабочем пакете отсюда. - ical_generation_error_text: Произошла ошибка при генерации URL-адреса календаря. - inital_setup_error_message: Произошла ошибка при получении данных. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL-адрес "%{name}" был успешно скопирован в ваш буфер обмена. Вставьте его в свой клиент календаря, чтобы завершить подписку. title: Подписаться на календарь token_name_description_text: Если Вы подписаны на этот календарь с нескольких устройств, это имя поможет Вам различать их в списке токенов доступа. @@ -553,6 +556,8 @@ ru: label_reset: Сброс label_resize_project_menu: Изменить размер меню проекта label_save_as: Сохранить как + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Поиск столбца label_select_watcher: Выберите наблюдателя... label_selected_filter_list: Выбранные фильтры @@ -625,10 +630,10 @@ ru: notifications: center: and_more_users: - one: и еще 1 - few: и %{count} других - many: и %{count} других - other: и %{count} других + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others empty_state: no_notification: Похоже, вы все сделали. no_notification_for_filter: Похоже, что для этого фильтра у Вас уже все готово. @@ -724,6 +729,7 @@ ru: placeholders: default: "-" description: 'Описание: Нажмите для редактирования...' + description_double_click: 'Description: Double click to edit...' relation_description: Нажмите, чтобы добавить описание для этой связи selection: Пожалуйста, выберите subject: Введите тему здесь @@ -810,12 +816,36 @@ ru: sorting_disabled: сортировка отключена sortable_lists: announcements: + batch_too_large: Нельзя переместить %{count} элементов за один раз. Выберите не более %{max}. fallback_item_label: Элемент fallback_list_name: другой список move_failed_check_position: Не удалось переместить. Проверьте текущую позицию. + move_failed_check_positions_batch: + other: Перемещение не удалось. Проверьте текущие позиции элементов. move_failed_rolled_back: Перемещение не удалось. %{label} вернулся на прежнюю позицию. + move_failed_rolled_back_batch: + other: Перемещение не удалось. %{count} элементов вернулось на прежние позиции. moved: "%{label} перемещен на позицию %{position} из %{total}" + moved_batch: + other: "%{count} элементов перемещёно на позиции с %{first} по %{last} из %{total}" + moved_batch_to_list: + other: "%{count} элементов перенесены в %{list}, на позиции с %{first} по %{last} из %{total}" moved_to_list: "%{label} перемещен в %{list}, на позицию %{position} из %{total}" + selection: + cleared: Выборка очищена. + not_selectable: Выборка не изменилась. Этот элемент не принимает участия в сортировке этого списка. + range_blocked: Выборка не изменилась. Этот диапазон содержит элемент, который не принимает участия в сортировке этого списка. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Выборка не изменена. Разверните этот список, чтобы выбрать этот диапазон. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Закрыть диалоговое окно @@ -829,9 +859,7 @@ ru: text_user_wrote: "%{value} написал:" text_work_packages_destroy_confirmation: Вы уверены, что хотите удалить выбранные пакеты работ? time_entry: - stop: Стоп title: Журналировать время - tracking: Учет времени work_package_required: Сначала необходимо выбрать пакет работ. timer: button_stop: Остановить текущий таймер @@ -866,24 +894,24 @@ ru: label_two_factor_authentication: Двухфакторная аутентификация units: child_work_packages: - one: пакет работ с одним дочерним - few: пакетов работ с %{count} дочерними - many: пакет работ с %{count} дочерними - other: пакет работ с %{count} дочерними + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: День + one: "%{count} day" other: "%{count} дней" zero: 0 дней hour: - one: 1 ч + one: "%{count} h" other: "%{count} ч" zero: 0 ч hour_string: "%{hours} ч" word: - one: 1 слово - few: "%{count} слов" - many: "%{count} слов" - other: "%{count} слов" + one: "%{count} word" + few: "%{count} words" + many: "%{count} words" + other: "%{count} words" workPackage: one: пакет работ few: пакетов работ diff --git a/config/locales/crowdin/js-rw.yml b/config/locales/crowdin/js-rw.yml index c33c95fd2305..70f54bdc33e1 100644 --- a/config/locales/crowdin/js-rw.yml +++ b/config/locales/crowdin/js-rw.yml @@ -61,6 +61,7 @@ rw: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ rw: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ rw: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ rw: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ rw: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ rw: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ rw: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ rw: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ rw: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ rw: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-si.yml b/config/locales/crowdin/js-si.yml index 8bd35b7e2f19..e070afce4c20 100644 --- a/config/locales/crowdin/js-si.yml +++ b/config/locales/crowdin/js-si.yml @@ -61,6 +61,7 @@ si: single: තෝරන්න "%{name}” remove: "%{name}ඉවත් කරන්න" autocompleter: + create_label: Create label notFoundText: No items found placeholder: සෙවීමට ටයිප් කරන්න project: @@ -162,6 +163,7 @@ si: button_stop_timer: Stop timer button_uncheck_all: සියල්ල ඉවත් කරන්න button_update: යාවත්කාලීන + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: නව කාඩ් එකතු කරන්න @@ -202,6 +204,7 @@ si: description_subwork_package: 'වැඩ පැකේජය දරුවා #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'පහත දැක්වෙන දෝෂය සමඟ ලේඛනය සුරැකීම අසාර්ථක විය: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ si: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ si: label_reset: යළි පිහිටුවීම label_resize_project_menu: Resize project menu label_save_as: ලෙස සුරකින්න + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: මුරකරුවෙකු තෝරන්න... label_selected_filter_list: තෝරාගත් පෙරහන් @@ -623,7 +628,7 @@ si: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ si: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: මෙම සම්බන්ධයෙන් විස්තර එකතු කිරීමට ක්ලික් කරන්න selection: කරුණාකර තෝරන්න subject: මෙහි විෂය ඇතුලත් කරන්න @@ -806,12 +812,32 @@ si: sorting_disabled: වර්ග කිරීම අක්රීය කර ඇත sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ si: text_user_wrote: "%{value} ලිවීය:" text_work_packages_destroy_confirmation: ඔබ තෝරාගත් වැඩ පැකේජය (න්) මකා දැමීමට අවශ්ය බව ඔබට විශ්වාසද? time_entry: - stop: Stop title: ලොග් වේලාව - tracking: ෙසොයා ගැනීෙම් work_package_required: පළමුව වැඩ පැකේජයක් තෝරා ගැනීම අවශ්ය වේ. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ si: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: එක් ළමා වැඩ පැකේජය - other: "%{count} වැඩ පැකේජය දරුවන්" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: දින 1 + one: "%{count} day" other: "%{count} දින" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} ඌ" zero: 0 ඌ hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: වැඩ පැකේජය diff --git a/config/locales/crowdin/js-sk.yml b/config/locales/crowdin/js-sk.yml index b7e98b531dc8..5bd3cf9f8462 100644 --- a/config/locales/crowdin/js-sk.yml +++ b/config/locales/crowdin/js-sk.yml @@ -61,6 +61,7 @@ sk: single: Vybrať "%{name}" remove: Odstrániť %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ sk: button_stop_timer: Stop timer button_uncheck_all: Odznačiť všetky button_update: Aktualizovať + button_view_markdown: View Markdown caption_rate_history: Hodinová sadzba - História card: add_new: Pridať novú kartu @@ -202,6 +204,7 @@ sk: description_subwork_package: 'Podradený pracovný balík #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Uloženie dokumentu zlyhalo s nasledujúcou chybou: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ sk: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ sk: label_reset: Vynulovať label_resize_project_menu: Resize project menu label_save_as: Uložiť ako + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Vybrať pozorovateľa ... label_selected_filter_list: Vybrané filtre @@ -623,7 +628,7 @@ sk: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other few: and %{count} others many: and %{count} others other: and %{count} others @@ -722,6 +727,7 @@ sk: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Kliknutím pridáte popis tohto vzťahu selection: Prosím, vyberte subject: Sem zadajte predmet @@ -808,12 +814,36 @@ sk: sorting_disabled: zoradenie nie je povolené sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -827,9 +857,7 @@ sk: text_user_wrote: "%{value} napísal:" text_work_packages_destroy_confirmation: Naozaj chcete odstrániť vybraný pracovný balíček(y)? time_entry: - stop: Stop title: Zaprotokoluj čas - tracking: Sledovanie času work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -864,21 +892,21 @@ sk: label_two_factor_authentication: Dvojfaktorové overenie (2FA) units: child_work_packages: - one: jeden podradený pracovný balíček - few: "%{count} podradených pracovných balíčkov" - many: "%{count} podradených pracovných balíčkov" - other: "%{count} podradených pracovných balíčkov" + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 deň + one: "%{count} day" other: "%{count} dní" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" many: "%{count} words" other: "%{count} words" diff --git a/config/locales/crowdin/js-sl.yml b/config/locales/crowdin/js-sl.yml index fea75519f10d..0102033cac33 100644 --- a/config/locales/crowdin/js-sl.yml +++ b/config/locales/crowdin/js-sl.yml @@ -61,6 +61,7 @@ sl: single: Izberi "%{name}" remove: Odstrani "%{name}" autocompleter: + create_label: Create label notFoundText: Ni najdenih elementov placeholder: Iskalni niz project: @@ -162,6 +163,7 @@ sl: button_stop_timer: Stop timer button_uncheck_all: Odznači vse button_update: Posodobi + button_view_markdown: View Markdown caption_rate_history: Zgodovina tečaja card: add_new: Dodaj nov card @@ -202,6 +204,7 @@ sl: description_subwork_package: 'Podrejen delovni paket #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Shranjevanje dokumenta ni uspelo zaradi napake: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ sl: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ sl: label_reset: Ponastavi label_resize_project_menu: Resize project menu label_save_as: Shrani kot + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Izberi opazovalca... label_selected_filter_list: Izbrani kriteriji @@ -625,7 +630,7 @@ sl: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other two: and %{count} others few: and %{count} others other: and %{count} others @@ -724,6 +729,7 @@ sl: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Kliknite, da dodate opis za to povezavo selection: Prosimo izberite subject: Vnesite temo tukaj @@ -810,12 +816,36 @@ sl: sorting_disabled: Razvrščanje je onemogočeno sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + two: Could not extend the range. %{count} items selected. + few: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + two: "%{count} items selected." + few: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -829,9 +859,7 @@ sl: text_user_wrote: "%{value} je napisal(a):" text_work_packages_destroy_confirmation: Ali ste prepričani, da želite izbrisati izbrane delovne pakete? time_entry: - stop: Stop title: Beleži čas - tracking: Sledenje časa work_package_required: Najprej izberite opravilo timer: button_stop: Stop current timer @@ -866,21 +894,21 @@ sl: label_two_factor_authentication: Dvofaktorna avtentikacija units: child_work_packages: - one: en podrejeni delovni paket - two: "%{count} podrejeni delovni paketi" - few: "%{count} podrejeni delovni paketi" - other: "%{count} podrejeni delovni paketi" + one: "%{count} child work package" + two: "%{count} work package children" + few: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 dan + one: "%{count} day" other: "%{count} dni" zero: 0 days hour: - one: 1 ura + one: "%{count} h" other: "%{count} ur" zero: 0 ur hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" two: "%{count} words" few: "%{count} words" other: "%{count} words" diff --git a/config/locales/crowdin/js-sr.yml b/config/locales/crowdin/js-sr.yml index d3742ce43412..67e8ac996609 100644 --- a/config/locales/crowdin/js-sr.yml +++ b/config/locales/crowdin/js-sr.yml @@ -61,6 +61,7 @@ sr: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ sr: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Ažuriraj + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ sr: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ sr: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ sr: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ sr: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other few: and %{count} others other: and %{count} others empty_state: @@ -721,6 +726,7 @@ sr: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -807,12 +813,34 @@ sr: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -826,9 +854,7 @@ sr: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -863,20 +889,20 @@ sr: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" few: "%{count} work package children" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" few: "%{count} words" other: "%{count} words" workPackage: diff --git a/config/locales/crowdin/js-sv.yml b/config/locales/crowdin/js-sv.yml index d12bd2e9e5dd..6c0724b1a8ed 100644 --- a/config/locales/crowdin/js-sv.yml +++ b/config/locales/crowdin/js-sv.yml @@ -61,6 +61,7 @@ sv: single: Välj ”%{name}” remove: Ta bort %{name} autocompleter: + create_label: Create label notFoundText: Inga objekt hittades placeholder: Skriv för att söka project: @@ -162,6 +163,7 @@ sv: button_stop_timer: Stoppa timer button_uncheck_all: Avmarkera alla button_update: Uppdatera + button_view_markdown: View Markdown caption_rate_history: Historiska timpriser card: add_new: Lägg till kort @@ -202,6 +204,7 @@ sv: description_subwork_package: 'Underordnad till arbetspaket #%{id}' editor: ckeditor_error: Ett fel inträffade inom CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Misslyckades med att spara dokumentet på grund av följande fel: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ sv: ical_sharing_modal: copy_url_label: Kopiera URL description: 'Du kan använda URL: en (iCalendar) för att prenumerera på denna kalender i en extern klient och visa aktuell information om arbetspaket därifrån.' - ical_generation_error_text: Ett fel uppstod när kalenderns URL genererades. - inital_setup_error_message: Ett fel inträffade vid hämtning av data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL "%{name}" har kopierats till ditt urklipp. Klistra in den i din kalenderklient för att slutföra prenumerationen. title: Prenumerera på kalender token_name_description_text: Om du prenumererar på den här kalendern från flera enheter hjälper namnet dig att skilja dem åt i listan över åtkomsttoken. @@ -551,6 +554,8 @@ sv: label_reset: Återställ label_resize_project_menu: Ändra storlek på projektmenyn label_save_as: Spara som + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Sök i en kolumn label_select_watcher: Välj en bevakare... label_selected_filter_list: Valda filter @@ -623,8 +628,8 @@ sv: notifications: center: and_more_users: - one: och 1 annan - other: och %{count} andra + one: and %{count} other + other: and %{count} others empty_state: no_notification: Du är helt uppdaterad. no_notification_for_filter: Det ser ut som om du är klar med det här filtret. @@ -720,6 +725,7 @@ sv: placeholders: default: "-" description: 'Beskrivning: Klicka för att redigera...' + description_double_click: 'Description: Double click to edit...' relation_description: Klicka för att ange beskrivning för denna relation selection: Välj subject: Ange ämne här @@ -806,12 +812,32 @@ sv: sorting_disabled: sortering är inaktiverad sortable_lists: announcements: + batch_too_large: Det går inte att flytta %{count} objekt samtidigt. Välj högst %{max}. fallback_item_label: Objekt fallback_list_name: en annan lista move_failed_check_position: Flytten misslyckades. Kontrollera postens aktuella position. + move_failed_check_positions_batch: + other: Flytten misslyckades. Kontrollera objektens aktuella positioner. move_failed_rolled_back: Flytten misslyckades. %{label} återställdes till sin tidigare position. + move_failed_rolled_back_batch: + other: Flytten misslyckades. %{count} objekt återställdes till sina tidigare positioner. moved: "%{label} flyttades till position %{position} av %{total}" + moved_batch: + other: "%{count} objekt flyttades till positionerna %{first} till %{last} av %{total}" + moved_batch_to_list: + other: "%{count} objekt flyttades till %{list}, positionerna %{first} till %{last} av %{total}" moved_to_list: "%{label} flyttades till %{list}, position %{position} av %{total}" + selection: + cleared: Markeringen har rensats. + not_selectable: Markeringen är oförändrad. Det här objektet ingår inte i listans sorteringsordning. + range_blocked: Markeringen är oförändrad. Intervallet innehåller ett objekt som inte ingår i listans sorteringsordning. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Markeringen är oförändrad. Expandera listan för att markera intervallet. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Stäng modal @@ -825,9 +851,7 @@ sv: text_user_wrote: "%{value} skrev:" text_work_packages_destroy_confirmation: Är du säker du vill ta bort det valda arbetspaket(paketen)? time_entry: - stop: Stoppa title: Logga tid - tracking: Tidredovisning work_package_required: Kräver att man först väljer ett arbetspaket. timer: button_stop: Stoppa aktuell timer @@ -862,20 +886,20 @@ sv: label_two_factor_authentication: Tvåfaktorsautentisering units: child_work_packages: - one: ett underordnat arbetspaket - other: "%{count} underordnade arbetspaket" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: En dag + one: "%{count} day" other: "%{count} dagar" zero: 0 dagar hour: - one: 1 tim + one: "%{count} h" other: "%{count} timmar" zero: 0 tim hour_string: "%{hours} tim" word: - one: 1 ord - other: "%{count} ord" + one: "%{count} word" + other: "%{count} words" workPackage: one: arbetspaket other: arbetspaket diff --git a/config/locales/crowdin/js-th.yml b/config/locales/crowdin/js-th.yml index 7ecd5106f774..cd671102591f 100644 --- a/config/locales/crowdin/js-th.yml +++ b/config/locales/crowdin/js-th.yml @@ -61,6 +61,7 @@ th: single: เลือก "%{name}" remove: ลบ %{name} autocompleter: + create_label: Create label notFoundText: 'ไม่พบรายการ ' placeholder: Type to search project: @@ -162,6 +163,7 @@ th: button_stop_timer: Stop timer button_uncheck_all: เอาเครื่องหมายออกทั้งหมด button_update: ปรับปรุง + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ th: description_subwork_package: 'แพ็คเกจงานย่อย #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'การบันทึกเอกสารล้มเหลวด้วยข้อผิดพลาดต่อไปนี้: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ th: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ th: label_reset: ตั้งค่าใหม่ label_resize_project_menu: Resize project menu label_save_as: บันทึกเป็น + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: เลือกผู้ดูข้อมูล... label_selected_filter_list: ตัวกรองที่เลือก @@ -719,6 +724,7 @@ th: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: โปรดเลือก subject: Enter subject here @@ -805,12 +811,30 @@ th: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -824,9 +848,7 @@ th: text_user_wrote: "%{value} เขียนว่า:" text_work_packages_destroy_confirmation: คุณแน่ใจหรือไม่ว่าจะลบชุดภารกิจที่เลือก ? time_entry: - stop: Stop title: เวลาที่ถูกบันทึก - tracking: ติดตามเวลาที่ใช้ work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -863,11 +885,11 @@ th: child_work_packages: other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} วัน" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" diff --git a/config/locales/crowdin/js-tr.yml b/config/locales/crowdin/js-tr.yml index 5c9793309a90..d0b6b82c27da 100644 --- a/config/locales/crowdin/js-tr.yml +++ b/config/locales/crowdin/js-tr.yml @@ -61,6 +61,7 @@ tr: single: '"%{name}" seçeneğini seçin' remove: "%{name} öğesini kaldır" autocompleter: + create_label: Create label notFoundText: Hiçbir öge bulunamadı placeholder: Aramak için yazın project: @@ -162,6 +163,7 @@ tr: button_stop_timer: Zamanlayıcıyı durdur button_uncheck_all: Tümünü işaretleme button_update: Güncelleştirme + button_view_markdown: View Markdown caption_rate_history: Değerleme geçmişi card: add_new: Yeni kart ekleyin @@ -202,6 +204,7 @@ tr: description_subwork_package: "#%{id} nolu iş paketinin alt parçası" editor: ckeditor_error: CKEditor içinde bir hata oluştu + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Aşağıdaki nedenden dolayı belge kayıt edilemedi: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ tr: ical_sharing_modal: copy_url_label: Adresi kopyala description: Harici bir istemcide bu takvime abone olmak için URL'yi (iCalendar) kullanabilir ve güncel iş paketi bilgilerini buradan görüntüleyebilirsiniz. - ical_generation_error_text: Takvim adresi üretilirken bir hata oldu. - inital_setup_error_message: Veri alınırken bir hata oluştu. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: '"%{name}" adresi başarıyla panonuza koplandı. Aboneliği tamamlamak için takvim istemcinize yapıştırın.' title: Takvime abone ol token_name_description_text: Bu takvime birden fazla cihazdan abone olursanız, bu ad erişim belirteçleri listenizde bunlar arasında ayrım yapmanıza yardımcı olacaktır. @@ -551,6 +554,8 @@ tr: label_reset: Sıfırla label_resize_project_menu: Proje menüsünü yeniden boyutlandır label_save_as: Farklı Kaydet + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Bir sütunda arama yap label_select_watcher: Takipçi seç... label_selected_filter_list: Seçilen filtreler @@ -623,8 +628,8 @@ tr: notifications: center: and_more_users: - one: ve 1 diğeri - other: ve %{count} tane daha + one: and %{count} other + other: and %{count} others empty_state: no_notification: Görünüşe göre yapacağınız bir şey kalmadı. no_notification_for_filter: Görünüşe göre bu filtre için her şey tamam. @@ -720,6 +725,7 @@ tr: placeholders: default: "-" description: 'Açıklama: Düzenlemek için tıklayın...' + description_double_click: 'Description: Double click to edit...' relation_description: Bu ilişkiye açıklama eklemek için tıklayın selection: Lütfen seçin subject: Buraya konuyu girin @@ -806,12 +812,32 @@ tr: sorting_disabled: sıralama devre dışı sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Ekranı kapat @@ -825,9 +851,7 @@ tr: text_user_wrote: "%{value} demiş ki:" text_work_packages_destroy_confirmation: Seçilen çalışma paket(ler) ini silmek istediğinizden emin misiniz? time_entry: - stop: Dur title: Zaman kaydet - tracking: Zaman takibi work_package_required: Önce bir iş paketi seçilmesini gerektirir. timer: button_stop: Geçerli zamanlayıcıyı durdur @@ -862,20 +886,20 @@ tr: label_two_factor_authentication: İki aşamalı kimlik doğrulama units: child_work_packages: - one: bir alt iş paketi - other: "%{count} alt iş paketi" + one: "%{count} child work package" + other: "%{count} work package children" day: - one: 1 gün + one: "%{count} day" other: "%{count} gün" zero: 0 gün hour: - one: 1 saat + one: "%{count} h" other: "%{count} saat" zero: 0 s hour_string: "%{hours} saat" word: - one: 1 kelime - other: "%{count} kelime" + one: "%{count} word" + other: "%{count} words" workPackage: one: iş paketleri other: iş paketleri diff --git a/config/locales/crowdin/js-uk.yml b/config/locales/crowdin/js-uk.yml index 76b91d6a581a..ebdb0a5e6b8f 100644 --- a/config/locales/crowdin/js-uk.yml +++ b/config/locales/crowdin/js-uk.yml @@ -61,6 +61,7 @@ uk: single: Виберіть %{name} remove: Видалити %{name} autocompleter: + create_label: Створити етикетку notFoundText: Елементів не знайдено placeholder: Введіть для пошуку project: @@ -162,6 +163,7 @@ uk: button_stop_timer: Зупинити таймер button_uncheck_all: Зняти усі відмітки button_update: Оновити + button_view_markdown: View Markdown caption_rate_history: Історія рейтингу card: add_new: Додати нову картку @@ -202,6 +204,7 @@ uk: description_subwork_package: 'Нащадок пакету робіт #%{id}' editor: ckeditor_error: У CKEditor сталася помилка + ckeditor_error_reload: Редактор перестав працювати. Ваш текст ще тут, але його не можна змінювати. Скопіюйте будь-який текст, який ви хочете зберегти, і перезавантажте сторінку. error_saving_failed: 'Не вдалося зберегти документ із такою помилкою: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ uk: ical_sharing_modal: copy_url_label: Копіювати URL description: За допомогою URL-адреси (iCalendar) ви можете підписатися на цей календар у зовнішньому клієнті й переглядати звідти актуальну інформацію про пакети робіт. - ical_generation_error_text: Під час створення URL-адреси календаря сталася помилка. - inital_setup_error_message: Під час отримання даних сталася помилка. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL-адресу «%{name}» скопійовано в буфер обміну. Вставте її в клієнт свого календаря, що завершити створення підписки. title: Підписатися на календар token_name_description_text: Якщо ви підписані на цей календар на кількох пристроях, це ім’я допоможе вам розрізняти їх у списку маркерів доступу. @@ -551,6 +554,8 @@ uk: label_reset: Скинути label_resize_project_menu: Змінити розмір меню проєкту label_save_as: Зберегти як + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Пошук стовпця label_select_watcher: Виберіть спостерігача... label_selected_filter_list: Вибрані фільтри @@ -623,10 +628,10 @@ uk: notifications: center: and_more_users: - one: і ще 1 - few: і ще %{count} - many: і ще %{count} - other: і ще %{count} + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others empty_state: no_notification: Схоже, ви все переглянули. no_notification_for_filter: Схоже, ви переглянули всі сповіщення за цим фільтром. @@ -722,6 +727,7 @@ uk: placeholders: default: "-" description: Опис. Натисніть, щоб змінити… + description_double_click: 'Опис: Двічі клацніть для редагування...' relation_description: Нажмите, чтобы добавить описание для этой связи selection: Будь ласка, виберіть subject: Введіть тему тут @@ -808,12 +814,36 @@ uk: sorting_disabled: сортування відключено sortable_lists: announcements: + batch_too_large: Неможливо перемістити всі елементи (%{count}) одночасно. Максимальна кількість — %{max}. fallback_item_label: Об’єкт fallback_list_name: інший список move_failed_check_position: Не вдалося перемістити. Перегляньте поточну позицію об’єкта. + move_failed_check_positions_batch: + other: Не вдалося перемістити. Перегляньте поточні позиції елементів. move_failed_rolled_back: Не вдалося перемістити. Об’єкт %{label} повернувся в попередню позицію. + move_failed_rolled_back_batch: + other: Не вдалося перемістити. Елементи (%{count}) повернулися на попередні позиції. moved: "%{label}: переміщено в позицію %{position} з %{total}" + moved_batch: + other: Елементи (%{count}) переміщено на позиції з %{first} по %{last} з %{total} + moved_batch_to_list: + other: Елементи (%{count}) переміщено в список «%{list}», позиції з %{first} по %{last} з %{total} moved_to_list: "%{label}: переміщено в список «%{list}» на позицію %{position} з %{total}" + selection: + cleared: Вибір скасовано. + not_selectable: Вибір залишився незмінним. Цей елемент не впливає на порядок у цьому списку. + range_blocked: Вибір залишився незмінним. Діапазон містить елемент, що не впливає на порядок у цьому списку. + range_restarted: + one: Could not extend the range. %{count} item selected. + few: Could not extend the range. %{count} items selected. + many: Could not extend the range. %{count} items selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Вибір залишився незмінним. Щоб вибрати потрібний діапазон, розгорніть цей список. + selected: + one: "%{count} item selected." + few: "%{count} items selected." + many: "%{count} items selected." + other: "%{count} items selected." spot: drop_modal: close: Закрити модальне вікно @@ -827,9 +857,7 @@ uk: text_user_wrote: "%{value} написав(-ла):" text_work_packages_destroy_confirmation: Ви впевнені у тому, що хочете видалити вибрані робочі пакети? time_entry: - stop: Зупинити title: Записування часу - tracking: Відстеження часу work_package_required: Спочатку потрібно вибрати пакет робіт. timer: button_stop: Зупинити поточний таймер @@ -864,24 +892,24 @@ uk: label_two_factor_authentication: Двофакторна аутентифікація units: child_work_packages: - one: один робочий пакет для дітей - few: "%{count} робочий пакет дітей" - many: "%{count} робочий пакет дітей" - other: "%{count} робочий пакет дітей" + one: "%{count} child work package" + few: "%{count} work package children" + many: "%{count} work package children" + other: "%{count} work package children" day: - one: 1 день + one: "%{count} day" other: "%{count} д." zero: 0 днів hour: - one: 1 год + one: "%{count} h" other: "%{count} год" zero: 0 год hour_string: "%{hours} год" word: - one: 1 слово - few: "%{count} слова" - many: "%{count} слів" - other: "%{count} слова" + one: "%{count} word" + few: "%{count} words" + many: "%{count} words" + other: "%{count} words" workPackage: one: Робочий пакет few: робочі пакети. diff --git a/config/locales/crowdin/js-uz.yml b/config/locales/crowdin/js-uz.yml index b2fc7541257a..6e17fbc3ec26 100644 --- a/config/locales/crowdin/js-uz.yml +++ b/config/locales/crowdin/js-uz.yml @@ -61,6 +61,7 @@ uz: single: Select "%{name}" remove: Remove %{name} autocompleter: + create_label: Create label notFoundText: No items found placeholder: Type to search project: @@ -162,6 +163,7 @@ uz: button_stop_timer: Stop timer button_uncheck_all: Uncheck all button_update: Update + button_view_markdown: View Markdown caption_rate_history: Rate history card: add_new: Add new card @@ -202,6 +204,7 @@ uz: description_subwork_package: 'Child of work package #%{id}' editor: ckeditor_error: An error occurred within CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Saving the document failed with the following error: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ uz: ical_sharing_modal: copy_url_label: Copy URL description: You can use the URL (iCalendar) to subscribe to this calendar in an external client and view up-to-date work package information from there. - ical_generation_error_text: An error occured while generating the calendar URL. - inital_setup_error_message: An error occured while fetching data. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription. title: Subscribe to calendar token_name_description_text: If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list. @@ -551,6 +554,8 @@ uz: label_reset: Reset label_resize_project_menu: Resize project menu label_save_as: Save as + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Search a column label_select_watcher: Select a watcher... label_selected_filter_list: Selected filters @@ -623,7 +628,7 @@ uz: notifications: center: and_more_users: - one: and 1 other + one: and %{count} other other: and %{count} others empty_state: no_notification: Looks like you are all caught up. @@ -720,6 +725,7 @@ uz: placeholders: default: "-" description: 'Description: Click to edit...' + description_double_click: 'Description: Double click to edit...' relation_description: Click to add description for this relation selection: Please select subject: Enter subject here @@ -806,12 +812,32 @@ uz: sorting_disabled: sorting is disabled sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} item selected. + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} item selected." + other: "%{count} items selected." spot: drop_modal: close: Close modal @@ -825,9 +851,7 @@ uz: text_user_wrote: "%{value} wrote:" text_work_packages_destroy_confirmation: Are you sure you want to delete the selected work package(s)? time_entry: - stop: Stop title: Log time - tracking: Time tracking work_package_required: Requires selecting a work package first. timer: button_stop: Stop current timer @@ -862,19 +886,19 @@ uz: label_two_factor_authentication: Two-factor authentication units: child_work_packages: - one: one child work package + one: "%{count} child work package" other: "%{count} work package children" day: - one: 1 day + one: "%{count} day" other: "%{count} days" zero: 0 days hour: - one: 1 h + one: "%{count} h" other: "%{count} h" zero: 0 h hour_string: "%{hours} h" word: - one: 1 word + one: "%{count} word" other: "%{count} words" workPackage: one: work package diff --git a/config/locales/crowdin/js-vi.yml b/config/locales/crowdin/js-vi.yml index a66944d4431b..1a2329b97180 100644 --- a/config/locales/crowdin/js-vi.yml +++ b/config/locales/crowdin/js-vi.yml @@ -61,6 +61,7 @@ vi: single: Chọn "%{name}" remove: Xoá %{name} autocompleter: + create_label: Create label notFoundText: Không tìm thấy mục nào placeholder: Nhập để tìm kiếm project: @@ -161,7 +162,8 @@ vi: button_start_timer: Bắt đầu hẹn giờ button_stop_timer: Dừng hẹn giờ button_uncheck_all: Bỏ chọn tất cả - button_update: cập nhật + button_update: Cập Nhật + button_view_markdown: View Markdown caption_rate_history: Lịch sử giá card: add_new: Thêm thẻ mới @@ -202,6 +204,7 @@ vi: description_subwork_package: 'Gói công việc con #%{id}' editor: ckeditor_error: Đã xảy ra lỗi trong CKEditor + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 'Lưu tài liệu không thành công với lỗi sau: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ vi: ical_sharing_modal: copy_url_label: Sao chép URL description: Bạn có thể sử dụng URL (iCalendar) để đăng ký lịch này trong ứng dụng khách bên ngoài và xem thông tin cập nhật về gói công việc từ đó. - ical_generation_error_text: Đã xảy ra lỗi khi tạo URL lịch. - inital_setup_error_message: Đã xảy ra lỗi khi tìm nạp dữ liệu. + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL "%{name}" đã được sao chép thành công vào khay nhớ tạm của bạn. Dán nó vào ứng dụng lịch của bạn để hoàn tất đăng ký. title: Đăng ký lịch token_name_description_text: Nếu bạn đăng ký lịch này từ nhiều thiết bị, tên này sẽ giúp bạn phân biệt giữa chúng trong danh sách token truy cập của mình. @@ -551,6 +554,8 @@ vi: label_reset: Reset label_resize_project_menu: Thay đổi kích thước menu dự án label_save_as: Lưu thành + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: Tìm kiếm một cột label_select_watcher: Chọn một người theo dõi... label_selected_filter_list: Bộ lọc đã chọn @@ -623,7 +628,7 @@ vi: notifications: center: and_more_users: - other: và %{count} người khác + other: and %{count} others empty_state: no_notification: Có vẻ như tất cả các bạn đã bị cuốn theo. no_notification_for_filter: Có vẻ như tất cả các bạn đều bị cuốn hút bởi bộ lọc này. @@ -719,6 +724,7 @@ vi: placeholders: default: "-" description: 'Mô tả: Click để chỉnh sửa...' + description_double_click: 'Description: Double click to edit...' relation_description: Nhấp để thêm mô tả cho mối quan hệ này selection: Vui lòng chọn subject: Nhập chủ đề vào đây @@ -805,12 +811,30 @@ vi: sorting_disabled: sắp xếp bị vô hiệu hóa sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: Đóng phương thức @@ -824,9 +848,7 @@ vi: text_user_wrote: "%{value} đã viết:" text_work_packages_destroy_confirmation: Bạn có chắc chắn muốn xóa (các) gói công việc đã chọn không? time_entry: - stop: Dừng lại title: Đăng nhập thời gian - tracking: Theo dõi thời gian work_package_required: Yêu cầu chọn gói công việc trước tiên. timer: button_stop: Dừng bộ đếm thời gian hiện tại @@ -861,18 +883,18 @@ vi: label_two_factor_authentication: Xác thực hai yếu tố units: child_work_packages: - other: "%{count} gói công việc trẻ em" + other: "%{count} work package children" day: - one: 1 ngày + one: "%{count} day" other: "%{count} ngày" zero: 0 ngày hour: - one: 1 giờ + one: "%{count} h" other: "%{count} giờ" zero: 0 giờ hour_string: "%{hours} giờ" word: - other: "%{count} từ" + other: "%{count} words" workPackage: other: gói công việc upsell: diff --git a/config/locales/crowdin/js-zh-CN.yml b/config/locales/crowdin/js-zh-CN.yml index ed585016cd1c..b506c43988e4 100644 --- a/config/locales/crowdin/js-zh-CN.yml +++ b/config/locales/crowdin/js-zh-CN.yml @@ -61,6 +61,7 @@ zh-CN: single: 选择“%{name}” remove: 删除%{name} autocompleter: + create_label: Create label notFoundText: 没有找到条目 placeholder: 键入内容进行搜索 project: @@ -162,6 +163,7 @@ zh-CN: button_stop_timer: 停止计时器 button_uncheck_all: 全部不选 button_update: 更新 + button_view_markdown: View Markdown caption_rate_history: 费率历史记录 card: add_new: 添加新卡 @@ -202,6 +204,7 @@ zh-CN: description_subwork_package: '子工作包 #%{id}' editor: ckeditor_error: CKEditor 发生错误 + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: 保存文档失败,出现以下错误:%{error} macro: attribute_reference: @@ -358,8 +361,8 @@ zh-CN: ical_sharing_modal: copy_url_label: 复制链接 description: 您可以使用 URL (iCalendar) 在外部客户端中订阅此日历,并从外部客户端查看最新工作包信息。 - ical_generation_error_text: 生成日历 URL 时出错。 - inital_setup_error_message: 获取数据时发生错误。 + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL“%{name}”已成功复制到剪贴板。请将其粘贴到日历客户端中以完成订阅。 title: 订阅日历 token_name_description_text: 如果您从多个设备订阅此日历,此名称将有助于在访问令牌列表中区分它们。 @@ -551,6 +554,8 @@ zh-CN: label_reset: 重置 label_resize_project_menu: 调整项目菜单大小 label_save_as: 另存为 + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: 搜索列 label_select_watcher: 选择一个关注者... label_selected_filter_list: 已选筛选器 @@ -623,7 +628,7 @@ zh-CN: notifications: center: and_more_users: - other: 和 %{count} 个其他 + other: and %{count} others empty_state: no_notification: 看起来您已查看所有通知。 no_notification_for_filter: 看起来你已经处理完了这个筛选器的所有内容。 @@ -719,6 +724,7 @@ zh-CN: placeholders: default: "-" description: 描述:点击以编辑… + description_double_click: 'Description: Double click to edit...' relation_description: 点击为此关系添加描述 selection: 请选择 subject: 在此处输入标题 @@ -805,12 +811,30 @@ zh-CN: sorting_disabled: 排序被禁用 sortable_lists: announcements: + batch_too_large: 无法一次性移动 %{count} 个条目。选择的条目数量不得超过 %{max} 个。 fallback_item_label: 条目 fallback_list_name: 另一个列表 move_failed_check_position: 移动失败。请检查该条目的当前位置。 + move_failed_check_positions_batch: + other: 移动失败。请检查条目的当前位置。 move_failed_rolled_back: 移动失败。%{label} 已回到其先前位置。 + move_failed_rolled_back_batch: + other: 移动失败。%{count} 个条目已回到其先前位置。 moved: "%{label} 已移至位置 %{position},总计 %{total}" + moved_batch: + other: "%{count} 个条目已被移至位置 %{first} 到 %{last},总计 %{total}" + moved_batch_to_list: + other: "%{count} 个条目已被移至 %{list} 的位置 %{first} 到 %{last},总计 %{total}" moved_to_list: "%{label} 已移至 %{list},位置 %{position},总计 %{total}" + selection: + cleared: 选择已清除。 + not_selectable: 选择未更改。此条目不参与此列表的排序。 + range_blocked: 选择未更改。该范围包含不参与此列表排序的条目。 + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: 选择未更改。扩展此列表,以选择该范围。 + selected: + other: "%{count} items selected." spot: drop_modal: close: 关闭模式 @@ -824,9 +848,7 @@ zh-CN: text_user_wrote: "%{value} 写道:" text_work_packages_destroy_confirmation: 确实要删除所选的工作包吗? time_entry: - stop: 停止 title: 记录时间 - tracking: 时间跟踪 work_package_required: 需要先选择一个工作包。 timer: button_stop: 停止当前计时器 @@ -861,18 +883,18 @@ zh-CN: label_two_factor_authentication: 双因子认证 units: child_work_packages: - other: "%{count} 子工作包" + other: "%{count} work package children" day: - one: 1 天 + one: "%{count} day" other: "%{count} 天" zero: 0 天 hour: - one: 1 小时 + one: "%{count} h" other: "%{count} 小时" zero: 0 小时 hour_string: "%{hours} 小时" word: - other: " %{count} 个单词" + other: "%{count} words" workPackage: other: 工作包 upsell: diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 8b49710d7d21..22ce5c0977e7 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -61,6 +61,7 @@ zh-TW: single: 選擇 "%{name}" remove: 刪除 %{name} autocompleter: + create_label: Create label notFoundText: 找不到任何項目 placeholder: 搜尋 project: @@ -162,6 +163,7 @@ zh-TW: button_stop_timer: 停止計時器 button_uncheck_all: 取消全選 button_update: 更新 + button_view_markdown: View Markdown caption_rate_history: 費率歷史紀錄 card: add_new: 新增卡片 @@ -202,6 +204,7 @@ zh-TW: description_subwork_package: '子工作套件 #%{id}' editor: ckeditor_error: CKEditor 出現錯誤 + ckeditor_error_reload: The editor stopped working. Your text is still here, but you cannot change it. Copy any text you want to keep, then reload the page. error_saving_failed: '保存文件失敗, 出現以下錯誤: %{error}' macro: attribute_reference: @@ -358,8 +361,8 @@ zh-TW: ical_sharing_modal: copy_url_label: 複製URL description: 您可以使用 URL (iCalendar) 在外部客戶端中訂閱此日曆,並從外部客戶端查看最新工作套件訊息。 - ical_generation_error_text: 生成日曆 URL 時出錯。 - inital_setup_error_message: 更新資料時發生錯誤 + ical_generation_error_text: An error occurred while generating the calendar URL. + inital_setup_error_message: An error occurred while fetching data. success_message: URL“%{name}”已成功複製到剪貼板。請將其粘貼到日曆客戶端中以完成訂閱。 title: 訂閱日曆 token_name_description_text: 如果您從多個裝置訂閱此行事曆,這個名稱將有助於您在存取令牌清單中加以區分。 @@ -551,6 +554,8 @@ zh-TW: label_reset: 重置 label_resize_project_menu: 調整專案功能表大小 label_save_as: 另存為 + label_scroll_left: Scroll left + label_scroll_right: Scroll right label_search_columns: 選取欄位 label_select_watcher: 選擇監看者 label_selected_filter_list: 所選的篩選條件 @@ -623,7 +628,7 @@ zh-TW: notifications: center: and_more_users: - other: 與其他 %{count} 個 + other: and %{count} others empty_state: no_notification: 看起來您已查看所有通知。 no_notification_for_filter: 看起來你已經處理完了這個篩選器的所有內容。 @@ -719,6 +724,7 @@ zh-TW: placeholders: default: "-" description: 描述:點選可編輯 + description_double_click: 'Description: Double click to edit...' relation_description: 按一下以便為此關係添加描述 selection: 請選擇 subject: 在此輸入名稱 @@ -805,12 +811,30 @@ zh-TW: sorting_disabled: 已停用排序 sortable_lists: announcements: + batch_too_large: Cannot move %{count} items at once. Select no more than %{max}. fallback_item_label: Item fallback_list_name: another list move_failed_check_position: Move failed. Check the item's current position. + move_failed_check_positions_batch: + other: Move failed. Check the items' current positions. move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} items returned to their previous positions. moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} items moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} items moved to %{list}, positions %{first} through %{last} of %{total}" moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + cleared: Selection cleared. + not_selectable: Selection unchanged. This item takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains an item that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} items selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} items selected." spot: drop_modal: close: 關閉模式 @@ -824,9 +848,7 @@ zh-TW: text_user_wrote: "%{value} 寫道:" text_work_packages_destroy_confirmation: 你確定要刪除選定的工作套件嗎? time_entry: - stop: 停止 title: 工時紀錄 - tracking: 工時紀錄 work_package_required: 需要先選擇一個工作套件。 timer: button_stop: 停止當前計時器 @@ -861,18 +883,18 @@ zh-TW: label_two_factor_authentication: 雙因素驗證 units: child_work_packages: - other: "%{count} 個子工作套件" + other: "%{count} work package children" day: - one: 1 天 + one: "%{count} day" other: "%{count} 天" zero: 0 天 hour: - one: 1 小時 + one: "%{count} h" other: "%{count} 小時" zero: 0 小時 hour_string: "%{hours} 小時" word: - other: "%{count} 字節" + other: "%{count} words" workPackage: other: 工作套件 upsell: diff --git a/config/locales/crowdin/ka.seeders.yml b/config/locales/crowdin/ka.seeders.yml index 907dff9a44b4..ef3b52420423 100644 --- a/config/locales/crowdin/ka.seeders.yml +++ b/config/locales/crowdin/ka.seeders.yml @@ -250,70 +250,26 @@ ka: In this module you can communicate project news to your team members. versions: item_0: - name: შეცდომის ჩამორჩენები - item_1: - name: Product Backlog - item_2: - name: სპრინტი 1 wiki: - title: სპრინტი 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: სპრინტი 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: პროექტის გეგმა item_1: - name: Product backlog + name: Version 1.1 item_2: - name: სპრინტი 1 + name: Version 1.0 item_3: name: ამოცანები boards: @@ -345,12 +301,13 @@ ka: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ka.yml b/config/locales/crowdin/ka.yml index 8d77e82ef351..fed7e7d25c48 100644 --- a/config/locales/crowdin/ka.yml +++ b/config/locales/crowdin/ka.yml @@ -40,7 +40,9 @@ ka: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: ანგარიშის წაშლა delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ ka: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ ka: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ka: repository: რეპოზიტორია comment: commented: კომენტარით - custom_action: - actions: ქმედებები custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ ka: uid: კლიენტის ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ ka: company: კომპანია favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: გვერდი row_count: მწკრივების რაოდენობა widgets: ვიჯეტები group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: იდენტიფიკაციის URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ka: title: Title member: blocked: Blocked + principal_type: Member type roles: როლები notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ka: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ka: ongoing: მიმდინარე spent_on: თარიღი type: ტიპი + token/base: + expires_on: Expiration date token/ical: calendar: კალენდარი ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ka: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: ადმინისტრატორი auth_source: Authentication source + avatar_type: Avatar type consented_at: ეთანხმება current_password: Current password department: Department @@ -410,7 +441,7 @@ ka: last_name: გვარი ldap_auth_source: LDAP მიერთება new_password: ახალი პაროლი - password_confirmation: დასტური + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ka: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ka: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: დროის სარტყელი warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: სამუშაო დღეები + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ka: title: სამუშაო დღეები true: include non-working days journal_internal: Internal Journal + labels: Labels notify: შემატყობინეთ observed_in_versions: Observed in versions parent: მშობელი @@ -519,6 +565,10 @@ ka: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ ka: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ka: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ ka: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ ka: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ ka: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ ka: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ ka: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ ka: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ ka: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ ka: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ ka: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ ka: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ ka: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ ka: issue_priority: one: პრიორიტეტი other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ ka: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ ka: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: ახლა დაჯავშნა @@ -1467,7 +1558,7 @@ ka: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ ka: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ ka: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ ka: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ ka: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ ka: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ ka: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ ka: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ ka: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ ka: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ ka: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ ka: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ ka: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: ჩვენება დრომდე @@ -2075,7 +2256,7 @@ ka: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ ka: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ ka: groups: ჯგუფები hexcode: თექვსმეტობითი კოდი id: ID + inexistent: Inexistent is_default: ნაგულისხმევი მნიშვნელობა is_for_all: For all projects issue: სამუშაო პაკეტი @@ -2253,6 +2431,7 @@ ka: updated_at: განახლების თარიღი updated_on: განახლების თარიღი uploader: ამტვირთავი + url: URL user: მომხმარებელი username: მომხმარებლის სახელი value: მნიშვნელობა @@ -2267,6 +2446,29 @@ ka: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ ka: button_set_reminder: Set reminder button_show: ჩვენება button_sort: დალაგება + button_stop_timer: Stop timer button_submit: გადაცემა button_test: ტესტი button_unarchive: არქივიდან გამოტანა @@ -2461,9 +2664,9 @@ ka: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ ka: plural: მორგებული ქმედებები custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ ka: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ ka: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,57 +2866,57 @@ ka: datetime: distance_in_words: about_x_hours: - one: დაახლოებით 1 საათი - other: დაახლოებით %{count} საათი + one: about %{count} hour + other: about %{count} hours about_x_months: - one: დაახლოებით 1 თვე - other: დაახლოებით %{count} თვე + one: about %{count} month + other: about %{count} months about_x_years: - one: დაახლოებით 1 წელი - other: დაახლოებით %{count} წელი + one: about %{count} year + other: about %{count} years almost_x_years: - one: თითქმის 1 წელი - other: თითქმის %{count} წელი + one: almost %{count} year + other: almost %{count} years half_a_minute: ნახევარი წუთი less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: 1 წელზე მეტი - other: "%{count} წელზე მეტი" + one: over %{count} year + other: over %{count} years x_days: - one: 1 დღე - other: "%{count} დღე" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 საათი - other: "%{count} სთ" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 სთ - other: "%{count} სთ" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 წუთი - other: "%{count} წუთი" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 წთ - other: "%{count} წუთი" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 თვე - other: "%{count} თვე" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 წამი - other: "%{count} წამი" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 წმ - other: "%{count} წმ" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 კვირა - other: "%{count} კვირა" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 წელი - other: "%{count} წელი" + one: "%{count} year" + other: "%{count} years" units: day: one: day @@ -2866,7 +3066,7 @@ ka: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ ka: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ ka: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ ka: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ ka: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ ka: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ ka: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ ka: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ ka: budget_deleted: Budget has been deleted dates_changed: თარიღები შეიცვალა default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ ka: label_copy_target: სამიზნე label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: ბირთვის აგება label_core_version: ბირთვის ვერსია label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: მიმდინარე სტატუსი label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ ka: label_custom_field_default_type: ცარიელი ტიპი label_custom_field_new: New custom field label_custom_field_plural: მორგებადი ველები - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: დიზაინი label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ ka: label_database_version: PostgreSQL version label_date: თარიღი label_date_and_time: დრო და თარიღი - label_date_format: თარიღის ფორმატი + label_date_and_time_formats: Date and time formats label_date_from: ვისგან label_date_from_to: From %{start} to %{end} label_date_to: ვის label_dates: Dates + label_day: დღე label_day_plural: დღე label_default: ნაგულისხმევი label_defaults: Defaults @@ -3596,6 +3970,7 @@ ka: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ ka: label_float: მცურავი label_folder: საქაღალდე label_follows: მიჰყვება + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: ახალი ფორუმი label_forum_plural: ფორუმები @@ -3684,6 +4060,7 @@ ka: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: ჯგუფები + label_group_attributes_plural: Group attributes label_group_by: დაჯგუფება label_group_named: ჯგუფი %{name} label_group_new: ახალი ჯგუფი @@ -3735,8 +4112,8 @@ ka: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: საკვანძო სიტყვები + label_label_plural: Labels label_language: ენა - label_language_based: Based on user's language label_languages: ენები label_last_activity: ბოლო აქტივობა label_last_change_on: ბოლო ცვლილების დრო @@ -3758,6 +4135,7 @@ ka: label_list: სია label_loading: იტვირთება... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: მომხმარებლის დაბლოკვა label_locked: დაბლოკილია label_logged_as: შესული ხართ როგორც @@ -3769,6 +4147,7 @@ ka: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: მაქსიმალური ზომა label_me: მე label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ ka: label_menu_item_name: Name of menu item label_message: შეტყობინება label_message_last: ბოლო შეტყობინება - label_message_new: ახალი შეტყობინება label_message_plural: შეტყობინებები label_message_posted: შეტყობინება დაემატა label_minute_plural: წუთი @@ -3799,6 +4177,7 @@ ka: label_module_plural: მოდულები label_modules: მოდულები label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: თვეების დასაწყისი label_more: კიდევ label_more_information: More information @@ -3812,6 +4191,7 @@ ka: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: სახელი label_never: არასოდეს label_new: ახალი @@ -3826,7 +4206,10 @@ ka: label_news_singular: სიახლეები label_news_view_all: ყველა სიახლის ნახვა label_next: შემდეგი + label_next_day: Next day + label_next_month: Next month label_next_week: შემდეგი კვირა + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(არ შეცვლილა)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ ka: label_no_parent_group: "(No parent group)" label_no_parent_page: მშობელი გვერდის გარეშე label_no_start_date: დაწყების თარიღის გარეშე + label_no_time: No time tracked label_nobody: არავინ label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ ka: label_preview: მინიატურა label_preview_not_available: Preview not available label_previous: წინა + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: წინა კვირა + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ ka: label_sort_lowest: ბოლოში გადატანა label_sorted_by: sorted by %{value} label_spent_time: დახარჯული დრო + label_stack: Stack label_start_to_end: დასაწყისიდან დასასრულამდე label_start_to_start: გაშვება გასაშვებად label_starts_with: starts with @@ -4038,6 +4426,7 @@ ka: label_subtask_plural: ქვეამოცანები label_summary: შეჯამება label_system: სისტემა + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ ka: label_time: დრო label_time_entry_activity_plural: Spent time activities label_time_entry_plural: დახარჯული დრო + label_timer_since: Started at %{time} label_title: სათაური label_today: დღეს label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ ka: label_user_search: Search for user label_user_settings: მომხმარებლებს პარამეტრები label_users_settings: მომხმარებლების პარამეტრები + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: ვერსიის ჩასწორება label_version_new: ახალი ვერსია label_version_plural: ვერსიები @@ -4100,6 +4492,7 @@ ka: label_videos: ვიდეოები label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: რევიზიების ნახვა label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ ka: label_wiki_start: საწყისი გვერდი label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: სამუშაო label_work_package: სამუშაო პაკეტი label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ ka: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: სამუშაო კვირა label_x_closed_work_packages_abbr: - one: 1 დახურულია + one: "%{count} closed" other: "%{count} closed" zero: 0 დახურულია label_x_comments: - one: 1 კომენტარი + one: "%{count} comment" other: "%{count} comments" zero: კომენტარების გარეშე label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 ღიაა + one: "%{count} open" other: "%{count} ღია" zero: 0 ღიაა label_x_projects: - one: 1 პროექტი + one: "%{count} project" other: "%{count} projects" zero: პროექტების გარეშე label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: გუშინ label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ ka: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ ka: you_have: გაქვთ logo_alt_text: ლოგო mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ ka: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ ka: create_button: შექმნა dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ ka: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: წვდომის კოდები description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: ქმედება expiration: ვადა @@ -4748,7 +5169,6 @@ ka: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ ka: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ ka: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ ka: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ ka: or: ან rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ ka: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ ka: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: კომენტარი სიახლეებზე permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: პროექტების კოპირება + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: მარქაფების შექმნა @@ -5105,6 +5519,7 @@ ka: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ ka: permission_manage_dashboards: Manage dashboards permission_manage_forums: ფორუმების მართვა permission_manage_members: წევრების მართვა + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: სიახლეების მართვა permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ ka: permission_save_bcf_queries: Save BCF queries permission_save_queries: ხედების შენახვა permission_search_project: პროექტის ძებნა - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ ka: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ ka: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ ka: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ ka: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ ka: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 პროექტი + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ ka: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ ka: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ ka: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ ka: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ ka: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,8 +5960,8 @@ ka: action_title: React add_reaction: Add reaction and_others: - one: და კიდევ 1 - other: და კიდევ %{count} + one: and %{count} other + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5637,6 +6082,31 @@ ka: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ ka: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ ka: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ ka: setting_start_of_week: კვირის საწყისი დღე setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: დრო setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ ka: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ ka: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ ka: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ ka: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ ka: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ ka: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ ka: section_work_week: სამუშაო კვირა sharing: count: - one: 1 მომხმარებელი + one: "%{count} user" other: "%{count} მომხმარებელი" zero: 0 მომხმარებელი denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ ka:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: დახურულია - is_default: ნაგულისხმევი is_readonly: მხოლოდ-წასაკითხად + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: და skip_last_comma: ცრუ text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: დარწმუნებული ბრძანდებით? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ ka: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ ka: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ ka: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ ka: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ ka: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ ka: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ ka: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ ka: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ ka: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ ka: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ ka: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: პროექტები + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ ka: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ ka: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ ka: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ ka: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ ka: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ ka: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: წაშლილი მომხმარებელი @@ -6842,7 +7446,7 @@ ka: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: მოწყობილობა / ოს-ი expires: ვადა - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ ka: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: დახურულია version_status_locked: დაბლოკილია version_status_open: გახსნა versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ ka: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ ka: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ ka: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ ka: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ ka: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/kk.seeders.yml b/config/locales/crowdin/kk.seeders.yml index d8e39cf6b19d..a80af6f83d88 100644 --- a/config/locales/crowdin/kk.seeders.yml +++ b/config/locales/crowdin/kk.seeders.yml @@ -250,70 +250,26 @@ kk: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ kk: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/kk.yml b/config/locales/crowdin/kk.yml index 8e709cbcaa08..54567f01b7aa 100644 --- a/config/locales/crowdin/kk.yml +++ b/config/locales/crowdin/kk.yml @@ -40,7 +40,9 @@ kk: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ kk: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ kk: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ kk: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ kk: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ kk: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ kk: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ kk: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ kk: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ kk: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ kk: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ kk: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ kk: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ kk: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ kk: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ kk: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ kk: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ kk: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ kk: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ kk: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ kk: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ kk: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ kk: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ kk: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ kk: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ kk: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ kk: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ kk: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ kk: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ kk: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ kk: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ kk: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ kk: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ kk: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ kk: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ kk: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ kk: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ kk: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ kk: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ kk: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ kk: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ kk: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ kk: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ kk: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ kk: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ kk: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ kk: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ kk: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ kk: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ kk: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ kk: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ kk: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ kk: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ kk: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ kk: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ kk: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ kk: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ kk: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ kk: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ kk: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ kk: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ kk: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ kk: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ kk: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ kk: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ kk: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ kk: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ kk: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ kk: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ kk: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ kk: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ kk: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ kk: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ kk: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ kk: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ kk: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ kk: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ kk: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ kk: label_preview: Алдын-ала көру label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ kk: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ kk: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ kk: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ kk: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ kk: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ kk: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ kk: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ kk: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ kk: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ kk: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ kk: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ kk: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ kk: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ kk: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ kk: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ kk: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ kk: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ kk: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ kk: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ kk: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ kk: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ kk: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ kk: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ kk: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ kk: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ kk: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ kk: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ kk: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ kk: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ kk: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ kk: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ kk: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ kk: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ kk: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ kk: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ kk: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ kk: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ kk: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ kk: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ kk: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ kk: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ kk: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ kk: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ kk: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ kk:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ kk: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ kk: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ kk: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ kk: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ kk: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ kk: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ kk: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ kk: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ kk: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ kk: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ kk: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ kk: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ kk: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ kk: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ kk: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ kk: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ kk: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ kk: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ kk: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ kk: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ kk: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ kk: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ kk: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ kk: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/ko.seeders.yml b/config/locales/crowdin/ko.seeders.yml index d39f85ed854f..969572a8f4da 100644 --- a/config/locales/crowdin/ko.seeders.yml +++ b/config/locales/crowdin/ko.seeders.yml @@ -250,25 +250,26 @@ ko: 이 모듈에서는 팀원에게 프로젝트 뉴스를 전할 수 있습니다. versions: item_0: - name: 버그 백로그 - item_1: - name: 제품 백로그 - item_2: - name: 스프린트 1 wiki: - title: 스프린트 1 - content: "### 스프린트 계획 미팅\n\n_여기에서 스프린트 계획 미팅에 대한 주제를 문서화하세요_\n\n* 타임 박스(8시간)\n* 입력: 제품 백로그\n* 출력: 스프린트 백로그\n\n* 4시간의 두 가지 추가 타임 박스로 나뉩니다.\n\n * 제품 소유자는 팀에 [제품 백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) 및 우선 순위를 제시하고 팀이 동의해야 하는 스프린트 목표를 설명합니다. 이들은 함께 팀이 다음 스프린트에서 다룰 제품 백로그의 주제에 우선 순위를 둡니다. 팀은 논의된 납품을 위해 노력합니다.\n * 팀은 (제품 소유자 없이) 자율적으로 세부적으로 계획하고 [스프린트 백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)를 통합하기 위해 논의된 요구 사항의 작업을 세분화합니다.\n\n\n### 일일 스크럼 미팅\n\n_여기에서 일일 스크럼 미팅에 대한 주제를 문서화하세요_\n\n* 팀의 간단한 일일 현황 미팅.\n* 타임 박스(최대 15분).\n* [작업 보드](##sprint:scrum_project__version__sprint_1)의 다음과 같은 주제를 논의하기 위한 스탠드업 미팅.\n * 다음 일일 스크럼까지 무엇을 할 계획인가요?\n * 내 작업에 방해가 된 것은 무엇인가요(방해물)?\n* 스크럼 마스터가 [스프린트 방해물](##sprint:scrum_project__version__sprint_1)을 알맞게 조정하고 기록합니다.\n* 제품 소유자가 최신 정보를 얻기 위해 참여할 수 있습니다.\n\n### 스프린트 검토 미팅\n\n_여기에서 스프린트 검토 미팅에 대한 주제를 문서화하세요_\n\n* 타임 박스(4시간).\n* 1인별 준비 시간은 최대 1시간입니다.\n* 팀은 이 스프린트에서 달성한 내용을 제품 소유자 및 기타 이해관계인에게 보여줍니다.\n* 중요: 더미 및 PowerPoint가 없습니다! 방금 완성된 제품 기능(증분)을 시연해야 합니다.\n* 제품 소유자, 이해관계자 및 기타 사람들의 피드백이 필요하며 향후 작업에 이 피드백이 포함될 것입니다.\n* 시연된 기능을 기반으로 제품 소유자는 이 증분을 적용하거나 추가로 개발할지 결정합니다. 이 가능성을 통해 조기 ROI 확보가 가능합니다.\n\n\n### 스프린트 회고\n\n_여기에서 스프린트 회고 미팅에 대한 주제를 문서화하세요_\n\n* 타임 박스(3시간).\n* 스프린트 검토 후, 스크럼 마스터가 알맞게 조정합니다.\n* 무엇이 잘 되었는지, 다음 스프린트를 위해 생산성을 높이거나, 더 재미있게 하기 위해 개선해야 할 사항은 무엇인지 등 스프린트에 대해 팀이 논의합니다. \n" - item_3: - name: 스프린트 2 + title: 릴리스 1.0 + content: | + ### 릴리스 1.0 + + _이 릴리스에 포함된 사항을 여기에 작성해 주세요._ + + * 이 릴리스의 작업 패키지는 대상 버전이 1.0인 패키지입니다. + * 릴리스 날짜는 *릴리스 v1.0* 마일스톤의 날짜입니다. + * 모든 버전의 진행 상황을 확인하려면 [로드맵]({{opSetting:base_url}}/projects/your-scrum-project/roadmap)을 열어보세요. + * 버전에 다른 위키 페이지를 연결하려면 [프로젝트 설정 → 버전]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions)을 열어주세요. categories: item_0: 카테고리 1(프로젝트 설정에서 변경) queries: item_0: name: 프로젝트 계획 item_1: - name: 제품 백로그 + name: 버전 1.1 item_2: - name: 스프린트 1 + name: 버전 1.0 item_3: name: 작업 boards: @@ -294,20 +295,21 @@ ko: options: name: 시작하기 text: | - 참여해주셔서 반갑습니다! OpenProject에서 시작하려면 몇 가지 작업을 시도해 보는 것이 좋습니다. + 참여해 주셔서 감사합니다! OpenProject에서 시작하려면 몇 가지 작업을 시도해 보는 것이 좋습니다. - 다음 단계를 시도해 보세요._ + _다음 단계를 수행해 보세요._ 1. *프로젝트에 새 멤버 초대*: → 프로젝트 탐색에서 [멤버]({{opSetting:base_url}}/projects/your-scrum-project/members)로 이동합니다. 2. *제품 백로그 및 스프린트 백로그 보기*: → 프로젝트 탐색에서 [백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)로 이동합니다. - 3. *작업 보드 보기*: → [백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)로 이동합니다. → 스프린트에서 오른쪽 화살표를 클릭합니다. → [작업 보드](##sprint:scrum_project__version__sprint_1)를 선택합니다. - 4. *새 작업 패키지 만들기*: → [작업 패키지 → 만들기]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new)로 이동합니다. - 5. *프로젝트 계획 만들기 및 업데이트*: → 프로젝트 탐색에서 [프로젝트 계획](##query:scrum_project__query__project_plan)으로 이동합니다. - 6. *스프린트 위키 만들기*: → [백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)로 이동하고 스프린트의 오른쪽 드롭다운 메뉴에서 스프린트 위키를 엽니다. 필요에 따라 [위키 템플릿]({{opSetting:base_url}}/projects/your-scrum-project/wiki/)을 편집할 수 있습니다. + 3. *스프린트 생성*: → [백로그]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)로 이동하고 “+ 스프린트”를 클릭하여 새 스프린트를 생성합니다. 백로그에서 작업 패키지를 스프린트로 이동하고 수행할 작업을 계획합니다. 준비가 되면 “스프린트 시작”을 클릭합니다. + 4. *스프린트 보드 보기*: → [보드]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)로 이동합니다. → 스프린트 이름을 클릭하여 스프린트 보드를 엽니다. + 5. *새 작업 패키지 만들기*: → [작업 패키지 → 만들기]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new)로 이동합니다. + 6. *프로젝트 계획 만들기 및 업데이트*: → 프로젝트 탐색에서 [프로젝트 계획](##query:scrum_project__query__project_plan)으로 이동합니다. 7. *추가 모듈 활성화*: → [프로젝트 설정 → 모듈]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules)로 이동합니다. + 여기에서 [사용자 가이드](https://www.openproject.org/docs/user-guide/)를 확인할 수 있습니다. - 질문이 있거나 지원이 필요하면 알려주세요. 연락처: [support[at]openproject.com](mailto:support@openproject.com). + 질문이 있거나 지원이 필요하면 언제든지 알려주세요. 연락처: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: 작업 패키지 diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index fb66ccdb6c14..2491e6170ce6 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -40,7 +40,9 @@ ko: view: 매크로를 사용하여 배치된 보기에 대한 동적 링크. work_package: 매크로를 사용하여 배치된 작업 패키지에 대한 동적 링크. account: + already_have_an_account: You already have an account? auth_source_login_html: "%{login}(으)로 로그인하여 계정을 활성화하세요." + continue_with_provider: Continue with %{name} delete: 계정 삭제 delete_confirmation: 이 계정을 정말로 삭제합니까? deletion_info: @@ -65,7 +67,9 @@ ko: error_self_registration_limited_provider: 'Single Sign-On 공급자 ''%{name}''에 대한 사용자 등록이 제한되어 있습니다. 관리자에게 계정을 활성화해 달라고 요청하거나 이 공급자에 대한 자체 등록 제한을 변경하세요. ' - login_with_auth_provider: 또는 이미 있는 계정으로 로그인 + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: 로그인 계속하기 omniauth_direct_login_redirecting: 해당 ID 공급자로 리디렉션 중… omniauth_login: 계정을 활성화하려면 로그인하시기 바랍니다. @@ -118,6 +122,8 @@ ko: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM 클라이언트 + automation: + actions: Actions calculated_value_error: customized_id: 사용자 지정된 ID customized_type: 사용자 지정된 유형 @@ -128,8 +134,6 @@ ko: repository: 리포지토리 comment: commented: 덧글을 달았습니다. - custom_action: - actions: 작업 custom_field: admin_only: 관리자 전용 allow_non_open_versions: 비공개 버전 허용 @@ -168,6 +172,7 @@ ko: uid: 고객 ID emoji_reaction: reactable: 반응 + reaction: Reaction enterprise_token: active_user_count_restriction: 활성 사용자 encoded_token: 엔터프라이즈 지원 토큰 @@ -179,20 +184,44 @@ ko: company: 회사 favorite: favorited: 항목 + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: 열 수 page: 페이지 row_count: 행 수 widgets: 위젯 group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: 그룹 사용자 identity_url: ID URL organizational_unit: 조직 단위 parent: 부모 그룹 group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: 조직 단위 parent: 부모 그룹 import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira 인스턴스 이름 personal_access_token: 개인 액세스 토큰 url: Jira 인스턴스 URL @@ -223,6 +252,7 @@ ko: title: 제목 member: blocked: 차단됨 + principal_type: 멤버 유형 roles: 역할 notification: read_ian: 인앱 읽기 @@ -235,6 +265,7 @@ ko: position: 위치 persisted_query: filters: 필터 + group_bys: 결과 그룹화 기준 name: 이름 orders: 주문 selects: 선택 @@ -367,6 +398,8 @@ ko: ongoing: 진행 중 spent_on: 날짜 type: 타입 + token/base: + expires_on: Expiration date token/ical: calendar: 달력 ical_token_query_assignment: 쿼리 할당 @@ -384,19 +417,17 @@ ko: type_variant: attribute_groups: 양식 default_work_package_description: 설명의 기본 텍스트 - defaults_source: 기본값 소스 enabled_in_new_projects: 새로운 프로젝트에서 활성 상태 - form_configuration_source: 양식 소스 + linked_aspects: Inherited configuration patterns: 패턴 - pdf_export_source: PDF 내보내기 소스 - project_attributes_source: 프로젝트 특성 소스 project_types: 이 변형을 사용하는 프로젝트 variant: 변형 variant_name: 이름 - workflows_source: 워크플로 소스 + workflow: Workflow user: admin: 관리자 auth_source: 인증 소스 + avatar_type: Avatar type consented_at: '동의함:' current_password: 기존 비밀번호 department: 부서 @@ -410,7 +441,7 @@ ko: last_name: 성 ldap_auth_source: LDAP 연결 new_password: 새로운 비밀번호 - password_confirmation: 확인 + password_confirmation: Password confirmation user_custom_field: custom_field_section: 섹션 user_non_working_time: @@ -419,11 +450,15 @@ ko: user_preference: auto_hide_popups: 성공 배너 자동으로 숨기기 auto_hide_popups_caption: 활성화하면 녹색 성공 배너가 5초 후에 자동으로 사라집니다. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: 업데이트 알림 button_update_look_and_feel: 모양과 느낌 업데이트 button_update_user_information: 프로필 업데이트 comments_sorting: '다음을 기준으로 작업 패키지 활동을 정렬하여 표시:' daily_reminders: 일일 미리 알림 + date_format: Date format disable_keyboard_shortcuts: 키보드 바로 가기 비활성화 dismissed_enterprise_banners: 숨겨진 엔터프라이즈 배너 force_dark_theme_contrast: 다크 모드에서 고대비 강제 적용 @@ -434,13 +469,23 @@ ko: header_look_and_feel: 모양 및 느낌 impaired: 액세스 모드 increase_contrast: 대비 증가 - increase_contrast_caption: 선택한 색상 모드에 대한 고대비 모드를 활성화합니다. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: 테마 대비 증가 mode_guideline: 일부 모드에서는 접근성과 가독성을 위해 사용자 지정 테마 색상을 덮어씁니다. 전체 사용자 지정 테마 지원을 위해서는 라이트 모드를 선택하세요. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: 색상 모드 + time_format: Time format time_zone: 표준 시간대 warn_on_leaving_unsaved: 저장하지 않고 작업 패키지를 벗어날 때 알려주세요. workdays: 근무일 + user_resource: + description: 설명 + name: 이름 + user_filter: 사용자 필터 + user_resource_detail: + description: 설명 + user_filter: 사용자 필터 user_working_hours: availability_factor: 가용성 요소 days: 근무일 @@ -491,6 +536,7 @@ ko: title: 근무일 true: 휴무일 포함 journal_internal: 내부 저널 + labels: Labels notify: 알림 observed_in_versions: 다음 버전에서 확인됨 parent: 부모 @@ -519,6 +565,10 @@ ko: work_package: 작업 패키지 work_package_version: kind: 종류 + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: 허용 되어야 합니다. @@ -590,6 +640,8 @@ ko: regex_invalid: 관련 정규 표현식으로 유효성을 확인할 수 없습니다. regex_list_invalid: "%{invalid_lines} 라인을 정규 표현식으로 구문 분석할 수 없습니다." regex_match_failed: "%{expression} 정규 표현식과 일치하지 않습니다." + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: 은(는) 최대 길이보다 같거나 작아야 합니다. smaller_than_or_equal_to_max_value: "- 최대값보다 작거나 같아야 합니다." ssrf_filtered: "- 이 OpenProject 인스턴스의 SSRF 정책을 위반합니다." @@ -612,6 +664,10 @@ ko: user_in_ldap_managed_department: 이 사용자는 LDAP 동기화를 통해 관리되는 부서에 속해 있으므로 이동할 수 없습니다. wrong_length: 너무 짧습니다 (최소 %{count} 자 이상이어야 합니다). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ ko: general_consent: 이용 약관에 동의해 주세요. favorite: already_favorited: "- 이미 즐겨찾기에 추가되었습니다." + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: 종료 값은 시작 값보다 커야 합니다. outside: "- 그리드의 외부에 있습니다." @@ -688,6 +754,13 @@ ko: not_unique: "- 사용 중입니다. 다른 이름을 선택하세요." jira: invalid_protocol: 유효한 프로토콜(http 또는 https)을 입력하세요 + label: + attributes: + name: + blank: 이름은 비워둘 수 없습니다. + format: "%{message}" + taken: 이 이름의 레이블이 이미 있습니다. 다른 이름을 사용해 주세요. + too_long: 이름이 너무 깁니다(최대 %{count}자). ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ ko: types: cannot_assign_multiple_variants_of_parent: 프로젝트에서는 유형의 단일 변형만 활성화할 수 있습니다 cannot_assign_variant_and_parent: '변형 및 해당 부모를 할당할 수 없습니다 ' - cannot_assign_variants_yet: 아직 프로젝트에서 변형을 활성화할 수 없습니다. 변형을 사용해 보려면 기능 플래그를 활성화하세요 in_use_by_work_packages: '아직 작업 패키지에 사용됨: %{types}' switch_target_blank: 전환할 변형을 선택하세요 switch_target_identical: 대상 유형은 프로젝트에서 현재 사용하는 유형과 달라야 합니다 @@ -856,42 +928,26 @@ ko: blank: 토큰 이름을 입력하세요 format: "%{message}" in_use: 이 토큰 이름은 이미 사용 중입니다. 다른 이름을 선택하세요 + type: + attributes: + base: + in_use_by_work_packages: 작업 패키지가 계속 사용하는 동안에는 이 유형을 삭제할 수 없습니다. type_variant: attributes: - attribute_groups: - attribute_unknown: 잘못된 작업 패키지 특성이 사용되었습니다. - attribute_unknown_name: '잘못된 작업 패키지 특성이 사용되었습니다: %{attribute}' - duplicate_group: 그룹 이름 '%{group}'이(가) 두 번 이상 사용되었습니다. 그룹 이름은 중복될 수 없습니다. - group_without_name: 그룹 이름은 비워둘 수 없습니다. - query_invalid: '포함된 쿼리 ''%{group}''이(가) 잘못되었습니다: %{details}' base: - borrowed_by_variants: "%{names}에서 해당 구성을 재사용하고 있는 동안에는 삭제할 수 없습니다." is_default_variant: 유형의 기본 구성은 삭제할 수 없습니다. project_variants_not_allowed: 이 유형은 프로젝트 내에서 변형 생성을 허용하지 않습니다. restrict_dependent_destroy: has_many: 프로젝트에서 계속 사용 중인 동안에는 삭제할 수 없습니다. - defaults_source_id: - must_be_available_to_the_variant: "- 이 프로젝트가 사용할 수 있는 구성이어야 합니다." - would_create_cycle: "- 이러한 구성은 루프로 연결될 것입니다." enabled_in_new_projects: not_available_to_project_owned_variant: "- 프로젝트가 소유한 변형에는 설정할 수 없습니다." taken: "- 이미 이 유형의 다른 구성에 대해 설정되어 있습니다." - form_configuration_source_id: - must_be_available_to_the_variant: "- 이 프로젝트가 사용할 수 있는 구성이어야 합니다." - would_create_cycle: "- 이러한 구성은 루프로 연결될 것입니다." patterns: invalid_tokens: 필드 내의 특성이 하나 이상 유효하지 않습니다. 특성을 수정한 후에 저장하세요. - pdf_export_source_id: - must_be_available_to_the_variant: "- 이 프로젝트가 사용할 수 있는 구성이어야 합니다." - would_create_cycle: "- 이러한 구성은 루프로 연결될 것입니다." - project_attributes_source_id: - must_be_available_to_the_variant: "- 이 프로젝트가 사용할 수 있는 구성이어야 합니다." - would_create_cycle: "- 이러한 구성은 루프로 연결될 것입니다." variant: must_belong_to_the_type: "- 이 유형의 변형이어야 합니다." - workflows_source_id: - must_be_available_to_the_variant: "- 이 프로젝트가 사용할 수 있는 구성이어야 합니다." - would_create_cycle: "- 이러한 구성은 루프로 연결될 것입니다." + workflow: + not_available_to_this_variant: "- 이 프로젝트가 사용할 수 있는 워크플로여야 합니다." user: attributes: base: @@ -905,7 +961,7 @@ ko: numeric: '숫자 (예: '' 1'')' requirements_not_met: '다음 유형의 문자를 포함해야 합니다: %{rules}' reused: - other: 전에 사용 되었습니다. 마지막 %{count} 에서 다른 하나를 선택 하십시오. + other: has been used before. Please choose one that is different from your last %{count}. special: '특수기호 (예: '' %'')' uppercase: '대문자(예: ''A'')' password_confirmation: @@ -974,6 +1030,8 @@ ko: identifier: must_not_be_changed: "- 수동으로 변경해서는 안 됩니다. 작업 패키지 식별자는 자동으로 할당되며 별칭 테이블을 통해 확인되므로, 수동으로 변경하면 링크와 식별자 기록이 손상됩니다. 의도적으로 변경하는 경우, `save(context: :%{context})`를 사용하여 저장하고 work_package_semantic_aliases 테이블의 일관성을 유지하세요." semantic_identifier_incomplete: 및 sequence_number를 동시에 둘 다 설정해야 합니다. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: 다른 프로젝트에 포함될 수 없음 cannot_be_milestone: 마일스톤에 포함될 수 없음 @@ -1001,6 +1059,8 @@ ko: status_id: status_invalid_in_type: "- 현재 상태가 이 유형에서 존재하지 않으므로 유효하지 않습니다." status_transition_invalid: 현재 사용자 역할이 새 상태로 바르게 전환될 수 없으므로 유효 하지 않음 + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: "- 마일스톤일 수 없습니다. 이 작업 패키지에는 자식 항목이 있기 때문입니다." is_not_a_valid_target_for_time_entries: '작업 패키지 #%{id}은(는) 시간 항목 재할당에 올바른 대상이 아닙니다.' @@ -1009,7 +1069,7 @@ ko: template: body: 다음 필드를 확인 하십시오. header: - other: "%{count} 오류 때문에 %{model} 을 저장할 수 없습니다." + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: 작업 @@ -1035,6 +1095,8 @@ ko: other: 작업 패키지 특성 도움말 텍스트 auth_provider: other: 인증 공급자 + automation: + other: Automations backup: other: 백업 capability: @@ -1049,8 +1111,6 @@ ko: other: 색상 comment: other: 코멘트 - custom_action: - other: 사용자 지정 작업 custom_field: other: 사용자 지정 필드 custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ ko: other: 내보내기 export_setting: other: 내보내기 설정 + form_configuration: + other: Forms forum: other: 포럼 global_role: @@ -1093,6 +1155,8 @@ ko: other: 상태 보고서 issue_priority: other: 우선 순위 + label: + other: Labels ldap_auth_source: other: LDAP 연결 mcp_configuration: @@ -1293,7 +1357,28 @@ ko: admin: banners: environment_configured_readonly: 이러한 값은 환경 변수를 통해 구성되며 여기에서 편집할 수 없습니다. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: 기본 색상 main_menu: 기본 사이드 메뉴 @@ -1326,7 +1411,11 @@ ko: tab_interface: 인터페이스 tab_pdf_export_font: PDF 내보내기 글꼴 tab_pdf_export_styles: PDF 내보내기 스타일 - theme_warning: 테마를 변경하면 사용자 정의 스타일을 덮어 씁니다. 그러면 디자인이 손실됩니다. 너 정말 계속하고 싶니? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Enterprise edition 지원 토큰을 업로드하세요. book_now: 지금 예약 @@ -1359,7 +1448,7 @@ ko: import: title: 가져오기 info: - database_deprecation_html: 'OpenProject 16.0부터, OpenProject를 사용하려면 PostgreSQL 16이 필요합니다. 현재 데이터베이스에서는 해당 설치가 계속 작동되지만, 향후 릴리스에서는 호환되지 않을 수 있습니다.
[모든 설치 방법에 대한 업그레이드 가이드](upgrade_guide)를 준비했습니다. 가이드에 따라 언제든지 다음 릴리스에 앞서 업그레이드를 수행할 수 있습니다. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc 메모리 할당기 @@ -1367,12 +1456,15 @@ ko: actions: button_edit: 구성 편집 button_open: 실행 열기 + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: '피드백 및 개인 데이터 기부를 통해 Jira Migator를 개선할 수 있도록 도와주세요. Jira Migator의 [개발 커뮤니티에 참여](link)할 수 있습니다. ' description: 이 Jira Migrator는 현재 베타 버전입니다. Jira Server/Data Center 버전 10.x 및 11.x만 현재 지원되며, Cloud 인스턴스는 현재 지원되지 않습니다. title: 베타 - 사용해 보세요! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Jira에서 이 OpenProject 인스턴스로 항목 가져오기를 시작하려면 Jira 호스트를 구성합니다. title: 아직 구성된 Jira 호스트 없음 @@ -1405,16 +1497,30 @@ ko: description: Jira는 프로젝트 키와 시퀀스 번호(PRJ-123)로 구성된 이슈 식별자를 사용합니다. OpenProject에서도 이를 지원하지만 [여기](link)에서 활성화해야 합니다. title: 프로젝트 기반 시맨틱 식별자를 활성화해야 합니다. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: 구성 추가 - button_delete_token: 토큰 삭제 + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: 구성 저장 - delete_token_confirm: 토큰을 삭제하시겠습니까? 그러면 Jira 연결이 비활성화됩니다. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: 이름 - personal_access_token: 개인 액세스 토큰 + personal_access_token: Personal access token (PAT) url: Jira 서버/데이터 센터 URL label_testing: 구성 테스트 중... - test_configuration_caption: "[여기를 클릭](test)하여 이 구성을 테스트할 수 있습니다" + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: 실행 편집 @@ -1518,19 +1624,19 @@ ko: title: 백업이 있는지 확인하세요! parts: issues: - other: "%{count}개 이슈" + other: "%{count} issues" jobs: other: "%{count} jobs" projects: - other: "%{count}개 프로젝트" + other: "%{count} projects" statuses: - other: "%{count}개 상태" + other: "%{count} statuses" types: - other: "%{count}개 유형" + other: "%{count} types" users: - other: "%{count}명 사용자" + other: "%{count} users" work_packages: - other: "%{count}개 작업 패키지" + other: "%{count} work packages" revert_dialog: confirm: 이 되돌리기를 통해 데이터가 영구적으로 삭제됨을 이해합니다 description: 이렇게 하면 가져온 모든 개체(전체 프로젝트 포함)가 삭제됩니다. @@ -1595,7 +1701,7 @@ ko: caption: OpenProject로 가져올 항목을 선택합니다 caption_done: 완료됨 caption_done_description: - other: 범위로 선택된 %{count}개 프로젝트 + other: "%{count} projects selected as scope" description: 호스트 Jira 인스턴스에서 가져온 사용 가능한 데이터에서 가져올 데이터를 선택합니다. elements: custom_fields: 사용자 지정 필드의 하위 집합 @@ -1659,23 +1765,52 @@ ko: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API가 오류 상태 %{status}을(를) 반환했습니다. Jira 인스턴스 URL 및 API 토큰을 확인하세요. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: '연결 오류: %{message}' error: 연결을 테스트하는 동안 예기치 않은 오류가 발생했습니다 failed: '연결 실패: 서버 정보를 검색할 수 없습니다' invalid_url: 유효한 URL을 제공하세요 - missing_credentials: URL과 개인 액세스 토큰을 모두 제공하여 연결을 테스트하세요 parse_error: 서버에서 응답을 구문 분석하지 못했습니다. 서버가 유효한 Jira 인스턴스가 아닐 수 있습니다. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: "%{server}(버전 %{version})에 연결되었습니다" - token_error: 잘못된 API 토큰입니다. 구성에서 자격 증명을 확인하세요. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: 토큰이 삭제되었습니다. user: unknown_name: 알 수 없음 journal_aggregation: caption_with_maximum: '작업 패키지에 대한 사용자 액션(설명, 상태, 값 변경 또는 코멘트 작성)은 이 기간 내에 수행된 경우 그룹화됩니다. 또한 알림 및 [webhook](webhook_link) 지연을 제어합니다. 최대 시간은 %{max}분입니다. ' + labels: + delete_dialog_component: + confirmation: 이 작업은 되돌릴 수 없음을 이해합니다 + description_html: 이렇게 하면 모든 프로젝트의 모든 작업 패키지에서 %{name} 레이블이 제거됩니다. + heading: 이 레이블을 삭제하시겠습니까? + title: 이 레이블을 삭제하시겠습니까? + dialog_component: + create_title: 레이블 만들기 + rename_title: '"%{name}" 이름 바꾸기' + index: + description: 작업 패키지를 편집할 수 있는 모든 사용자는 기존 레이블을 사용하여 작업 패키지에 자유롭게 태그를 지정하거나, 즉시 새로운 레이블을 생성할 수 있습니다. 여기에는 모든 프로젝트에서 사용자가 생성한 모든 레이블이 포함됩니다. + row_component: + used_in_work_packages: + other: "%{count}개 작업 패키지" + sub_header_component: + button_add: 레이블 + label_add: 레이블 추가 + search_placeholder: 검색하려면 여기에 입력하세요 + table_component: + blank_slate: + description: 사용자가 작업 패키지에서 생성한 레이블이 여기에 표시됩니다. + title: 아직 레이블 없음 + headers: + name: 레이블 + usage: '다음에서 사용됨:' + no_matches: + description: 다른 검색어를 사용해 보세요. + title: 검색 조건과 일치하는 레이블 없음 mcp_configurations: index: description: 모델 컨텍스트 프로토콜을 통해 AI 에이전트는 이 OpenProject 인스턴스에 의해 노출된 도구와 리소스를 사용자에게 제공할 수 있습니다. 이 기능은 아직 베타 버전입니다. @@ -1706,6 +1841,18 @@ ko: update: failure: MCP 구성을 업데이트할 수 없습니다. success: MCP 구성이 업데이트되었습니다. + members: + index: + blank_description: 현재 필터와 일치하는 멤버십이 없습니다. + blank_title: 멤버십 없음 + filter_label: 사용자 검색 + inheritance_source: "%{type} %{name}" + inherited_via: "(출처: %{source})" + title: 멤버십 + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: 자세한 내용은 통합 및 플러그인 페이지를 참조하세요. no_results_title_text: 현재 설치된 플러그인이 없습니다. @@ -1719,7 +1866,7 @@ ko: confirm_button: 식별자 예약 취소 description: 이 프로젝트 식별자를 예약 취소하면 되돌릴 수 없습니다. 이 식별자를 사용하는 외부 링크 및 통합은 더 이상 작동하지 않게 되며, 새 프로젝트에서 해당 이름을 클레임할 수 있게 됩니다. description_with_work_packages: - other: 이 프로젝트 식별자(및 해당 %{count}개 작업 패키지 식별자)를 예약 취소하면 되돌릴 수 없습니다. 이 식별자를 사용하는 외부 링크 및 통합은 더 이상 작동하지 않게 되며, 새 프로젝트에서 해당 이름을 클레임할 수 있게 됩니다. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: '"%{identifier}"을(를) 예약 취소하시겠습니까?' title: 식별자 예약 취소 empty_body: 프로젝트의 식별자가 변경되면, 이전 식별자가 여기에 표시되므로, 안전하다고 판단되면 예약 취소할 수 있습니다. @@ -1847,7 +1994,7 @@ ko: error_unknown: 수동 검토가 필요합니다 error_used_in_past: 다른 프로젝트의 핸들 기록에 의해 예약되었습니다 remaining_projects: - other: "... %{count}개의 추가 프로젝트" + other: "... %{count} more projects" banner: existing_identifiers_notice: "%{project_count}개 프로젝트의 기존 식별자가 프로젝트 기반 시맨틱 식별자에 대한 요구 사항을 충족하지 않습니다. OpenProject는 아래 예와 같이 해당 식별자가 유효하도록 자동으로 업데이트할 수 있습니다. '식별자 변환'을 클릭하여 이러한 방식으로 모든 프로젝트의 식별자를 업데이트하고 프로젝트 기반 시맨틱 식별자를 활성화하세요.\n" box_header: @@ -1885,7 +2032,7 @@ ko: types_caption: 이 작업이 사용 가능해야 하는 작업 패키지 유형을 추가하세요. 사용 가능한 모든 변형이 자동으로 포함됩니다. usage_scope_caption: '이 작업이 표시되는 위치를 제한할 수 있습니다: 모든 위치(코멘트, 위키 및 사용자 지정 필드 포함), 모든 작업 패키지 유형 또는 특정 작업 패키지 유형에 대한 위치.' index: - description: 텍스트 변환 작업은 작업 패키지 설명, 코멘트, 위키 페이지 등 서식 있는 텍스트 편집기가 사용되는 모든 위치에서 텍스트를 작성, 구성, 검토할 수 있도록 사용자에게 LLM 기반 작업을 제공합니다. 사용자는 고유한 프롬프트와 지침을 사용하여 새로운 작업을 생성할 수 있습니다. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: 작업 label_aria_add_action: 텍스트 변환 작업 추가 index_component: @@ -1917,12 +2064,19 @@ ko: ignore: 변경 사항 무시 save: 변경 사항을 저장하고 계속하기 title: 변경 사항을 저장한 후에 계속하시겠습니까? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: '역할: %{role}' no_role: 역할 선택 roles: - other: "%{count}개 역할 선택됨" + other: "%{count} roles selected" title: 역할 선택 + with_transitions: With transitions + without_transitions: Without transitions status_button: 상태 statuses_dialog: caption: 이 유형과 연결하려는 상태를 추가하거나 제거하세요. 상태를 제거하면 연결된 워크플로도 삭제됩니다. @@ -1932,7 +2086,7 @@ ko: confirm: 제거 description: 이러한 상태를 제거하면 이 유형에서 사용할 수 없게 되고 기존 워크플로가 삭제됩니다. 계속 진행하시겠습니까? heading: - other: "%{count}개 상태를 제거하시겠습니까?" + other: Remove %{count} statuses? title: 상태 제거 tabs: always: 기본 전환 @@ -1944,7 +2098,31 @@ ko: assignee: 작업 패키지의 담당자가 사용할 수 있는 추가 전환입니다. author: 작업 패키지의 작성자가 사용할 수 있는 추가 전환입니다. menu_label: 표시된 전환 + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: AI 서비스에 연결할 수 없습니다. + not_available: AI 어시스턴트를 사용할 수 없습니다. + timeout: AI 서비스가 제때 응답하지 않았습니다. + upstream_error: AI 서비스가 오류를 반환했습니다. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: 현재 표시됨 is_inactive: 현재 표시 안 됨 show_until: 표시 기한 @@ -1952,7 +2130,7 @@ ko: deleted_by_admin: 격리된 '%{filename}' 파일이 관리자에 의해 삭제되었습니다. deleted_message: "'%{filename}' 파일에서 바이러스가 발견되었습니다. 이 파일은 삭제되었습니다." not_processed_yet_message: 아직 파일의 바이러스 검사가 수행되지 않았으므로 다운로드가 차단되었습니다. 나중에 다시 시도하세요. - overridden_by_admin: "'%{filename}' 파일에 대한 격리가 %{user} 님에 의해 제거되었습니다. 이제 이 파일에 액세스할 수 있습니다." + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: 컨테이너 delete: 격리된 파일 삭제 @@ -2006,10 +2184,6 @@ ko: not_found: reminder: 원하는 미리 알림을 찾을 수 없거나 삭제되었습니다. work_package: 원하는 작업 패키지를 찾을 수 없거나 삭제되었습니다. - render: - context_not_parsable: 제공된 컨텍스트는 리소스에 대한 링크가 아닙니다. - context_object_not_found: 컨텍스트로 지정된 리소스를 찾을 수 없습니다. - unsupported_context: 지정된 리소스는 컨텍스트로 지원되지 않습니다. unable_to_create_attachment: 첨부 파일을 만들 수 없습니다. unable_to_create_attachment_permissions: 파일 시스템 사용 권한이 부족하여 첨부 파일을 저장할 수 없습니다. user: @@ -2080,6 +2254,7 @@ ko: groups: 그룹 hexcode: 16진수 코드 id: ID + inexistent: Inexistent is_default: 기본값 is_for_all: 모든 프로젝트용 issue: 작업 패키지 @@ -2130,6 +2305,7 @@ ko: updated_at: 업데이트 날짜 updated_on: 업데이트 날짜 uploader: 업로더 + url: URL user: 사용자 username: 사용자 이름 value: 값 @@ -2144,6 +2320,29 @@ ko: ' login_and_registration: 로그인 및 등록 + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: '오류로 인해 작업이 취소되었습니다: %{message}' @@ -2272,6 +2471,7 @@ ko: button_set_reminder: 미리 알림 설정 button_show: 표시 button_sort: 분류 + button_stop_timer: 타이머 중지 button_submit: 제출 button_test: 테스트 button_unarchive: 보관 취소 @@ -2338,9 +2538,9 @@ ko: text: failed: 프로젝트 "%{source_project_name}"을(를) 프로젝트 "%{target_project_name}"에 복사할 수 없습니다. succeeded: 프로젝트 "%{source_project_name}"을(를) 프로젝트 "%{target_project_name}"에 복사했습니다. - title: '"%{source_project_name}" 프로젝트 복사' + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: 이 유형의 객체가 하나 있습니다 + one: "%{count} object of this type" other: 이 유형의 객체가 %{count}개 있습니다 zero: 이 유형의 객체가 없습니다 create_portfolio: @@ -2378,13 +2578,9 @@ ko: plural: 사용자 지정 작업 custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: '"모든 프로젝트용" 옵션이 선택되었으므로 모든 프로젝트에서 이 사용자 지정 필드가 활성화되었습니다. 개별 프로젝트에 대해 비활성화할 수 없습니다.' - heading: 모든 프로젝트용 hierarchy: subitems: - one: 하위 항목 1개 + one: "%{count} sub-item" other: 하위 항목 %{count}개 zero: 하위 항목 없음 items: @@ -2405,7 +2601,7 @@ ko: short: 짧은 이름 weight: 가중치 notice: - remember_items_and_projects: 이 사용자 지정 필드의 각 탭에서 항목과 프로젝트를 설정해야 합니다. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: 이 프로젝트에서 해당 사용자의 원래 역할에 관계없이 이 프로젝트 특성에 할당된 모든 사용자에게 특정 프로젝트 역할을 자동으로 부여할 수 있습니다. dialog: @@ -2470,16 +2666,17 @@ ko: is_enabled_globally: 는 세계적으로 사용 가능합니다. multi_value_more: other: 외 %{count}개 + no_results_title_text: There are currently no custom fields. no_role_assigment: 역할 할당 없음 + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: 먼저 작업 패키지 또는 프로젝트를 선택해야 합니다 reorder_alphabetical: 알파벳순으로 값 재정렬 reorder_confirmation: '경고: 사용 가능한 값의 현재 순서 및 저장되지 않은 모든 값이 손실됩니다. 계속하시겠습니까?' semantic_keys: job_title: 직책 none: 없음 - tab: - no_results_content_text: 새 사용자 필드 생성 - no_results_title_text: 사용자 필드가 없습니다. text_add_new_custom_field: '프로젝트에 새 사용자 지정 필드를 추가하려면 먼저 해당 필드를 만들어야 합니다. 그래야 이 프로젝트에 해당 필드를 추가할 수 있습니다. ' @@ -2543,60 +2740,42 @@ ko: datetime: distance_in_words: about_x_hours: - other: 약 %{count} 시간 + other: about %{count} hours about_x_months: - other: |- - 약 1개월 - 약 %{count}개월 + other: about %{count} months about_x_years: - other: |- - 약 1년 - 약 %{count}년 + other: about %{count} years almost_x_years: - other: |- - 거의 1년 - 거의 %{count}년 + other: almost %{count} years half_a_minute: 30초 less_than_x_minutes: other: |- 1분 미만 %{count}분 미만 less_than_x_seconds: - other: |- - 1초 미만 - %{count}초 미만 + other: less than %{count} seconds over_x_years: - other: |- - 1년 이상 - %{count}년 이상 + other: over %{count} years x_days: - other: |- - 1일 - %{count}일 + other: "%{count} days" x_hours: - other: "%{count} 시간" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count}시간" + other: "%{count} hrs" x_minutes: - other: |- - 1분 - %{count}분 + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count}분" + other: "%{count} mins" x_months: - other: |- - 1개월 - %{count}개월 + other: "%{count} months" x_seconds: - other: |- - 1초 - %{count}초 + other: "%{count} seconds" x_seconds_abbreviated: - other: "%{count}초" + other: "%{count} s" x_weeks: - other: "%{count}주" + other: "%{count} weeks" x_years: - other: "%{count}년" + other: "%{count} years" units: day: other: 일 @@ -2743,7 +2922,7 @@ ko: teaser: description_html: 모든 %{trial_plan} 기능에 액세스할 수 있습니다. title: - other: "%{trial_plan} 평가판 토큰 %{count}일 남음" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: '평가판 Enterprise 토큰을 이미 가져왔습니다. 이메일에서 토큰이 첨부되어 있는지 확인하세요. 새 토큰이 필요한 경우 지원팀에 문의하세요. @@ -3078,9 +3257,142 @@ ko: selected: 선택됨 include_sub_items: 하위 항목 포함 no_results_text: 결과 없음 + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: 포럼에 대한 포스트가 현재 없습니다. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3105,6 +3417,8 @@ ko: groups: edit: synchronized_groups: 동기화된 그룹 + form: + group_attributes: Group attributes index: description: 사용자를 그룹화하여 동일한 프로젝트에 멤버로 추가하거나 동일한 글로벌 역할을 할당할 수 있습니다. memberships: @@ -3130,6 +3444,10 @@ ko: leave_project: 프로젝트에서 나가기 no_favorite_projects: 즐겨 찾는 프로젝트가 없습니다. title: 프로젝트 + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3141,7 +3459,7 @@ ko: summary: failure: 일부 검사가 실패했으며 시스템이 예상대로 작동되지 않습니다. success: 모든 연결과 시스템이 예상대로 작동 중입니다. - warning: 일부 검사에서 경고가 반환되었습니다. 이로 인해 예상치 못한 동작이 발생할 수 있습니다. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: 실패함 @@ -3150,7 +3468,7 @@ ko: warning: 경고 help_texts: views: - favoured: 이 보기를 즐겨찾기로 표시하고 왼쪽의 저장된 보기 사이드바에 추가하세요. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural}은(는) 항상 프로젝트에 연결됩니다. %{plural} 모듈이 활성화된 프로젝트만 선택할 수 있습니다. %{singular}을(를) 생성한 후 다른 프로젝트의 작업 패키지를 여기에 추가할 수 있습니다.\n" public: 다른 사용자가 이 보기에 액세스할 수 있도록 하려면 이 보기를 게시하십시오. '공용 보기 관리' 권한을 가진 사용자는 공용 쿼리를 수정 또는 제거할 수 있습니다. 이는 해당 보기에서 작업 패키지 결과의 표시 여부에 영향을 주지 않기 때문에 사용자의 권한에 따라 다른 결과가 표시될 수 있습니다. homescreen: @@ -3175,6 +3493,31 @@ ko: line_6: Community Edition에서 날짜 알림을 사용합니다. new_features_title: '이 릴리스에는 다음과 같은 다양한 새로운 기능과 개선 사항이 포함되어 있습니다. + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: 새로운 기능 및 제품 업데이트에 대해 알아보세요. learn_about: 새로운 모든 기능에 대해 자세히 알아보기 @@ -3211,8 +3554,10 @@ ko: journals: cause_descriptions: budget_deleted: 예산이 삭제되었습니다 + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} 변경됨(%{link})" + csv: from CSV deleted_with_diff: "%{field} 삭제됨(%{link})" field_changed: "%{field}이(가) %{old_value}에서 %{new_value}(으)로 변경됨" field_removed: "%{field} 제거됨" @@ -3262,6 +3607,7 @@ ko: budget_deleted: 예산이 삭제되었습니다 dates_changed: 변경된 날짜 default_attribute_written: 읽기 전용 특성 작성됨 + forum_message_html: "Created from forum message %{message_information}" import: 가져옴 meeting_agenda_item_added_html: "미팅에 추가됨: %{meeting_title_information}" meeting_agenda_item_added_template_html: "다음에 추가됨: %{meeting_title_information}" @@ -3414,10 +3760,10 @@ ko: label_copy_target: 대상 label_copy_workflow_from: 다음에서 워크플로 복사 label_copy_workflow_from_role: 다른 역할에 복사 - label_copy_workflow_from_type: 다른 유형에 복사 label_core_build: 코어 빌드 label_core_version: 코어 버전 label_created_by: '작성자: %{user}' + label_criteria: 기준 label_current_status: 현재 상태 label_current_version: 현재 버전 label_custom_comment: "%{name} 코멘트" @@ -3441,8 +3787,6 @@ ko: label_custom_field_default_type: 빈 유형 label_custom_field_new: 새 사용자 지정 필드 label_custom_field_plural: 사용자 정의 필드 - label_custom_logo: 사용자 지정 로고 데스크톱 - label_custom_logo_mobile: 사용자 지정 로고 모바일 label_custom_pdf_export_settings: 사용자 지정 PDF 내보내기 설정 label_custom_style: 디자인 label_custom_style_description: 테마를 사용하여 OpenProject의 모양을 선택하고, 앱에서 사용할 기본 색상 및 내보내기의 모양을 선택하세요. @@ -3451,11 +3795,12 @@ ko: label_database_version: PostgreSQL 버전 label_date: 날짜 label_date_and_time: 날짜 및 시간 - label_date_format: 날짜 형식 + label_date_and_time_formats: Date and time formats label_date_from: 시작 label_date_from_to: "%{start}부터 %{end}까지" label_date_to: 끝 label_dates: 날짜 + label_day: 일 label_day_plural: 일 label_default: 기본 label_defaults: 기본값 @@ -3466,6 +3811,7 @@ ko: label_deleted_custom_field: "(삭제된 사용자 지정 필드)" label_deleted_custom_item: "(삭제된 항목)" label_deleted_custom_option: "(삭제된 옵션)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: 조직 label_departments_description_html: '계층적 방식으로 부서와 하위 부서를 만들어 회사 구조를 정의하세요. 이렇게 하면 OpenProject 내에서 보고 라인을 반영하고 조직에 대한 명확하고 구조화된 개요를 유지할 수 있습니다. [LDAP 부서 동기화](ldap_docs_article)를 통해 기존 조직 구조를 가져올 수도 있습니다. @@ -3536,6 +3882,7 @@ ko: label_float: 부동 label_folder: 폴더 label_follows: 팔로우 + label_form_configuration_plural: Forms label_formula: 공식 label_forum_new: 새 포럼 label_forum_plural: 포럼 @@ -3554,6 +3901,7 @@ ko: label_go_forward: "%{module} 하위 메뉴 열기" label_greater_or_equal: ">=" label_group: 그룹 + label_group_attributes_plural: Group attributes label_group_by: 그룹화 기준 label_group_named: 그룹 %{name} label_group_new: 새 그룹 @@ -3605,8 +3953,8 @@ ko: label_journal_diff: 설명 비교 label_jump_to_a_project: 프로젝트로 이동... label_keyword_plural: 키워드 + label_label_plural: 레이블 label_language: 언어 - label_language_based: 사용자 언어에 따름 label_languages: 언어 label_last_activity: 마지막 활동 label_last_change_on: 마지막 변경 @@ -3628,6 +3976,7 @@ ko: label_list: 목록 label_loading: 로드 중... label_locale: 언어 및 지역 + label_locale_based: Use default for user locale label_lock_user: 사용자 잠금 label_locked: 잠김 label_logged_as: '로그인한 계정:' @@ -3639,6 +3988,7 @@ ko: label_managed_by_ldap: LDAP 동기화를 통해 관리됨 label_managed_repositories_vendor: 관리 되는 %{vendor} 저장소 label_mapping_for: '매핑 대상: %{attribute}' + label_markdown_version: Markdown version label_max_size: 최대 크기 label_me: 나 label_member_all_admin: "(관리 상태에 따른 모든 역할)" @@ -3657,7 +4007,6 @@ ko: label_menu_item_name: 메뉴 항목의 이름 label_message: 메시지 label_message_last: 마지막 메시지 - label_message_new: 새 메시지 label_message_plural: 메시지 label_message_posted: 메시지 추가됨 label_minute_plural: minutes @@ -3669,6 +4018,7 @@ ko: label_module_plural: 모듈 label_modules: 모듈 label_modules_and_plugins: 모듈 및 플러그인 + label_month: 월 label_months_from: 개월 동안 | 다음부터 label_more: 기타 label_more_information: 더보기 @@ -3682,6 +4032,7 @@ ko: label_my_avatar: 내 아바타 label_my_queries: 내 사용자 지정 쿼리 label_my_security: 보안 + label_my_time: My time label_name: 이름 label_never: 사용 안 함 label_new: 새로 만들기 @@ -3696,7 +4047,10 @@ ko: label_news_singular: 뉴스 label_news_view_all: 모든 뉴스 보기 label_next: 다음 + label_next_day: 다음 날 + label_next_month: 다음 달 label_next_week: 다음 주 + label_next_workweek: 다음 근무 주 label_next_year: 다음 연도 label_no_change_option: "(변경 없음)" label_no_data: 표시할 데이터가 없습니다. @@ -3704,6 +4058,7 @@ ko: label_no_parent_group: "(부모 그룹 없음)" label_no_parent_page: 부모 페이지 없음 label_no_start_date: 시작 날짜 없음 + label_no_time: 추적된 시간 없음 label_nobody: 아무도 없음 label_non_working_days: 가능 여부 캘린더 label_non_working_days_summary: 요약 @@ -3770,7 +4125,10 @@ ko: label_preview: 미리 보기 label_preview_not_available: 미리 보기를 사용할 수 없음 label_previous: 이전 + label_previous_day: 이전 날 + label_previous_month: 이전 달 label_previous_week: 이전 주 + label_previous_workweek: 이전 근무 주 label_previous_year: 이전 연도 label_principal_invite_via_email: " 또는 이메일을 통해 새 사용자 초대하기" label_principal_search: 기존 사용자 또는 그룹 추가 @@ -3889,6 +4247,7 @@ ko: label_sort_lowest: 맨 아래로 이동 label_sorted_by: "%{value}(으)로 정렬됨" label_spent_time: 소비한 시간 + label_stack: Stack label_start_to_end: 시작 - 끝 label_start_to_start: 시작 - 시작 label_starts_with: 다음으로 시작 @@ -3908,6 +4267,7 @@ ko: label_subtask_plural: 하위 작업 label_summary: 요약 label_system: 시스템 + label_system_or_language_default: Use system or language based default label_system_settings: 시스템 설정 label_system_storage: 저장 공간 정보 label_table_of_contents: 목차 @@ -3922,6 +4282,7 @@ ko: label_time: 시간 label_time_entry_activity_plural: 소요 시간 활동 label_time_entry_plural: 소비한 시간 + label_timer_since: "%{time}에 시작됨" label_title: 제목 label_today: 오늘 label_today_as_date: 오늘을 날짜로 선택하세요. @@ -3957,7 +4318,9 @@ ko: label_user_search: 사용자 검색 label_user_settings: 사용자 설정 label_users_settings: 사용자 설정 + label_value: Value label_value_x: '값: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: 버전 편집 label_version_new: 새 버전 label_version_plural: 버전 @@ -3970,6 +4333,7 @@ ko: label_videos: 동영상 label_view_all_revisions: 모든 수정 보기 label_view_diff: 차이점 보기 + label_view_mode_switcher: 보기 변경 label_view_revisions: 수정 보기 label_view_x: '보기: %{x}' label_watched_work_packages: 주시하는 작업 패키지 @@ -3993,6 +4357,8 @@ ko: label_wiki_start: 시작 페이지 label_wiki_toc: 목차 label_wiki_toc_empty: 머리글이 없으므로 목차가 비어 있습니다. + label_with_criteria: 기준 있음 + label_without_criteria: 기준 없음 label_work: 작업 label_work_package: 작업 패키지 label_work_package_attachments: 작업 패키지 첨부 파일 @@ -4015,42 +4381,43 @@ ko: label_working_days: 근무일 label_working_days_and_hours: 근무일 및 시간 label_working_hours: 근무 스케줄 + label_workweek: 근무 주 label_x_closed_work_packages_abbr: - one: 1개 닫힘 + one: "%{count} closed" other: "%{count}개 닫힘" zero: 0개 닫힘 label_x_comments: - one: 1개 코멘트 + one: "%{count} comment" other: "%{count}개 코멘트" zero: 코멘트 없음 label_x_days: - other: "%{count}일" + other: "%{count} days" label_x_files: - one: 파일 1개 + one: "%{count} file" other: 파일 %{count}개 zero: 파일 없음 label_x_items: - one: 1개 항목 + one: "%{count} item" other: "%{count}개 항목" zero: 항목 없음 label_x_items_selected: - other: "%{count}개 항목 선택됨" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1개 열림 + one: "%{count} open" other: "%{count}개 열림" zero: 0개 열림 label_x_projects: - one: 1개 프로젝트 + one: "%{count} project" other: "%{count}개 프로젝트" zero: 프로젝트 없음 label_x_work_packages: - one: 작업 패키지 1개 + one: "%{count} work package" other: 작업 패키지 %{count}개 zero: 작업 패키지 없음 label_x_working_days: - other: 근무일 %{count}일 + other: "%{count} working days" label_x_working_days_time_off: - other: '휴가: 근무일 %{count}일' + other: 'Time off: %{count} working days' label_yesterday: 어제 label_zen_mode: 젠 모드 ldap_auth_sources: @@ -4104,7 +4471,7 @@ ko: start_tls: STARTTLS start_tls_description: 표준 LDAP 포트에 연결한 후 STARTTLS 명령을 보냅니다. 암호화된 연결에 권장됩니다. tls_options: - tls_certificate_description: LDAP 서버 인증서가 이 시스템의 신뢰 소스에 없으면 여기에서 수동으로 추가할 수 있습니다. PEM X509 인증서 문자열을 입력하세요. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL 인증서 확인 verify_peer_description_html: '인증서 신뢰 체인의 엄격한 SSL 인증을 활성화합니다.
경고: 이 옵션을 선택 취소하면 LDAP 서버 인증서의 SSL 인증이 비활성화됩니다. 이렇게 하면 사용자의 연결이 중간자 공격에 노출됩니다. @@ -4161,6 +4528,8 @@ ko: you_have: 회원님은 logo_alt_text: 로고 mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} 님이 %{id} - %{subject}에서 귀하를 멘션했습니다" notification: center: 알림 센터로 @@ -4217,7 +4586,7 @@ ko: mentioned: 회원님이 코멘트에서 멘션되었습니다 mentioned_by: "%{user} 님이 코멘트에서 회원님을 멘션했습니다." more_to_see: - other: 알림이 있는 작업 패키지가 %{count}개 더 있습니다. + other: There are %{count} more work packages with notifications. open_in_browser: 브라우저에서 열기 reason: assigned: 할당됨 @@ -4389,6 +4758,12 @@ ko: create_button: 만들기 dialog_body: 이 토큰을 사용하면 타사 애플리케이션이 해당 인스턴스와 통신할 수 있습니다. 새 API 토큰을 구별하려면 이름을 지정하세요. dialog_title: 새 API 토큰 만들기 + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: 토큰 이름 failed_to_create_token: '액세스 토큰을 만들지 못했습니다: %{error}' failed_to_reset_token: '액세스 토큰을 재설정하지 못함: %{error}' @@ -4402,10 +4777,26 @@ ko: password_confirmation_dialog: confirmation_required: 이 변경 내용을 확인하려면 계정 암호를 입력해야 합니다. title: 계속하려면 암호 확인 + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: 액세스 토큰 description: 공급자 토큰은 OpenProject에서 발급하며, 다른 애플리케이션이 액세스하도록 허용합니다. 클라이언트 토큰은 다른 애플리케이션에서 발급하며, OpenProject가 액세스하도록 허용합니다. + expired_on: Expired on %{date} headers: action: 액션 expiration: 만료 @@ -4611,7 +5002,6 @@ ko: notice_principals_found_single: |- 한 개의 결과가 있습니다. 보려면 탭 해주세요. - notice_project_cannot_update_custom_fields: '프로젝트의 사용 가능한 사용자 지정 필드를 업데이트할 수 없습니다. 프로젝트가 유효하지 않습니다: %{errors}' notice_project_not_deleted: 프로젝트가 삭제되지 않았습니다. notice_project_not_found: 프로젝트를 찾을 수 없습니다. notice_requires_enterprise_token: Enterprise 토큰이 누락되었거나 이 페이지에 대한 액세스를 허용하지 않습니다. @@ -4621,9 +5011,6 @@ ko: notice_successful_create: 생성에 성공했습니다. notice_successful_delete: 삭제에 성공했습니다. notice_successful_update: 업데이트에 성공했습니다. - notice_successful_update_custom_fields_added_to_project: '업데이트 성공. 활성화된 유형의 사용자 지정 필드는 작업 패키지 양식에서 자동으로 활성화됩니다. 자세히 알아보세요. - - ' notice_to_many_principals_to_display: |- 너무 많은 결과가 있습니다. 새 멤버(또는 그룹)의 이름을 입력하여 검색 범위를 좁히세요. @@ -4724,7 +5111,7 @@ ko: ' confirm_revoke_my_application: - other: 이 애플리케이션을 제거하시겠습니까? 그러면 이 애플리케이션에 대해 활성화된 토큰 %{count}개가 취소됩니다. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: 등록된 OAuth 애플리케이션이 없습니다. flows: authorization_code: 권한 부여 코드 흐름 @@ -4812,8 +5199,6 @@ ko: not_found: "- 찾을 수 없습니다." respond_to?: "- 필수 메서드를 구현하지 않습니다." rules: - copy_workflow_from: - workflow_missing: "- 고유한 워크플로가 없습니다." custom_field: format_not_supported: 형식 '%{field_format}'은(는) 지원되지 않습니다. item: @@ -4833,7 +5218,6 @@ ko: or: 또는 rules: blueprint: 패턴 청사진 - copy_workflow_from: 워크플로 복사의 유형 depth: 깊이 enabled: 활성화됨 item: 항목 @@ -4905,8 +5289,8 @@ ko: label: 목차 page_nr_footer: "%{page}/%{total}페이지" template_artefact: - caption: PMflex 아티팩트로 렌더링된 작업 패키지 세부 정보입니다. - label: PMflex 아티팩트 + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: 기본 템플릿을 사용하는 현재 양식에 있는 모든 특성입니다. label: 특성 및 설명 @@ -4931,7 +5315,7 @@ ko: permission_change_work_package_status_explanation: 작업 패키지 편집 권한 없이 상태 변경을 허용합니다 permission_comment_news: 뉴스에 코멘트 달기 permission_commit_access: 리포지토리(커밋)에 대한 읽기/쓰기 액세스 - permission_copy_projects: 프로젝트 복사 + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 템플릿 프로젝트의 이 권한에는 템플릿에서 파생된 새 프로젝트를 만들 수 있는 부차적인 기능이 있습니다. permission_copy_work_packages: 작업 패키지 복제 permission_create_backup: 백업 만들기 @@ -4964,6 +5348,7 @@ ko: permission_export_projects: 프로젝트 내보내기 permission_export_work_packages: 작업 패키지 내보내기 permission_header_for_project_module_work_package_tracking: 작업 패키지 및 Gantt 차트 + permission_import_work_packages: Import work packages permission_invite_members_by_email: 이메일로 멤버 초대 permission_invite_members_by_email_explanation: '사용자가 이메일로 새로운 멤버를 초대할 수 있습니다. 초대된 사용자는 암호를 설정하고 계정을 활성화하는 링크가 포함된 이메일을 받게 됩니다. 멤버를 관리하는 권한에 따라 다릅니다 @@ -4974,6 +5359,9 @@ ko: permission_manage_dashboards: 대시보드 관리 permission_manage_forums: 포럼 관리 permission_manage_members: 멤버 관리 + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: 뉴스 관리 permission_manage_own_reminders: 고유한 미리 알림 만들기 permission_manage_own_working_times: 내 근무 시간 관리 @@ -5005,7 +5393,6 @@ ko: permission_save_bcf_queries: BCF 쿼리 저장 permission_save_queries: 보기 저장 permission_search_project: 프로젝트 검색 - permission_select_custom_fields: 사용자 지정 필드 선택 permission_select_project_custom_fields: 프로젝트 특성 선택 permission_select_project_modules: 프로젝트 모듈 선택 permission_select_project_phases: 프로젝트 단계 선택 @@ -5039,6 +5426,16 @@ ko: permission_work_package_assigned: 담당자/책임자 되기 permission_work_package_assigned_explanation: 작업 패키지는 각각의 프로젝트에서 이 역할을 가진 사용자와 그룹에 할당될 수 있습니다. placeholder_users: + criteria: + activate: 필터 기준 활성화 + activate_caption: '이 옵션을 통해, 원하는 기준에 부합하는 잠재적 사용자를 정의하기 위해 사용되는 이 플레이스홀더 사용자에 필터 세트를 추가할 수 있습니다. + + ' + enable: 기준에 따라 사용자 매칭 + enable_caption: 이 플레이스홀더가 나타내는 사용자 유형을 설명해 주시면, 해당 유형에 맞는 사용자를 추천해 드릴 수 있습니다. + matching_users: 필터 기준을 충족하는 사용자 + no_matching_users: 이러한 기준을 충족하는 사용자가 없습니다. + show_all_matching_users: 매칭되는 사용자 %{count}명 모두 표시 delete_tooltip: 플레이스홀더 사용자 삭제 deletion_info: data_consequences: '플레이스홀더 사용자의 모든 항목(예: 담당자, 책임자, 기타 사용자 값 등)은 "삭제된 사용자"라는 계정에 다시 할당됩니다. 삭제된 모든 계정의 데이터는 이 계정에 다시 할당되기 때문에 사용자가 생성한 데이터와 다른 삭제된 계정의 데이터를 구별할 수 없습니다. @@ -5060,7 +5457,7 @@ ko: name: OmniAuth SAML/Single-Sign On portfolio: count: - one: 1개 포트폴리오 + one: "%{count} portfolio" other: "%{count}개 포트폴리오" zero: 0개 포트폴리오 filters: @@ -5071,7 +5468,7 @@ ko: label: 포트폴리오 이름 필터 placeholder: 포트폴리오 검색 sub_items_html: - other: "%{count}개 하위 항목" + other: "%{count} sub-items" lists: active: 활성 포트폴리오 archived: 보관된 포트폴리오 @@ -5085,7 +5482,7 @@ ko: 테이블에서 작업 패키지를 강조 표시하는 데 사용할 수 있습니다. program: count: - one: 1개 프로그램 + one: "%{count} program" other: "%{count}개 프로그램" zero: 0개 프로그램 filters: @@ -5097,7 +5494,7 @@ ko: confirmation_message: 이 프로젝트를 보관하면, 이 프로젝트와 모든 해당 하위 항목은 이 인스턴스의 모든 사용자가 사용할 수 없게 됩니다. 보관된 프로젝트는 복원할 수 있습니다. title: 프로젝트 보관 count: - one: 1개 프로젝트 + one: "%{count} project" other: "%{count}개 프로젝트" zero: 0개 프로젝트 destroy: @@ -5196,11 +5593,11 @@ ko: no_status_when_submitted: 작업 패키지 유형 %{type}에는 연결된 상태가 하나 이상 필요하므로 프로젝트 시작 요청을 활성화하지 못했습니다. 이 작업 패키지 유형에 대한 상태 워크플로를 하나 이상 활성화하세요. no_work_package_type: 프로젝트 시작 요청을 사용하려면 활성 작업 패키지 유형이 하나 이상 필요하지만 이 프로젝트에는 하나도 없기 때문에 프로젝트 시작 요청을 활성화하지 못했습니다. 이 프로젝트에 작업 패키지 유형을 하나 이상 추가하세요. export: - description_attachment_export: 생성된 아티팩트는 아티팩트 작업 패키지에 대한 PDF 첨부 파일로 저장됩니다. - description_file_link_export: 아티팩트 작업 패키지에는 외부 파일 저장소에 저장된 PDF에 대한 파일 링크가 있습니다. 이 프로젝트에 대해 자동으로 관리되는 프로젝트 폴더가 있는 작업 파일 저장소가 필요합니다. 현재는 Nextcloud 파일 저장소만 지원됩니다. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: 구성된 외부 파일 저장소 중 어떤 저장소를 사용할지 선택합니다. external_file_storage: 외부 파일 저장소 - label_artifact_export: 아티팩트 내보내기 + label_artifact_export: Artifact export label_attachment_export: 작업 패키지 첨부 파일로 저장 label_file_link_export: 외부 파일 저장소에 파일을 업로드하고 작업 패키지에 파일 링크 추가 pdf_file_storage: PDF 파일 저장소 @@ -5210,6 +5607,12 @@ ko: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: 사용 가능한 사용자 필드가 없습니다. forums: no_results_content_text: 새로운 포럼 만들기 @@ -5306,12 +5709,12 @@ ko: new_heading: 사용 가능하게 되는 필드 nothing_affected: 영향을 받는 필드나 상태가 없습니다. status_count: - other: "%{count}개 작업 패키지" + other: "%{count} work packages" table_suffix: "(테이블)" value_count: - other: "%{count}개 작업 패키지에 값이 있습니다" + other: "%{count} work packages have a value" work_packages: - other: "%{count}개 작업 패키지가 새로운 구성을 사용할 것입니다" + other: "%{count} work packages will use the new configuration" success: 지금 이 프로젝트는 %{type}을(를) 사용합니다. target_label: 변형 title: "%{type}: 변형 전환" @@ -5322,7 +5725,7 @@ ko: variants_not_allowed: 이 유형은 프로젝트 내에서 변형 생성을 허용하지 않습니다. versions: no_results_content_text: 새 버전 생성 - no_results_title_text: 프로젝트에 버전이 없습니다. + no_results_title_text: 이 프로젝트에서 필터 기준에 맞는 버전이 발견되지 않았습니다. show_work_packages: 작업 패키지 표시 work_packages_graph: 작업 패키지 그래프 work_package_priorities: @@ -5330,15 +5733,27 @@ ko: status: button_edit: 상태 편집 wizard: - create_artifact_storage_error: 파일 저장소에 아티팩트를 저장하지 못했습니다 - create_artifact_work_package_error: 아티팩트 작업 패키지를 만들지 못했습니다 + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: 이 프로젝트에는 마법사에 대해 활성화된 프로젝트 특성이 없습니다. 프로젝트 설정에서 하나 이상의 특성을 활성화하세요. no_help_text: 이 특성에는 정의된 도움말 텍스트가 없습니다. progress_label: "%{current}/%{total}" sections: 섹션 sidebar_content_title: 콘텐츠 - success: 프로젝트 특성이 저장되고 아티팩트 작업 패키지가 생성되었습니다. + success: Project attributes saved and artifact work package created successfully. title: 프로젝트 시작 요청 + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: 미리 구성된 필터 적용 configure_view: @@ -5367,7 +5782,7 @@ ko: action_title: 반응 add_reaction: 반응 추가 and_others: - other: 외 %{count}건 + other: and %{count} others and_user: 및 %{user} react_with: "%{reaction}(으)로 반응" reaction_by: "%{reaction} -" @@ -5484,6 +5899,26 @@ ko: warnings: cannot_annotate: 이 파일에는 주석을 지정할 수 없습니다. roles: + delete_dialog: + confirm: 이 역할을 삭제하시겠습니까? + entry_projects: + other: "(프로젝트: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: '"%{name}" 역할을 삭제하시겠습니까?' + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: 이러한 사용자 중 %{count}명은 해당 역할이 유일한 역할이었던 프로젝트에 대한 액세스 권한을 잃게 됩니다. 이 역할을 삭제하시겠습니까? + zero: 이러한 사용자 중 어느 누구도 자신의 프로젝트에 대한 액세스 권한을 잃지 않습니다. 이 역할을 삭제하시겠습니까? + show_memberships: 이 역할을 가진 모든 멤버십 표시 + summary: "%{projects}의 %{users}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: 역할 삭제 edit: default_for_new_projects_warning: '이 역할은 프로젝트를 만드는 비관리자 사용자에게 지정된 기본 역할로 구성됩니다. 다음 권한을 제거하지 마세요. 그렇지 않으면 프로젝트 생성자가 새로 생성된 프로젝트의 설정을 완료할 수 없게 됩니다:' index: @@ -5495,6 +5930,14 @@ ko: permissions: section_check_all_label: 모든 %{module} 권한 할당 section_uncheck_all_label: 모든 %{module} 권한 할당 취소 + permissions_dialog: + edit_permissions: 역할 권한 편집 + no_permissions: 이 역할은 어떠한 권한도 부여하지 않습니다. + permission_count: + other: "%{count} permissions" + preview_action: 권한 보기 + preview_aria_label: "%{role}의 권한 보기" + title: '"%{name}"의 권한' report: matrix_caption: "%{module} 모듈에 대한 권한 매트릭스" matrix_check_all_label: 모든 역할에 모든 %{module} 권한 할당 @@ -5597,7 +6040,7 @@ ko: setting_default_projects_wiki: 기본적으로 새 프로젝트에 대해 위키 기능을 활성화합니다. setting_diff_max_lines_displayed: 표시되는 최대 차이점 줄 수 setting_disable_password_login: 암호 인증 비활성화 - setting_display_subprojects_work_packages: 기본적으로 기본 프로젝트의 하위 프로젝트 작업 패키지 표시 + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: 기간 형식 setting_duration_format_days_and_hours: 일 및 시간 setting_duration_format_hours_only: 시간만 @@ -5712,6 +6155,7 @@ ko: setting_start_of_week: '주의 시작:' setting_sys_api_description: 리포지토리 관리 웹 서비스는 리포지토리에 액세스하기 위한 통합 및 사용자 인증을 제공합니다. setting_sys_api_enabled: 리포지토리 관리 웹 서비스 사용 + setting_sys_api_key: API key setting_time_format: 시간 setting_total_percent_complete_mode: 완료 % 계층 합계 계산 setting_total_percent_complete_mode_simple_average: 단순 평균 @@ -5762,7 +6206,7 @@ ko: description_html: '바이러스 백신 스캐너 통합이 작동되어야 하는 모드를 선택하세요.
  • %{disabled_option}: 업로드된 파일은 바이러스 검사를 받지 않습니다.
  • %{socket_option}: OpenProject와 동일한 서버에서 ClamAV를 설정했으며 스캔 데몬 clamd가 백그라운드에서 실행 중입니다.
  • %{host_option}: 외부 바이러스 스캔 호스트에 파일을 스트리밍하고 있습니다.
' - remaining_quarantined_files_html: '바이러스 검사가 비활성화되었습니다. %{file_count}개는 격리된 상태로 유지됩니다. 격리된 파일을 검토하려면 다음 링크를 참조하세요: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: '바이러스 검사가 활성화되었습니다. 이전에 업로드되었지만 아직 검사해야 하는 %{file_count}개가 있습니다. 이 프로세스는 백그라운드에서 예약되었습니다. 검사하는 동안 파일에 계속 액세스할 수 있습니다. @@ -5773,6 +6217,7 @@ ko: ' title: 바이러스 검사 attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: '이 옵션을 비활성화하면 새 프로젝트의 작업 패키지 파일 탭에서 첨부 파일 목록이 숨겨집니다. 작업 패키지 설명에 첨부된 파일은 내부 첨부 파일 저장소에 계속 업로드됩니다. ' @@ -5864,12 +6309,12 @@ ko: confirmation_message: 이 템플릿을 기반으로 하는 새 프로젝트에는 시작 요청 마법사를 더 이상 사용할 수 없습니다. 프로젝트 관리자와 프로젝트 소유자는 프로젝트 개요에서 관련 정보를 수동으로 구성하고 작성해야 합니다. heading: 이 프로젝트 시작 요청을 비활성화하시겠습니까? title: 프로젝트 시작 요청 비활성화 - header_description: 'OpenProject는 프로젝트 관리자가 프로젝트 시작 요청을 작성하는 데 도움이 되는 단계별 마법사를 생성할 수 있습니다. 어떤 프로젝트 특성을 포함할지 선택하고 PDF 아티팩트를 결과로 생성할 수 있습니다. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: 아티팩트 이름 - artifact_name_caption: 프로젝트 관리 프레임워크에서 권장하는 이 아티팩트의 이름을 선택하세요. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: 프로젝트 생성 마법사 project_initiation_request: 프로젝트 시작 요청 @@ -5889,8 +6334,8 @@ ko: **%{project_name}**에 대한 프로젝트 시작 요청을 제출하셨습니다. 이제 검토를 기다리고 있습니다. 요청이 포함된 작업 패키지에 액세스하려면 아래 링크를 클릭하세요. confirmation_email_text: 확인 이메일 텍스트 - description: 사용자가 프로젝트 시작 요청을 제출하면 요청 아티팩트가 PDF 파일로 첨부된 새 작업 패키지가 생성됩니다. 아래 설정은 이 새 작업 패키지의 유형, 상태 및 담당자를 정의합니다. - description_template: "**이 작업 패키지는 %{wizard_name} 워크플로를 완료하면 자동으로 생성됩니다.** 제출된 모든 정보가 포함된 PDF 아티팩트가 생성되어 참조 및 감사 목적으로 이 작업 패키지에 첨부되었습니다. 시작 단계를 업데이트하거나 다시 실행해야 하는 경우 아래 링크를 사용하여 언제든지 마법사를 다시 열 수 있습니다.\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: 프로젝트 시작 요청을 제출한 사용자에게 확인 이메일 보내기 status_when_submitted: 제출 시 상태 status_when_submitted_caption: 요청이 제출되면 생성된 작업 패키지가 전환되는 상태입니다. @@ -5898,7 +6343,7 @@ ko: work_package_comment_caption: 위에서 선택한 담당자가 코멘트에서 자동으로 @멘션됩니다. work_package_comment_default: "%{project_name}**에 대한 프로젝트 시작 요청이 제출되어 검토를 기다리고 있습니다." work_package_type: 작업 패키지 유형 - work_package_type_caption: 완료된 아티팩트를 저장하는 데 사용할 작업 패키지 유형입니다. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: 프로젝트 생성 마법사 열기 project_initiation_request: 프로젝트 시작 요청 열기 @@ -5918,6 +6363,7 @@ ko: heading: 새로운 단계 no_gate: 게이트 없음 non_defined: 현재 정의된 단계가 없습니다. + order_changed: Order successfully changed. phase_gates: 단계 게이트 section_header: 단계 start_gate: 시작 게이트 @@ -5974,7 +6420,7 @@ ko: section_work_week: 근무 주 sharing: count: - one: 사용자 1명 + one: "%{count} user" other: 사용자 %{count}명 zero: 사용자 0명 denied: "%{entities} 공유를 할 수 있는 권한이 없습니다." @@ -6067,19 +6513,19 @@ ko:
참고: 상속된 값(예: 자식 또는 관계의 값)은 계속 적용됩니다. index: + could_not_be_moved: 상태를 이동할 수 없습니다. headers: - excluded_from_totals: 합계에서 제외됨 is_closed: 닫음 - is_default: 기본 is_readonly: 읽기 전용 + no_filter_results_title_text: 현재 필터와 일치하는 상태가 없습니다. no_results_content_text: 새 상태 추가 no_results_title_text: 작업 패키지 상태가 없습니다. + status_actions: 상태 작업 support: array: sentence_connector: 그리고 skip_last_comma: 'false' text_access_token_hint: 액세스 토큰을 사용하여 OpenProject의 리소스에 대한 외부 응용 프로그램 액세스 권한을 부여할 수 있습니다. - text_accessibility_hint: 접근성 모드는 시각장애인, 신체장애인, 혹은 시력이 나쁜 사람들을 위해 디자인 되었습니다. 후자를 위해서 중심이 되는 요소는 특별히 하이라이트 됩니다. 이 모드에서는 Backlogs 모듈 사용이 불가능합니다. text_analyze: '추가 분석: %{subject}' text_are_you_sure: 계속하시겠습니까? text_are_you_sure_continue: 계속하시겠습니까? @@ -6122,12 +6568,6 @@ ko: ' text_custom_field_possible_values_info: 각 값당 한 줄 - text_custom_logo_instructions: '로고는 헤더에 맞게 자동으로 크기가 조정됩니다. 최상의 결과를 위해 투명한 130×47px 이미지에 흰색 로고를 업로드하세요. 이미지 내부에 원하는 만큼 간격을 추가할 수 있습니다. - - ' - text_custom_logo_mobile_instructions: '로고는 헤더에 맞게 자동으로 크기가 조정됩니다. 최상의 결과를 위해 투명한 130×33px 이미지에 흰색 로고를 업로드하세요. 이미지 내부에 원하는 만큼 간격을 추가할 수 있습니다. - - ' text_custom_touch_icon_instructions: '홈 화면에 북마크를 추가하면 휴대폰 또는 태블릿에 표시되는 아이콘입니다. 정사각형 180x180 픽셀 크기의 PNG 이미지 파일이어야 합니다. 이미지의 배경이 투명하지 않은지 확인하세요. 그렇지 않으면 iOS에서 제대로 표시되지 않습니다. ' @@ -6177,6 +6617,7 @@ ko: text_length_between: "%{min} ~ %{max}자 사이의 길이" text_line_separated: 여러 값이 허용됩니다(각 값에 대해 한 줄). text_load_default_configuration: 기본 구성 로드 + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: 구성할 수 있는 액세스 토큰이 없습니다. text_no_configuration_data: |- 역할, 유형, 작업 패키지 상태 및 워크플로가 아직 구성되지 않았습니다. @@ -6282,6 +6723,67 @@ ko: tree_view: label_empty_sub_tree: 항목 없음 types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: 변형 비교 + blankslate: + description: 이 유형에 두 번째 변형을 추가하여 두 변형의 차이점을 확인합니다. + title: 아직 비교할 항목이 없습니다 + description: 이 유형의 변형을 부모 유형과 비교하세요. + labels: + duplicate: 중복 가능성 + duplicate_of: "%{names}과(와) 동일하게 구성됨" + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: 부모 유형 + same_as_type: 부모 유형과 동일 + rows: + form: + fields: 필드 + groups: 섹션 + required: 필수 항목 + same_as_base: 부모 유형과 동일 + scope: + availability: '사용 가능:' + enabled_in_new_projects: 새로운 프로젝트에서 활성 상태 + projects: 프로젝트 + workflows: + roles: 관련 역할 + same_as_base: 부모 유형과 동일 + statuses: 상태 + transitions: 전환 + sections: + configuration: 구성 개요 + form: 양식 + scope: 범위 + workflows: 워크플로 + title: 변형 비교 + title_for_type: "%{name}의 변형 비교" + values: + global: 모든 프로젝트 + inheriting_from: '다음에서 상속:' + project_specific: 프로젝트별([%{project}](project_url)) + same_as_base: 부모 유형과 동일함 creation_wizard: add_variant: "%{name}에 변형 추가" create_type: 유형 만들기 @@ -6291,14 +6793,40 @@ ko: finish: 완료 placeholder_description: 이 단계는 곧 사용 가능하게 됩니다. progress_label: "%{number}/%{total}단계" + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: 기본값 details: 세부 정보 form_configuration: 양식 - pdf: PDF 생성 + pdf: Generate PDF project_attributes: 프로젝트 특성 projects: 프로젝트 - workflows: 워크플로 + start: Start + workflows: Workflow success: 성공적으로 생성되었습니다. edit: breadcrumb_variant: '변형: %{name}' @@ -6307,8 +6835,10 @@ ko: caption: 참조된 특성과 텍스트를 사용하여 패턴을 정의하고 작업 패키지 제목을 자동으로 생성하세요. 사용자는 제목을 수동으로 편집할 수 없습니다. label: 자동으로 생성되는 제목 description: - caption: 이 유형의 모든 신규 작업 패키지의 설명 필드에 추가될 텍스트를 입력하세요. - label: 기본 설명 텍스트 + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: 사용자가 제한 없이 작업 패키지 제목을 수동으로 입력하고 편집할 수 있습니다. label: 수동으로 편집 가능한 제목 @@ -6337,21 +6867,21 @@ ko: file_link: caption: 생성된 PDF는 프로젝트의 자동 관리 Nextcloud 저장소에 업로드되며, 작업 패키지에서 연결됩니다. 해당 저장소가 없는 프로젝트의 작업 패키지는 건너뜁니다. label: 외부 파일 저장소에 파일을 업로드하고 작업 패키지에 파일 링크 추가 - intro: 이 유형의 작업 패키지 상태가 변경될 때마다 해당 작업 패키지에 대한 PDF 아티팩트를 자동으로 생성합니다. - invalid_mode: 유효하지 않은 아티팩트 내보내기 모드입니다. - label: 자동 아티팩트 내보내기 + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: PDF가 자동으로 생성되지 않습니다. label: 끄기 - section_title: 자동 아티팩트 내보내기 + section_title: Automatic artifact export unavailable: 사용할 수 없습니다. 자동 관리되는 Nextcloud 저장소가 구성되어 있지 않습니다 - intro: 사용 가능한 템플릿 중에서 이 유형에 대해 활성화하려는 템플릿을 선택하세요. 템플릿은 이 유형을 사용하여 작업 패키지의 내보낸 PDF에서 표시되는 디자인과 특성을 결정합니다. 목록의 첫 번째 템플릿이 기본적으로 선택됩니다. pdf_export_templates: actions: label_disable_all: 모두 비활성화 label_enable_all: 모두 활성화 label_toggle_template: "%{template} 토글" label: PDF 내보내기 템플릿 + order_changed: Order successfully changed. tab: PDF 생성 templates: readonly_error: 소스 유형에 연결된 동안에는 변경할 수 없습니다. @@ -6368,6 +6898,8 @@ ko: confirm_delete_group: 이 섹션을 삭제하시겠습니까? 이 작업은 자동으로 되돌릴 수 없습니다. confirm_reset: 양식을 재설정하시겠습니까? custom_field: 사용자 지정 필드 + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: 섹션 삭제 drag_to_activate: 여기에서 필드를 드래그하여 활성화 drag_to_reorder: 드래그하여 재정렬 @@ -6389,6 +6921,14 @@ ko: query_group_label: 관련 작업 패키지 테이블 remove_attribute: 섹션에서 제거 rename_group: 섹션 이름 바꾸기 + required: + already_required_globally: 이 사용자 지정 필드는 모든 유형에서 필수입니다. + for_variant: 이 유형에서 필요함 + globally: 필수 + globally_hint: 사용자 지정 필드에서 이 항목을 변경하세요 + mark: 이 유형에서 필요 + not_a_custom_field: 단일 유형에 대해서는 사용자 지정 필드만 필수로 지정할 수 있습니다. + unmark: 이 유형에서 필요하지 않음 reset_description: '이렇게 하면 특성이 해당 기본 그룹으로 재설정되고 모든 사용자 지정 필드가 비활성화됩니다. ' @@ -6398,12 +6938,14 @@ ko: tab: 양식 untitled_group: 제목이 없는 그룹 overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: 구성 모드 - dependents: 종속 유형 및 변형 mode: always_manual: 항상 수동 - inheriting_from_html: "%{source_name}에서 상속" + inheriting_from_html: Using the same as type (%{source_name}) manual: 수동으로 구성됨 + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: 설정 tab: 개요 project_attributes: @@ -6417,12 +6959,12 @@ ko: manual: description: "[프로젝트 특성을 생성](administration_url)하면, 해당 특성이 여기에 표시되며 유형에 추가할 수 있습니다." title: 사용 가능한 프로젝트 특성 없음 - description: 이 작업 패키지 유형에 대해 활성화할 프로젝트 특성을 선택하세요. 활성화된 프로젝트 특성은 이 유형의 작업 패키지에서 별도의 탭에 표시됩니다. 필요한 권한을 가진 사용자는 해당 탭에서 이러한 특성을 보고 편집할 수 있습니다. disabled: 비활성화됨 exclusions: attribute_label: "%{attribute} 상속" filter: 섹션 또는 이름으로 검색 tab: 프로젝트 특성 + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: "%{project}에서 %{type} 유형을 제거하시겠습니까?" @@ -6435,10 +6977,12 @@ ko: empty_state: description: 이 구성을 사용하려면 프로젝트를 추가하세요. no_results: 일치하는 프로젝트가 없습니다. + title: Not used in any project yet enable_all: 모든 프로젝트에 대해 활성화 select_projects: 프로젝트 선택 select_projects_description: 이 유형을 사용하려는 프로젝트를 선택합니다. tab: 프로젝트 + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6453,41 +6997,17 @@ ko: title: 구성 복사 invalid_source: 선택한 유형에서 이 구성을 복사할 수 없습니다. 다른 소스 유형을 선택하세요. success: 구성이 복사되었습니다. - dependents: - blank: - description: 이 구성에서 상속되는 다른 유형이나 변형이 없습니다 - title: 종속 유형 없음 - description: - other: 다음 구성은 %{count}개의 기타 유형이나 변형에 상속됩니다. 여기서 변경하는 사항은 종속 항목에도 영향을 미칩니다. - dialog: - description: 이러한 유형 및 변형은 이 섹션의 구성을 상속합니다. 여기서 변경하는 사항은 모든 항목에 적용됩니다. - direct_heading: 직접 종속 항목 - indirect_heading: 기타 유형을 통한 종속 항목 - title: 종속 유형 - variant_of_html: "%{type_name}의 변형" - variant_of_via_html: "%{type_name}의 변형, %{source_name}을(를) 통해 상속" - via_html: "%{source_name}을(를) 통해 상속" - title: - other: "%{count}개 종속 유형" - view: 종속 유형 보기 exclusions: not_inherited: 이 구성은 상속되지 않으므로, 제외할 항목이 없습니다. 대신 구성을 직접 편집하세요. unknown_aspect: 알 수 없는 구성 섹션 "%{aspect}"입니다. inherited: - change_source: 소스 유형 변경 configure_manually: 수동으로 구성 confirm_dialog: - change_source: - description_html: 소스 유형을 %{source_name}(으)로 변경하면 현재 설정을 덮어쓰게 되며, 이 유형의 작업 패키지에 대한 기존 정보에 영향을 미칠 수 있습니다. - heading: 소스 유형 변경? - title: 소스 유형 변경 check_box: 본인은 이렇게 하면 현재 설정이 재정의된다는 것을 이해합니다 from_manual: description: 현재 선택된 모든 설정이 재정의되며, 이 유형의 작업 패키지에 대한 기존 정보에 영향을 미칠 수 있습니다. heading: 구성 모드 전환? title: 구성 모드 전환 - description: 이 구성은 소스 유형 [%{source_name}](source_url)%{source_suffix}에서 상속됩니다. - description_unlinked: 이 구성은 소스 유형 %{source_name}%{source_suffix}에서 상속됩니다. dialog: description: 소스 유형에서 이 구성을 상속합니다. 소스에 추가된 새로운 구성도 여기에서 적용됩니다. source_label: 소스 유형 @@ -6495,6 +7015,9 @@ ko: submit: 전환 title: 다른 유형에서 상속 invalid_source: 선택한 유형에서 이 구성을 상속할 수 없습니다. 다른 소스 유형을 선택하세요. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: 구성 모드가 전환되었습니다. title: 상속된 구성 manual: @@ -6503,13 +7026,14 @@ ko: description: 현재 선택된 모든 설정이 재정의되며, 이 유형의 작업 패키지에 대한 기존 정보에 영향을 미칠 수 있습니다. heading: 구성 모드 전환? title: 구성 모드 전환 - copy_from_type: 다른 유형에서 복사 description: 설정이 상속되지 않습니다. 다른 유형의 설정을 한 번 복사할 수는 있습니다. dialog: submit: 전환 title: 수동으로 구성 - inherit_from_type: 다른 유형에서 상속 + inherit_from_type: Inherit from parent invalid_mode: 선택한 모드는 이 구성에 사용할 수 없습니다. 다른 모드를 선택하세요. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: 이 구성이 현재 상속받는 설정을 먼저 한 번만 복사해 두세요. @@ -6523,12 +7047,16 @@ ko: success: 구성 모드가 전환되었습니다. title: 수동 구성 parent_suffix: " (부모)" + variant_suffix: "(Variant)" variants: blankslate: description_html: '이 유형의 버전을 여러 프로젝트에 제공하기 위해 변형을 만들 수 있습니다.
각 변형은 기본 템플릿, 사용자 지정 필드, 워크플로 및 기본 설정을 상속, 복사하거나 자체 사용자 지정 구성을 가질 수 있습니다. ' title: 이 유형에 대한 변형이 없습니다. + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: "%{project}에서 생성됨" delete: description: 이 변형을 사용하는 프로젝트는 해당 변형이 삭제되기 전에 아래에서 사용자가 선택하는 변형으로 전환됩니다. @@ -6537,32 +7065,71 @@ ko: filter_no_results: 이 필터에 해당하는 변형이 없습니다. global_section: description: 이러한 변형은 모든 프로젝트에서 사용할 수 있습니다. - title: 변형 + title: 글로벌 변형 project_specific_section: description: 이러한 변형은 생성된 프로젝트 내에서만 사용할 수 있습니다. title: 프로젝트별 변형 workflow: - tab: 워크플로 + tab: Workflow index: add_variant: "%{name}에 변형 추가" add_variant_action: 변형 추가 + convert_to_global: 글로벌 변형으로 변환 + convert_to_global_dialog: + confirm: 변환 + text: '이렇게 하면 이 프로젝트별 변형이 모든 프로젝트에 사용 가능한 글로벌 변형이 됩니다. 프로젝트 관리자는 더 이상 이 변형을 편집할 수 없게 됩니다. + + ' + workflow_text: '해당 워크플로 "%{name}"은(는) 이 프로젝트에 속하고, 또한 글로벌 워크플로가 됩니다. + + ' + convert_to_global_notice: "%{name}은(는) 이제 글로벌 변형입니다." + convert_to_global_rename: + confirm: 변환 + text: 이 이름의 글로벌 변형이 이미 있습니다. 다른 이름을 선택해 주세요. + title: 이 변형에 대한 다른 이름 지정 + created_by_migration: Migrated + delete: + description: 해당 유형이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다. + description_with_variants: 해당 유형과 모든 변형이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다. + heading: "'%{name}' 유형을 삭제하시겠습니까?" + projects: + other: 'The type will be removed from %{count} projects:' + title: 유형 삭제 description: '유형 및 변형 내의 각 구성 영역은 독립적으로 구성하거나, 다른 유형으로부터 제한하거나, 소스에 완전히 연결할 수 있습니다. ' duplicate_name: "%{name}의 사본" duplicate_notice: "%{name}이(가) 중복되었습니다." enabled_in_new_projects: 새로운 프로젝트에서 활성 상태 + filter: Filter by name + filter_no_results: No types match this filter make_default: 새로운 프로젝트에서 활성화 make_default_notice: "%{name}이(가) 이제 새 프로젝트에서 활성화되었습니다." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: 새 타입 생성 no_results_title_text: 타입이 없습니다. project_variants_count: - other: "%{count}개 프로젝트별 변형" + other: "%{count} project-specific variants" remove_default: 새 프로젝트에서 활성화 안 함 remove_default_notice: "%{name}이(가) 새 프로젝트에서 더 이상 활성화되지 않습니다." type_label: 유형 variant_label: 변형 + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: 마일스톤 + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: 이 경고를 무시하십시오. message: 이 페이지에서 오류가 발생하고 기능이 저하될 수 있습니다. @@ -6581,7 +7148,7 @@ ko: authorization_rejected: 로그인할 수 없습니다. blocked: 일시적으로 잠김 blocked_num_failed_logins: - other: 일시적으로 잠김 (%{count} 로그인 시도 실패) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: "%{name} 상태가 변경됩니다. 계속하시겠습니까?" deleted: 사용자 삭제됨 department_ldap_managed_caption: 이 부서는 LDAP 동기화를 통해 관리되며 여기에서 변경할 수 없습니다. @@ -6681,7 +7248,7 @@ ko: deletion_warning: 이 세션을 취소하시겠습니까? 이 장치에서 로그아웃됩니다. device: 장치/OS expires: 만료 - instructions: 다음 장치를 통해 계정에 로그인했습니다. 사용자가 알지 못하는 세션이나 제어하지 않는 장치에서 로그인한 세션은 취소하세요. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: 마지막 연결 may_not_delete_current: 현재 세션을 삭제할 수 없습니다. session_name: "%{os_name}의 %{browser_name} %{browser_version}" @@ -6741,12 +7308,18 @@ ko: start_date: 시작 날짜 work_days: 근무일 work_days_count: - other: 근무일 %{count}일 + other: "%{count} working days" work_hours: 근무 시간 version_status_closed: 닫음 version_status_locked: 잠김 version_status_open: 열기 versions: + filter_status_labels: + closed: 닫음 + locked: 잠김 + open: 열림 + index: + filter_label: 버전 검색 overview: no_results_title_text: 이 버전에 할당된 작업 패키지가 없습니다. work_packages_in_archived_projects: 해당 버전은 이 버전에 할당된 작업 패키지가 아직 있는 보관된 프로젝트와 공유됩니다. 이러한 버전은 카운트되지만, 링크된 보기에 나타나지는 않습니다. @@ -6916,12 +7489,14 @@ ko: required_description: 이 작업 패키지를 관련 패키지에 대한 요구 사항으로 표시합니다 requires_description: 관련 작업 패키지를 이 패키지에 대한 요구 사항으로 표시합니다 work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: 작업 패키지를 복사할 수 없습니다. could_not_be_deleted: '다음 작업 패키지를 삭제할 수 없습니다:' could_not_be_saved: '다음 작업 패키지를 저장할 수 없습니다:' deletion_successful: - other: "%{count}개 작업 패키지를 삭제했습니다." + other: Successfully deleted %{count} work packages. descendant: 선택한 항목의 하위 작업 패키지 move_failed: 작업 패키지를 이동할 수 없습니다. none_could_be_saved: "%{total}개 작업 패키지 중 아무것도 업데이트할 수 없습니다." @@ -6945,14 +7520,14 @@ ko: description_with_visible_descendants: 선택한 작업 패키지 및 표시된 모든 하위 항목을 삭제하시겠습니까? heading: 이러한 작업 패키지 %{count}개를 영구적으로 삭제하시겠습니까? hidden_descendants_only_warning: - other: 보이지 않는 하위 항목이 %{count}개 있습니다. 이러한 하위 항목은 삭제되지 않지만, 계층적 관계는 모두 제거됩니다. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - other: 표시되는 모든 하위 항목이 제거됩니다. 하지만 보이지 않는 하위 항목이 %{count}개 있습니다. 이러한 하위 항목은 삭제되지 않지만, 계층적 관계는 모두 제거됩니다. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: "%{count}개 작업 패키지 삭제" undeletable_descendants_warning: - other: 필요한 권한이 없으므로 %{count}개 하위 항목을 삭제할 수 없습니다. 이러한 하위 항목은 유지되지만, 계층적 관계는 모두 제거됩니다. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - other: "%{projects}에서 필요한 권한이 없으므로 %{count}개 하위 항목을 삭제할 수 없습니다. 이러한 하위 항목은 유지되지만, 계층적 관계는 모두 제거됩니다." + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7009,14 +7584,145 @@ ko: description: '"%{name}"을(를) 삭제하시겠습니까?' heading: 이 작업 패키지를 영구적으로 삭제하시겠습니까? hidden_descendants_only_warning: - other: 이 작업 패키지에는 보이지 않는 하위 항목이 %{count}개 있습니다. 이러한 하위 항목은 삭제되지 않지만, 계층적 관계는 제거됩니다. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - other: 표시되는 모든 하위 항목이 제거됩니다. 하지만 이 작업 패키지에는 보이지 않는 하위 항목이 %{count}개 있습니다. 이러한 하위 항목은 삭제되지 않지만, 계층적 관계는 제거됩니다. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: 작업 패키지 삭제 undeletable_descendants_warning: - other: 필요한 권한이 없으므로 %{count}개 하위 항목을 삭제할 수 없습니다. 이러한 하위 항목은 유지되지만, 계층적 관계는 모두 제거됩니다. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - other: "%{projects}에서 필요한 권한이 없으므로 %{count}개 하위 항목을 삭제할 수 없습니다. 이러한 하위 항목은 유지되지만, 계층적 관계는 모두 제거됩니다." + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: '작업 패키지 또는 해당 하위 항목의 유형이 대상 프로젝트에서 활성화되어 있지 않습니다. 유형을 변경하지 않으려면 대상 프로젝트에서 누락된 유형을 활성화하세요. 그렇지 않으면 목록에서 대상 프로젝트의 사용 가능한 유형을 선택하세요. @@ -7048,34 +7754,50 @@ ko: version: no_results_title_text: 현재 사용가능한 버전이 없습니다. x_descendants: - other: "%{count}개 작업 패키지 하위 항목" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: 동일한 워크플로 패키지 유형 내의 역할 하나 이상에 현재 워크플로를 복사합니다. 선택한 역할에 이미 워크플로가 있는 경우 현재 워크플로를 덮어씁니다. - label: 다른 역할에 복사 - from_type: - caption: 다른 워크플로 유형으로 현재 워크플로를 복사합니다. 선택한 유형에 이미 워크플로가 있는 경우 현재 워크플로를 덮어씁니다. 이는 모든 역할에 영향을 줍니다. - label: 다른 유형에 복사 - source_role_id: - label: 소스 역할 target_role_ids: label: 대상 역할 - target_variant_ids: - label: 대상 유형 from_roles: create: notice: other: 워크플로를 %{count}개 역할에 복사했습니다. - from_variants: - create: - notice: - other: 워크플로를 %{count}개 유형에 복사했습니다. new: - title: '"%{source_type}"의 워크플로 복사' + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: 워크플로 매트릭스 matrix_caption_assignee: 담당자에 대한 워크플로 매트릭스 matrix_caption_author: 작성자에 대한 워크플로 매트릭스 @@ -7084,12 +7806,82 @@ ko: matrix_check_uncheck_all_in_row_label_html: "%{old_status}에서 모든 새로운 상태로 전환 토글" matrix_checkbox_label: "%{old_status}에서 %{new_status}(으)로 전환 허용" matrix_uncheck_all_label: 모든 전환 허용 안 함 + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: 유형 이름으로 필터링… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: 각 작업 패키지 유형에 대한 상태 전환을 구성합니다. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: 근무일 변경 dialog: diff --git a/config/locales/crowdin/li.seeders.yml b/config/locales/crowdin/li.seeders.yml index 92b04e2b3556..764ace96f433 100644 --- a/config/locales/crowdin/li.seeders.yml +++ b/config/locales/crowdin/li.seeders.yml @@ -250,70 +250,26 @@ li: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ li: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/li.yml b/config/locales/crowdin/li.yml index 460c149762af..3766baa5a912 100644 --- a/config/locales/crowdin/li.yml +++ b/config/locales/crowdin/li.yml @@ -40,7 +40,9 @@ li: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ li: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ li: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ li: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ li: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Aktieve gebroekers encoded_token: Enterprise support token @@ -179,20 +184,44 @@ li: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ li: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ li: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ li: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ li: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ li: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ li: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ li: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Werkdaag + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Werkdaag @@ -491,6 +536,7 @@ li: title: Werkdaag true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ li: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ li: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ li: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ li: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ li: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ li: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ li: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ li: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ li: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ li: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ li: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ li: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ li: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ li: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ li: issue_priority: one: Prioriteit other: Prioriteite + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ li: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ li: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ li: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ li: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ li: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,26 +1734,26 @@ li: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 gebroeker - other: "%{count} gebroekers" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 Werkpakket - other: "%{count} werkpakkette" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently description: This will delete all imported objects (including whole projects). @@ -1710,7 +1818,7 @@ li: caption: Choose what you want to import into OpenProject caption_done: Aafgeslaote caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ li: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} werkpakket" + other: "%{count} werkpakkette" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ li: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Zeuk gebroekers + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ li: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ li: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ li: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ li: ignore: Ignore changes save: Veranderinge opslagon en doorgaon title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ li: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ li: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ li: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ li: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ li: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Werkpakket @@ -2253,6 +2431,7 @@ li: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ li: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ li: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ li: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ li: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ li: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ li: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: Gen - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ li: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 daag - other: "%{count} daag" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ li: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ li: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ li: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ li: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ li: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ li: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ li: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ li: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ li: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ li: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ li: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ li: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Daag label_day_plural: daag label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ li: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ li: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ li: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ li: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ li: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ li: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ li: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ li: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Maond label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ li: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Noeïts label_new: New @@ -3826,7 +4206,10 @@ li: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Volgende daag + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ li: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ li: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Veurige daag + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ li: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: begint mit @@ -4038,6 +4426,7 @@ li: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ li: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: vandaag label_today_as_date: Selecteer vandaag as datum. @@ -4087,7 +4477,9 @@ li: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ li: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ li: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ li: label_working_days: Werkdaag label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Werkwaek label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 daag - other: "%{count} daag" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 Werkpakket + one: "%{count} work package" other: "%{count} work packages" zero: Gen werkpakket label_x_working_days: - one: 1 werkdaag - other: "%{count} werkdaag" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: gister label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ li: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ li: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ li: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ li: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ li: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ li: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ li: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ li: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ li: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ li: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ li: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ li: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ li: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ li: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Behier leeje + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ li: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ li: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ li: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ li: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ li: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ li: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ li: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ li: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ li: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ li: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ li: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ li: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ li: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ li: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ li: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ li: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ li: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ li: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ li: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ li: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ li: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ li: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ li: section_work_week: Werkwaek sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} gebroekers" zero: gen gebroekers denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ li:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Bis se zeker des se door wils gaon? @@ -6279,12 +6761,6 @@ li: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ li: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ li: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projekte + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Reikwiedte + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ li: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ li: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ li: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ li: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ li: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ li: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ li: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ li: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ li: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ li: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ li: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ li: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ li: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ li: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ li: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ li: start_date: Start datum work_days: Werkdaag work_days_count: - one: 1 werkdaag - other: "%{count} werkdaag" + one: "%{count} working day" + other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ li: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ li: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ li: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ li: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ li: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/lt.seeders.yml b/config/locales/crowdin/lt.seeders.yml index eea06e6dd620..ac9ba1a8174e 100644 --- a/config/locales/crowdin/lt.seeders.yml +++ b/config/locales/crowdin/lt.seeders.yml @@ -250,70 +250,26 @@ lt: Šiame modulyje jūs galite iškomunikuoti projekto naujienas jūsų komandos nariams. versions: item_0: - name: Neištaisyti riktai - item_1: - name: Neatlikti produkto darbai - item_2: - name: Sprintas 1 wiki: - title: Sprintas 1 + title: Release 1.0 content: | - ### Sprinto planavimo susitikimas - - _Prašome čia dokumentuoti Sprinto planavimo susitikimo temas_ - - * Laikas (8 val) - * Įvestis: Produkto likę darbai - * Rezultatas: Sprinto likę darbai - - * Padalinta į du papildomus laikus po 4 val: - - * Produkto savininkas pristato komandai [Produkto likusius darbus]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) ir prioritetus bei paaiškina Sprinto tikslą, su kuriuo komanda turi sutikti. Kartu jie prioritetizuoja likusių produkto darbų temas, kuriomis komanda užsiims kito sprinto metu. Komanda įsipareigoja dėl aptartų rezultatų. - * Komanda detaliai planuoja autonomiškai (be Produkto savininko), padalina aptartų tikslų užduotis ir konsoliduoja [Likusius sprinto darbus]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Kasdieninis Scrum susitikimas - - _Prašome čia dokumentuoti kasdieninio Scrum susitikimo temas_ - - * Trumpas, kasdieninis komandos būsenos susitikimas. - * Laikas (ne daugiau 15 min). - * Stovimas susitikimas šių temų iš [Užduočių lentos](##sprint:scrum_project__version__sprint_1) aptarimui. - * Ką aš planuoju daryti iki kito kasdieninio Scrum susitikimo? - * Kas blokuoja mano darbą (Trukdžiai)? - * Scrum vadovas moderuoja ir užsirašo [Sprinto trukdžius](##sprint:scrum_project__version__sprint_1). - * Produkto savininkas gali dalyvauti, kad būtų informuotas. + ### Release 1.0 - ### Sprinto peržiūros susitikimas + _Please document here what this release contains._ - _Prašome čia dokumentuoti Sprinto peržiūros susitikimo temas_ - - * Laikas (4 h). - * Daugiausia vienos valandos pasiruošimas vienam asmeniui. - * Komanda parodo produkto savininkui ir kitims suinteresuotiems asmenims, kas buvo pasiekta šiame sprinte. - * Svarbu: jokių maketų ir jokių skaidrių! Turi būti demonstruojamas tik baigtas produkto funkcionalumas (padidėjimas). - * Produkto savininko, suinteresuotų asmenų ir kitų grįžtamasis ryšys pageidaujamas ir bus įtrauktas į ateities darbus. - * Priklausomai nuo pademonstruoto funkcionalumo, Produkto savininkas nusprendžia ar ar diegti šį padidėjimą, ar dar toliau jį vystyti. Ši galimybė leidžia ankstyvą ROI. - - - ### Sprinto retrospektyva - - _Prašome čia dokumentuoti Sprinto retrospektyvos susitikimo temas_ - - * Laikas (3 h). - * Po Sprinto peržiūros, moderuoja Scrum vadovas. - * Komanda aptaria sprintą: kas suveikė gerai, ką reikia pagerinti norint padidinti kitų sprintų produktyvumą ar net labiau pasilinksminti. - item_3: - name: Sprintas 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategorija 1 (keičiama Projekto nustatymuose) queries: item_0: name: Projekto planas item_1: - name: Produkto darbų sąrašas + name: Version 1.1 item_2: - name: Sprintas 1 + name: Version 1.0 item_3: name: Užduotys boards: @@ -339,20 +295,21 @@ lt: options: name: Darbo pradžia text: | - Mes džiaugiamės, kad prisijungėte! Siūlome pabandyti kelis dalykus, kad susipažintumėte su OpenProject. + We are glad you joined! We suggest to try a few things to get started in OpenProject. - _Pabandykite šiuos žingsnius:_ + _Try the following steps:_ - 1. *Pakvieskite į jūsų projektą naujus narius*: → Eikite į [Members]({{opSetting:base_url}}/projects/your-scrum-project/members). - 2. *Peržiūrėkite jūsų projekto likusius ir Sprinto darbus*: → Eikite į [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - 3. *Peržiūrėkite jūsų užuočių lentą*: → Eikite į [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → spauskite dešinę rodyklę ant Sprintas → Parinkite [Užduočių lenta](##sprint:scrum_project__version__sprint_1). - 4. *Sukurkite naują darbo paketą*: → Eikite į [Darbo paketai → Kurti]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Sukurkite ir atnaujinkite projekto planą*: → Eikite į [Projekto planas](##query:scrum_project__query__project_plan). - 6. *Sukurkite Sprinto wiki*: → Eikite į [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) ir atidarykite sprinto wiki iš dešiniojo iškrentančio sprinto meniu. Galite keisti [wiki šabloną]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) pagal savo poreikius. - 7. *Aktyvuokite kitus modulius*: → Eikite į [Projekto nustatymai → Moduliai]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Čia rasite mūsų [Naudotojų vadovus](https://www.openproject.org/docs/user-guide/). - Praneškite mums jei turite bet kokių klausimų ar jums reikia pagalbos. Susisiekite su mumis: [support[at]openproject.com](mailto:support@openproject.com). + + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Darbų paketai diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml index 5d017037b1aa..db6927819112 100644 --- a/config/locales/crowdin/lt.yml +++ b/config/locales/crowdin/lt.yml @@ -40,7 +40,9 @@ lt: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Pašaslinti paskyrą delete_confirmation: Ar tikrai norite ištrinti paskyrą? deletion_info: @@ -65,7 +67,9 @@ lt: error_self_registration_limited_provider: 'Naudotojų registracija ribojama tik vieno prisijungimo tiekėjui „%{name}“. Prašome paprašyti administratoriaus, kad aktyvuotų jūsų paskyrą arba pakeistų savarankiškų registracijų apribojimą šiam tiekėjui. ' - login_with_auth_provider: arba prisijunkite su jau turima paskyra + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Prisijunkite, norėdami aktyvuoti savo paskyrą. @@ -118,6 +122,8 @@ lt: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ lt: repository: Repozitorija comment: commented: Komentavo - custom_action: - actions: Veiksmai custom_field: admin_only: Admin-only allow_non_open_versions: Leisti ne atviras versijas @@ -168,6 +172,7 @@ lt: uid: Kliento ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: "„Enterprise“ paramos raktas" @@ -179,20 +184,44 @@ lt: company: Kompanija favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Stulpelių skaičius page: Puslapis row_count: Eilučių skaičius widgets: Valdikliai group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identiteto URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ lt: title: Title member: blocked: Blocked + principal_type: Member type roles: Vaidmenys notification: read_ian: Read in-app @@ -235,6 +265,7 @@ lt: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ lt: ongoing: Vykstantys spent_on: Data type: Tipas + token/base: + expires_on: Expiration date token/ical: calendar: Kalendorius ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ lt: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administratorius auth_source: Autentifikacijos šaltinis + avatar_type: Avatar type consented_at: Sutikimo laikas current_password: Dabartinis slaptažodis department: Department @@ -410,7 +441,7 @@ lt: last_name: Pavardė ldap_auth_source: LDAP jungtis new_password: Naujas slaptažodis - password_confirmation: Patvirtinimas + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ lt: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ lt: header_look_and_feel: Look and feel impaired: Pritaikymas neįgaliesiems increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Laiko juosta warn_on_leaving_unsaved: Įspėti mane, kai palieku darbų paketą su neišsaugotais pakeitimais workdays: Darbo dienos + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ lt: title: Darbo dienos true: įtraukti nedarbo dienas journal_internal: Internal Journal + labels: Labels notify: Pranešti observed_in_versions: Observed in versions parent: Tėvas @@ -519,6 +565,10 @@ lt: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: turi būti patvirtinta. @@ -590,6 +640,8 @@ lt: regex_invalid: negalėjo būti patvirtintas su susieta reguliaria išraiška. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: neatitinka reguliariosios išraiškos %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: turi būti mažesnis arba lygus didžiausiam ilgiui. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ lt: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: yra neteisingo ilgio (turi būti %{count} simbolių). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -674,6 +730,16 @@ lt: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: pabaigos reikšmė turi būti didesnė už pradžios reikšmę. outside: yra už tinklelio. @@ -691,6 +757,13 @@ lt: not_unique: jau naudojamas. Prašome pasirinkti kitą pavadinimą. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ lt: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'vis dar naudojama darbų paketuose: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -859,42 +931,26 @@ lt: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -908,10 +964,10 @@ lt: numeric: skaitinė reikšmė (pvz., „1“) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: jau buvo naudotas. Prašome pasirinkti tokį, kuris skiriasi nuo paskutinio. - few: jau buvo naudotas. Prašome pasirinkti tokį, kuris skiriasi nuo paskutinių %{count}. - many: jau buvo naudotas. Prašome pasirinkti tokį, kuris skiriasi nuo paskutinių %{count}. - other: jau buvo naudotas. Prašome pasirinkti tokį, kuris skiriasi nuo paskutinių %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: specialus simbolis (pvz., „%“) uppercase: didžiosios raidės (pvz., „A“) password_confirmation: @@ -980,6 +1036,8 @@ lt: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: negali būti kitame projekte. cannot_be_milestone: negali būti svarbus etapas. @@ -1007,6 +1065,8 @@ lt: status_id: status_invalid_in_type: yra netinkamas, nes dabartinė būsena neegzistuoja šiame tipe. status_transition_invalid: netinkamas, nes nėra tinkamo perėjimo iš senos į naują būseną esamiems naudotojų vaidmenims. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: negali būti etapas, nes šis darbo paketas turi vaikų. is_not_a_valid_target_for_time_entries: 'Darbų paketas #%{id} nėra tinkamas laiko įrašų perskirstymo pasirinkimas.' @@ -1015,10 +1075,10 @@ lt: template: body: 'Prašome patikrinti šiuos laukelius:' header: - one: 1 klaida neleido, kad šis %{model} būtų išsaugotas - few: "%{count} klaidos (-a, -ų) neleido, kad šis %{model} būtų išsaugotas" - many: "%{count} klaidos (-a, -ų) neleido, kad šis %{model} būtų išsaugotas" - other: "%{count} klaidos (-a, -ų) neleido, kad šis %{model} būtų išsaugotas" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1080,6 +1140,11 @@ lt: few: Authentication providers many: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Backup few: Backups @@ -1115,11 +1180,6 @@ lt: few: Comments many: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - many: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1195,6 +1255,11 @@ lt: few: Export settings many: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Forum few: Forums @@ -1225,6 +1290,11 @@ lt: few: Priorities many: Priorities other: Priorities + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1617,7 +1687,28 @@ lt: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1650,7 +1741,11 @@ lt: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Temos keitimas perrašys jūsų pritaikytą stilių. Ankstesnis dizainas bus prarastas. Ar tikrai norite tęsti? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Įkelti Enterprise paramos raktą book_now: Užsakyti dabar @@ -1683,7 +1778,7 @@ lt: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1691,12 +1786,15 @@ lt: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1729,16 +1827,30 @@ lt: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1842,37 +1954,37 @@ lt: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" many: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" many: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" few: "%{count} statuses" many: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" many: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" many: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" @@ -1940,7 +2052,7 @@ lt: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" many: "%{count} projects selected as scope" other: "%{count} projects selected as scope" @@ -2007,23 +2119,55 @@ lt: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2054,6 +2198,18 @@ lt: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Daugiau informacijos rasite mūsų integracijų ir priedų puslapyje. no_results_title_text: Šio metu nėra įdiegtų priedų. @@ -2067,7 +2223,7 @@ lt: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2198,7 +2354,7 @@ lt: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" many: "... %{count} more projects" other: "... %{count} more projects" @@ -2241,7 +2397,7 @@ lt: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2276,15 +2432,22 @@ lt: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" many: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2294,7 +2457,7 @@ lt: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? few: Remove %{count} statuses? many: Remove %{count} statuses? other: Remove %{count} statuses? @@ -2309,7 +2472,31 @@ lt: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: šiuo metu rodoma is_inactive: šiuo metu nerodoma show_until: Rodyti iki @@ -2317,7 +2504,7 @@ lt: deleted_by_admin: Administratorius ištrynė į karantiną patekusį failą „%{filename}“. deleted_message: Faile „%{filename}“ aptiktas virusas. Failas buvo ištrintas. not_processed_yet_message: Atsisiuntimas užblokuotas, nes failas dar nebuvo patikrintas dėl virusų. Prašome pabandyti vėliau. - overridden_by_admin: Failo „%{filename}“ karantinas buvo pašalintas %{user}. Dabar failą galima pasiekti. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Konteineris delete: Trinti į karantiną patekusį failą @@ -2371,10 +2558,6 @@ lt: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Jūsų ieškomas darbo paketas nerastas arba ištrintas. - render: - context_not_parsable: Duotas kontekstas nėra nuoroda į resursą. - context_object_not_found: Nepavyko rasti resurso, duoto kaip kontekstas. - unsupported_context: Duotas resursas nėra palaikomas kaip kontekstas. unable_to_create_attachment: Nepavyko sukurti priedo unable_to_create_attachment_permissions: Priedas negali būti išsaugotas dėl teisių failų sistemoje trūkumo user: @@ -2445,6 +2628,7 @@ lt: groups: Grupės hexcode: Šešioliktainis kodas id: ID + inexistent: Inexistent is_default: Numatytoji vertė is_for_all: Visiems projektams issue: Darbų paketas @@ -2495,6 +2679,7 @@ lt: updated_at: Atnaujinta updated_on: Atnaujinta uploader: Įkėlėjas + url: URL user: Naudotojas username: Naudotojas value: Reikšmė @@ -2509,6 +2694,29 @@ lt: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Užduotis buvo nutraukta dėl klaidos: %{message}' @@ -2637,6 +2845,7 @@ lt: button_set_reminder: Set reminder button_show: Rodyti button_sort: Rūšiuoti + button_stop_timer: Stop timer button_submit: Siųsti button_test: Bandymas button_unarchive: Išarchyvuoti @@ -2703,9 +2912,9 @@ lt: text: failed: Nepavyko nukopijuoti „%{source_project_name}“ projekto į „%{target_project_name}“ projektą. succeeded: Projektas „%{source_project_name}“ sėkmingai nukopijuotas į „%{target_project_name}“. - title: Kopijuoti projektą „%{source_project_name}“ + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Vienas šio tipo objektas + one: "%{count} object of this type" other: "%{count} šio tipo objektų" zero: Nėra šio tipo objektų create_portfolio: @@ -2743,13 +2952,9 @@ lt: plural: Pasirinktiniai veiksmai custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Visiems projektams hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2770,7 +2975,7 @@ lt: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2835,16 +3040,17 @@ lt: is_enabled_globally: Yra įgalintas globaliai multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Perrikiuoti reikšmes alfabeto tvarka reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Sukurti naują pasirinktinį lauką - no_results_title_text: Nėra jokių pasirinktinų laukų. text_add_new_custom_field: 'Norėdami pridėti naujus pritaikytus laukelius prie projekto, pirmiausia reikia juos sukurti. Tik tada yra galimybė juos pridėti prie šio projekto. ' @@ -2908,25 +3114,25 @@ lt: datetime: distance_in_words: about_x_hours: - one: apie 1 valandą - few: apie %{count} valandas - many: apie %{count} valandų - other: apie %{count} valandas + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: apie 1 mėnesį - few: apie %{count} mėnesius - many: apie %{count} mėnesių - other: apie %{count} mėnesius + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: apie 1 metus - few: apie %{count} metus - many: apie %{count} metų - other: apie %{count} metus + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: beveik 1 metus - few: beveik %{count} metus (-ų) - many: beveik %{count} metų - other: beveik %{count} metus + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: pusę minutės less_than_x_minutes: one: mažiau nei 1 minutę @@ -2934,65 +3140,65 @@ lt: many: mažiau nei %{count} minučių other: mažiau nei %{count} minutes less_than_x_seconds: - one: mažiau nei 1 sekundę - few: mažiau nei %{count} sekundes - many: mažiau nei %{count} sekundžių - other: mažiau nei %{count} sekundes + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: daugiau nei 1 metus - few: daugiau nei %{count} metus - many: daugiau nei %{count} metų - other: daugiau nei %{count} metus + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: 1 dieną - few: "%{count} dienos" - many: "%{count} dienų" - other: "%{count} dienos" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 valanda - few: "%{count} valandos" - many: "%{count} valandų" - other: "%{count} valandos" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 val. - few: "%{count} val." - many: "%{count} val." - other: "%{count} val." + one: "%{count} hr" + few: "%{count} hrs" + many: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: 1 minutę + one: "%{count} minute" few: "%{count} minutes" - many: "%{count} minučių" + many: "%{count} minutes" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - few: "%{count} min" - many: "%{count} min" - other: "%{count} min" + one: "%{count} min" + few: "%{count} mins" + many: "%{count} mins" + other: "%{count} mins" x_months: - one: 1 mėnesį - few: "%{count} mėnesius" - many: "%{count} mėnesių" - other: "%{count} mėnesius" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekundę - few: "%{count} sekundes" - many: "%{count} sekundžių" - other: "%{count} sekundes" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: - one: 1 savaitė - few: "%{count} savaitės" - many: "%{count} savaičių" - other: "%{count} savaitės" + one: "%{count} week" + few: "%{count} weeks" + many: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 metai - few: "%{count} metai" - many: "%{count} metų" - other: "%{count} metai" + one: "%{count} year" + few: "%{count} years" + many: "%{count} years" + other: "%{count} years" units: day: one: day @@ -3152,7 +3358,7 @@ lt: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" many: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" @@ -3498,9 +3704,166 @@ lt: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Šiuo metu forume nėra įrašų. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3525,6 +3888,8 @@ lt: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3550,6 +3915,10 @@ lt: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3567,7 +3936,7 @@ lt: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3576,7 +3945,7 @@ lt: warning: Warning help_texts: views: - favoured: Pažymėti šį vaizdą kaip mėgstamiausią ir pridėti į įrašytų vaizdų dėklą kairėje. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} visada prisegti prie šio projekto. Jūs galite pažymėti tik projektus, kur modulis %{plural} yra aktyvus. Sukūrę %{singular} jūs galite į jį pridėti darbo paketus iš kitų projektų.\n" public: Publikuoti šį vaizdą, leidžiant kitiems naudotojams prieigą prie jūsų vaizdo. Naudotojai su teise „Valdyti viešus vaizdus“ galės keisti ar išimti viešą užklausą. Tai neįtakoja darbo paketo rezultatų matomumo vaizde ir priklausomai nuo teisių, naudotojai gali matyti kitokius rezultatus. homescreen: @@ -3601,6 +3970,31 @@ lt: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Skaitykite apie naujas savybes ir produkto atnaujinimus. learn_about: Learn more about all new features @@ -3637,8 +4031,10 @@ lt: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3688,6 +4084,7 @@ lt: budget_deleted: Budget has been deleted dates_changed: Datos pasikeitė default_attribute_written: Tik-skaitymo atributai įrašyti + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3840,10 +4237,10 @@ lt: label_copy_target: Tikslas label_copy_workflow_from: Kopijuoti darbų eigą iš label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Branduolio versija label_core_version: Branduolio versija label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Dabartinė būsena label_current_version: Esama versija label_custom_comment: "%{name} comment" @@ -3867,8 +4264,6 @@ lt: label_custom_field_default_type: Tuščias tipas label_custom_field_new: Naujas kliento laukas label_custom_field_plural: Pritaikyti laukai - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Savi PDF eksporto nustatymai label_custom_style: Išvaizda label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3877,11 +4272,12 @@ lt: label_database_version: PostgreSQL versija label_date: Data label_date_and_time: Data ir laikas - label_date_format: Datos formatas + label_date_and_time_formats: Date and time formats label_date_from: Nuo label_date_from_to: Nuo %{start} iki %{end} label_date_to: Į label_dates: Datos + label_day: Diena label_day_plural: dienas(-ų) label_default: Numatytasis label_defaults: Defaults @@ -3892,6 +4288,7 @@ lt: label_deleted_custom_field: "(panaikintas vartotojo laukas)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(panaikintas nustatymas)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3962,6 +4359,7 @@ lt: label_float: Skaičius su kableliu label_folder: Aplankas label_follows: seka + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Naujas forumas label_forum_plural: Forumai @@ -3980,6 +4378,7 @@ lt: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grupė + label_group_attributes_plural: Group attributes label_group_by: Grupuoti pagal label_group_named: Grupė %{name} label_group_new: Nauja grupė @@ -4031,8 +4430,8 @@ lt: label_journal_diff: Aprašymų palyginimas label_jump_to_a_project: Peršokti į projektą... label_keyword_plural: Raktažodžiai + label_label_plural: Labels label_language: Kalba - label_language_based: Paremta vartotojo kalba label_languages: Kalbos label_last_activity: Paskutinė veikla label_last_change_on: Paskutinį kartą pakeista @@ -4054,6 +4453,7 @@ lt: label_list: Sąrašas label_loading: Įkeliama... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Užrakinti vartotoją label_locked: užrakinti label_logged_as: Prisijungęs kaip @@ -4065,6 +4465,7 @@ lt: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Valdomos %{vendor} saugyklos label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimalus dydis label_me: aš label_member_all_admin: "(Visi vaidmenys, nes turite administratoriaus statusą)" @@ -4083,7 +4484,6 @@ lt: label_menu_item_name: Meniu punkto pavadinimas label_message: Pranešimas label_message_last: Paskutinis pranešimas - label_message_new: Naujas pranešimas label_message_plural: Pranešimai label_message_posted: Pridėtas pranešimas label_minute_plural: minutės @@ -4095,6 +4495,7 @@ lt: label_module_plural: Moduliai label_modules: Moduliai label_modules_and_plugins: Moduliai ir priedai + label_month: Mėnuo label_months_from: mėnesiai nuo label_more: Daugiau label_more_information: Daugiau informacijos @@ -4108,6 +4509,7 @@ lt: label_my_avatar: Mano avataras label_my_queries: Mano sukurtos užklausos label_my_security: Security + label_my_time: My time label_name: Vardas label_never: Niekada label_new: Naujas @@ -4122,7 +4524,10 @@ lt: label_news_singular: Naujienos label_news_view_all: Peržiūrėti visas naujienas label_next: Kitas + label_next_day: Next day + label_next_month: Next month label_next_week: Sekanti savaitė + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Jokio pakeitimo)" label_no_data: Nėra rodytinų duomenų @@ -4130,6 +4535,7 @@ lt: label_no_parent_group: "(No parent group)" label_no_parent_page: Nėra tėvinio puslapio label_no_start_date: nėra pradžios datos + label_no_time: No time tracked label_nobody: niekas label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4196,7 +4602,10 @@ lt: label_preview: Peržiūra label_preview_not_available: Peržiūra negalima label_previous: Ankstesnis + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Ankstesnė savaitė + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " arba pakviesti naujus vartotojus naudojant el. paštą" label_principal_search: Pridėti esamus vartotojus ar grupes @@ -4315,6 +4724,7 @@ lt: label_sort_lowest: Perkelti į apačią label_sorted_by: suršiuota pagal %{value} label_spent_time: Praleista laiko + label_stack: Stack label_start_to_end: nuo pradžios iki pabaigos label_start_to_start: nuo pradžios iki pradžios label_starts_with: starts with @@ -4334,6 +4744,7 @@ lt: label_subtask_plural: Darbo dalys label_summary: Santrauka label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Sistemos nustatymai label_system_storage: Talpyklos informacija label_table_of_contents: Turinys @@ -4348,6 +4759,7 @@ lt: label_time: Laikas label_time_entry_activity_plural: Praleisto laiko veiklos label_time_entry_plural: Praleista laiko + label_timer_since: Started at %{time} label_title: Pavadinimas label_today: šiandien label_today_as_date: Select today as date. @@ -4383,7 +4795,9 @@ lt: label_user_search: Ieškoti vartotojo label_user_settings: Naudotojo nustatymai label_users_settings: Naudotojo nustatymai + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Redaguoti versiją label_version_new: Nauja versija label_version_plural: Versijos @@ -4396,6 +4810,7 @@ lt: label_videos: Vaizdo įrašai label_view_all_revisions: Peržiūrėti visas revizijas label_view_diff: Peržiūrėti skirtumus + label_view_mode_switcher: Change view label_view_revisions: Peržiūrėti revizijas label_view_x: 'View: %{x}' label_watched_work_packages: Stebėti darbų paketus @@ -4419,6 +4834,8 @@ lt: label_wiki_start: Pradžios puslapis label_wiki_toc: Turinys label_wiki_toc_empty: Turinys tuščias arba nėra jokių antraščių. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Darbas label_work_package: Darbų paketas label_work_package_attachments: Darbų paketo prisegti failai @@ -4441,51 +4858,52 @@ lt: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Darbo savaitė label_x_closed_work_packages_abbr: - one: 1 uždarytas + one: "%{count} closed" other: "%{count} uždaryti (-as, -ų)" zero: 0 uždarytų label_x_comments: - one: 1 komentaras + one: "%{count} comment" other: "%{count} komentarai (-as, -ų)" zero: nėra komentarų label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" many: "%{count} days" other: "%{count} days" label_x_files: - one: 1 failas + one: "%{count} file" other: "%{count} failai" zero: nėra failų label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" many: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 atidarytas + one: "%{count} open" other: "%{count} atidaryti (-as, -ų)" zero: 0 atvirų label_x_projects: - one: 1 projektas + one: "%{count} project" other: "%{count} projektai (-as, -ų)" zero: nėra projektų label_x_work_packages: - one: 1 darbo paketas + one: "%{count} work package" other: "%{count} darbo paketai" zero: Nėra darbo paketų label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' many: 'Time off: %{count} working days' other: 'Time off: %{count} working days' @@ -4541,7 +4959,7 @@ lt: start_tls: STARTTLS start_tls_description: Siunčia STARTTLS komandą po prisijungimo prie standartinio LDAP prievado. Rekonenduojama šifruotoms jungtims. tls_options: - tls_certificate_description: Jei LDAP serverio sertifikatas neįtrauktas į šios sistemos pasitikimuosius, jūs galite jį pridėti rankiniu būdu čia. Įveskite PEM X509 sertifikato eilutę. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Tikrinti SSL sertifikatą verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4598,6 +5016,8 @@ lt: you_have: Jūs turite logo_alt_text: Logotipas mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Į pranešimų centrą @@ -4654,10 +5074,10 @@ lt: mentioned: Jus paminėjo komentare mentioned_by: "%{user} paminėjo jus komentare" more_to_see: - one: Yra dar 1 darbų paketas su pranešimais. - few: Yra dar %{count} darbų paketai su pranešimais. - many: Yra dar %{count} darbų paketai su pranešimais. - other: Yra dar %{count} darbų paketų su pranešimais. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + many: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Atidaryti naršyklėje reason: assigned: Paskirtas @@ -4847,6 +5267,15 @@ lt: create_button: Sukurti dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Žetono pavadinimas failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Atpažinimo rakto nepavyko nustatyti iš naujo: %{error}' @@ -4860,10 +5289,26 @@ lt: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Prieigos žetonai description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Veiksmas expiration: Baigiasi @@ -5069,7 +5514,6 @@ lt: notice_principals_found_single: |- Yra vienas rezultatas. Paspauskite 'Tab', kad susikoncentruotumėte į jį. - notice_project_cannot_update_custom_fields: 'Jūs negalite atnaujinti projekto pasirinktinų laukų. Projektas yra netinkamas: %{errors}' notice_project_not_deleted: Projektas nebuvo panaikintas. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5079,9 +5523,6 @@ lt: notice_successful_create: Sėkmingas sukūrimas. notice_successful_delete: Sėkmingas panaikinimas. notice_successful_update: Sėkmingai atnaujinta. - notice_successful_update_custom_fields_added_to_project: 'Sėkmingas atnaujinimas. Savi aktyvuotų tipų laukai automatiškai aktivuoti darbo paketų formose. Skaitykite daugiau. - - ' notice_to_many_principals_to_display: Per daug rezultatų. Susiaurinkite paiešką pradėdami įvesti naujo nario (ar grupės) pavadinimą. notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -5183,7 +5624,7 @@ lt: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. many: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5274,8 +5715,6 @@ lt: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5295,7 +5734,6 @@ lt: or: arba rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Įjungtas item: Item @@ -5367,8 +5805,8 @@ lt: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5393,7 +5831,7 @@ lt: permission_change_work_package_status_explanation: Leidžia keisti būseną neturint darbo paketo keitimo teisių permission_comment_news: Komentuoti naujienas permission_commit_access: Skaitymo/rašymo prieiga į repozitoriją - permission_copy_projects: Kopijuoti projekus + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Kurti atsargines kopijas @@ -5426,6 +5864,7 @@ lt: permission_export_projects: Export projects permission_export_work_packages: Eksportuoti darbų paketus permission_header_for_project_module_work_package_tracking: Darbo paketai ir Gantt diagramos + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5436,6 +5875,9 @@ lt: permission_manage_dashboards: Valdyti švieslentes permission_manage_forums: Valdyti forumus permission_manage_members: Valdyti narius + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Valdyti naujienas permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5464,7 +5906,6 @@ lt: permission_save_bcf_queries: Įrašyti BCF užklausas permission_save_queries: Įrašyti vaizdus permission_search_project: Ieškoti projekte - permission_select_custom_fields: Parinkite savo laukus permission_select_project_custom_fields: Parinkite projekto atributus permission_select_project_modules: Parinkti projekto modulius permission_select_project_phases: Select project phases @@ -5498,6 +5939,16 @@ lt: permission_work_package_assigned: Tapti paskirtuoju/atsakinguoju permission_work_package_assigned_explanation: Darbų paketai gali būti priskirti naudotojams ir grupėms pagal vaidmenį atitinkamame projekte placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Pašalinti statytinį naudotoją deletion_info: data_consequences: 'Visose vietose, kur naudojamas statytinis naudotojas (t.y. kaip paskirtas, atsakingas ar kitose naudotojo vietose) jis bus pakeistas į naudotoją „Ištrintas naudotojas“. Kadangi visų ištrintų naudotojų visi duomenys yra priskiriami šiam naudotojui, nebebus galima atskirti šio naudotojo sukurtų duomenų, nuo tų, kuriuos sukūrė kiti ištrinti naudotojai. @@ -5519,7 +5970,7 @@ lt: name: OmniAuth SAML / Vienas prisijungimas portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5530,7 +5981,7 @@ lt: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" few: "%{count} sub-items" many: "%{count} sub-items" other: "%{count} sub-items" @@ -5547,7 +5998,7 @@ lt: Ji gali būti naudojama paryškinti darbo paketus lentelėje. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5559,7 +6010,7 @@ lt: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projektas + one: "%{count} project" other: "%{count} projektai (-as, -ų)" zero: 0 projects destroy: @@ -5664,11 +6115,11 @@ lt: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5678,6 +6129,12 @@ lt: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Šiuo metu nėra prieinamų pasirinktinų laukų. forums: no_results_content_text: Kurti naują forumą @@ -5774,18 +6231,18 @@ lt: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" @@ -5799,7 +6256,7 @@ lt: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Sukurti naują versiją - no_results_title_text: Projektas neturi jokių laidų. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Darbo paketų grafas work_package_priorities: @@ -5807,15 +6264,27 @@ lt: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Pritaikyti iš anksto sukonfigūruotą filtrą configure_view: @@ -5844,10 +6313,10 @@ lt: action_title: React add_reaction: Add reaction and_others: - one: ir dar 1 - few: ir dar %{count} - many: ir dar %{count} - other: ir dar %{count} + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5962,6 +6431,41 @@ lt: warnings: cannot_annotate: Šis failas negali turėti pastabų. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5973,6 +6477,17 @@ lt: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -6077,7 +6592,7 @@ lt: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maksimalus rodomas pakeitimų eilučių skaičius setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Pagal nutylėjimą rodyti sub-projektų darbų paketus pagrindiniuose projektuose. + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6192,6 +6707,7 @@ lt: setting_start_of_week: Savaitė prasideda setting_sys_api_description: Repozitorijos valdymo web tarnyba teikia integraciją ir vartotojų autorizaciją bandant pasiekti repozitorijas. setting_sys_api_enabled: Įgalinti repozitorijos valdymo web tarnybą + setting_sys_api_key: API key setting_time_format: Laikas setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6244,7 +6760,7 @@ lt: description_html: 'Pasirinkite režimą, kuriuo turėtų veikti virusų tikrinimo integracija.
  • %{disabled_option}: Įkelti failai nėra tikrinami dėl virusų.
  • %{socket_option}: Tame pačiame serveryje, kuriame yra „OpenProject“, įdiegėte "ClamAV" ir fone veikia skenavimo demonas clamd.
  • %{host_option}: Siunčiate failus į išorinį virusų skenavimo kompiuterį.
' - remaining_quarantined_files_html: 'Virusų tikrinimas išjungtas. %{file_count} lieka karantine. Norėdami peržiūrėti į karantiną patekusius failus, apsilankykite šią nuorodą: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virusų skenavimas sėkmingai įjungtas. Yra %{file_count}, kurie buvo įkelti anksčiau ir turi būti patikrinti. Šis darbas suplanuotas fone. Failai liks prieinami tikrinimo metu. @@ -6255,6 +6771,7 @@ lt: ' title: Virusų tikrinimas attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Išjungus šią parinktį naujų projektų darbo paketų failų kortelėje bus paslėptas priedų sąrašas. Darbo paketų aprašyme prisegti failai bus įkeliami į vidinę priedų saugyklą. ' @@ -6346,12 +6863,12 @@ lt: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6371,8 +6888,8 @@ lt: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6380,7 +6897,7 @@ lt: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6400,6 +6917,7 @@ lt: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6456,7 +6974,7 @@ lt: section_work_week: Darbo savaitė sharing: count: - one: 1 naudotojas + one: "%{count} user" other: "%{count} naudotojų" zero: 0 naudotojų denied: You don't have permissions to share %{entities}. @@ -6549,19 +7067,19 @@ lt:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Uždaryta - is_default: Numatytasis is_readonly: Tik skaityti + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Pridėti naują būseną no_results_title_text: Nėra jokių darbų paketo būsenų. + status_actions: Status actions support: array: sentence_connector: ir skip_last_comma: netiesa text_access_token_hint: Prieigos raktai leidžia išorinėms aplikacijoms pasiekti OpenProject resursus. - text_accessibility_hint: Pasiekiamumo režimas yra skirtas vartotojams, kurie turi regėjimo sutrikimų. Tuo tikslu svarbūs elementai būna paryškinami/pabrėžiami. Prašome atkreipti dėmesį, kad Backlogs modulis neprieinamas, kai šis režimas įjungtas. text_analyze: 'Toliau analizuoti: %{subject}' text_are_you_sure: Ar esate įsitikinę? text_are_you_sure_continue: Ar tikrai norite tęsti? @@ -6604,12 +7122,6 @@ lt: ' text_custom_field_possible_values_info: Po vieną eilutę kiekvienai reikšmei - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Šis paveikslėlis atsiranda Jūsų mobiliajame įrenginyje ar planšetėje kaip plytelė, kai prikabinate svetainę prie namų ekrano. Jis turi būti kvadrato formos 180 pikselių ilgo ir pločio PNG paveikslėlis. Prašome įsitikinti, kad fonas nėra permatomas, nes kitaip paveikslėlis atrodys prastai naudojant iOS. ' @@ -6659,6 +7171,7 @@ lt: text_length_between: Ilgis tarp %{min} ir %{max} simbolių. text_line_separated: Galimos kelios reikšmės (viena eilutė vienai reikšmei). text_load_default_configuration: Įkelti numatytąją konfigūraciją + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Nėra prieigos raktų, kurie gali būti konfigūruojami. text_no_configuration_data: Vaidmenys, tipai, darbų paketo būsenos ir darbų eiga dar nesukonfigūruoti. Stipriai rekomenduojama įkelti numatytąją konfigūraciją. Jūs ją galėsite redaguoti iškart po įkėlimo. text_no_notes: Šis darbų paketas neturi komentarų. @@ -6762,6 +7275,70 @@ lt: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6771,14 +7348,40 @@ lt: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6787,8 +7390,10 @@ lt: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6817,21 +7422,21 @@ lt: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Išjungti visus label_enable_all: Įjungti visus label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6848,6 +7453,8 @@ lt: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6869,6 +7476,14 @@ lt: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6878,12 +7493,14 @@ lt: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6897,12 +7514,12 @@ lt: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6915,10 +7532,12 @@ lt: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projektai + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6933,47 +7552,17 @@ lt: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6981,6 +7570,9 @@ lt: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6989,13 +7581,14 @@ lt: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7009,12 +7602,16 @@ lt: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7023,27 +7620,58 @@ lt: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Sukurti naują rūšį no_results_title_text: Nėra jokių rūšių. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" many: "%{count} project-specific variants" other: "%{count} project-specific variants" @@ -7051,7 +7679,21 @@ lt: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignoruoti šį perspėjimą. message: Šiame puslapyje jums gali kilti problemų ar jis gali prastai veikti. @@ -7070,10 +7712,10 @@ lt: authorization_rejected: Jums neleidžiama prisijungti. blocked: laikinai užrakintas blocked_num_failed_logins: - one: laikinai užrakintas (vienas nesėkmingas prisijungimas) - few: laikinai užrakintas (%{count} nesėkmingi prisijungimai) - many: laikinai užrakintas (%{count} nesėkmingų prisijungimų) - other: laikinai užrakintas (%{count} nesėkmingi prisijungimai) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Jūs pakeisti „%{name}“ būseną. Ar tikrai norite tęsti? deleted: Ištrintas vartotojas department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7173,7 +7815,7 @@ lt: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Įrenginys / OS expires: Baigiasi - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: Jūs negalite ištrinti savo dabartinės sesijos. session_name: "%{browser_name} %{browser_version} %{os_name}" @@ -7233,7 +7875,7 @@ lt: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" @@ -7242,6 +7884,12 @@ lt: version_status_locked: užrakinti version_status_open: atidarytas versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Šiuo metu nėra šiai versijai priskirtų darbų paketų. work_packages_in_archived_projects: Versija bendrinama su archyvuotais projektais, kurie vis dar turi darbo paketų, priskirtų šiai versijai. Jie įskaičiuoti, bet nebus rodomi susietuose vaizduose. @@ -7411,12 +8059,14 @@ lt: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Nepavyko nukopijuoti darbo paketų. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Nepavyko įrašyti šių darbo paketų:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. many: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. @@ -7443,23 +8093,23 @@ lt: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7519,26 +8169,172 @@ lt: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7570,26 +8366,27 @@ lt: version: no_results_title_text: Šiuo metu nėra prieinamų versijų. x_descendants: - one: Vienas pasekėjas darbo paketas - few: "%{count} pasekėjų darbo paketų" - many: "%{count} pasekėjų darbo paketų" - other: "%{count} pasekėjų darbo paketų" + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7597,16 +8394,31 @@ lt: few: Successfully copied workflow to %{count} roles. many: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7615,12 +8427,100 @@ lt: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Keisti darbo dienas dialog: diff --git a/config/locales/crowdin/lv.seeders.yml b/config/locales/crowdin/lv.seeders.yml index ed2ec0e01369..d79101a0c0a6 100644 --- a/config/locales/crowdin/lv.seeders.yml +++ b/config/locales/crowdin/lv.seeders.yml @@ -250,70 +250,26 @@ lv: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Produkta darbu krātuve + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Uzdevumi boards: @@ -345,12 +301,13 @@ lv: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml index 6576849a8c16..82a2e2d26350 100644 --- a/config/locales/crowdin/lv.yml +++ b/config/locales/crowdin/lv.yml @@ -40,7 +40,9 @@ lv: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Dzēst kontu delete_confirmation: Vai tiešām vēlies dzēst kontu? deletion_info: @@ -65,7 +67,9 @@ lv: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: vai pierakstieties, izmantojot savu esošo kontu + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Lūdzu, autorizējaties, lai aktivizētu savu kontu. @@ -118,6 +122,8 @@ lv: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ lv: repository: Repository comment: commented: Komentēja - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ lv: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ lv: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Kolonnu skaits page: Lapa row_count: Rindu skaits widgets: Logrīki group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ lv: title: Title member: blocked: Blocked + principal_type: Member type roles: Lomas notification: read_ian: Read in-app @@ -235,6 +265,7 @@ lv: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ lv: ongoing: Ongoing spent_on: Datums type: Veids + token/base: + expires_on: Expiration date token/ical: calendar: Kalendārs ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ lv: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrators auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Pašreizējā parole department: Department @@ -410,7 +441,7 @@ lv: last_name: Uzvārds ldap_auth_source: LDAP connection new_password: Jaunā parole - password_confirmation: Jaunā parole atkārtoti + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ lv: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ lv: header_look_and_feel: Look and feel impaired: Pieejamības režīms increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Laika josla warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ lv: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ lv: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: ir jāapstiprina. @@ -590,6 +640,8 @@ lv: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: jābūt mazākam vai vienādam ar maksimālo garumu. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ lv: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: ir nepareizs garums (vajadzētu būt %{count} rakstzīmes). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ lv: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: atrodas ārpus režģa. @@ -690,6 +756,13 @@ lv: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ lv: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'darbu komplekss joprojām izmanto: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ lv: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,9 +963,9 @@ lv: numeric: cipari (piemēram, "1") requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - zero: iepriekš jau lietota. Lūdzu, izvēlieties vienu, kas atšķiras no jūsu pēdējām %{count}. - one: iepriekš jau lietota. Lūdzu, izvēlieties vienu, kas atšķiras no Jūsu pēdējās. - other: iepriekš jau lietota. Lūdzu, izvēlieties vienu, kas atšķiras no jūsu pēdējām %{count}. + zero: has been used before. Please choose one that is different from your last %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: speciālie simboli (piemēram, ' %') uppercase: lielaie burti (piemēram, ' A') password_confirmation: @@ -978,6 +1034,8 @@ lv: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nevar būt cits projekts. cannot_be_milestone: nevar būt atskaites punkts. @@ -1005,6 +1063,8 @@ lv: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: nav derīgs, jo derīga pāreja no vecā uz jauno statusu pašreizējai lietotāja lomai nepastāv. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1013,9 +1073,9 @@ lv: template: body: 'Please check the following fields:' header: - zero: Modelī %{model} ir %{count} kļūdas, kas neļauj to saglabāt - one: Modelī %{model} ir kļūda kas neļauj to saglabāt - other: Modelī %{model} ir %{count} kļūdas, kas neļauj to saglabāt + zero: "%{count} errors prohibited this %{model} from being saved" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: zero: Actions @@ -1065,6 +1125,10 @@ lv: zero: Authentication providers one: Authentication provider other: Authentication providers + automation: + zero: Automations + one: Automation + other: Automations backup: zero: Backups one: Backup @@ -1093,10 +1157,6 @@ lv: zero: Comments one: Comment other: Comments - custom_action: - zero: Custom actions - one: Custom action - other: Custom actions custom_field: zero: Custom fields one: Custom field @@ -1157,6 +1217,10 @@ lv: zero: Export settings one: Export setting other: Export settings + form_configuration: + zero: Forms + one: Form + other: Forms forum: zero: Forums one: Forum @@ -1181,6 +1245,10 @@ lv: zero: Priorities one: Prioritāte other: Priorities + label: + zero: Labels + one: Label + other: Labels ldap_auth_source: zero: LDAP connections one: LDAP connection @@ -1509,7 +1577,28 @@ lv: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1542,7 +1631,11 @@ lv: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1575,7 +1668,7 @@ lv: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1583,12 +1676,15 @@ lv: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1621,16 +1717,30 @@ lv: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1735,31 +1845,31 @@ lv: parts: issues: zero: "%{count} issues" - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: zero: "%{count} jobs" - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: zero: "%{count} projects" - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: zero: "%{count} statuses" - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: zero: "%{count} types" - one: 1 type + one: "%{count} type" other: "%{count} types" users: zero: "%{count} users" - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: zero: "%{count} work packages" - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1826,7 +1936,7 @@ lv: caption_done: Completed caption_done_description: zero: "%{count} projects selected as scope" - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1891,23 +2001,54 @@ lv: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + zero: "%{count} work packages" + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1938,6 +2079,18 @@ lv: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1952,7 +2105,7 @@ lv: description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: zero: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -2082,7 +2235,7 @@ lv: error_used_in_past: Reserved by another project's handle history remaining_projects: zero: "... %{count} more projects" - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2123,7 +2276,7 @@ lv: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2157,14 +2310,21 @@ lv: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: zero: "%{count} roles selected" - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2175,7 +2335,7 @@ lv: description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: zero: Remove %{count} statuses? - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2188,7 +2348,31 @@ lv: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2196,7 +2380,7 @@ lv: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2250,10 +2434,6 @@ lv: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: Pielikumu nevar izveidot unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2324,6 +2504,7 @@ lv: groups: Groups hexcode: Hex code id: Nr + inexistent: Inexistent is_default: Noklusējuma vērtība is_for_all: Visiem projektiem issue: Darba pieteikums @@ -2374,6 +2555,7 @@ lv: updated_at: Labots updated_on: Labots uploader: Uploader + url: URL user: Lietotāji username: Username value: Vērtība @@ -2388,6 +2570,29 @@ lv: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2516,6 +2721,7 @@ lv: button_set_reminder: Set reminder button_show: Rādīt button_sort: Sort + button_stop_timer: Stop timer button_submit: Publicēt button_test: Test button_unarchive: Unarchive @@ -2582,9 +2788,9 @@ lv: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2622,13 +2828,9 @@ lv: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Visiem projektiem hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2649,7 +2851,7 @@ lv: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2714,16 +2916,17 @@ lv: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Izveidot jaunu pielāgotu lauku - no_results_title_text: Pašlaik nav neviena pielāgota lauka. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2787,73 +2990,73 @@ lv: datetime: distance_in_words: about_x_hours: - zero: aptuveni %{count} stundām - one: aptuveni 1 stundas - other: aptuveni %{count} stundām + zero: about %{count} hours + one: about %{count} hour + other: about %{count} hours about_x_months: - zero: aptuveni %{count} mēnešiem - one: aptuveni 1 mēneša - other: aptuveni %{count} mēnešiem + zero: about %{count} months + one: about %{count} month + other: about %{count} months about_x_years: - zero: "%{count} gadiem" - one: 1 gada - other: "%{count} gadiem" + zero: about %{count} years + one: about %{count} year + other: about %{count} years almost_x_years: - zero: gandrīz %{count} gadi - one: gandrīz 1 gadu - other: gandrīz %{count} gadi + zero: almost %{count} years + one: almost %{count} year + other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: zero: mazāk nekā %{count} minūtēm one: mazāk par minūti other: mazāk nekā %{count} minūtēm less_than_x_seconds: - zero: mazāk nekā %{count} sekundēm - one: mazāk nekā 1 sekundes - other: mazāk nekā %{count} sekundēm + zero: less than %{count} seconds + one: less than %{count} second + other: less than %{count} seconds over_x_years: - zero: senāk kā %{count} gadiem - one: senāk kā 1 gada - other: senāk kā %{count} gadiem + zero: over %{count} years + one: over %{count} year + other: over %{count} years x_days: - zero: "%{count} dienām" - one: 1 dienas - other: "%{count} dienām" + zero: "%{count} days" + one: "%{count} day" + other: "%{count} days" x_hours: - zero: "%{count} stundas" - one: 1 stunda - other: "%{count} stundas" + zero: "%{count} hours" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: zero: "%{count} hrs" - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - zero: "%{count} minūtēm" - one: 1 minūte - other: "%{count} minūtēm" + zero: "%{count} minutes" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: zero: "%{count} mins" - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - zero: "%{count} mēnešiem" - one: 1 mēneša - other: "%{count} mēnešiem" + zero: "%{count} months" + one: "%{count} month" + other: "%{count} months" x_seconds: - zero: "%{count} sekundes" - one: 1 sekunde - other: "%{count} sekundes" + zero: "%{count} seconds" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: zero: "%{count} s" - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: zero: "%{count} weeks" - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: zero: "%{count} years" - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -3008,7 +3211,7 @@ lv: description_html: You have access to all %{trial_plan} features. title: zero: "%{count} days left of %{trial_plan} trial token" - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3350,9 +3553,158 @@ lv: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + zero: "%{count} projects" + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + zero: "%{count} types" + one: "%{count} type" + other: "%{count} types" + variants_count: + zero: "%{count} variants" + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + zero: This form is used by %{count} types. Changes apply to all of them. + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + zero: This form is used by %{count} types and variants. Changes apply to all of them. + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + zero: 'Accepted solutions:' + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + zero: Load previous %{count} replies + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + zero: "%{count} participants" + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3377,6 +3729,8 @@ lv: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3402,6 +3756,10 @@ lv: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3417,7 +3775,7 @@ lv: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3426,7 +3784,7 @@ lv: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3451,6 +3809,31 @@ lv: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3487,8 +3870,10 @@ lv: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3538,6 +3923,7 @@ lv: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3690,10 +4076,10 @@ lv: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3717,8 +4103,6 @@ lv: label_custom_field_default_type: Empty type label_custom_field_new: Jauns pielāgotais lauks label_custom_field_plural: Pielāgotie lauki - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3727,11 +4111,12 @@ lv: label_database_version: PostgreSQL version label_date: Datums label_date_and_time: Datums un laiks - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: No %{start} līdz %{end} label_date_to: To label_dates: Dates + label_day: Diena label_day_plural: dienas label_default: Default label_defaults: Defaults @@ -3742,6 +4127,7 @@ lv: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3812,6 +4198,7 @@ lv: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3830,6 +4217,7 @@ lv: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Grupēt pēc label_group_named: Group %{name} label_group_new: New group @@ -3881,8 +4269,8 @@ lv: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Valoda - label_language_based: Based on user's language label_languages: Languages label_last_activity: Pēdējā aktivitāte label_last_change_on: Last change on @@ -3904,6 +4292,7 @@ lv: label_list: List label_loading: Notiek ielāde... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3915,6 +4304,7 @@ lv: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksimālais izmērs label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3933,7 +4323,6 @@ lv: label_menu_item_name: Name of menu item label_message: Message label_message_last: Pēdējā ziņa - label_message_new: Jauna tēma label_message_plural: Ziņojumi label_message_posted: Message added label_minute_plural: minūtes @@ -3945,6 +4334,7 @@ lv: label_module_plural: Moduļi label_modules: Moduļi label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3958,6 +4348,7 @@ lv: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Nosaukums label_never: Nekad label_new: Jauns @@ -3972,7 +4363,10 @@ lv: label_news_singular: Jaunumi label_news_view_all: View all news label_next: Nākošā + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: Nav dati @@ -3980,6 +4374,7 @@ lv: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: bez sākuma datuma + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4046,7 +4441,10 @@ lv: label_preview: Priekšskatīt label_preview_not_available: Preview not available label_previous: Iepriekšējā + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4165,6 +4563,7 @@ lv: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Pavadīts laiks + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4184,6 +4583,7 @@ lv: label_subtask_plural: Subtasks label_summary: Kopsavilkums label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: Sistēmas iestatījumi label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4198,6 +4598,7 @@ lv: label_time: Laiks label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Pavadīts laiks + label_timer_since: Started at %{time} label_title: Virsraksts label_today: šodien label_today_as_date: Select today as date. @@ -4233,7 +4634,9 @@ lv: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versijas @@ -4246,6 +4649,7 @@ lv: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Pieteikumi, kuriem tiek sekots @@ -4269,6 +4673,8 @@ lv: label_wiki_start: Sākuma lapa label_wiki_toc: Satura rādītājs label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Darba pieteikums label_work_package_attachments: Work package attachments @@ -4291,49 +4697,50 @@ lv: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 slēgts + one: "%{count} closed" other: "%{count} slēgti" zero: 0 closed label_x_comments: - one: 1 komentārs + one: "%{count} comment" other: "%{count} komentāri" zero: no comments label_x_days: zero: "%{count} days" - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: zero: "%{count} items selected" - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 atvērts + one: "%{count} open" other: "%{count} atvērti" zero: 0 open label_x_projects: - one: 1 projekts + one: "%{count} project" other: "%{count} projekti" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: zero: "%{count} working days" - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: zero: 'Time off: %{count} working days' - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4388,7 +4795,7 @@ lv: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4445,6 +4852,8 @@ lv: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4502,7 +4911,7 @@ lv: mentioned_by: "%{user} mentioned you in a comment" more_to_see: zero: There are %{count} more work packages with notifications. - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4687,6 +5096,14 @@ lv: create_button: Izveidot dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + zero: "%{count} days (%{date})" + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4700,10 +5117,26 @@ lv: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Darbība expiration: Termiņš izbeidzas @@ -4905,7 +5338,6 @@ lv: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4915,9 +5347,6 @@ lv: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -5021,7 +5450,7 @@ lv: ' confirm_revoke_my_application: zero: Do you really want to remove this application? This will revoke %{count} tokens active for it. - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -5112,8 +5541,6 @@ lv: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5133,7 +5560,6 @@ lv: or: vai rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5205,8 +5631,8 @@ lv: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5231,7 +5657,7 @@ lv: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Kopēt projektus + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5264,6 +5690,7 @@ lv: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5274,6 +5701,9 @@ lv: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5302,7 +5732,6 @@ lv: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Atlasiet projekta moduļus permission_select_project_phases: Select project phases @@ -5336,6 +5765,16 @@ lv: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5357,7 +5796,7 @@ lv: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5369,7 +5808,7 @@ lv: placeholder: Search portfolios sub_items_html: zero: "%{count} sub-items" - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5384,7 +5823,7 @@ lv: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5396,7 +5835,7 @@ lv: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekts + one: "%{count} project" other: "%{count} projekti" zero: 0 projects destroy: @@ -5501,11 +5940,11 @@ lv: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5515,6 +5954,12 @@ lv: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Pašlaik nav neviena pieejamā pielāgotā lauka. forums: no_results_content_text: Create a new forum @@ -5612,16 +6057,16 @@ lv: nothing_affected: No fields or statuses are affected. status_count: zero: "%{count} work packages" - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: zero: "%{count} work packages have a value" - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: zero: "%{count} work packages will use the new configuration" - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5633,7 +6078,7 @@ lv: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Izveidot jaunu versiju - no_results_title_text: Pašlaik projektam nav nevianas versijas. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5641,15 +6086,27 @@ lv: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5679,7 +6136,7 @@ lv: add_reaction: Add reaction and_others: zero: and %{count} others - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5801,6 +6258,36 @@ lv: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + zero: "(Projects: %{projects})" + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + zero: "(Projects: %{projects} and %{count} others)" + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + zero: 'This role is still attributed to %{count} members:' + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + zero: "%{count} projects" + one: "%{count} project" + other: "%{count} projects" + summary_users: + zero: "%{count} users" + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5812,6 +6299,16 @@ lv: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + zero: "%{count} permissions" + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5916,7 +6413,7 @@ lv: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6031,6 +6528,7 @@ lv: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Laiks setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6083,7 +6581,7 @@ lv: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6094,6 +6592,7 @@ lv: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6185,12 +6684,12 @@ lv: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6210,8 +6709,8 @@ lv: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6219,7 +6718,7 @@ lv: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6239,6 +6738,7 @@ lv: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6295,7 +6795,7 @@ lv: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6388,19 +6888,19 @@ lv:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Aizvērts - is_default: Default is_readonly: Tikai lasīšana + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Pievienot jaunu statusu no_results_title_text: Pašlaik nav nevienas darba pakas statuss. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Dziļākai analīzei: %{subject}' text_are_you_sure: Vai esat pārliecināts? text_are_you_sure_continue: Are you sure you want to continue? @@ -6443,12 +6943,6 @@ lv: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6498,6 +6992,7 @@ lv: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6603,6 +7098,69 @@ lv: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + zero: "%{names} and %{count} more" + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6612,14 +7170,40 @@ lv: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6628,8 +7212,10 @@ lv: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6658,21 +7244,21 @@ lv: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6689,6 +7275,8 @@ lv: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6710,6 +7298,14 @@ lv: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6719,12 +7315,14 @@ lv: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6738,12 +7336,12 @@ lv: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6756,10 +7354,12 @@ lv: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projekti + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6774,45 +7374,17 @@ lv: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - zero: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - zero: "%{count} dependent types" - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6820,6 +7392,9 @@ lv: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6828,13 +7403,14 @@ lv: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6848,12 +7424,16 @@ lv: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6862,34 +7442,77 @@ lv: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + zero: 'The type will be removed from %{count} projects:' + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Izveidot jaunu veidu no_results_title_text: Pašlaik nav neviena veida. project_variants_count: zero: "%{count} project-specific variants" - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + zero: "%{type} without %{fields} and %{count} more fields" + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6908,9 +7531,9 @@ lv: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - zero: bloķēts īslaicīgi (%{count} neizdevušies pieteikšanās mēģinājumi) - one: bloķēts īslaicīgi (viens neizdevies pieteikšanās mēģinājums) - other: bloķēts īslaicīgi (%{count} neizdevušies pieteikšanās mēģinājumi) + zero: locked temporarily (%{count} failed login attempts) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7010,7 +7633,7 @@ lv: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Termiņš izbeidzas - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7071,13 +7694,19 @@ lv: work_days: Work days work_days_count: zero: "%{count} working days" - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: slēgti version_status_locked: locked version_status_open: aktīvi versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Pašlaik šai versijai nav piešķirtu darbu paku. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7247,13 +7876,15 @@ lv: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: zero: Successfully deleted %{count} work packages. - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7279,20 +7910,20 @@ lv: heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: zero: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: zero: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: zero: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: zero: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7351,21 +7982,162 @@ lv: heading: Permanently delete this work package? hidden_descendants_only_warning: zero: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: zero: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: zero: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: zero: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + zero: "%{count} lines checked, no problems found" + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + zero: View the %{count} imported work packages + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + zero: "%{count} problems, all shown." + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + zero: "%{count} lines" + one: "%{count} line" + other: "%{count} lines" + x_problems: + zero: "%{count} problems" + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7398,39 +8170,55 @@ lv: no_results_title_text: Pašlaik nav pieejamu versiju. x_descendants: zero: "%{count} work package descendants" - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: zero: Successfully copied workflow to %{count} roles. one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - zero: Successfully copied workflow to %{count} types. - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + zero: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7439,12 +8227,94 @@ lv: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + zero: "%{count} projects" + one: "%{count} project" + other: "%{count} projects" + roles_count: + zero: "%{count} roles" + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + zero: "%{count} types" + one: "%{count} type" + other: "%{count} types" + variants_count: + zero: "%{count} variants" + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + zero: This workflow is used by %{count} types. Changes apply to all of them. + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + zero: This workflow is used by %{count} types and variants. Changes apply to all of them. + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/mn.seeders.yml b/config/locales/crowdin/mn.seeders.yml index f5b787ec0d35..327cce003f99 100644 --- a/config/locales/crowdin/mn.seeders.yml +++ b/config/locales/crowdin/mn.seeders.yml @@ -250,70 +250,26 @@ mn: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ mn: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/mn.yml b/config/locales/crowdin/mn.yml index f0c97ca79897..db4700fd9789 100644 --- a/config/locales/crowdin/mn.yml +++ b/config/locales/crowdin/mn.yml @@ -40,7 +40,9 @@ mn: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ mn: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ mn: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ mn: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ mn: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ mn: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ mn: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ mn: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ mn: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Хуанли ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ mn: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ mn: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ mn: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ mn: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ mn: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ mn: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ mn: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ mn: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ mn: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ mn: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ mn: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ mn: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ mn: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ mn: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ mn: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ mn: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ mn: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ mn: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ mn: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ mn: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ mn: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ mn: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ mn: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ mn: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ mn: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ mn: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ mn: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ mn: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ mn: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ mn: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ mn: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ mn: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ mn: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ mn: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ mn: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ mn: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ mn: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ mn: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ mn: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ mn: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ mn: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ mn: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ mn: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ mn: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ mn: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ mn: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ mn: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ mn: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ mn: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ mn: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ mn: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ mn: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ mn: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ mn: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ mn: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ mn: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ mn: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ mn: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Өдөр label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ mn: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ mn: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ mn: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ mn: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ mn: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ mn: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ mn: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ mn: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ mn: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ mn: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ mn: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ mn: label_preview: Урьдчилан харах label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ mn: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ mn: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ mn: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ mn: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Хувилбар засах label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ mn: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ mn: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ mn: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Ажлын долоо хоног label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ mn: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ mn: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ mn: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Хөтөч дээр нээх reason: @@ -4530,6 +4928,13 @@ mn: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ mn: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ mn: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ mn: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ mn: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ mn: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ mn: or: эсвэл rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ mn: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ mn: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Нөөцлөлт үүсгэх @@ -5105,6 +5519,7 @@ mn: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ mn: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ mn: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ mn: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ mn: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ mn: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ mn: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ mn: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ mn: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ mn: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ mn: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ mn: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ mn: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ mn: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ mn: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ mn: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ mn: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ mn: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ mn: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ mn: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ mn: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ mn: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ mn: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ mn: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ mn: section_work_week: Ажлын долоо хоног sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ mn:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Хаагдсан - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ mn: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ mn: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ mn: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ mn: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ mn: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ mn: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ mn: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ mn: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ mn: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ mn: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ mn: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ mn: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ mn: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ mn: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ mn: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ mn: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ mn: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ mn: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ mn: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ mn: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ mn: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ mn: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ mn: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ mn: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/ms.seeders.yml b/config/locales/crowdin/ms.seeders.yml index f0118dd03369..b84f198c1409 100644 --- a/config/locales/crowdin/ms.seeders.yml +++ b/config/locales/crowdin/ms.seeders.yml @@ -235,25 +235,26 @@ ms: Dalam modul ini, anda boleh menyampaikan berita projek ke ahli pasukan anda. versions: item_0: - name: Bug Tunggakan - item_1: - name: Tunggakan Produk - item_2: - name: Pecutan 1 wiki: - title: Pecutan 1 - content: "### Pecutan pelan mesyuarat\n\n_Sila dokumen di sini topik untuk Pecutan perancangan mesyuarat_\n\n* Kotak masa (8 j)\n* Input: Tunggakan Produk\n* Output: Tunggakan Pecutan\n\n* Dibahagi kepada dua kotak masa tambahan selama 4 j:\n\n * Pemilik produk menyampaikan [Tunggakan Produk]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) dan keutamaan kepada pasukan dan menjelaskan Matlamat Pecutan, di mana pasukan harus mempersetujuinya. Bersama-sama mereka mengutamakan topik dari Tunggakan Produk yang akan ditangani dalam pecutan seterusnya. Pasukan memberi komitmen terhadap penghantaran yang telah dibincangkan.\n * Pasukan merancang secara autonomi (tanpa pemilik produk) dengan terperinci dan memecahkan tugasan-tugasan dari keperluan yang dibincangkan untuk menyusun sebuah [Tunggakan Pecutan]({{opSetting:base_url}}/projects/your-scrum-project/backlogs).\n\n\n### Mesyuarat Harian Scrum\n\n_Sila dokumen di sini topik untuk mesyuarat Harian Scrum_\n\n* Pendek, status harian mesyuarat pasukan.\n* Kotak masa (maks. 15 minit).\n* Mesyuarat stand-up untuk membincangkan topik-topik berikut dari [Board tugasan](##sprint:scrum_project__version__sprint_1).\n * Apa yang saya rancang untuk lakukan sehingga mesyuarat harian Scrum?\n * Apa yang telah menghalang kerja saya (Halangan)? \n* Ketua Scrum menyelia dan mencatat [Halangan Pecutan](##sprint:scrum_project__version__sprint_1).\n* Pemilik produk boleh mengambil bahagian untuk kekal maklum.\n\n### Mesyuarat Semakan Pecutan\n\n_Sila dokumen di sini topik untuk mesyuarat Semakan Pecutan_\n\n* Kotak masa (4 j).\n* Maksimum 1 jam masa persediaan bagi setiap orang.\n* Pasukan menunjukkan kepada pemilik produk dan orang lain yang berminat tentang apa yang telah dicapai dalam pecutan ini.\n* Penting: tiada model dan tiada PowerPoint! Hanya fungsi (Peningkatan) perlu dipamerkan.\n* Maklum balas Pemilik Produk, pihak berkepentingan, dan orang lain dikehendaki dan akan dimasukkan dalam kerja seterusnya.\n* Berdasarkan kefungsian yang ditunjukkan, Pemilik Produk memutuskan untuk mengimplementasikan peningkatan ini atau untuk membangunkannya lebih lanjut. Kemungkinan ini membolehkan Pulangan Pelaburan (ROI) lebih awal.\n\n\n### Retrospektif Pecutan\n\n_Sila dokumen di sini topik untuk mesyuarat Retrospektif Pecutan_\n\n* Kotak masa (3 j).\n* Setelah Semakan Pecutan, ia akan dikendalikan oleh Ketua Scrum.\n* Pasukan membincangkan pecutan: apa yang berjalan lancar, apa yang perlu diperbaiki untuk menjadi lebih produktif untuk pecutan seterusnya atau lebih menyeronokkan.\n" - item_3: - name: Pecutan 2 + title: Release 1.0 + content: | + ### Release 1.0 + + _Please document here what this release contains._ + + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategori 1 (untuk diubah dalam tetapan Projek) queries: item_0: name: Pelan projek item_1: - name: Tunggakan produk + name: Version 1.1 item_2: - name: Pecutan 1 + name: Version 1.0 item_3: name: Tugasan-tugasan boards: @@ -279,20 +280,21 @@ ms: options: name: Permulaan text: | - Kami gembira anda menyertai kami! Kami cadangkan beberapa perkara sebagai permula andi OpenProject. + We are glad you joined! We suggest to try a few things to get started in OpenProject. + + _Try the following steps:_ - _Cuba ikuti langkah-langkah berikut:_ + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 1. *Jemput ahli baru ke projek anda*: → Pergi ke [Ahli]({{opSetting:base_url}}/projects/your-scrum-project/members) dalam navigasi produk. - 2. *Lihat Tunggakan Produk dan Tunggakan Pecutan anda*: → Pergi ke [Tunggakan]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) dalam navigasi projek. - 3. *Lihat Papan tugasan anda*: → Pergi ke [Tunggakan]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klik anak panah kanan di Pecutan → Pilih [Papan Tugasan](##sprint:scrum_project__version__sprint_1). - 4. *Cipta satu pakej kerja baru*: → Pergi ke [Pakej kerja → Cipta]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Cipta dan kemas kini pelan projek*: → Pergi ke [Pelan projek](##query:scrum_project__query__project_plan) dalam navigasi projek. - 6. *Cipta Pecutan wiki*: → Pergi ke [Tunggakan]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) dan buka pecutan wiki dari menu juntai bawah sebelah kanan di pecutan. Anda boleh edit [templat wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) berdasarkan keperluan anda. - 7. *Aktifkan modul lanjutan*: → Pergi ke [Tetapan projek → Modul]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Disini anda akan menemui [Panduan Pengguna](https://www.openproject.org/docs/user-guide/) kami. - Sila beritahu kami jika anda mempunyai sebarang soalan atau memerlukan bantuan. Hubungi kami: [support[at]openproject.com](mel ke:support@openproject.com). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Pakej pekerjaan diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index 3584348601b1..e65e7bc4fbaf 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -40,7 +40,9 @@ ms: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Padam akaun delete_confirmation: Adakah anda pasti anda mahu memadam akaun? deletion_info: @@ -65,7 +67,9 @@ ms: error_self_registration_limited_provider: 'Pendaftaran pengguna terhad pada penyediaan log masuk satu kali ''%{name}''. Sila meminta pentadbir untuk mengaktifkan akaun tersebut untuk anda atau tukar had pendaftaran sendiri untuk penyediaan ini. ' - login_with_auth_provider: atau daftar masuk dengan akaun sedia ada anda + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Sila log masuk untuk mengaktifkan akaun anda. @@ -118,6 +122,8 @@ ms: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ms: repository: Repositori comment: commented: Komen - custom_action: - actions: Tindakan custom_field: admin_only: Admin sahaja allow_non_open_versions: Benarkan versi tidak terbuka @@ -168,6 +172,7 @@ ms: uid: ID Pelanggan emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Token sokongan Enterprise @@ -179,20 +184,44 @@ ms: company: Syarikat favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Bilangan kolum page: Halaman row_count: Bilangan baris widgets: Widget group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identiti URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ms: title: Title member: blocked: Blocked + principal_type: Member type roles: 'Peranan ' @@ -237,6 +267,7 @@ ms: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -369,6 +400,8 @@ ms: ongoing: Sedang berlangsung spent_on: Tarikh type: Jenis + token/base: + expires_on: Expiration date token/ical: calendar: Kalendar ical_token_query_assignment: Query assignment @@ -386,19 +419,17 @@ ms: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Pentadbir auth_source: Sumber pengesahan + avatar_type: Avatar type consented_at: Dipersetujui di current_password: Kata laluan semasa department: Department @@ -412,7 +443,7 @@ ms: last_name: Nama akhir ldap_auth_source: Sambungan LDAP new_password: Kata laluan baharu - password_confirmation: Pengesahan + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -421,11 +452,15 @@ ms: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -436,13 +471,23 @@ ms: header_look_and_feel: Look and feel impaired: Mod ketercapaian increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Zon waktu warn_on_leaving_unsaved: Beri amaran kepada saya apabila meninggalkan pakej kerja dengan perubahan yang belum disimpan. workdays: Hari bekerja + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -493,6 +538,7 @@ ms: title: Hari bekerja true: termasuk hari tidak bekerja journal_internal: Internal Journal + labels: Labels notify: Maklumkan observed_in_versions: Observed in versions parent: Ibu bapa @@ -521,6 +567,10 @@ ms: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: mesti diterima. @@ -592,6 +642,8 @@ ms: regex_invalid: tidak dapat disahkan dengan ungkapan biasa yang berkaitan. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: tidak padan dengan ungkapan biasa %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: perlu kurang daripada atau sama dengan panjang maksima. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -614,6 +666,10 @@ ms: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: adalah panjang yang salah (sepatutnya %{count} karakter). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ ms: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: nilai akhir perlu lebih besar daripada nilai mula. outside: luar daripada grid. @@ -690,6 +756,13 @@ ms: not_unique: sudah digunakan. Sila pilih nama lain. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ ms: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'masih digunakan oleh pakej kerja: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ ms: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,7 +963,7 @@ ms: numeric: angka (cth. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - other: telah digunakan sebelum ini. Sila pilih yang berbeza daripada %{count} terakhir anda. + other: has been used before. Please choose one that is different from your last %{count}. special: istimewa (cth. '%') uppercase: huruf besar (cth. 'A') password_confirmation: @@ -976,6 +1032,8 @@ ms: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: tidak boleh berada dalam projek lain. cannot_be_milestone: tidak boleh menjadi pencapaian. @@ -1003,6 +1061,8 @@ ms: status_id: status_invalid_in_type: adalah tidak sah kerana status semasa berikut tidak wujud dalam jenis ini. status_transition_invalid: adalah tidak sah kerana tiada peralihan sah yang wujud daripada status lama ke baharu untuk peranan pengguna semasa. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: tidak boleh menjadi satu pencapaian kerana pakej kerja ini mempunyai anak. is_not_a_valid_target_for_time_entries: 'Pakej kerja #%{id} adalah sasaran yang tidak sah untuk penugasan semula entri waktu.' @@ -1011,7 +1071,7 @@ ms: template: body: 'Sila semak ruang-ruang yang berikut:' header: - other: "%{count} ralat menghalang %{model} ini daripada disimpan" + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1037,6 +1097,8 @@ ms: other: Work package attribute help texts auth_provider: other: Authentication providers + automation: + other: Automations backup: other: Backups capability: @@ -1051,8 +1113,6 @@ ms: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1083,6 +1143,8 @@ ms: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1095,6 +1157,8 @@ ms: other: Health reports issue_priority: other: Priorities + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1297,7 +1361,28 @@ ms: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1330,7 +1415,11 @@ ms: tab_interface: Antara muka tab_pdf_export_font: PDF export font tab_pdf_export_styles: Gaya eksport PDF - theme_warning: Penukaran tema akan menulis ganti gaya tersuai anda. Reka bentuk tersebut akan hilang. Adakah anda pasti anda ingin teruskan? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Muat naik token sokongan edisi Enterprise book_now: Tempah sekarang @@ -1363,7 +1452,7 @@ ms: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Pengagih ingatan Jemalloc @@ -1371,12 +1460,15 @@ ms: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1409,16 +1501,30 @@ ms: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1663,23 +1769,52 @@ ms: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1710,6 +1845,18 @@ ms: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Lihat halaman integrasi dan plugin kami untuk maklumat lebih lanjut. no_results_title_text: Pada masa ini tiada sebarang plugin yang dipasang. @@ -1891,7 +2038,7 @@ ms: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1923,12 +2070,19 @@ ms: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1950,7 +2104,31 @@ ms: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: kini dipaparkan is_inactive: tidak dipaparkan buat masa ini show_until: Paparkan sehingga @@ -1958,7 +2136,7 @@ ms: deleted_by_admin: Fail '%{filename}' yang diasingkan telah dipadamkan oleh pentadbir. deleted_message: Virus telah dikesan dalam fail '%{filename}'. Fail berikut telah dipadamkan. not_processed_yet_message: Muat turun disekat kerana fail masih belum diimbas untuk virus. Sila cuba sebentar lagi. - overridden_by_admin: Pengasingan untuk fail '%{filename}' telah dibatalkan oleh %{user}. Fail tersebut kini boleh diakses. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Bekas delete: Padamkan fail yang diasingkan @@ -2012,10 +2190,6 @@ ms: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Pakej kerja yang anda cari tidak dapat ditemui atau telah dipadamkan. - render: - context_not_parsable: Konteks yang diberi bukan satu pautan untuk sumber. - context_object_not_found: Tidak dapat mencari sumber yang diberikan sebagai konteks. - unsupported_context: Sumber yang diberi tidak disokong sebagai konteks. unable_to_create_attachment: Lampiran tidak boleh dicipta unable_to_create_attachment_permissions: Lampiran tidak dapat disimpan kerana kurang kebenaran sistem fail user: @@ -2086,6 +2260,7 @@ ms: groups: Kumpulan hexcode: Kod Hex id: ID + inexistent: Inexistent is_default: Nilai default is_for_all: Untuk semua projek issue: Pakej kerja @@ -2140,6 +2315,7 @@ ms: uploader: 'Pemuat naik ' + url: URL user: Pengguna username: Nama pengguna value: Nilai @@ -2154,6 +2330,29 @@ ms: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Pekerjaan dibatalkan disebabkan oleh ralat: %{message}' @@ -2282,6 +2481,7 @@ ms: button_set_reminder: Tetapkan peringatan button_show: Paparkan button_sort: Susun + button_stop_timer: Stop timer button_submit: Hantar button_test: Uji button_unarchive: Nyaharkib @@ -2348,9 +2548,9 @@ ms: text: failed: Tidak dapat menyalin projek "%{source_project_name}" ke projek "%{target_project_name}". succeeded: Menyalin projek "%{source_project_name}" ke "%{target_project_name}". - title: Salin projek "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Satu objek untuk jenis ini + one: "%{count} object of this type" other: "%{count} objek untuk jenis ini" zero: Tiada objek untuk jenis ini create_portfolio: @@ -2388,13 +2588,9 @@ ms: plural: Tindakan tersuai custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Medan tersuai ini didayakan dalam semua projek kerana pilihan "Untuk semua projek" ditandakan. Ia tidak boleh dinyahaktifkan untuk projek individu. - heading: Untuk semua projek hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-item" zero: tiada sub-item items: @@ -2415,7 +2611,7 @@ ms: short: Nama pendek weight: Weight notice: - remember_items_and_projects: Ingat untuk menetapkan item dan projek dalam tab masing-masing untuk medan tersuai ini. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2480,16 +2676,17 @@ ms: is_enabled_globally: Adalah diaktifkan secara global multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Susun semula nilai mengikut abjad reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Cipta ruangan tersuai baharu - no_results_title_text: Tiada ruangan tersuai pada masa ini. text_add_new_custom_field: 'Untuk menambah ruang tersuai ke projek, anda perlu menciptanya terlebih dahulu sebelum anda boleh menambahnya ke projek ini. ' @@ -2553,40 +2750,40 @@ ms: datetime: distance_in_words: about_x_hours: - other: sekitar %{count} jam + other: about %{count} hours about_x_months: - other: sekitar %{count} bulan + other: about %{count} months about_x_years: - other: sekitar %{count} tahun + other: about %{count} years almost_x_years: - other: hampir %{count} tahun + other: almost %{count} years half_a_minute: setengah minit less_than_x_minutes: other: kurang dari %{count} minit less_than_x_seconds: - other: kurang dari %{count} saat + other: less than %{count} seconds over_x_years: - other: sepanjang %{count} tahun + other: over %{count} years x_days: - other: "%{count} hari" + other: "%{count} days" x_hours: - other: "%{count} jam" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count} j" + other: "%{count} hrs" x_minutes: - other: "%{count} minit" + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count} min" + other: "%{count} mins" x_months: - other: "%{count} bulan" + other: "%{count} months" x_seconds: - other: "%{count} saat" + other: "%{count} seconds" x_seconds_abbreviated: other: "%{count} s" x_weeks: - other: "%{count} minggu" + other: "%{count} weeks" x_years: - other: "%{count} tahun" + other: "%{count} years" units: day: other: hari-hari @@ -3072,9 +3269,142 @@ ms: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Tiada pos bagi forum buat masa ini. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3099,6 +3429,8 @@ ms: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3124,6 +3456,10 @@ ms: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3135,7 +3471,7 @@ ms: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3144,7 +3480,7 @@ ms: warning: Warning help_texts: views: - favoured: Tandakan paparan ini sebagai kegemaran dan tambah ke bar sisi pandangan yang disimpan di sisi kiri. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} sentiasa dilampirkan kepada projek. Anda hanya boleh memilih projek disini dimana modul %{plural} adalah aktif. Selepas mencipta satu %{singular} anda boleh menambah pakej kerja dari projek lain kepadanya.\n" public: Terbitkan paparan ini bagi membenarkan pengguna lain untuk akses paparan anda. Pengguna dengan kebenaran 'Urus paparan awam' boleh mengubah suai atau padamkan pertanyaan awam. Ini tidak akan mempengaruhi keterlihatan hasil pakej kerja dalam paparan itu dan bergantung kepada kebenaran mereka, pengguna mungkin akan melihat hasil yang berbeza. homescreen: @@ -3169,6 +3505,31 @@ ms: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Baca berkenaan fitur-fitur baharu dan kemas kini produk. learn_about: Learn more about all new features @@ -3205,8 +3566,10 @@ ms: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3256,6 +3619,7 @@ ms: budget_deleted: Budget has been deleted dates_changed: Tarikh ditukar default_attribute_written: Atribut baca-sahaja ditulis + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3408,10 +3772,10 @@ ms: label_copy_target: Sasaran label_copy_workflow_from: Salin aliran kerja dari label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Binaan teras label_core_version: Versi teras label_created_by: Dicipta oleh %{user} + label_criteria: Criteria label_current_status: Status semasa label_current_version: Versi semasa label_custom_comment: "%{name} comment" @@ -3435,8 +3799,6 @@ ms: label_custom_field_default_type: Jenis kosong label_custom_field_new: Ruang tersuai baharu label_custom_field_plural: Ruangan tersuai - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Tetapan eksport PDF tersuai label_custom_style: Reka bentuk label_custom_style_description: Pilih cara OpenProject melihat kepada anda dengan tema, pilih warna lalai anda untuk digunakan dalam apl dan rupa eksport. @@ -3445,11 +3807,12 @@ ms: label_database_version: Versi PostgreSQL label_date: Tarikh label_date_and_time: Tarikh dan masa - label_date_format: Format tarikh + label_date_and_time_formats: Date and time formats label_date_from: Dari label_date_from_to: Dari %{start} hingga %{end} label_date_to: Ke label_dates: Dates + label_day: Hari label_day_plural: hari-hari label_default: Default label_defaults: Defaults @@ -3460,6 +3823,7 @@ ms: label_deleted_custom_field: "(ruang tersuai yang telah dipadam)" label_deleted_custom_item: "(item dipadamkan)" label_deleted_custom_option: "(pilihan yang telah dipadam)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3532,6 +3896,7 @@ ms: label_float: Terapung label_folder: Folder label_follows: ikuti + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Forum baharu label_forum_plural: Forum-forum @@ -3550,6 +3915,7 @@ ms: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Kumpulan + label_group_attributes_plural: Group attributes label_group_by: Kumpulkan mengikut label_group_named: Kumpulan %{name} label_group_new: Kumpulan baharu @@ -3601,8 +3967,8 @@ ms: label_journal_diff: Perbandingan Deskripsi label_jump_to_a_project: Lompat ke projek... label_keyword_plural: Kata kunci + label_label_plural: Labels label_language: Bahasa - label_language_based: Berdasarkan bahasa pengguna label_languages: Bahasa-bahasa label_last_activity: Aktiviti terakhir label_last_change_on: Perubahan terakhir pada @@ -3624,6 +3990,7 @@ ms: label_list: Senarai label_loading: Memuatkan... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Kunci pengguna label_locked: dikunci label_logged_as: Log masuk sebagai @@ -3635,6 +4002,7 @@ ms: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Repositori %{vendor} yang diuruskan label_mapping_for: 'Pemetaan untuk: %{attribute}' + label_markdown_version: Markdown version label_max_size: Saiz maksimum label_me: saya label_member_all_admin: "(Semua peranan disebabkan oleh status pentadbir)" @@ -3653,7 +4021,6 @@ ms: label_menu_item_name: Nama item menu label_message: Mesej label_message_last: Mesej terakhir - label_message_new: Mesej baharu label_message_plural: Mesej label_message_posted: Mesej ditambah label_minute_plural: minit @@ -3665,6 +4032,7 @@ ms: label_module_plural: Modul label_modules: Modul label_modules_and_plugins: Modul dan Plugin + label_month: Month label_months_from: bulan dari label_more: Selanjutnya label_more_information: Maklumat lanjut @@ -3678,6 +4046,7 @@ ms: label_my_avatar: Avatar saya label_my_queries: Pertanyaan tersuai saya label_my_security: Security + label_my_time: My time label_name: Nama label_never: Tidak akan label_new: Baharu @@ -3692,7 +4061,10 @@ ms: label_news_singular: Berita label_news_view_all: Lihat semua berita label_next: Seterusnya + label_next_day: Next day + label_next_month: Next month label_next_week: Minggu hadapan + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Tiada perubahan)" label_no_data: Tiada data untuk dipaparkan @@ -3700,6 +4072,7 @@ ms: label_no_parent_group: "(No parent group)" label_no_parent_page: Tiada halaman induk label_no_start_date: tiada tarikh mula + label_no_time: No time tracked label_nobody: tiada siapa label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3766,7 +4139,10 @@ ms: label_preview: Previu label_preview_not_available: Previu tidak tersedia label_previous: Sebelumnya + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Minggu sebelumnya + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: atau jemput pengguna baharu melalui e-mel label_principal_search: Tambah pengguna atau kumpulan sedia ada @@ -3887,6 +4263,7 @@ ms: label_sort_lowest: Alih ke paling bawah label_sorted_by: disusun mengikut %{value} label_spent_time: Masa yang dihabiskan + label_stack: Stack label_start_to_end: mula hingga akhir label_start_to_start: mula ke mula label_starts_with: starts with @@ -3906,6 +4283,7 @@ ms: label_subtask_plural: Subtugas label_summary: Ringkasan label_system: Sistem + label_system_or_language_default: Use system or language based default label_system_settings: Tetapan sistem label_system_storage: Maklumat storan label_table_of_contents: Jadual kandungan @@ -3920,6 +4298,7 @@ ms: label_time: Masa label_time_entry_activity_plural: Aktiviti masa yang diluangkan label_time_entry_plural: Masa yang dihabiskan + label_timer_since: Started at %{time} label_title: Tajuk label_today: hari ini label_today_as_date: Select today as date. @@ -3955,7 +4334,9 @@ ms: label_user_search: Cari pengguna label_user_settings: Tetapan pengguna label_users_settings: Tetapan pengguna + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Versi edit label_version_new: Versi baharu label_version_plural: Versi-versi @@ -3968,6 +4349,7 @@ ms: label_videos: Video label_view_all_revisions: Lihat semua semakan label_view_diff: Lihat perbezaan + label_view_mode_switcher: Change view label_view_revisions: Lihat semakan label_view_x: 'View: %{x}' label_watched_work_packages: Pakej kerja yang dipantau @@ -3991,6 +4373,8 @@ ms: label_wiki_start: Halaman mula label_wiki_toc: Jadual Kandungan label_wiki_toc_empty: Jadual Kandungan kosong kerana tiada pengepala yang tersedia. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Kerja label_work_package: Pakej kerja label_work_package_attachments: Lampiran pakej kerja @@ -4013,36 +4397,37 @@ ms: label_working_days: Working days label_working_days_and_hours: Hari dan jam bekerja label_working_hours: Work schedule + label_workweek: Minggu bekerja label_x_closed_work_packages_abbr: - one: 1 ditutup + one: "%{count} closed" other: "%{count} ditutup" zero: 0 ditutup label_x_comments: - one: 1 komen + one: "%{count} comment" other: "%{count} komen" zero: Tiada komen label_x_days: other: "%{count} days" label_x_files: - one: 1 fail + one: "%{count} file" other: "%{count} fail" zero: tiada fail label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 dibuka + one: "%{count} open" other: "%{count} dibuka" zero: 0 dibuka label_x_projects: - one: 1 projek + one: "%{count} project" other: "%{count} projek" zero: tiada projek label_x_work_packages: - one: 1 pakej kerja + one: "%{count} work package" other: "%{count} pakej kerja" zero: Tiada pakej kerja label_x_working_days: @@ -4102,7 +4487,7 @@ ms: start_tls: STARTTTLS start_tls_description: Hantar perintah STARTTLS selepas sambungkan ke port LDAP standard. Disarankan untuk sambungan yang disulitkan. tls_options: - tls_certificate_description: Jika sijil server LDAP bukan lagi di sumber yang dipercayai di sistem ini, anda boleh tambahkannya secara manual di sini. Masukkan sijil rentetan PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Sahkan sijil SSL verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4159,6 +4544,8 @@ ms: you_have: Anda mempunyai logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Ke pusat pemberitahuan @@ -4215,7 +4602,7 @@ ms: mentioned: Anda telah disebut dalam komen mentioned_by: "%{user} menyebut anda di komen" more_to_see: - other: Terdapat %{count} lagi pakej kerja dengan pemberitahuan. + other: There are %{count} more work packages with notifications. open_in_browser: Buka di pelayar reason: assigned: Ditugaskan @@ -4387,6 +4774,12 @@ ms: create_button: Cipta dialog_body: Token ini akan membenarkan aplikasi pihak ketiga berkomunikasi dengan contoh anda. Untuk membezakan token API baharu, sila beri nama. dialog_title: Cipta token API baharu + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Gagal membuat token akses: %{error}' failed_to_reset_token: 'Gagal untuk set semula token akses: %{error}' @@ -4400,10 +4793,26 @@ ms: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Token akses description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Tindakan expiration: Tamat tempoh @@ -4605,7 +5014,6 @@ ms: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "Terdapat %{number} hasil ditemui. \n Tab untuk memfokuskan hasil pertama." notice_principals_found_single: "Terdapat satu hasil. \n Tab untuk fokuskan." - notice_project_cannot_update_custom_fields: 'Anda tidak boleh mengemas kini ruang tersuai tersedia projek. Projek tersebut tidak sah: %{errors}' notice_project_not_deleted: Projek tersebut tidak dipadam. notice_project_not_found: Projek tidak ditemui. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4615,9 +5023,6 @@ ms: notice_successful_create: Penciptaan yang berjaya. notice_successful_delete: Pemadaman yang berjaya. notice_successful_update: Kemas kini berjaya. - notice_successful_update_custom_fields_added_to_project: 'Naik taraf berjaya. Jenis ruang tersuai yang aktif telah diaktifkan di borang pakej kerja secara automatik. Lihat lebih lagi. - - ' notice_to_many_principals_to_display: |- Terlalu banyak hasil. Spesifikasikan pencarian dengan masukkan nama ahli baru (atau kumpulan). @@ -4808,8 +5213,6 @@ ms: not_found: tidak dijumpai. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4829,7 +5232,6 @@ ms: or: atau rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Kedalaman enabled: Didayakan item: Item @@ -4901,8 +5303,8 @@ ms: label: Table of contents page_nr_footer: Halaman %{page} daripada %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -4927,7 +5329,7 @@ ms: permission_change_work_package_status_explanation: Benarkan penukaran status tanpa kebenaran Edit pakej kerja permission_comment_news: Komen berita permission_commit_access: Baca/tulis akses ke repositori (komit) - permission_copy_projects: Salin projek + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Cipta sandaran @@ -4960,6 +5362,7 @@ ms: permission_export_projects: Export projects permission_export_work_packages: Eksport pakej kerja permission_header_for_project_module_work_package_tracking: Pakej kerja dan carta Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -4970,6 +5373,9 @@ ms: permission_manage_dashboards: Urus papan pemuka permission_manage_forums: Uruskan forum permission_manage_members: Urus ahli-ahli + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Urus berita permission_manage_own_reminders: Buat peringatan sendiri permission_manage_own_working_times: Manage own working times @@ -4998,7 +5404,6 @@ ms: permission_save_bcf_queries: Simpan pertanyaan BCF permission_save_queries: Simpan paparan permission_search_project: Cari projek - permission_select_custom_fields: Pilih ruang tersuai permission_select_project_custom_fields: Pilih atribut projek permission_select_project_modules: Pilih modul projek permission_select_project_phases: Select project phases @@ -5032,6 +5437,16 @@ ms: permission_work_package_assigned: Menjadi penerima tugasan/bertanggungjawab permission_work_package_assigned_explanation: Pakej kerja boleh ditugaskan kepada pengguna dan kumpulan yang memegang peranan ini dalam projek yang berkaitan placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Buang pengguna placeholder deletion_info: data_consequences: 'Semua kejadian pengguna placeholder (cth., sebagai penerima tugasan, bertanggungjawab atau nilai pengguna lain) akan ditugaskan semula kepada akaun yang dipanggil "Pengguna yang dipadam". Oleh kerana data setiap akaun yang dipadam ditugaskan semula ke akaun ini, tidak mungkin akan dapat untuk membezakan data yang dicipta oleh pengguna, daripada data akaun lain yang dipadam. @@ -5053,7 +5468,7 @@ ms: name: SAML OmniAuth / Daftar Masuk Tunggal portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5078,7 +5493,7 @@ ms: Ia boleh digunakan untuk menyoroti pakej kerja dalam jadual ini. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5090,7 +5505,7 @@ ms: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projek + one: "%{count} project" other: "%{count} projek" zero: 0 projects destroy: @@ -5195,11 +5610,11 @@ ms: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5209,6 +5624,12 @@ ms: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Tiada ruangan tersuai tersedia buat masa ini. forums: no_results_content_text: Cipta forum baharu @@ -5321,7 +5742,7 @@ ms: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Cipta versi baharu - no_results_title_text: Tiada versi untuk projek tersebut buat masa ini. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Graf pakej kerja work_package_priorities: @@ -5329,15 +5750,27 @@ ms: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Gunakan saringan pra-konfigurasi configure_view: @@ -5366,7 +5799,7 @@ ms: action_title: Reaksi add_reaction: Tambah reaksi and_others: - other: dan %{count} yang lain + other: and %{count} others and_user: dan %{user} react_with: Bertindak balas dengan %{reaction} reaction_by: "%{reaction} oleh" @@ -5485,6 +5918,26 @@ ms: warnings: cannot_annotate: Fail ini tidak boleh dianotasikan. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5496,6 +5949,14 @@ ms: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5600,7 +6061,7 @@ ms: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Jumlah maksimum baris perbezaan yang dipaparkan setting_disable_password_login: Lumpuhkan pengesahan kata laluan - setting_display_subprojects_work_packages: Paparkan subprojek pakej kerja di projek utama secara default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Format tempoh setting_duration_format_days_and_hours: Hari dan jam setting_duration_format_hours_only: Jam sahaja @@ -5715,6 +6176,7 @@ ms: setting_start_of_week: Minggu bermula pada setting_sys_api_description: Perkhidmatan web pengurusan repositori menyediakan integrasi dan kebenaran pengguna untuk mengakses repositori. setting_sys_api_enabled: Mengaktifkan pengurusan repositori perkhidmatan web + setting_sys_api_key: API key setting_time_format: Masa setting_total_percent_complete_mode: Pengiraan % Jumlah hierarki lengkap setting_total_percent_complete_mode_simple_average: Purata yang ringkas @@ -5767,7 +6229,7 @@ ms: description_html: 'Pilih mod di mana integrasi pengimbas antivirus perlu dioperasikan.
  • %{disabled_option}: Fail yang telah dimuat naik belum diimbas untuk virus.
  • %{socket_option}: Anda telah tetapkan ClamAV di server sama seperti OpenProject dan imbasan daemon clamd sedang dilancarkan di latar belakang
  • %{host_option}: Anda sedang strim fail ke hos imbasan virus luaran.
' - remaining_quarantined_files_html: 'Pengimbasan virus telah dinyahaktifkan. %{file_count} kekal diasingkan. Untuk menyemak fail yang diasingkan, sila kunjungi pautan ini: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Pengimbasan virus telah berjaya diaktifkan. Terdapat %{file_count} yang sebelum ini dimuat naik dan masih perlu diimbas. Proses ini telah dijadualkan di latar belakang. Fail tersebut akan kekal boleh diakses semasa pengimbasan. @@ -5778,6 +6240,7 @@ ms: ' title: Pengimbasan virus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Nyahaktifkan pilihan ini akan menyorokkamenyembunyikan senarai lampiran di tab fail pakej kerja untuk projek baharu. Fail yang dilampirkan di deskripsi pakej kerja masih akan dimuat naik di storan lampiran dalaman. ' @@ -5871,12 +6334,12 @@ ms: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -5896,8 +6359,8 @@ ms: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -5905,7 +6368,7 @@ ms: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -5925,6 +6388,7 @@ ms: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -5981,7 +6445,7 @@ ms: section_work_week: Minggu kerja sharing: count: - one: 1 pengguna + one: "%{count} user" other: "%{count} pengguna" zero: 0 pengguna denied: Anda tidak mempunyai kebenaran untuk berkongsi %{entities}. @@ -6072,19 +6536,19 @@ ms:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Dikecualikan daripada jumlah is_closed: Tertutup - is_default: Default is_readonly: Baca-sahaja + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Tambah status baharu no_results_title_text: Tiada status pakej kerja buat masa ini. + status_actions: Status actions support: array: sentence_connector: dan skip_last_comma: palsu text_access_token_hint: Token akses membenarkan anda untuk memberikan aplikasi luaran akses kepada sumber data OpenProject. - text_accessibility_hint: Mod kebolehcapaian direka untuk pengguna yang buta, kurang upaya atau yang mempunyai masalah penglihatan. Untuk yang kemudian, unsur yang difokuskan ditekankan secara khusus. Harap maklum, modul Tunggakan tersebut tidak tersedia dalam mod ini. text_analyze: 'Analisis selanjutnya: %{subject}' text_are_you_sure: Adakah anda pasti? text_are_you_sure_continue: Adakah anda pasti anda ingin teruskan? @@ -6127,12 +6591,6 @@ ms: ' text_custom_field_possible_values_info: Satu baris untuk setiap nilai - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Ini merupakan ikon yang akan muncul dalam telefon bimbit atau tablet anda apabila anda meletakkan penanda pada skrin utama anda. Perlu menjadi fail imej PNG berukuran 180 kali 180 piksel persegi. Sila pastikan latar belakang imej tidak telus, jika tidak, ia akan kelihatan buruk di iOS. ' @@ -6182,6 +6640,7 @@ ms: text_length_between: Panjang aksara antara %{min} dan %{max}. text_line_separated: Lebihan nilai dibenarkan (satu baris untuk setiap nilai). text_load_default_configuration: Muatkan konfigurasi default + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Tiada token akses yang boleh dikonfigurasikan. text_no_configuration_data: Peranan, jenis, status pakej kerja dan aliran kerja belum dikonfigurasikan lagi. Sangat disarankan untuk memuatkan konfigurasi default. Anda akan dapat mengubahnya setelah ianya dimuatkan. text_no_notes: Tiada komen yang tersedia untuk pakej kerja ini. @@ -6283,6 +6742,67 @@ ms: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6292,14 +6812,40 @@ ms: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6308,8 +6854,10 @@ ms: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6338,21 +6886,21 @@ ms: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Lumpuhkan semua label_enable_all: Dayakan semua label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Hasilkan PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6369,6 +6917,8 @@ ms: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6390,6 +6940,14 @@ ms: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6399,12 +6957,14 @@ ms: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6418,12 +6978,12 @@ ms: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6436,10 +6996,12 @@ ms: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projek-projek + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6454,41 +7016,17 @@ ms: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6496,6 +7034,9 @@ ms: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6504,13 +7045,14 @@ ms: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6524,12 +7066,16 @@ ms: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6538,23 +7084,51 @@ ms: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Cipta jenis baharu no_results_title_text: Tiada jenis buat masa ini. project_variants_count: @@ -6563,7 +7137,18 @@ ms: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Abaikan amaran ini. message: Anda mungkin mengalami ralat dan pengalaman yang terjejas pada halaman ini. @@ -6582,7 +7167,7 @@ ms: authorization_rejected: Anda tidak dibenarkan untuk daftar masuk. blocked: dikunci sementara blocked_num_failed_logins: - other: dikunci sementara (%{count} percubaan log masuk gagal) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Anda akan mengubah status '%{name}'. Adakah anda pasti anda ingin teruskan? deleted: Pengguna yang dipadam department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6682,7 +7267,7 @@ ms: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Peranti / OS expires: Tamat tempoh - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: Anda tidak boleh memadamkan sesi semasa anda. session_name: "%{browser_name}%{browser_version} pada %{os_name}" @@ -6748,6 +7333,12 @@ ms: version_status_locked: terkunci version_status_open: buka versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Tiada pakej kerja yang ditugaskan pada versi ini buat masa ini. work_packages_in_archived_projects: Versi ini dikongsi dengan projek yang diarkibkan yang masih mempunyai pakej kerja ditugaskan ke versi ini. Ini dikira, tetapi tidak akan muncul dalam paparan yang dipautkan. @@ -6917,6 +7508,8 @@ ms: required_description: Tandakan pakej kerja ini sebagai keperluan kepada yang berkaitan requires_description: Menandai pakej kerja yang berkaitan sebagai keperluan untuk yang ini work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Pakej kerja ini tidak boleh disalin. could_not_be_deleted: 'The following work packages could not be deleted:' @@ -7018,6 +7611,137 @@ ms: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7049,34 +7773,50 @@ ms: version: no_results_title_text: Tiada versi yang tersedia buat masa ini. x_descendants: - other: "%{count} keturunan pakej kerja" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7085,12 +7825,82 @@ ms: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Tukar hari bekerja dialog: diff --git a/config/locales/crowdin/ne.seeders.yml b/config/locales/crowdin/ne.seeders.yml index cbea6a2d53e7..0676f39b252b 100644 --- a/config/locales/crowdin/ne.seeders.yml +++ b/config/locales/crowdin/ne.seeders.yml @@ -250,70 +250,26 @@ ne: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ ne: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ne.yml b/config/locales/crowdin/ne.yml index 5a7fcd739e80..8b4cdbe006db 100644 --- a/config/locales/crowdin/ne.yml +++ b/config/locales/crowdin/ne.yml @@ -40,7 +40,9 @@ ne: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: खाता मेटाउनुहोस् delete_confirmation: के तपाईं खाता हटाउन निश्चित हुनुहुन्छ? deletion_info: @@ -65,7 +67,9 @@ ne: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: वा तपाईंको हालको खाताबाट साइन इन गर्नुहोस् + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ ne: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ne: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ ne: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ ne: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: स्तम्भहरूको संख्या page: पृष्ठ row_count: पङ्क्तिहरूको संख्या widgets: विजेटहरू group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ne: title: Title member: blocked: Blocked + principal_type: Member type roles: भूमिकाहरु notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ne: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ne: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ne: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ ne: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ne: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ne: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ne: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ ne: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ ne: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ne: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ ne: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: अन्तिम मान सुरु मान भन्दा ठूलो हुनु आवश्यक छ। outside: is outside of the grid. @@ -689,6 +755,13 @@ ne: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ ne: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ ne: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ ne: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ ne: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ ne: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ ne: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ ne: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ ne: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ ne: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ ne: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ ne: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ ne: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ ne: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ ne: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ ne: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ ne: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ ne: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ ne: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ ne: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ ne: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ ne: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ ne: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ ne: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ ne: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ ne: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ ne: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ ne: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ ne: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: पूर्वनिर्धारित मान is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ ne: updated_at: Updated on updated_on: Updated on uploader: अप्लोडेर + url: URL user: User username: Username value: मान @@ -2267,6 +2446,29 @@ ne: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ ne: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ ne: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ ne: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ ne: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ ne: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ ne: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ ne: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ ne: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: हाल यो पोस्टको लागि कुनै फोरमहरू छैनन् । + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ ne: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ ne: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ ne: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ ne: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ ne: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ ne: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ ne: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ ne: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ ne: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ ne: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ ne: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ ne: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ ne: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ ne: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: शब्दकुञ्जी + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ ne: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ ne: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ ne: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ ne: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: मड्यूल र प्लगइनहरू + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ ne: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ ne: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ ne: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ ne: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ ne: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ ne: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ ne: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ ne: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ ne: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ ne: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ ne: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ ne: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ ne: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ ne: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ ne: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ ne: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ ne: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ ne: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ ne: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ ne: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ ne: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ ne: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ ne: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ ne: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ ne: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ ne: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ ne: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ ne: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ ne: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ ne: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ ne: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ ne: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ ne: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: नयाँ फोरम सिर्जना गर्नुहोस् @@ -5451,14 +5884,14 @@ ne: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ ne: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ ne: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ ne: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ ne: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ ne: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ ne: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ ne: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ ne: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ ne: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ ne: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ ne: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ ne: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ ne: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ ne: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ ne:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ ne: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ ne: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ ne: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ ne: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ ne: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ ne: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ ne: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ ne: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ ne: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ ne: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ ne: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ ne: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ ne: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ ne: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ ne: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ ne: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: तपाइँ यस पृष्ठमा त्रुटिहरू र घटाइएको अनुभवमा चल्न सक्नुहुन्छ। @@ -6741,7 +7345,7 @@ ne: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ ne: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ ne: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ ne: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'निम्न कार्य प्याकेजहरू सुरक्षित गर्न सकिँदैन:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ ne: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ ne: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ ne: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ ne: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/nl.seeders.yml b/config/locales/crowdin/nl.seeders.yml index a510128459da..889100c77b4b 100644 --- a/config/locales/crowdin/nl.seeders.yml +++ b/config/locales/crowdin/nl.seeders.yml @@ -250,70 +250,26 @@ nl: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprintplanningsvergadering - - _Gelieve hier de agendapunten voor de sprintplanningsvergadering vast te leggen_ - - * Tijdslimiet (8 uur) - * Input: Productbacklog - * Output: Sprintbacklog - - * Opgesplitst in twee extra tijdsblokken van 4 uur: - - * De Product Owner presenteert de [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) en de prioriteiten aan het team en licht het Sprintdoel toe, waarmee het team moet instemmen. Gezamenlijk stellen zij de prioriteiten vast voor de onderwerpen uit de Product Backlog die het team in de volgende sprint zal afhandelen. Het team verbindt zich tot de besproken oplevering. - * Het team maakt zelfstandig (zonder de Product Owner) een gedetailleerd plan en splitst de taken uit de besproken vereisten op om een [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) samen te stellen. - - - ### Dagelijkse Scrum-vergadering - - _Gelieve hier de onderwerpen voor de dagelijkse Scrum-vergadering te noteren_ + ### Release 1.0 - * Korte, dagelijkse statusvergadering van het team. - * Tijdslimiet (max. 15 min). - * Stand-upvergadering om de volgende onderwerpen van het takenbord te bespreken. - * Wat ben ik van plan te doen tot de volgende dagelijkse scrumvergadering? - * Wat heeft mijn werk belemmerd (belemmeringen)? - * De scrummaster treedt op als moderator en noteert sprintbelemmeringen. - * De producteigenaar kan deelnemen om op de hoogte te blijven. + _Please document here what this release contains._ - ### Sprint Review-bijeenkomst - - _Gelieve hier de onderwerpen voor de Sprint Review-bijeenkomst vast te leggen_ - - * Tijdslimiet (4 uur). - * Maximaal één uur voorbereidingstijd per persoon. - * Het team toont de Product Owner en andere geïnteresseerden wat er in deze sprint is gerealiseerd. - * Belangrijk: geen dummy’s en geen PowerPoint! Alleen voltooide productfunctionaliteiten (Increments) mogen worden gedemonstreerd. - * Feedback van de Product Owner, belanghebbenden en anderen is gewenst en zal worden meegenomen in het verdere werk. - * Op basis van de gedemonstreerde functionaliteiten besluit de Product Owner om dit increment live te zetten of verder te ontwikkelen. Deze mogelijkheid maakt een vroege ROI mogelijk. - - - ### Sprint Retrospectieve - - _Gelieve hier onderwerpen voor de Sprint Retrospectieve-bijeenkomst te documenteren_ - - * Tijdslimiet (3 uur). - * Volgt na de Sprint Review en wordt gemodereerd door de Scrum Master. - * Het team bespreekt de sprint: wat ging er goed, wat moet er worden verbeterd om productiever te zijn voor de volgende sprint of zelfs om meer plezier te hebben. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Categorie 1 (te wijzigen in Projectinstellingen) queries: item_0: name: Project abonnement item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Taken boards: @@ -345,12 +301,13 @@ nl: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml index 8b1a13dd2352..30419eb16fc7 100644 --- a/config/locales/crowdin/nl.yml +++ b/config/locales/crowdin/nl.yml @@ -40,7 +40,9 @@ nl: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Account Verwijderen delete_confirmation: Weet je zeker dat je dit account wilt verwijderen? deletion_info: @@ -65,7 +67,9 @@ nl: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: of log in met een bestaand account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Gelieve in te loggen om uw account te activeren. @@ -118,6 +122,8 @@ nl: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ nl: repository: Repository comment: commented: Becommentarieerd - custom_action: - actions: Acties custom_field: admin_only: Alleen beheerders allow_non_open_versions: Niet-geopende versies toestaan @@ -168,6 +172,7 @@ nl: uid: Client-ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise ondersteuningstoken @@ -179,20 +184,44 @@ nl: company: Bedrijfsnaam favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Aantal kolommen page: Pagina row_count: Aantal rijen widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identiteit URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ nl: title: Title member: blocked: Blocked + principal_type: Member type roles: Rollen notification: read_ian: Read in-app @@ -235,6 +265,7 @@ nl: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ nl: ongoing: Lopend spent_on: Datum type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ nl: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Beheerder auth_source: Authentication source + avatar_type: Avatar type consented_at: Ingestemd op current_password: Huidig wachtwoord department: Department @@ -410,7 +441,7 @@ nl: last_name: Achternaam ldap_auth_source: LDAP verbinding new_password: Nieuw wachtwoord - password_confirmation: Bevestiging + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ nl: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ nl: header_look_and_feel: Look and feel impaired: Toegankelijkheidsmodus increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Tijdzone warn_on_leaving_unsaved: Mij waarschuwen bij het verlaten van een werkpakket met niet-opgeslagen wijzigingen workdays: Werkdagen + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ nl: title: Werkdagen true: inclusief niet-werkdagen journal_internal: Internal Journal + labels: Labels notify: Melding observed_in_versions: Observed in versions parent: Bovenliggend werkpakket @@ -519,6 +565,10 @@ nl: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: moet geaccepteerd worden. @@ -590,6 +640,8 @@ nl: regex_invalid: kon niet worden gevalideerd met de bijbehorende reguliere expressie. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: moet kleiner zijn dan of even groot zijn als de maximale lengte. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ nl: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is de verkeerde lengte (dient %{count} karakters te zijn). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ nl: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: eindwaarde moet groter zijn dan de startwaarde. outside: is buiten het raster. @@ -689,6 +755,13 @@ nl: not_unique: is al in gebruik. Selecteer een andere naam. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ nl: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'nog steeds in gebruik door werkpakketten: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ nl: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ nl: numeric: numerieke (bijvoorbeeld ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: is reeds eerder gebruikt. Kies er één die verschilt van uw vorige. - other: is reeds eerder gebruikt. Kies er één die verschilt van uw laatste %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: speciale (bijvoorbeeld ' %') uppercase: hoofdletters (bijvoorbeeld ' A') password_confirmation: @@ -976,6 +1032,8 @@ nl: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: kan niet in een ander project zijn. cannot_be_milestone: kan geen mijlpaal zijn. @@ -1003,6 +1061,8 @@ nl: status_id: status_invalid_in_type: is ongeldig omdat de huidige status niet in dit type bestaat. status_transition_invalid: is ongeldig omdat geen geldige overgang van de oude naar de nieuwe status voor de huidige gebruikersrollen bestaat. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: kan geen mijlpaal zijn, want dit werkpakket heeft onderliggende werkpakketten. is_not_a_valid_target_for_time_entries: 'Werkpakket #%{id} is niet een geldig doel voor het opnieuw toewijzen van de tijden.' @@ -1011,8 +1071,8 @@ nl: template: body: 'Controleer de volgende velden:' header: - one: 1 fout voorkomt dat dit %{model} wordt opgeslagen - other: "%{count} fouten voorkomen dat dit %{model} wordt opgeslagen" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ nl: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ nl: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ nl: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ nl: issue_priority: one: Prioriteit other: Prioriteiten + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ nl: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ nl: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF-exportstijlen - theme_warning: Als u het thema wijzigt, wordt uw aangepaste stijl overschreven. Het ontwerp gaat dan verloren. Weet je zeker dat je door wilt gaan? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Direct boeken @@ -1467,7 +1558,7 @@ nl: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc geheugentoewijzer @@ -1475,12 +1566,15 @@ nl: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ nl: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Naam - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ nl: title: Please make sure you have a backup! parts: issues: - one: 1 probleem - other: "%{count} problemen" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status - other: "%{count} statussen" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ nl: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ nl: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ nl: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Zie onze pagina met integraties en plugins voor meer informatie. no_results_title_text: Er zijn momenteel geen plugins geïnstalleerd. @@ -1835,7 +1985,7 @@ nl: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ nl: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ nl: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ nl: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,8 +2211,8 @@ nl: confirm: Verwijder description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: 1 status verwijderen? - other: "%{count} statussen verwijderen?" + one: Remove %{count} status? + other: Remove %{count} statuses? title: Statussen verwijderen tabs: always: Default transitions @@ -2067,7 +2224,31 @@ nl: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: momenteel getoond is_inactive: momenteel niet getoond show_until: Toon tot @@ -2075,7 +2256,7 @@ nl: deleted_by_admin: Het in quarantaine geplaatste bestand '%{filename}' is verwijderd door een beheerder. deleted_message: Er is een virus gedetecteerd in bestand '%{filename}'. Het bestand is verwijderd. not_processed_yet_message: Downloaden is geblokkeerd, omdat het bestand nog niet op virussen is gescand. Probeer het later nog eens. - overridden_by_admin: De quarantaine voor bestand '%{filename}' is verwijderd door %{user}. Het bestand kan nu worden geopend. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Verwijder het quarantaine bestand @@ -2129,10 +2310,6 @@ nl: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Het werkpakket dat u zoekt kan niet gevonden of verwijderd worden. - render: - context_not_parsable: De geboden context is niet een link naar een bron. - context_object_not_found: Kan de bron niet vind als gegeven context. - unsupported_context: De gegeven bron wordt niet ondersteund als context. unable_to_create_attachment: De bijlage kon niet aangemaakt worden unable_to_create_attachment_permissions: De bijlage kon niet worden opgeslagen vanwege ontbrekende bestandssysteem rechten user: @@ -2203,6 +2380,7 @@ nl: groups: Groepen hexcode: Hexadecimale code id: ID + inexistent: Inexistent is_default: Standaardwaarde is_for_all: Voor alle projecten issue: Werkpakket @@ -2253,6 +2431,7 @@ nl: updated_at: Bijgewerkt op updated_on: Bijgewerkt op uploader: Uploader + url: URL user: Gebruiker username: Gebruikersnaam value: Waarde @@ -2267,6 +2446,29 @@ nl: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Taak is geannuleerd als gevolg van fout: %{message}' @@ -2395,6 +2597,7 @@ nl: button_set_reminder: Set reminder button_show: Toon button_sort: Sorteren + button_stop_timer: Stop timer button_submit: Verzenden button_test: Test button_unarchive: Uit archief halen @@ -2461,9 +2664,9 @@ nl: text: failed: Kan project "%{target_project_name}" project "%{source_project_name}" niet kopiëren. succeeded: Gekopieerde project "%{source_project_name}" naar "%{target_project_name}". - title: Kopieer project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Één object van dit type + one: "%{count} object of this type" other: "%{count} objecten van dit type" zero: Geen objecten van dit type create_portfolio: @@ -2501,13 +2704,9 @@ nl: plural: Aangepaste acties custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Dit aangepaste veld is ingeschakeld in alle projecten omdat de optie "Voor alle projecten" is aangevinkt. Het kan niet worden uitgeschakeld voor individuele projecten. - heading: Voor alle projecten hierarchy: subitems: - one: 1 subitem + one: "%{count} sub-item" other: "%{count} subitems" zero: geen subitems items: @@ -2528,7 +2727,7 @@ nl: short: Verkorte Naam weight: Weight notice: - remember_items_and_projects: Vergeet niet om items en projecten in te stellen op de respectievelijke tabbladen voor dit aangepaste veld. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ nl: is_enabled_globally: Is ingeschakeld Op het hoofdniveau multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Werkpakket- of projectselectie is eerst vereist reorder_alphabetical: Rangschik waarden alfabetisch reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Maak een nieuw aangepast veld - no_results_title_text: Momenteel zijn er geen aangepaste velden. text_add_new_custom_field: 'Om de nieuwe aangepaste velden toevoegen aan een project moet u deze eerst maken voordat u ze aan dit project toevoegen kunt. ' @@ -2666,56 +2866,56 @@ nl: datetime: distance_in_words: about_x_hours: - one: ongeveer 1 uur - other: ongeveer %{count} uren + one: about %{count} hour + other: about %{count} hours about_x_months: - one: ongeveer 1 maand - other: ongeveer %{count} maanden + one: about %{count} month + other: about %{count} months about_x_years: - one: ongeveer 1 jaar - other: ongeveer %{count} jaren + one: about %{count} year + other: about %{count} years almost_x_years: - one: bijna 1 jaar - other: bijna %{count} jaren + one: almost %{count} year + other: almost %{count} years half_a_minute: een halve minuut less_than_x_minutes: one: minder dan 1 minuut other: minder dan %{count} minuten less_than_x_seconds: - one: minder dan 1 seconde - other: minder dan %{count} seconden + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: meer dan 1 jaar - other: meer dan %{count} jaren + one: over %{count} year + other: over %{count} years x_days: - one: 1 dag - other: "%{count} dagen" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 uur - other: "%{count} uren" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 uur - other: "%{count} uur" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 minuut - other: "%{count} minuten" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min. - other: "%{count} minuten" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 maand - other: "%{count} maanden" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 seconde - other: "%{count} seconden" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 sec - other: "%{count} sec" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 week - other: "%{count} weken" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 jaar + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ nl: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3204,9 +3404,150 @@ nl: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Er zijn momenteel geen berichten voor het forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3231,6 +3572,8 @@ nl: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3256,6 +3599,10 @@ nl: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ nl: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3278,7 +3625,7 @@ nl: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Publiceer deze weergave zodat andere gebruikers er toegang tot hebben. Gebruikers met de 'Openbare weergave beheren' rechten kunnen openbare query wijzigen of verwijderen. Dit heeft geen invloed op de zichtbaarheid van werkpakket resultaten in die weergave en afhankelijk van hun permissies, kunnen gebruikers verschillende resultaten zien. homescreen: @@ -3303,6 +3650,31 @@ nl: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Lees over nieuwe functies en product-updates. learn_about: Learn more about all new features @@ -3339,8 +3711,10 @@ nl: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3390,6 +3764,7 @@ nl: budget_deleted: Budget has been deleted dates_changed: Data gewijzigd default_attribute_written: Alleen-lezen kenmerken geschreven + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3542,10 +3917,10 @@ nl: label_copy_target: Doel label_copy_workflow_from: Kopieer workflow van label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core-versie label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Huidige status label_current_version: Huidige versie label_custom_comment: "%{name} comment" @@ -3569,8 +3944,6 @@ nl: label_custom_field_default_type: Leeg type label_custom_field_new: Nieuw aangepast veld label_custom_field_plural: Aangepaste velden - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Aangepaste PDF-exportinstellingen label_custom_style: Ontwerp label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3579,11 +3952,12 @@ nl: label_database_version: PostgreSQL versie label_date: Datum label_date_and_time: Datum en tijd - label_date_format: Datumnotatie + label_date_and_time_formats: Date and time formats label_date_from: Van label_date_from_to: Van %{start} tot %{end} label_date_to: Aan label_dates: Datums + label_day: Dag label_day_plural: dagen label_default: Standaard label_defaults: Defaults @@ -3594,6 +3968,7 @@ nl: label_deleted_custom_field: "(verwijderde aangepast veld)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(verwijderde optie)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3664,6 +4039,7 @@ nl: label_float: Zwevend label_folder: Map label_follows: volgt + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nieuw forum label_forum_plural: Fora @@ -3682,6 +4058,7 @@ nl: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Groep + label_group_attributes_plural: Group attributes label_group_by: Groeperen op label_group_named: Groep %{name} label_group_new: Nieuwe groep @@ -3733,8 +4110,8 @@ nl: label_journal_diff: Beschrijving vergelijking label_jump_to_a_project: Ga naar een project... label_keyword_plural: Trefwoorden + label_label_plural: Labels label_language: Taal - label_language_based: Op basis van de taal van gebruiker label_languages: Talen label_last_activity: Laatste activiteit label_last_change_on: Laatste wijziging op @@ -3756,6 +4133,7 @@ nl: label_list: Lijst label_loading: Laden... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Gebruiker vergrendelen label_locked: geblokkeerd label_logged_as: Ingelogd als @@ -3767,6 +4145,7 @@ nl: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Beheerde %{vendor} opslagplaatsen label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximale Grootte label_me: ik label_member_all_admin: "(Alle rollen vanwege de admin status)" @@ -3785,7 +4164,6 @@ nl: label_menu_item_name: Naam van het menu-item label_message: Bericht label_message_last: Laatste bericht - label_message_new: Nieuw bericht label_message_plural: Berichten label_message_posted: Bericht toegevoegd label_minute_plural: minuten @@ -3797,6 +4175,7 @@ nl: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules en Plugins + label_month: Maand label_months_from: maanden vanaf label_more: Meer label_more_information: Meer informatie @@ -3810,6 +4189,7 @@ nl: label_my_avatar: Mijn avatar label_my_queries: Mijn aangepaste query 's label_my_security: Security + label_my_time: My time label_name: Naam label_never: Nooit label_new: Nieuw @@ -3824,7 +4204,10 @@ nl: label_news_singular: Nieuws label_news_view_all: Bekijk al het nieuws label_next: Volgende + label_next_day: Volgende dag + label_next_month: Volgende maand label_next_week: Volgende week + label_next_workweek: Volgende werkweek label_next_year: Next year label_no_change_option: "(Niet wijzigen)" label_no_data: Geen gegevens om weer te geven @@ -3832,6 +4215,7 @@ nl: label_no_parent_group: "(No parent group)" label_no_parent_page: Geen bovenliggende pagina label_no_start_date: geen startdatum + label_no_time: Geen tijd geregistreerd label_nobody: niemand label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3898,7 +4282,10 @@ nl: label_preview: Voorbeeld label_preview_not_available: Voorbeeld niet beschikbaar label_previous: Vorige + label_previous_day: Vorige dag + label_previous_month: Vorige maand label_previous_week: Vorige week + label_previous_workweek: Vorige werkweek label_previous_year: Previous year label_principal_invite_via_email: " of nieuwe gebruikers uitnodigen via e-mail" label_principal_search: Bestaande gebruikers of groepen toevoegen @@ -4017,6 +4404,7 @@ nl: label_sort_lowest: Verplaats naar beneden label_sorted_by: gesorteerd op %{value} label_spent_time: Bestede tijd + label_stack: Stack label_start_to_end: begin tot eind label_start_to_start: begin tot begin label_starts_with: starts with @@ -4036,6 +4424,7 @@ nl: label_subtask_plural: Subtaken label_summary: Samenvatting label_system: Systeem + label_system_or_language_default: Use system or language based default label_system_settings: Systeeminstellingen label_system_storage: Opslaginformatie label_table_of_contents: Inhoudsopgave @@ -4050,6 +4439,7 @@ nl: label_time: Tijd label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Bestede tijd + label_timer_since: Begonnen op %{time} label_title: Titel label_today: vandaag label_today_as_date: Select today as date. @@ -4085,7 +4475,9 @@ nl: label_user_search: Zoeken naar gebruiker label_user_settings: Gebruikersinstellingen label_users_settings: Gebruikersinstellingen + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Versie bewerken label_version_new: Nieuwe versie label_version_plural: Versies @@ -4098,6 +4490,7 @@ nl: label_videos: Video 's label_view_all_revisions: Alle herzieningen bekijken label_view_diff: Bekijk verschillen + label_view_mode_switcher: Weergave wijzigen label_view_revisions: Bekijk revisies label_view_x: 'View: %{x}' label_watched_work_packages: Gevolgde werkpakketten @@ -4121,6 +4514,8 @@ nl: label_wiki_start: Startpagina label_wiki_toc: Inhoudsopgave label_wiki_toc_empty: Inhoudsopgave is leeg omdat er geen koppen aanwezig zijn. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Werk label_work_package: Werkpakket label_work_package_attachments: Werkpakket bijlagen @@ -4143,45 +4538,46 @@ nl: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Werkweek label_x_closed_work_packages_abbr: - one: 1 gesloten + one: "%{count} closed" other: "%{count} gesloten" zero: 0 gesloten label_x_comments: - one: 1 reactie + one: "%{count} comment" other: "%{count} reacties" zero: geen reacties label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 bestand + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projecten" zero: geen projecten label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: Geen werkpakketten label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: gisteren label_zen_mode: Zen mode @@ -4234,7 +4630,7 @@ nl: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL-certificaat verifiëren verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4291,6 +4687,8 @@ nl: you_have: U heeft logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Naar meldingscentrum @@ -4347,8 +4745,8 @@ nl: mentioned: U bent genoemd in een opmerking mentioned_by: "%{user} heeft u genoemd in een reactie" more_to_see: - one: Er is nog 1 werkpakket met meldingen. - other: Er zijn nog %{count} werkpakketten met meldingen. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Openen in de browser reason: assigned: Toegewezen @@ -4526,6 +4924,13 @@ nl: create_button: Maken dialog_body: Deze sleutel zal applicaties van derden in staat stellen om met uw instantie te communiceren. Geef het nieuwe API-sleutel een naam om deze te onderscheiden. dialog_title: Nieuwe API-sleutel aanmaken + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Tokennaam failed_to_create_token: 'Aanmaken van toegang sleutel is mislukt: %{error}' failed_to_reset_token: 'Reset-toegangstoken mislukt: %{error}' @@ -4539,10 +4944,26 @@ nl: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Toegangs-tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Actie expiration: Verloopt @@ -4744,7 +5165,6 @@ nl: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: Er zijn %{number} resultaten gevonden. Tab om het eerste resultaat te tonen. notice_principals_found_single: Er is één resultaat. Tab om te tonen. - notice_project_cannot_update_custom_fields: 'U kunt de beschikbare aangepaste projectvelden niet bijwerken. Het project is ongeldig: %{errors}' notice_project_not_deleted: Het project is niet verwijderd. notice_project_not_found: Project niet gevonden. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4754,9 +5174,6 @@ nl: notice_successful_create: Aanmaak geslaagd. notice_successful_delete: Verwijdering geslaagd. notice_successful_update: Succesvolle wijziging. - notice_successful_update_custom_fields_added_to_project: | - Succesvolle update. Aangepaste velden van de geactiveerde types worden automatisch geactiveerd - op het werkpakket formulier. Meer. notice_to_many_principals_to_display: Er zijn te veel resultaten. Beperk het zoekbereik door een naam in te geven van een nieuw lid (of groep). notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -4856,7 +5273,7 @@ nl: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4947,8 +5364,6 @@ nl: not_found: niet gevonden. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4968,7 +5383,6 @@ nl: or: of rules: blueprint: Patroonblauwdruk - copy_workflow_from: Type for workflow copy depth: Diepte enabled: Ingeschakeld item: Item @@ -5040,8 +5454,8 @@ nl: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5066,7 +5480,7 @@ nl: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Opmerking nieuws permission_commit_access: Lees/schrijf toegang tot opslagplaats (bevestig) - permission_copy_projects: Kopiëren van projecten + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Back-ups maken @@ -5099,6 +5513,7 @@ nl: permission_export_projects: Export projects permission_export_work_packages: Werkpakketten exporteren permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5109,6 +5524,9 @@ nl: permission_manage_dashboards: Dashboards beheren permission_manage_forums: Forum beheren permission_manage_members: Beheer gebruikers + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Beheren van nieuws permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5137,7 +5555,6 @@ nl: permission_save_bcf_queries: Save BCF queries permission_save_queries: Weergaves opslaan permission_search_project: Search project - permission_select_custom_fields: Aangepaste velden selecteren permission_select_project_custom_fields: Selecteer project kenmerk permission_select_project_modules: Selecteer project modules permission_select_project_phases: Select project phases @@ -5171,6 +5588,16 @@ nl: permission_work_package_assigned: Toewijzer/verantwoordelijk worden permission_work_package_assigned_explanation: Werkpakketten kunnen worden toegewezen aan gebruikers en groepen met deze rol in het respectieve project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Placeholder gebruiker verwijderen deletion_info: data_consequences: 'Alle gebeurtenissen van de tijdelijke gebruiker (bijv. als taakontvanger, verantwoordelijke of andere gebruikerswaarden) zullen opnieuw worden toegewezen aan een account genaamd "Verwijderde gebruiker". Aangezien de gegevens van elke verwijderde account opnieuw zijn toegewezen aan dit account, zal het niet mogelijk zijn om de gegevens die de gebruiker heeft aangemaakt van een ander verwijderd account te onderscheiden. @@ -5192,7 +5619,7 @@ nl: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5203,7 +5630,7 @@ nl: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5218,7 +5645,7 @@ nl: het kan worden gebruikt voor het benadrukken van de werkpakketten in de tabel. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5230,7 +5657,7 @@ nl: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projecten" zero: 0 projects destroy: @@ -5335,11 +5762,11 @@ nl: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5349,6 +5776,12 @@ nl: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Momenteel zijn er geen aangepaste velden beschikbaar. forums: no_results_content_text: Maak een nieuw forum @@ -5445,14 +5878,14 @@ nl: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5464,7 +5897,7 @@ nl: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Maak een nieuwe versie - no_results_title_text: Momenteel zijn er geen versies voor het project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Werkpakketten grafiek work_package_priorities: @@ -5472,15 +5905,27 @@ nl: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Vooraf geconfigureerde filter toepassen configure_view: @@ -5509,8 +5954,8 @@ nl: action_title: Reageren add_reaction: Reactie toevoegen and_others: - one: en 1 ander - other: en %{count} anderen + one: and %{count} other + other: and %{count} others and_user: en %{user} react_with: Reageren met %{reaction} reaction_by: "%{reaction} door" @@ -5623,6 +6068,31 @@ nl: warnings: cannot_annotate: Dit bestand kan niet geannoteerd worden. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5634,6 +6104,15 @@ nl: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5738,7 +6217,7 @@ nl: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maximaal aantal afwijkende regels getoond setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Toon standaard de werkpakketten van onderliggende projecten bij hoofdprojecten + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Alleen uren @@ -5853,6 +6332,7 @@ nl: setting_start_of_week: Week begint op setting_sys_api_description: De repository beheer web-service biedt integratie en autorisatie van gebruikers voor toegang tot de archieven. setting_sys_api_enabled: Repository beheer web-service inschakelen + setting_sys_api_key: API key setting_time_format: Tijd setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5905,7 +6385,7 @@ nl: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5916,6 +6396,7 @@ nl: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6007,12 +6488,12 @@ nl: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6032,8 +6513,8 @@ nl: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6041,7 +6522,7 @@ nl: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6061,6 +6542,7 @@ nl: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6117,7 +6599,7 @@ nl: section_work_week: Werkweek sharing: count: - one: 1 gebruiker + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6210,19 +6692,19 @@ nl:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Uitgesloten van totalen is_closed: Gesloten - is_default: Standaard is_readonly: Alleen-lezen + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Voeg een nieuwe status toe no_results_title_text: Er zijn momenteel geen werkpakket statussen. + status_actions: Status actions support: array: sentence_connector: en skip_last_comma: onwaar text_access_token_hint: Toegangstokens kunnen u externe toepassingen toegang verlenen tot bronnen in OpenProject. - text_accessibility_hint: De toegankelijkheid-modus is ontworpen voor gebruikers die blind, motorisch gehandicapte of een slecht gezichtsvermogen hebben. Voor de laatste gericht zijn elementen speciaal gemarkeerd. Let op, dat de backlog-module is niet beschikbaar in deze modus. text_analyze: 'Verdere analyse: %{subject}' text_are_you_sure: Weet u het zeker? text_are_you_sure_continue: Weet u zeker dat u wilt doorgaan? @@ -6265,12 +6747,6 @@ nl: ' text_custom_field_possible_values_info: Één regel voor elke waarde - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6320,6 +6796,7 @@ nl: text_length_between: Lengte tussen %{min} en %{max} karakters. text_line_separated: Meerdere waarden toegestaan (één regel voor elke waarde). text_load_default_configuration: De standaardconfiguratie laden + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Er zijn geen toegangstokens die kunnen worden geconfigureerd. text_no_configuration_data: |- Rollen, types, werkpakket statussen en workflow zijn nog niet geconfigureerd. @@ -6423,6 +6900,68 @@ nl: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6432,14 +6971,40 @@ nl: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6448,8 +7013,10 @@ nl: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6478,21 +7045,21 @@ nl: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Alles uitschakelen label_enable_all: Alles inschakelen label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6509,6 +7076,8 @@ nl: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6530,6 +7099,14 @@ nl: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6539,12 +7116,14 @@ nl: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6558,12 +7137,12 @@ nl: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6576,10 +7155,12 @@ nl: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projecten + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6594,43 +7175,17 @@ nl: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6638,6 +7193,9 @@ nl: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6646,13 +7204,14 @@ nl: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6666,12 +7225,16 @@ nl: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6680,33 +7243,74 @@ nl: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Maak een nieuw type no_results_title_text: Er zijn momenteel geen types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Negeer deze waarschuwing. message: U kan lopen in fouten en gedegradeerd ervaring op deze pagina. @@ -6725,8 +7329,8 @@ nl: authorization_rejected: U bent niet toegestaan aan te melden. blocked: tijdelijk geblokkeerd blocked_num_failed_logins: - one: tijdelijk geblokkeerd (een mislukte login poging) - other: tijdelijk geblokkeerd (%{count} mislukte login pogingen) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: U bent bezig met het wijzigen van de status van '%{name}'. Weet u zeker dat u wilt doorgaan? deleted: Gebruiker verwijderen department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6826,7 +7430,7 @@ nl: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Apparaat / OS expires: Verloopt - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Laatste verbinding may_not_delete_current: Je kan je huidige sessie niet verwijderen. session_name: "%{browser_name} %{browser_version} op %{os_name}" @@ -6886,13 +7490,19 @@ nl: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: gesloten version_status_locked: geblokkeerd version_status_open: Open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Er zijn momenteel geen werkpakketten toegewezen aan deze versie. work_packages_in_archived_projects: De versie wordt gedeeld met gearchiveerde projecten waaraan nog werkpakketten zijn toegewezen aan deze versie. Deze worden meegeteld, maar verschijnen niet in de gekoppelde weergaven. @@ -7062,12 +7672,14 @@ nl: required_description: Markeert dit werkpakket als een vereiste voor het gerelateerde werkpakket requires_description: Markeert het gerelateerde werkpakket als een vereiste voor dit werkpakket work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: De werkpakketten konden niet gekopieerd worden. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'De volgende werkpakketten konden niet worden opgeslagen:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: afstammeling van geselecteerde move_failed: De werkpakketten konden niet worden verplaatst. @@ -7092,17 +7704,17 @@ nl: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7160,18 +7772,154 @@ nl: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7203,37 +7951,53 @@ nl: version: no_results_title_text: Er zijn momenteel geen versies beschikbaar. x_descendants: - one: Een nakomend werkpakket - other: "%{count} werk pakket afstammelingen" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7242,12 +8006,88 @@ nl: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Wijzig werkdagen dialog: diff --git a/config/locales/crowdin/no.seeders.yml b/config/locales/crowdin/no.seeders.yml index 940709f149bd..11c0f72596dc 100644 --- a/config/locales/crowdin/no.seeders.yml +++ b/config/locales/crowdin/no.seeders.yml @@ -250,69 +250,26 @@ I denne modulen kan du kommunisere nyheter om prosjektet til medlemmene i teamet. versions: item_0: - name: Forsinkelser feilretting - item_1: - name: Produktforsinkelser - item_2: - name: Etappe 1 wiki: - title: Etappe 1 + title: Release 1.0 content: | - ### Planleggingsmøte for etappe - - _Sett inn emnene for møtet her_ - - * Tid satt av (8 t) - * Input: Produkt Forsinkelser - * Output: Etappe Forsinkelser - - * Delt i to bolker på 4 timer: - - * Eieren av produktet presenterer [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) og prioriteringene til teamet, og forklarer etappens mål. Teamet må være enige i dette. De må sammen prioritere emnene fra produkt-forsnkelsene som teamet skal ta tak i på neste etappe. Teamet forplikter seg til det som har blitt diskutert. - * Teamet planlegger på egnehånd (uten produkteier) i detalj og bryter ned oppgavene fra diskusjonen for å konsolidere en [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daglig Scrum-møte - - _Sett inn emnene for møtet her_ + ### Release 1.0 - * Kort oppsummering av status fra teamet. - * Tid avsatt (maks 15 min). - * Stående møte for å diksutere de følgende emnene fra [Oppgavetavle](##sprint:scrum_project__version__sprint_1). - * Hva planlegger jeg å gjøre til neste daglige Scrum-møte? - * Hva har hindret meg i arbeidet (Hindringer)? - * Scrum-leder leder møtet og noterer [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Produkteier kan delta for å holde seg oppdatert. + _Please document here what this release contains._ - ### Etappe evalueringsmøte - - _Sett inn emner for evalueringsmøtet her_ - - * Avsatt tid (4 timer). - * Maks en times forberedelsestid per person. - * Teamet viser produkteier og andre interesserte hva som er oppnådd i denne etappen. - *Viktig: ingen "dummies" og ingen Powerpoint! Bare fullførte funksjonaliteter (fremganger) bør demonstreses. - * Tilbakemeldinger fra produkteier, aksjeeiere og andre er ønsket, og vil bli inkludert i videre arbeid. - * Basert på de demonstrerte fremgangene kan produkteier bestemme at fremgangene holder, eller må utvikles ytterligere. Denne muligheten tillater en tidlig avkastning. - - ### Etappe i retrospekt - - _Sett inn emnene for møtet her_ - - * Avsatt tid (3 timer). - * Etter evalueringsmøtet, etappe. Ledes av Scrum-leder. - * Teamet diskuterer etappen: Hva gikk bra, hva må forbedres for å bli mer produktive på neste etappe, eller kanskje ha litt mere morro. - item_3: - name: Etappe 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategori 1 (som skal endres i Prosjektinnstillingene) queries: item_0: name: Prosjektplan item_1: - name: Produktforsinkelser + name: Version 1.1 item_2: - name: Etappe 1 + name: Version 1.0 item_3: name: Oppgaver boards: @@ -338,18 +295,21 @@ options: name: Komme i gang text: | - Vi er glad for at du er med! Vi foreslår å prøve et par ting for å komme i gang i OpenProject. + We are glad you joined! We suggest to try a few things to get started in OpenProject. + + _Try the following steps:_ + + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - _Prøv følgende trinn:_[Backlogs]. *Inviter nye medlemmer til prosjektet ditt*: → Gå til [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) i prosjektmenyen. - 2. *Vis dine produkt backlog og print backlogs*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i prosjektmenyen. - 3. *Vis tavlen din*: → Gå til [Backlogs] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klikk på høyre pil på Sprint → Velg [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Lag en ny arbeidspakke*: → Gå til [Arbeidspakker → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Lag og oppdater en prosjektplan*: → Gå til [Project plan](##query:scrum_project__query__project_plan) i prosjektmenyen. - 6. *Opprett en Lufthavn-wiki*: → Gå til [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) og åpne sprint wiki fra høyre rullegardinmeny i en sprint. Du kan redigere [wiki-malen]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) basert på dine behov. - 7. *Aktiver ytterligere moduler*: → Gå til [Prosjektinnstillinger → Moduler]({{opSetting:base_url}}/prosjekter/your-scrum-project/settings/moduler). - Her finner du våre [Manualer](https://www. penproject.org/docs/user-guide/). - Gi oss beskjed om du har spørsmål eller trenger support. Kontakt oss: [support[at]openproject.com](mailto:support@openproject.com). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Arbeidspakker diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index 15950a2463bf..638bbc13ad12 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -40,7 +40,9 @@ view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Slett konto delete_confirmation: Er du sikker på at du vil slette kontoen? deletion_info: @@ -65,7 +67,9 @@ error_self_registration_limited_provider: 'Brukerregistrering er begrenset for Single sign-on leverandøren ''%{name}''. Be en administrator om å aktivere kontoen for deg eller endre grense for selvregistrering for denne leverandøren. ' - login_with_auth_provider: eller logg på med din eksisterende konto + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Vennligst logg inn for å aktivere kontoen din. @@ -118,6 +122,8 @@ auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ repository: Pakkebrønn comment: commented: Kommentert - custom_action: - actions: Handlinger custom_field: admin_only: Kun administratorer allow_non_open_versions: Tillat ikke-åpne versjoner @@ -168,6 +172,7 @@ uid: Klient ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support nøkkel @@ -179,20 +184,44 @@ company: Firma favorite: favorited: Element + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Antall kolonner page: Side row_count: Antall rader widgets: Widgeter group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identitet URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ title: Title member: blocked: Blocked + principal_type: Member type roles: Rolle notification: read_ian: Read in-app @@ -235,6 +265,7 @@ position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ongoing: Pågående spent_on: Dato type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Autentiserings kilde + avatar_type: Avatar type consented_at: Godkjent current_password: Nåværende passord department: Department @@ -410,7 +441,7 @@ last_name: Etternavn ldap_auth_source: LDAP-tilkobling new_password: Nytt passord - password_confirmation: Bekreftelse + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ header_look_and_feel: Look and feel impaired: Tilgjengelighetsmodus increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Tidssone warn_on_leaving_unsaved: Varsle meg når jeg forlater en arbeidspakke med ulagrede endringer workdays: Arbeidsdager + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ title: Arbeidsdager true: Inkluder arbeidsfrie dager journal_internal: Internal Journal + labels: Labels notify: Varsle observed_in_versions: Observed in versions parent: Overordnet @@ -519,6 +565,10 @@ work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: må aksepteres @@ -590,6 +640,8 @@ regex_invalid: kunne ikke valideres med det tilhørende regulære uttrykket. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: samsvarer ikke med det regulære uttrykket %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: må være mindre enn eller lik maksimumslengden. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: har feil lengde (skal være %{count} tegn). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: sluttverdien må være større enn startverdien. outside: er utenfor rutenett. @@ -689,6 +755,13 @@ not_unique: er allerede i bruk. Velg et annet navn. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'fortsatt i bruk av arbeidspakker: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,8 +962,8 @@ numeric: numerisk (f.eks. "1") requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: har blitt brukt tidligere. Vennligst velg en som er forskjellig fra den forrige. - other: har blitt brukt tidligere. Vennligst velg et som er forskjellig fra dine siste %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: spesialtegn (f.eks. "%") uppercase: store bokstaver (f.eks. "A") password_confirmation: @@ -976,6 +1032,8 @@ identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: kan ikke være i et annet prosjekt. cannot_be_milestone: kan ikke være en milepæl. @@ -1003,6 +1061,8 @@ status_id: status_invalid_in_type: er ugyldig fordi gjeldende status ikke finnes i denne typen. status_transition_invalid: er ugyldig fordi det ikke eksisterer noen gyldige overganger fra gammel til ny status for gjeldende brukers roller + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: kan ikke være en milepæl fordi arbeidspakke har underpakker. is_not_a_valid_target_for_time_entries: Arbeidspakke nr. %{id} er ikke et gyldig mål for nytildeling av tidsoppføringer. @@ -1011,8 +1071,8 @@ template: body: 'Kontroller følgende felter:' header: - one: 1 feil forhindret lagring av denne %{model} - other: "%{count} feil forhindret lagring av denne %{model}" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ issue_priority: one: Prioritet other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ tab_interface: Grensesnitt tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Endring av tema vil overskrive din egendefinerte stil. Designet vil da gå tapt. Er du sikker på at du vil fortsette? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Last opp en Enterprise edition supportnøkkel book_now: Bestill nå @@ -1467,7 +1558,7 @@ import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc minne allokator @@ -1475,12 +1566,15 @@ actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Se siden vår om integrasjoner og utvidelser for mer informasjon. no_results_title_text: Det er for tiden ingen utvidelser installert. @@ -1835,7 +1985,7 @@ confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: vises nå is_inactive: vises ikke show_until: Vis til @@ -2075,7 +2256,7 @@ deleted_by_admin: Filen '%{filename}' som var i karantene har blitt slettet av en administrator. deleted_message: Et virus ble oppdaget i filen '%{filename}'. Filen har blitt slettet. not_processed_yet_message: Nedlasting er blokkert, fordi filen ikke ble skannet for virus ennå. Vennligst prøv igjen senere. - overridden_by_admin: Karantene for filen '%{filename}' har blitt opphevet av %{user}. Filen er nå tilgjengelig. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Beholder delete: Slett filen i karantene @@ -2129,10 +2310,6 @@ not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Arbeidspakken du leter etter kan ikke bli funnet eller den har blitt slettet. - render: - context_not_parsable: Konteksten som er angitt er ikke koblet til en ressurs. - context_object_not_found: Kan ikke finne ressursen som er angitt som kontekst. - unsupported_context: Ressursen som er gitt støttes ikke som kontekst. unable_to_create_attachment: Vedlegget kunne ikke opprettes unable_to_create_attachment_permissions: Vedlegget kunne ikke lagres på grunn av manglende systemtillatelser user: @@ -2203,6 +2380,7 @@ groups: Grupper hexcode: Hexadesimalkode id: ID + inexistent: Inexistent is_default: Standardverdi is_for_all: For alle prosjekter issue: Arbeidspakke @@ -2253,6 +2431,7 @@ updated_at: Oppdatert updated_on: Oppdatert uploader: Opplaster + url: URL user: Bruker username: Brukernavn value: Verdi @@ -2267,6 +2446,29 @@ ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Oppgaven ble avbrutt på grunn av feil: %{message}' @@ -2395,6 +2597,7 @@ button_set_reminder: Set reminder button_show: Vis button_sort: Sortèr + button_stop_timer: Stop timer button_submit: Lagre button_test: Test button_unarchive: Pakk ut @@ -2461,9 +2664,9 @@ text: failed: Kunne ikke kopiere prosjektet "%{source_project_name}" til prosjektetet "%{target_project_name}". succeeded: Prosjektet "%{source_project_name}" ble kopiert til "%{target_project_name}". - title: Kopier prosjektet "%{source_project_name} + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Ett objekt av denne typen + one: "%{count} object of this type" other: "%{count} objekter av denne typen" zero: Ingen objekter av denne typen create_portfolio: @@ -2501,13 +2704,9 @@ plural: Tilpassede handlinger custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Dette egendefinerte feltet er aktivert i alle prosjekter siden "For alle prosjekter" alternativet er sjekket. Den kan ikke deaktiveres for enkeltprosjekter. - heading: For alle prosjekter hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ short: Short name weight: Weight notice: - remember_items_and_projects: Husk å angi elementer og prosjekter i de respektive fanene for dette egendefinerte feltet. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ is_enabled_globally: Er aktivert globalt multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Omorganiser verdier alfabetisk reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Opprett nytt egendefinert felt - no_results_title_text: Det er ingen egendefinerte felt for øyeblikket. text_add_new_custom_field: 'For å legge til nye egendefinerte felt i et prosjekt må du først opprette dem før du kan legge dem til i dette prosjektet. ' @@ -2666,57 +2866,57 @@ datetime: distance_in_words: about_x_hours: - one: rundt 1 time - other: cirka %{count} timer + one: about %{count} hour + other: about %{count} hours about_x_months: - one: rundt 1 måned - other: cirka %{count} måneder + one: about %{count} month + other: about %{count} months about_x_years: - one: rundt 1 år - other: cirka %{count} år + one: about %{count} year + other: about %{count} years almost_x_years: - one: nesten 1 år - other: nesten %{count} år + one: almost %{count} year + other: almost %{count} years half_a_minute: et halvt minutt less_than_x_minutes: one: mindre enn ett minutt other: mindre enn %{count} minutter less_than_x_seconds: - one: mindre enn 1 sekund - other: mindre enn %{count} sekunder + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: over 1 år - other: mer enn %{count} år + one: over %{count} year + other: over %{count} years x_days: - one: 1 dag - other: "%{count} dager" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 time - other: "%{count} timer" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 time - other: "%{count} timer" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 minutt - other: "%{count} minutter" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 minutt - other: "%{count} minutter" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 måned - other: "%{count} måneder" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 sekund - other: "%{count} sekunder" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 sekund - other: "%{count} sekunder" + one: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 uke - other: "%{count} uker" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 år - other: "%{count} år" + one: "%{count} year" + other: "%{count} years" units: day: one: dag @@ -2866,7 +3066,7 @@ teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Det er for øyeblikket ingen innlegg på forumet. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: ";" @@ -3233,6 +3574,8 @@ groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ warning: Warning help_texts: views: - favoured: Marker denne som favoritt og legg til den lagrede sidestolpen til venstre. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} er alltid knyttet til et prosjekt. Du kan kun velge prosjekter der %{plural} -modulen er aktiv. Når du har opprettet en %{singular} kan du legge til arbeidspakker fra andre prosjekter til den.\n" public: Publiser denne visningen, slik at andre brukere får tilgang til visningen din. Brukere med 'Administrere offentlige visninger' kan endre eller fjerne offentlig spørring. Dette påvirker ikke synligheten til resultatene i arbeidspakken i denne oversikten og avhengig av tillatelser, vil brukerne kunne se forskjellige resultater. homescreen: @@ -3305,6 +3652,31 @@ line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Les om nye funksjoner og produktoppdateringer. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ budget_deleted: Budget has been deleted dates_changed: Datoer endret default_attribute_written: Skrivebeskyttet attributter skrevet + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ label_copy_target: Mål label_copy_workflow_from: Kopier arbeidsflyt fra label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Kildeversjon label_created_by: Opprettet av %{user} + label_criteria: Criteria label_current_status: Gjeldende status label_current_version: Gjeldende versjon label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ label_custom_field_default_type: Tom type label_custom_field_new: Nytt egendefinert felt label_custom_field_plural: Egendefinerte felter - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Egendefinerte PDF eksportinnstillinger label_custom_style: Design label_custom_style_description: Velg hvordan OpenProject ser ut med temaer, velg dine standardfarger som skal brukes i appen og hvordan eksporten ser ut. @@ -3581,11 +3954,12 @@ label_database_version: PostgreSQL versjon label_date: Dato label_date_and_time: Dato og tid - label_date_format: Datoformat + label_date_and_time_formats: Date and time formats label_date_from: Fra label_date_from_to: Fra %{start} til %{end} label_date_to: Til label_dates: Datoer + label_day: Dag label_day_plural: dager label_default: Standard label_defaults: Defaults @@ -3596,6 +3970,7 @@ label_deleted_custom_field: "(slettet egendefinert felt)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(slettet alternativ)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ label_float: Flyt label_folder: Mappe label_follows: følger + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nytt forum label_forum_plural: Forum @@ -3684,6 +4060,7 @@ label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Gruppe + label_group_attributes_plural: Group attributes label_group_by: Grupper etter label_group_named: Gruppe %{name} label_group_new: Ny gruppe @@ -3735,8 +4112,8 @@ label_journal_diff: Sammenligning av beskrivelse label_jump_to_a_project: Gå til et prosjekt... label_keyword_plural: Nøkkelord + label_label_plural: Labels label_language: Språk - label_language_based: Basert på brukerens språk label_languages: Språk label_last_activity: Siste aktivitet label_last_change_on: Sist endret @@ -3758,6 +4135,7 @@ label_list: Liste label_loading: Laster... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lås bruker label_locked: låst label_logged_as: Innlogget som @@ -3769,6 +4147,7 @@ label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Administrerte %{vendor} kodelagre label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maks størrelse label_me: meg label_member_all_admin: "(Alle roller på grunn av administratorstatus)" @@ -3787,7 +4166,6 @@ label_menu_item_name: Navn på menyelement label_message: Melding label_message_last: Siste melding - label_message_new: Ny melding label_message_plural: Meldinger label_message_posted: Melding lagt til label_minute_plural: minutter @@ -3799,6 +4177,7 @@ label_module_plural: Moduler label_modules: Moduler label_modules_and_plugins: Moduler og utvidelser + label_month: Måned label_months_from: måneder fra label_more: Mer label_more_information: Mer informasjon @@ -3812,6 +4191,7 @@ label_my_avatar: Min avatar label_my_queries: Minne egendefinerte spørringer label_my_security: Security + label_my_time: My time label_name: Navn label_never: Aldri label_new: Ny @@ -3826,7 +4206,10 @@ label_news_singular: Nyheter label_news_view_all: Vis alle nyheter label_next: Neste + label_next_day: Next day + label_next_month: Next month label_next_week: Neste uke + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Ingen endring)" label_no_data: Ingen data å vise @@ -3834,6 +4217,7 @@ label_no_parent_group: "(No parent group)" label_no_parent_page: Ingen overordnet side label_no_start_date: ingen startdato + label_no_time: No time tracked label_nobody: ingen label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ label_preview: Forhåndsvis label_preview_not_available: Forhåndsvisning ikke tilgjengelig label_previous: Forrige + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Forrige uke + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " eller inviter nye brukere via e-post" label_principal_search: Legg til eksisterende brukere eller grupper @@ -4019,6 +4406,7 @@ label_sort_lowest: Flytt til bunnen label_sorted_by: sortert på %{value} label_spent_time: Tid brukt + label_stack: Stack label_start_to_end: start til slutt label_start_to_start: start til start label_starts_with: starts with @@ -4038,6 +4426,7 @@ label_subtask_plural: Underoppgaver label_summary: Sammendrag label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: Systeminnstillinger label_system_storage: Informasjon om lagring label_table_of_contents: Innholdsfortegnelse @@ -4052,6 +4441,7 @@ label_time: Tidspunkt label_time_entry_activity_plural: Brukt tid aktivitet label_time_entry_plural: Tid brukt + label_timer_since: Started at %{time} label_title: Tittel label_today: i dag label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ label_user_search: Søk etter bruker label_user_settings: Brukerinnstillinger label_users_settings: Brukerinnstillinger + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Rediger versjon label_version_new: Ny versjon label_version_plural: Versjoner @@ -4100,6 +4492,7 @@ label_videos: Videoer label_view_all_revisions: Vis alle revisjoner label_view_diff: Vis forskjeller + label_view_mode_switcher: Change view label_view_revisions: Vis revisjoner label_view_x: 'View: %{x}' label_watched_work_packages: Overvåkede arbeidspakker @@ -4123,6 +4516,8 @@ label_wiki_start: Startside label_wiki_toc: Innholdsfortegnelse label_wiki_toc_empty: Innholdsfortegnelsen er tom da ingen overskrifter er tilstede. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Arbeid label_work_package: Arbeidspakke label_work_package_attachments: Vedlegg på arbeidspakke @@ -4145,45 +4540,46 @@ label_working_days: Working days label_working_days_and_hours: Arbeidsdager og timer label_working_hours: Work schedule + label_workweek: Arbeidsuke label_x_closed_work_packages_abbr: - one: 1 lukket + one: "%{count} closed" other: "%{count} stengt" zero: 0 lukket label_x_comments: - one: 1 kommentar + one: "%{count} comment" other: "%{count} kommentarer" zero: ingen kommentarer label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 fil + one: "%{count} file" other: "%{count} filer" zero: ingen filer label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 åpen + one: "%{count} open" other: "%{count} åpne" zero: 0 åpen label_x_projects: - one: 1 prosjekt + one: "%{count} project" other: "%{count} prosjekter" zero: ingen prosjekter label_x_work_packages: - one: 1 arbeidspakke + one: "%{count} work package" other: "%{count} arbeidspakker" zero: Ingen arbeidspakker label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: i går label_zen_mode: Zen-modus @@ -4238,7 +4634,7 @@ start_tls: STARTTLS start_tls_description: Sender en STARTTLS-kommando etter å ha koblet til standard LDAP port. Anbefalt for krypterte tilkoblinger. tls_options: - tls_certificate_description: Hvis LDAP-tjenersertifikatet ikke er i registeret over betrodde kilder i dette systemet, kan du legge det inn manuelt her. Angi en PEM X509 sertifikat-tekst. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Kontroller SSL-sertifikat verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ you_have: Du har logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Til varslingssenter @@ -4351,8 +4749,8 @@ mentioned: Du har blitt nevnt i en kommentar mentioned_by: "%{user} nevnte deg i en kommentar" more_to_see: - one: Det er 1 arbeidspakke til med varsler. - other: Det er %{count} flere arbeidspakker med varsler. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Åpne i nettleser reason: assigned: Tildelt @@ -4530,6 +4928,13 @@ create_button: Opprett dialog_body: Dette tokenet tillater tredjepartsprogrammer å kommunisere med forekomsten. For å differensiere den nye API-token, vennligst gi den et navn. dialog_title: Opprett nytt API-token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Tilgangsnøkkelen kunne ikke opprettes: %{error}' failed_to_reset_token: 'Tilgangstoken kunne ikke tilbakestilles: %{error}' @@ -4543,10 +4948,26 @@ password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Tilgangsnøkler description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Handling expiration: Utløper @@ -4748,7 +5169,6 @@ notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "Det finnes %{number} resultater. \n bruk tab for å fokusere det første resultatet." notice_principals_found_single: "Det er ett resultat. \n Bruk tab for å fokusere det." - notice_project_cannot_update_custom_fields: 'Du kan ikke oppdatere prosjektets tilgjengelige egendefinerte felter. Prosjektet er ugyldig: %{errors}' notice_project_not_deleted: Prosjektet ble ikke slettet. notice_project_not_found: Prosjektet ble ikke funnet. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ notice_successful_create: Opprettelsen var vellykket. notice_successful_delete: Slettingen var vellykket. notice_successful_update: Oppdateringen var vellykket. - notice_successful_update_custom_fields_added_to_project: | - Vellykket oppdatering. Spesifikke felter for aktiverte typer blir automatisk aktivert - på arbeidspakkeskjema. Se mer. notice_to_many_principals_to_display: |- Det er for mange resultater. Forsøk å innskrenke søket ved å skrive inn navnet på det nye medlemmet (eller gruppen). @@ -4862,7 +5279,7 @@ ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ or: eller rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Aktivert item: Element @@ -5046,8 +5460,8 @@ label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ permission_change_work_package_status_explanation: Tillater endring av status uten å legge til arbeidspakker permission_comment_news: Kommenter nyheter permission_commit_access: Lese/skrive tilgang til kodelageret (standard) - permission_copy_projects: Kopier prosjekter + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Opprett sikkerhetskopier @@ -5105,6 +5519,7 @@ permission_export_projects: Export projects permission_export_work_packages: Eksporter arbeidspakker permission_header_for_project_module_work_package_tracking: Arbeidspakker og Gantt-diagrammer + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ permission_manage_dashboards: Behandle dashbord permission_manage_forums: Administrere forum permission_manage_members: Administrere medlemmer + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Administrere nyheter permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ permission_save_bcf_queries: Lagre BCF-spørringer permission_save_queries: Lagre visninger permission_search_project: Søk i prosjekt - permission_select_custom_fields: Velg egendefinerte felt permission_select_project_custom_fields: Velg prosjektegenskaper permission_select_project_modules: Velg prosjektmoduler permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ permission_work_package_assigned: Bli utførende/ansvarlig permission_work_package_assigned_explanation: Arbeidspakker kan tildeles brukere og grupper med denne rollen i det respektive prosjektet placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Slett plassholderbruker deletion_info: data_consequences: 'Alle forekomster av plassholderbrukeren (f.eks. som utførende, ansvarlig eller andre brukerverdier) blir tilordnet på nytt til en konto kalt "Slettet bruker". Siden dataene for hver slettede konto blir tilordnet denne kontoen vil det ikke være mulig å skille dataene brukeren har opprettet fra data for en annen slettet konto. @@ -5198,7 +5625,7 @@ name: OmniAuth SAML / Enkeltpålogging på portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ Det kan brukes til å fremheve arbeidspakker i tabellen. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 prosjekt + one: "%{count} project" other: "%{count} prosjekter" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Det er ingen egendefinerte felt tilgjengelig. forums: no_results_content_text: Lag et nytt forum @@ -5451,14 +5884,14 @@ new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Lag en ny versjon - no_results_title_text: Det finnes ingen versjoner for prosjektet. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Arbeidspakkediagram work_package_priorities: @@ -5478,15 +5911,27 @@ status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Bruk forhåndskonfigurert filter configure_view: @@ -5515,8 +5960,8 @@ action_title: React add_reaction: Add reaction and_others: - one: og 1 annen - other: og %{count} andre + one: and %{count} other + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5637,6 +6082,31 @@ warnings: cannot_annotate: Denne filen kan ikke kommenteres. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maks antall linjeforskjeller som vises setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Vis arbeidspakker for underprosjekter som standard for hovedprosjekter + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Varighetsformat setting_duration_format_days_and_hours: Dager og timer setting_duration_format_hours_only: Kun timer @@ -5867,6 +6346,7 @@ setting_start_of_week: Uken starter på setting_sys_api_description: Pakkebrønn web-tjenesten sørger for integrasjon og bruker autentisering for tilgang til pakkebrønner. setting_sys_api_enabled: Aktiver web-tjeneste for pakkebrønn + setting_sys_api_key: API key setting_time_format: Tidspunkt setting_total_percent_complete_mode: Beregning av % fullstendige hierarkiske summer setting_total_percent_complete_mode_simple_average: Enkel gjennomsnitt @@ -5919,7 +6399,7 @@ description_html: 'Velg modusen for integrasjon av antivirusskanner.
  • %{disabled_option}: Opplastede filer blir ikke skannet for virus.
  • %{socket_option}: Du har konfigurert ClamAV på samme server som OpenProject og skanningen daemon clamd kjører i bakgrunnen
  • %{host_option}: Du sender filer til en ekstern virusskanningsvert.
' - remaining_quarantined_files_html: 'Virusskanning er deaktivert. %{file_count} forblir i karantene. For å gjennomgå filer i karantene, besøk denne lenken: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virusskanning har blitt aktivert. Det er %{file_count} filer som ble lastet opp tidligere og fortsatt må skannes. Prosessen er planlagt i bakgrunnen. Filene forblir tilgjengelige under skanningen. @@ -5930,6 +6410,7 @@ ' title: Virusskanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deaktivering av dette valget vil skjule listen over vedlegg på arbeidspakkefiler for nye prosjekter. Filene som ligger i beskrivelsen av en arbeidspakke vil fortsatt bli lastet opp i den interne lagringen. ' @@ -6021,12 +6502,12 @@ confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ heading: New phase no_gate: No gate non_defined: Ingen faser definert. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Faser start_gate: Start gate @@ -6131,7 +6613,7 @@ section_work_week: Arbeidsuke sharing: count: - one: 1 bruker + one: "%{count} user" other: "%{count} brukere" zero: 0 brukere denied: Du har ikke tillatelser til å dele %{entities}. @@ -6222,19 +6704,19 @@
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Unntatt fra totaler is_closed: Stengt - is_default: Standard is_readonly: Kun lesetilgang + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Legg til en ny status no_results_title_text: Det er for tiden ingen status for arbeidspakken. + status_actions: Status actions support: array: sentence_connector: og skip_last_comma: usant text_access_token_hint: Tilgang til nøkler tillater deg å gi eksterne applikasjoner tilgang til ressurser i OpenProject. - text_accessibility_hint: Tilgjengelighetsmodus er laget for brukere som er blinde, motorisk svekkede eller har dårlige øyne. For de sistnevnte fokuserte elementene er det spesielt uthevet. Vær oppmerksom på at modulen for logger er ikke tilgjengelig i denne modusen. text_analyze: 'Videre analyse: %{subject}' text_are_you_sure: Er du sikker? text_are_you_sure_continue: Er du sikker på at du vil fortsette? @@ -6277,12 +6759,6 @@ ' text_custom_field_possible_values_info: En verdi pr. linje - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Dette er ikonet som vises i mobilen eller nettbrettet når du plasserer et bokmerke på startsiden din. Den må være en firkant 180 av 180 piksler stor PNG-bildefil. Sørg for at bakgrunnen for bildet ikke er gjennomsiktig, ellers vil den se dårlig ut på iOS. ' @@ -6332,6 +6808,7 @@ text_length_between: Lengde mellom %{min} og %{max} tegn. text_line_separated: Flere verdier tillatt (en verdi pr. linje). text_load_default_configuration: Last inn standardoppsettet + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Det finnes ingen tilgangsnøkler som kan konfigureres. text_no_configuration_data: |- Roller, typer, arbeidspakkestatuser og arbeidsflyt har ikke blitt satt opp ennå. @@ -6437,6 +6914,68 @@ tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6446,14 +6985,40 @@ finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6462,8 +7027,10 @@ caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6492,21 +7059,21 @@ file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Deaktiver alle label_enable_all: Aktiver alle label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6523,6 +7090,8 @@ confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6544,6 +7113,14 @@ query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6553,12 +7130,14 @@ tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6572,12 +7151,12 @@ manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6590,10 +7169,12 @@ empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Prosjekter + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6608,43 +7189,17 @@ title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6652,6 +7207,9 @@ submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6660,13 +7218,14 @@ description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6680,12 +7239,16 @@ success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6694,33 +7257,74 @@ filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Lag en ny type no_results_title_text: Det finnes for øyeblikket ingen typer. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorer denne advarselen. message: Du kan oppleve feil og svekket opplevelse på denne siden. @@ -6739,8 +7343,8 @@ authorization_rejected: Du har ikke tilgang til å logge på. blocked: midlertidig låst blocked_num_failed_logins: - one: midlertidig utesteng (ett mislykkede pålogginger) - other: midlertidig låst (%{count} mislykkede innloggingsforsøk) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Du er i ferd med å endre status for '%{name}'. Er du sikker på at du vil fortsette? deleted: Slettet bruker department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6840,7 +7444,7 @@ deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Enhet / Operativsystem expires: Utløper - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Siste tilkobling may_not_delete_current: Du kan ikke slette din nåværende økt. session_name: "%{browser_name} %{browser_version} på %{os_name}" @@ -6900,13 +7504,19 @@ start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: lukket version_status_locked: låst version_status_open: åpne versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Det er ingen arbeidspakker tilordnet denne versjonen for øyeblikket. work_packages_in_archived_projects: Versjonen er delt med arkiverte prosjekter som fortsatt har arbeidspakker tilordnet denne versjonen. Disse er tellt, men vil ikke vises i de koblede visningene. @@ -7076,12 +7686,14 @@ required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Arbeidspakkene kunne ikke kopieres. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'De følgende arbeidspakkene kunne ikke lagres:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: underordnete av valgt move_failed: Arbeidspakkene kunne ikke flyttes. @@ -7106,17 +7718,17 @@ description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7174,18 +7786,154 @@ description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7217,37 +7965,53 @@ version: no_results_title_text: Det finnes ingen versjoner tilgjengelige. x_descendants: - one: Én underordnet arbeidspakke - other: "%{count} underordnede arbeidspakker" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7256,12 +8020,88 @@ matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Endre virkedager dialog: diff --git a/config/locales/crowdin/pl.seeders.yml b/config/locales/crowdin/pl.seeders.yml index a6520c8bdc1c..88d11dd495f8 100644 --- a/config/locales/crowdin/pl.seeders.yml +++ b/config/locales/crowdin/pl.seeders.yml @@ -250,70 +250,26 @@ pl: W tym module możesz przekazywać aktualności dotyczące projektu członkom swojego zespołu. versions: item_0: - name: Backlog błędów - item_1: - name: Backlog produktu - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Wersja 1.0 content: | - ### Spotkanie dotyczące planowania sprintu - - _Udokumentuj tutaj tematy na spotkanie dotyczące planowania sprintu_ - - * Czas w przedziałach (8 h) - * Dane wejściowe: backlog produktu - * Dane wyjściowe: backlog sprintu - - * Podzielony na dwa dodatkowe przedziały czasowe po 4 godziny: - - * Właściciel Produktu przedstawia [backlog produktu]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i priorytety zespołowi oraz wyjaśnia cel sprintu, na który zespół musi się zgodzić. Wspólnie ustalają priorytety tematów z backlogu produktu, którymi zespół zajmie się w następnym sprincie. Zespół zobowiązuje się do omówionej dostawy. - * Zespół planuje samodzielnie (bez właściciela produktu) szczegóły i dzieli zadania z omówionych wymagań, aby skonsolidować [backlog sprintu] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Codzienne spotkanie Scrum - - _Udokumentuj tutaj tematy na codzienne spotkanie Scrum_. + ### Wersja 1.0 - * Krótkie, codzienne spotkanie zespołu dotyczące statusu. - * Czas w przedziałach (maks. 15 min). - * Spotkanie na stojąco w celu omówienia następujących tematów z [panelu zadań](##sprint:scrum_project__version__sprint_1). - * Co planuję zrobić do następnego codziennego Scrum? - * Co zablokowało moją pracę (przeszkody)? - * Mistrz Scrum moderuje i notuje [przeszkody sprintu].(##sprint:scrum_project__version__sprint_1). - * Właściciel produktu może uczestniczyć, aby być na bieżąco. + _Udokumentuj tutaj, co zawiera ta wersja._ - ### Spotkanie przeglądowe dotyczące sprintu - - _Udokumentować tutaj tematy na spotkanie przeglądowe dotyczące sprintu_. - - * Czas w przedziałach (4 h). - * Maksymalnie jedna godzina czasu przygotowania na osobę. - * Zespół pokazuje właścicielowi produktu i innym zainteresowanym osobom, co zostało osiągnięte w tym sprincie. - * Ważne: żadnych fikcyjnych danych i PowerPointa! Zademonstruj tylko funkcjonalność gotowego produktu (przyrosty). - * Informacje zwrotne od właściciela produktu, interesariuszy i innych osób są pożądane i zostaną uwzględnione w dalszych pracach. - * Na podstawie zademonstrowanych funkcjonalności właściciel produktu decyduje o uruchomieniu tego przyrostu lub dalszym jego rozwoju. Ta możliwość pozwala na wczesny zwrot z inwestycji. - - - ### Retrospektywa sprintu - - _Udokumentuj tutaj tematy na spotkanie w sprawie retrospektywy sprintu_. - - * Czas w przedziałach (3 h). - * Po przeglądzie sprintu będzie moderowane przez mistrza Scrum. - * Zespół omawia sprint: co poszło dobrze, co należy poprawić, aby być produktywniejszym w następnym sprincie, a nawet dobrze się bawić. - item_3: - name: Sprint 2 + * Pakiety robocze tej wersji to te, których docelową wersją jest 1.0. + * Data wydania to data kamienia milowego *Wersja v1.0*. + * Otwórz [plan działania]({{opSetting:base_url}}/projects/your-scrum-project/roadmap), aby śledzić postępy wszystkich wersji. + * Otwórz [Ustawienia projektu → Wersje]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions), aby powiązać z wersją inną stronę wiki. categories: item_0: Kategoria 1 (do zmiany w ustawieniach projektu) queries: item_0: name: Plan projektu item_1: - name: Backlog produktów + name: Wersja 1.1 item_2: - name: Sprint 1 + name: Wersja 1.0 item_3: name: Zadania boards: @@ -339,20 +295,21 @@ pl: options: name: Pierwsze kroki text: | - Cieszymy się, że do nas dołączasz! Sugerujemy wypróbowanie kilku rzeczy, aby rozpocząć pracę w OpenProject. + Cieszymy się, że do nas dołączasz! Proponujemy wypróbować kilka funkcji, aby rozpocząć pracę z OpenProject. - _Spróbuj wykonać następujące kroki:_ + _Wykonaj następujące kroki:_ - 1. *Zaproś nowych członków do swojego projektu*: → Przejdź do obszaru [Członkowie]({{opSetting:base_url}}/projects/your-scrum-project/members) w nawigacji projektu. - 2. *Wyświetl backlog produktowy i backlog sprintów*: → Przejdź do obszaru [Backlogi]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) w nawigacji projektu. - 3. *Wyświetl panel zadań*: → Przejdź do obaszru [Backlogi]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Kliknij strzałkę w prawo na opcji Sprint → Wybierz opcję [Panel zadań](##sprint:scrum_project__version__sprint_1). - 4. *Utwórz nowy pakiet roboczy*: → Przejdź do obszaru [Pakiety robocze → Utwórz]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Utwórz i zaktualizuj plan projektu*: → Przejdź do obszaru [Plan projektu](##query:scrum_project__query__project_plan) w nawigacji projektu. - 6. *Utwórz stronę wiki sprintu*: → Przejdź do obszaru [Backlogi]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i otwórz stronę wiki sprintu z prawego menu rozwijanego w sprincie. Możesz edytować [szablon wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) w zależności od potrzeb. + 1. *Zaproś nowych członków do swojego projektu*: → Przejdź do sekcji [Członkowie]({{opSetting:base_url}}/projects/your-scrum-project/members) w nawigacji projektu. + 2. *Wyświetl backlogi produktu i sprintu*: → Przejdź do obszaru [Backlogi]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) w nawigacji projektu. + 3. *Utwórz sprint*: → Przejdź do obszaru [Backlogi]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i kliknij przycisk „+ Sprint”, aby utworzyć nowy sprint. Przenieś pakiety robocze z backlogu do sprintu, aby zaplanować pracę, która ma zostać wykonana. Gdy wszystko będzie gotowe, kliknij przycisk „Rozpocznij sprint”. + 4. *Wyświetl swoją tablicę sprintu*: → Przejdź do obszaru [Tablice]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Otwórz tablicę sprintu, klikając nazwę sprintu. + 5. *Utwórz nowy pakiet roboczy*: → Przejdź do obszaru [Pakiety robocze → Utwórz]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Utwórz i zaktualizuj plan projektu*: → Przejdź do obszaru [Plan projektu](##query:scrum_project__query__project_plan) w nawigacji projektu. 7. *Aktywuj kolejne moduły*: → Przejdź do obszaru [Ustawienia projektu → Moduły]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Tutaj znajdziesz nasze [instrukcje obsługi](https://www.openproject.org/docs/user-guide/). - Daj nam znać, jeśli masz jakieś pytania lub potrzebujesz pomocy. Skontaktuj się z nami: [support[at]openproject.com](mailto:support@openproject.com). + + Tutaj znajdziesz nasze [przewodniki](https://www.openproject.org/docs/user-guide/). + Jeśli masz pytania lub potrzebujesz pomocy, daj nam znać. Skontaktuj się z nami: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Pakiety robocze diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index aae3d168e11f..a2d6e743244d 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -40,7 +40,9 @@ pl: view: Dynamiczny link do widoku umieszczonego za pomocą makra. work_package: Dynamiczny link do pakietu roboczego umieszczonego za pomocą makra. account: + already_have_an_account: You already have an account? auth_source_login_html: Zaloguj się jako %{login} aby aktywować konto. + continue_with_provider: Continue with %{name} delete: Usuń konto delete_confirmation: Czy na pewno chcesz usunąć to konto? deletion_info: @@ -65,7 +67,9 @@ pl: error_self_registration_limited_provider: 'Rejestracja użytkowników jest ograniczona w przypadku dostawcy pojedynczego logowania „%{name}”. Poproś administratora o aktywację konta dla Ciebie lub zmianę limitu samorejestracji dla tego dostawcy. ' - login_with_auth_provider: lub zaloguj się za pomocą istniejącego konta + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Przejdź do logowania omniauth_direct_login_redirecting: Przekierowywanie do Twojego dostawcy tożsamości… omniauth_login: Zaloguj się, aby aktywować konto. @@ -118,6 +122,8 @@ pl: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Klienci SCIM + automation: + actions: Actions calculated_value_error: customized_id: Niestandardowy identyfikator customized_type: Typ niestandardowy @@ -128,8 +134,6 @@ pl: repository: Repozytorium comment: commented: Skomentował - custom_action: - actions: Akcje custom_field: admin_only: Tylko dla administratorów allow_non_open_versions: Zezwalaj na nieotwarte wersje @@ -168,6 +172,7 @@ pl: uid: Numer klienta emoji_reaction: reactable: Zareagowano na + reaction: Reaction enterprise_token: active_user_count_restriction: Aktywni użytkownicy encoded_token: Token wsparcia Enterprise @@ -179,20 +184,44 @@ pl: company: Firma favorite: favorited: Element + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Liczba kolumn page: Strona row_count: Liczba wierszy widgets: Widżety group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Grupy użytkowników identity_url: Adres URL tożsamości organizational_unit: Jednostka organizacyjna parent: Grupa nadrzędna group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Jednostka organizacyjna parent: Grupa nadrzędna import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nazwa wystąpienia Jira personal_access_token: Osobisty token dostępu url: Adres URL wystąpienia Jira @@ -223,6 +252,7 @@ pl: title: Tytuł member: blocked: Zablokowany + principal_type: Typ członka roles: Role notification: read_ian: Odczytaj w aplikacji @@ -235,6 +265,7 @@ pl: position: Pozycja persisted_query: filters: Filtry + group_bys: Grupuj wyniki wg name: Nazwa orders: Zamówienia selects: Wybory @@ -367,6 +398,8 @@ pl: ongoing: Bieżący spent_on: Data type: Typ + token/base: + expires_on: Expiration date token/ical: calendar: Kalendarz ical_token_query_assignment: Przypisanie zapytania @@ -384,19 +417,17 @@ pl: type_variant: attribute_groups: Formularz default_work_package_description: Domyślny tekst opisu - defaults_source: Źródło ustawień domyślnych enabled_in_new_projects: Aktywne w nowych projektach - form_configuration_source: Źródło formularza + linked_aspects: Inherited configuration patterns: Wzorce - pdf_export_source: Źródło eksportu PDF - project_attributes_source: Źródło atrybutów projektu project_types: Projekty używające tego wariantu variant: Wariant variant_name: Nazwa - workflows_source: Źródło przepływów pracy + workflow: Workflow user: admin: Administrator auth_source: Źródło uwierzytelniania + avatar_type: Avatar type consented_at: Zgodę na current_password: Aktualne hasło department: Dział @@ -410,7 +441,7 @@ pl: last_name: Nazwisko ldap_auth_source: Połączenie LDAP new_password: Nowe hasło - password_confirmation: Potwierdzenie + password_confirmation: Password confirmation user_custom_field: custom_field_section: Sekcja user_non_working_time: @@ -419,11 +450,15 @@ pl: user_preference: auto_hide_popups: Automatycznie ukrywaj banery sukcesu auto_hide_popups_caption: Po włączeniu tej funkcji zielone banery sukcesu będą automatycznie znikać po 5 sekundach. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Zaktualizuj alerty button_update_look_and_feel: Zaktualizuj wygląd i działanie button_update_user_information: Zaktualizuj profil comments_sorting: Wyświetl działania pakietu roboczego posortowane według daily_reminders: Codzienne przypomnienia + date_format: Date format disable_keyboard_shortcuts: Wyłącz skróty klawiaturowe dismissed_enterprise_banners: Ukryte banery przedsiębiorstwa force_dark_theme_contrast: Wymuś wysoki kontrast w trybie ciemnym @@ -434,13 +469,23 @@ pl: header_look_and_feel: Wygląd i działanie impaired: Ułatwienia dostępu increase_contrast: Zwiększ kontrast - increase_contrast_caption: Włącza tryb wysokiego kontrastu dla wybranego trybu kolorów. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Zwiększ kontrast motywu mode_guideline: Niektóre tryby zastąpią niestandardowe kolory motywów w celu zapewnienia dostępności i czytelności. W celu pełnej obsługi motywów niestandardowych wybierz tryb Jasny. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Tryb kolorów + time_format: Time format time_zone: Strefa czasowa warn_on_leaving_unsaved: Ostrzegaj mnie, gdy opuszczam zadanie z niezapisanymi zmianami workdays: Dni robocze + user_resource: + description: Opis + name: Nazwa + user_filter: Filtr użytkownika + user_resource_detail: + description: Opis + user_filter: Filtr użytkownika user_working_hours: availability_factor: Współczynnik dostępności days: Dni robocze @@ -491,6 +536,7 @@ pl: title: Dni robocze true: włącz dni wolne od pracy journal_internal: Dziennik wewnętrzny + labels: Labels notify: Powiadom observed_in_versions: Zauważono w następujących wersjach parent: Rodzic @@ -519,6 +565,10 @@ pl: work_package: Pakiet roboczy work_package_version: kind: Rodzaj + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: musi być zaakceptowane. @@ -590,6 +640,8 @@ pl: regex_invalid: nie może być zastosowany z zastosowanym wyrażeniem regularnym. regex_list_invalid: Nie można przeanalizować %{invalid_lines} wierszy jako wyrażenia regularnego. regex_match_failed: nie pasuje do wyrażenia regularnego %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: musi być mniejsze niż lub równe z maksymalnej długości. smaller_than_or_equal_to_max_value: musi być równy wartości maksymalnej lub mniejszy. ssrf_filtered: narusza zasady tego wystąpienia OpenProject dotyczące SSRF. @@ -612,6 +664,10 @@ pl: user_in_ldap_managed_department: Ten użytkownik należy do działu zarządzanego za pomocą synchronizacji LDAP i nie można go przenieść. wrong_length: ma nieprawidłową długość (powinno mieć %{count} znaków). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -674,6 +730,16 @@ pl: general_consent: Zaakceptuj regulamin. favorite: already_favorited: "– zostało już polubione." + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: wartość końcowa musi być większa niż wartość początkowa. outside: jest poza siatką. @@ -691,6 +757,13 @@ pl: not_unique: jest już w użyciu. Wybierz inną nazwę. jira: invalid_protocol: Podaj prawidłowy protokół (http lub https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ pl: types: cannot_assign_multiple_variants_of_parent: W projekcie można włączyć tylko jeden wariant typu cannot_assign_variant_and_parent: 'Nie można przypisać wariantu i jego elementu nadrzędnego ' - cannot_assign_variants_yet: Wariantów nie można jeszcze włączyć w projekcie. Włącz flagę funkcji, aby wypróbować warianty in_use_by_work_packages: 'nadal w użyciu przez Zestawy zadań: %{types}' switch_target_blank: Wybierz wariant, na który chcesz się przełączyć switch_target_identical: Typ docelowy musi różnić się od typu obecnie stosowanego w projekcie @@ -859,42 +931,26 @@ pl: blank: Podaj nazwę tokena format: "%{message}" in_use: Ta nazwa tokena jest już używana, wybierz inną + type: + attributes: + base: + in_use_by_work_packages: Tego typu nie można usunąć, dopóki jest on wykorzystywany w pakietach roboczych. type_variant: attributes: - attribute_groups: - attribute_unknown: Użyto nieprawidłowego atrybutu pakietu roboczego. - attribute_unknown_name: Użyto nieprawidłowego atrybutu pakietu roboczego. %{attribute} - duplicate_group: Nazwy grupy %{group} użyto więcej niż raz. Nazwy grup muszą być niepowtarzalne. - group_without_name: Nazwa grupy nie może być pusta. - query_invalid: 'Osadzona kwerenda %{group} jest nieprawidłowowa: %{details}' base: - borrowed_by_variants: Nie można go usunąć, dopóki jego konfiguracja jest ponownie wykorzystywana przez %{names}. is_default_variant: Domyślnej konfiguracji typu nie można usunąć. project_variants_not_allowed: Ten typ nie pozwala na tworzenie wariantów w ramach projektów. restrict_dependent_destroy: has_many: Nie można go usunąć, dopóki jest nadal używany w projektach. - defaults_source_id: - must_be_available_to_the_variant: musi być konfiguracją, której ten projekt może używać. - would_create_cycle: połączyłby te konfiguracje w pętlę. enabled_in_new_projects: not_available_to_project_owned_variant: nie można ustawić dla wariantu należącego do projektu. taken: jest już ustawiony na inną konfigurację tego typu. - form_configuration_source_id: - must_be_available_to_the_variant: musi być konfiguracją, której ten projekt może używać. - would_create_cycle: połączyłby te konfiguracje w pętlę. patterns: invalid_tokens: Co najmniej jeden atrybut wewnątrz pola jest nieprawidłowy. Popraw atrybuty przed zapisaniem. - pdf_export_source_id: - must_be_available_to_the_variant: musi być konfiguracją, której ten projekt może używać. - would_create_cycle: połączyłby te konfiguracje w pętlę. - project_attributes_source_id: - must_be_available_to_the_variant: musi być konfiguracją, której ten projekt może używać. - would_create_cycle: połączyłby te konfiguracje w pętlę. variant: must_belong_to_the_type: musi być wariantem tego typu. - workflows_source_id: - must_be_available_to_the_variant: musi być konfiguracją, której ten projekt może używać. - would_create_cycle: połączyłby te konfiguracje w pętlę. + workflow: + not_available_to_this_variant: musi być przepływem dokumentów, którego ten projekt może używać. user: attributes: base: @@ -908,10 +964,10 @@ pl: numeric: liczbowe (np. 1) requirements_not_met: 'Musi zawierać znaki następujących typów: %{rules}' reused: - one: było użyte wcześniej. Proszę wybrać inne niż poprzednie. - few: było użyte wcześniej. Proszę wybrać inne niż %{count} poprzednie. - many: było użyte wcześniej. Proszę wybrać inne niż %{count} poprzednie. - other: było użyte wcześniej. Proszę wybrać inne niż %{count} poprzednie. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: specjalne (np. '%') uppercase: wielkie litery (np. 'A') password_confirmation: @@ -980,6 +1036,8 @@ pl: identifier: must_not_be_changed: 'nie wolno zmieniać ręcznie. Identyfikatory pakietów roboczych są przydzielane automatycznie i rozpoznawane za pomocą tabeli aliasów, więc ręczna zmiana tych identyfikatorów powoduje zerwanie powiązań oraz utratę historii identyfikatorów. Jeśli zmiana ta jest zamierzona, należy zapisać dane za pomocą polecenia „save(context: :%{context})” oraz zadbać o spójność tabeli work_package_semantic_aliases.' semantic_identifier_incomplete: i sequence_number muszą być ustawione w tym samym czasie. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nie może być w innym projekcie. cannot_be_milestone: nie może być kamieniem milowym. @@ -1007,6 +1065,8 @@ pl: status_id: status_invalid_in_type: jest nieprawidłowy, ponieważ bieżący stan nie istnieje w tym typie. status_transition_invalid: jest niewłaściwy z powodu braku prawidłowego przekształcenia ze starego do nowego statusu dla aktualnej roli użytkownika. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: nie może być kamieniem milowym, ponieważ ten pakiet roboczy ma elementy podrzędne. is_not_a_valid_target_for_time_entries: 'Zadanie #%{id} jest niepoprawnym celem do ponownego rozpisania czasu.' @@ -1015,10 +1075,10 @@ pl: template: body: 'Sprawdź następujące pola:' header: - one: 1 błąd uniemożliwia zapisanie %{model} - few: "%{count} błędy uniemożliwiają zapisanie %{model}" - many: "%{count} błędy uniemożliwiają zapisanie %{model}" - other: "%{count} błędy uniemożliwiają zapisanie %{model}" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Działanie @@ -1080,6 +1140,11 @@ pl: few: Dostawcy uwierzytelniania many: Dostawcy uwierzytelniania other: Dostawcy uwierzytelniania + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Kopia zapasowa few: Kopie zapasowe @@ -1115,11 +1180,6 @@ pl: few: Komentarze many: Komentarze other: Komentarze - custom_action: - one: Działanie niestandardowe - few: Działania niestandardowe - many: Działania niestandardowe - other: Działania niestandardowe custom_field: one: Pole niestandardowe few: Pola niestandardowe @@ -1195,6 +1255,11 @@ pl: few: Ustawienia eksportu many: Ustawienia eksportu other: Ustawienia eksportu + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Forum few: Fora @@ -1225,6 +1290,11 @@ pl: few: Priorytety many: Priorytety other: Priorytety + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: Połączenie LDAP few: Połączenia LDAP @@ -1617,7 +1687,28 @@ pl: admin: banners: environment_configured_readonly: Wartości te są konfigurowane za pomocą zmiennych środowiskowych i nie można ich edytować tutaj. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Kolory podstawowe main_menu: Główne menu boczne @@ -1650,7 +1741,11 @@ pl: tab_interface: Interfejs tab_pdf_export_font: Czcionka eksportu PDF tab_pdf_export_styles: Style eksportu PDF - theme_warning: Zmiana motywu poskutkuje zastąpieniem stylu niestandardowego. Projekt zostanie wówczas utracony. Czy na pewno chcesz kontynuować? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Wyślij swój token wsparcia wersji Enterprise book_now: Zarezerwuj teraz @@ -1683,7 +1778,7 @@ pl: import: title: Import info: - database_deprecation_html: 'Począwszy od wersji OpenProject 16.0, do korzystania z OpenProject wymagany jest system PostgreSQL 16. Ta instalacja pozostanie funkcjonalna z obecną bazą danych, ale należy spodziewać się niekompatybilności w przyszłych wersjach.
Przygotowaliśmy [przewodniki uaktualnienia dla wszystkich metod instalacji](upgrade_guide). Uaktualnienie można przeprowadzić przed następną wersją w dowolnym momencie, postępując zgodnie z instrukcjami. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Alokator pamięci Jemalloc @@ -1691,12 +1786,15 @@ pl: actions: button_edit: Edytuj konfigurację button_open: Otwórz uruchomienia + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Prosimy o pomoc w ulepszaniu narzędzia Migrator Jira poprzez przekazywanie opinii i udostępnianie nam swoich danych. Możesz [dołączyć do społeczności programistów](link) narzędzia Migrator Jira. ' description: Migrator Jira jest obecnie w fazie beta. Obecnie obsługujemy jedynie wersje Jira Server / Data Center 10.x i 11.x. Wystąpienia w chmurze są obecnie nieobsługiwane. title: Wersja beta — wypróbuj! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Skonfiguruj host usługi Jira, aby rozpocząć importowanie elementów z Jira do tego wystąpienia OpenProject. title: Nie skonfigurowano jeszcze hostów Jira @@ -1729,16 +1827,30 @@ pl: description: Jira używa identyfikatorów problemów składających się z klucza projektu i numeru kolejnego (PRJ-123). OpenProject również je obsługuje, ale należy je włączyć [tutaj](link). title: Identyfikatory semantyczne oparte na projektach muszą być włączone. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Dodaj konfigurację - button_delete_token: Usuń token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Zapisz konfigurację - delete_token_confirm: Czy na pewno chcesz usunąć token? Poskutkuje to wyłączeniem połączenia Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nazwa - personal_access_token: Osobisty token dostępu + personal_access_token: Personal access token (PAT) url: Adres URL serwera / centrum danych Jira label_testing: Testowanie konfiguracji... - test_configuration_caption: Możesz przetestować tę konfigurację, [klikając tutaj](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edytuj uruchomienie @@ -1842,40 +1954,40 @@ pl: title: Upewnij się, że masz kopię zapasową! parts: issues: - one: 1 problem - few: "%{count} problemy" - many: "%{count} problemów" - other: "%{count} problemu" + one: "%{count} issue" + few: "%{count} issues" + many: "%{count} issues" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 projekt - few: "%{count} projekty" - many: "%{count} projektów" - other: "%{count} projektu" + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" statuses: - one: 1 status - few: "%{count} statusy" - many: "%{count} statusów" - other: "%{count} statusu" + one: "%{count} status" + few: "%{count} statuses" + many: "%{count} statuses" + other: "%{count} statuses" types: - one: 1 typ - few: "%{count} typy" - many: "%{count} typów" - other: "%{count} typu" + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" users: - one: 1 użytkownik - few: "%{count} użytkowników" - many: "%{count} użytkowników" - other: "%{count} użytkownika" + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" work_packages: - one: 1 pakiet roboczy - few: "%{count} pakiety robocze" - many: "%{count} pakietów roboczych" - other: "%{count} pakietu roboczego" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" revert_dialog: confirm: Rozumiem, że to cofnięcie poskutkuje trwałym usunięciem danych description: Spowoduje to usunięcie wszystkich zaimportowanych obiektów (w tym całych projektów). @@ -1940,10 +2052,10 @@ pl: caption: Wybierz co chcesz zaimportować do OpenProject caption_done: Ukończono caption_done_description: - one: Jako zakres wybrano 1 projekt - few: Jako zakres wybrano %{count} projekty - many: Jako zakres wybrano %{count} projektów - other: Jako zakres wybrano %{count} projektu + one: "%{count} project selected as scope" + few: "%{count} projects selected as scope" + many: "%{count} projects selected as scope" + other: "%{count} projects selected as scope" description: Wybierz dane, które chcesz zaimportować z dostępnych danych pobranych z hosta wystąpienia Jira. elements: custom_fields: Podzestaw pól niestandardowych @@ -2007,23 +2119,55 @@ pl: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Interfejs API Jira zwrócił status błędu %{status}. Sprawdź adres URL wystąpienia usługi Jira i token interfejsu API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Błąd połączenia: %{message}' error: Podczas testowania połączenia wystąpił nieoczekiwany błąd failed: 'Połączenie nie powiodło się: nie można pobrać informacji o serwerze' invalid_url: Podaj prawidłowy adres URL - missing_credentials: Aby przetestować połączenie, podaj zarówno adres URL, jak i osobisty token dostępu parse_error: Nie udało się przeanalizować odpowiedzi z serwera. Serwer może nie być prawidłowym wystąpieniem usługi Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Połączono z serwerem %{server} (wersja %{version}) - token_error: Nieprawidłowy token interfejsu API. Sprawdź swoje dane poświadczenia w konfiguracji. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Migrator Jira - token_deleted: Token został usunięty. user: unknown_name: Nieznany journal_aggregation: caption_with_maximum: 'Działania użytkownika w pakiecie roboczym (zmiana opisu, statusu, wartości lub pisanie komentarzy) są grupowane, jeśli zostały wykonane w tym okresie. Kontroluje również powiadomienia i opóźnienia [obiektu webhook](webhook_link). Maksymalny czas wynosi %{max} min. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: Protokół kontekstu modelu umożliwia agentom AI dostarczanie użytkownikom narzędzi i zasobów udostępnianych przez to wystąpienie OpenProject. Ta funkcja jest nadal w wersji beta. @@ -2054,6 +2198,18 @@ pl: update: failure: Nie można zaktualizować konfiguracji MCP. success: Konfiguracja MCP została zaktualizowana. + members: + index: + blank_description: Żadne członkostwo nie spełnia kryteriów bieżącego filtra. + blank_title: Brak członkostw + filter_label: Wyszukaj użytkowników + inheritance_source: "%{type} %{name}" + inherited_via: "(poprzez: %{source})" + title: Członkostwa + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Więcej informacji znajdziesz na naszej stronie poświęconej integracjom i wtyczkom. no_results_title_text: Obecnie nie ma żadnych zainstalowanych wtyczek. @@ -2067,10 +2223,10 @@ pl: confirm_button: Usuń zastrzeżenie identyfikatora description: Usunięcia zastrzeżenia tego identyfikatora projektu nie można cofnąć. Używające go zewnętrzne linki i integracje przestaną być rozpoznawane, a nazwa stanie się dostępna dla każdego nowego projektu. description_with_work_packages: - one: Usunięcia zastrzeżenia tego identyfikatora projektu (i identyfikatora jego 1 pakietu roboczego) nie można cofnąć. Zewnętrzne linki i integracje korzystające z niego przestaną być rozpoznawane, a nazwa stanie się dostępna dla każdego nowego projektu. - few: Usunięcia zastrzeżenia tego identyfikatora projektu (i identyfikatora jego %{count} pakietów roboczych) nie można cofnąć. Zewnętrzne linki i integracje korzystające z niego przestaną być rozpoznawane, a nazwa stanie się dostępna dla każdego nowego projektu. - many: Usunięcia zastrzeżenia tego identyfikatora projektu (i identyfikatora jego %{count} pakietów roboczych) nie można cofnąć. Zewnętrzne linki i integracje korzystające z niego przestaną być rozpoznawane, a nazwa stanie się dostępna dla każdego nowego projektu. - other: Usunięcia zastrzeżenia tego identyfikatora projektu (i identyfikatora jego %{count} pakietów roboczych) nie można cofnąć. Zewnętrzne linki i integracje korzystające z niego przestaną być rozpoznawane, a nazwa stanie się dostępna dla każdego nowego projektu. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Usunąć zastrzeżenie identyfikatora „%{identifier}”? title: Usuń zastrzeżenie identyfikatora empty_body: Gdy identyfikator projektu ulegnie zmianie, pojawi się tutaj poprzedni identyfikator, dzięki czemu można będzie usunąć jego zastrzeżenie, gdy będzie to bezpieczne. @@ -2198,10 +2354,10 @@ pl: error_unknown: Wymaga ręcznego sprawdzenia error_used_in_past: Zarezerwowany przez historię dojść innego projektu remaining_projects: - one: "...jeszcze 1 projekt" - few: "...jeszcze %{count} projekty" - many: "...jeszcze %{count} projektów" - other: "...jeszcze %{count} projektu" + one: "... %{count} more project" + few: "... %{count} more projects" + many: "... %{count} more projects" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Istniejące identyfikatory %{project_count} projektów nie spełniają wymagań dotyczących identyfikatorów semantycznych opartych na projektach. OpenProject może automatycznie zaktualizować je tak, aby były prawidłowe, jak w poniższych przykładach. Kliknij przycisk „Przekonwertuj identyfikatory”, aby zaktualizować identyfikatory wszystkich projektów w ten sposób i włączyć identyfikatory semantyczne oparte na projektach. @@ -2241,7 +2397,7 @@ pl: types_caption: Dodaj typy pakietów roboczych, dla których to działanie ma być dostępne. Wszystkie dostępne warianty zostaną uwzględnione automatycznie. usage_scope_caption: 'Można ograniczyć widoczność tego działania: wszędzie (w tym w komentarzach, stronach wiki i polach niestandardowych), dla wszystkich typów pakietów roboczych lub dla określonych typów pakietów roboczych.' index: - description: Działania przekształcania tekstu zapewniają użytkownikom oparte na modelach LLM narzędzia do tworzenia, porządkowania i weryfikacji tekstu wszędzie tam, gdzie wykorzystywany jest edytor tekstu sformatowanego — na przykład w opisach pakietów roboczych, komentarzach i na stronach wiki. Nowe działania można tworzyć, korzystając z własnych promptów i instrukcji. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Działanie label_aria_add_action: Dodaj działanie przekształcania tekstu index_component: @@ -2276,15 +2432,22 @@ pl: ignore: Zignoruj zmiany save: Zapisz zmiany i kontynuuj title: Zapisać zmiany przed kontynuowaniem? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Rola: %{role}' no_role: Wybierz rolę roles: - one: Wybrano jedną rolę - few: Wybrano %{count} role - many: Wybrano %{count} ról - other: Wybrano %{count} roli + one: "%{count} role selected" + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" title: Wybierz role + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Dodaj lub usuń statusy, które chcesz powiązać z tym typem. Usunięcie statusu spowoduje również usunięcie powiązanego z nim przepływu pracy. @@ -2294,10 +2457,10 @@ pl: confirm: Usuń description: Usunięcie tych statusów spowoduje, że będą one niedostępne dla tego typu i usuną istniejące przepływy pracy. Czy na pewno chcesz kontynuować? heading: - one: Usunąć 1 status? - few: Usunąć %{count} statusy? - many: Usunąć %{count} statusów? - other: Usunąć %{count} statusu? + one: Remove %{count} status? + few: Remove %{count} statuses? + many: Remove %{count} statuses? + other: Remove %{count} statuses? title: Usuń statusy tabs: always: Przejścia domyślne @@ -2309,7 +2472,31 @@ pl: assignee: Dodatkowe przejścia dostępne dla osoby przypisanej do pakietu roboczego. author: Dodatkowe przejścia dostępne dla autora pakietu roboczego. menu_label: Pokazane przejścia + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: Nie można osiągnąć usługi AI. + not_available: Asystent AI jest niedostępny. + timeout: Usługa AI nie odpowiedziała na czas. + upstream_error: Usługa AI zwróciła błąd. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: obecnie wyświetlane is_inactive: obecnie nie są wyświetlane show_until: Pokazuj do @@ -2317,7 +2504,7 @@ pl: deleted_by_admin: Poddany kwarantannie plik '%{filename}' został usunięty przez administratora. deleted_message: Wykryto wirusa w pliku '%{filename}'. Plik został usunięty. not_processed_yet_message: Pobieranie jest zablokowane, ponieważ plik nie został jeszcze zeskanowany w poszukiwaniu wirusów. Spróbuj ponownie później. - overridden_by_admin: Kwarantanna dla pliku '%{filename}' została cofnięta przez %{user}. Można teraz uzyskać dostęp do pliku. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Kontener delete: Usuń plik poddany kwarantannie @@ -2371,10 +2558,6 @@ pl: not_found: reminder: Nie można znaleźć szukanego przypomnienia lub zostało ono usunięte. work_package: Pakiet roboczy, którego szukasz nie został znaleziony lub został usunięty. - render: - context_not_parsable: Podany kontekst nie jest linkiem do zasobu. - context_object_not_found: Nie można odnaleźć zasobu z podanym kontekstem. - unsupported_context: Podany zasób nie jest obsługiwany jako kontekst. unable_to_create_attachment: Nie można utworzyć załącznika unable_to_create_attachment_permissions: Nie można zapisać załącznika ze względu na brak uprawnień do systemu plików user: @@ -2445,6 +2628,7 @@ pl: groups: Grupy hexcode: Kod szesnastkowy id: ID + inexistent: Inexistent is_default: Wartość domyślna is_for_all: Dla wszystkich projektów issue: Zadanie @@ -2495,6 +2679,7 @@ pl: updated_at: Aktualizacja updated_on: Aktualizacja uploader: Osoba przesyłająca + url: URL user: Użytkownik username: Nazwa użytkownika value: Wartość @@ -2509,6 +2694,29 @@ pl: ' login_and_registration: Logowanie i rejestracja + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Zadanie zostało anulowane z powodu błędu: %{message}' @@ -2635,6 +2843,7 @@ pl: button_set_reminder: Ustaw przypomnienie button_show: Pokaż button_sort: Sortowanie + button_stop_timer: Zatrzymaj zegar button_submit: Prześlij button_test: Badania button_unarchive: Unarchive @@ -2701,9 +2910,9 @@ pl: text: failed: Nie można skopiować projektu "%{source_project_name}" do "%{target_project_name}". succeeded: Skopiowano projekt "%{source_project_name}" do "%{target_project_name}". - title: Skopiuj projekt „%{source_project_name}” + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Jeden obiekt tego typu + one: "%{count} object of this type" other: 'Liczba obiektów tego typu: %{count}' zero: Brak obiektów tego typu create_portfolio: @@ -2741,13 +2950,9 @@ pl: plural: Działania niestandardowe custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: To pole niestandardowe jest włączone we wszystkich projektach, ponieważ jest zaznaczona opcja „Dla wszystkich projektów”. Nie można go wyłączyć dla poszczególnych projektów. - heading: Dla wszystkich projektów hierarchy: subitems: - one: 1 podelement + one: "%{count} sub-item" other: 'Liczba podelementów: %{count}' zero: brak podelementów items: @@ -2768,7 +2973,7 @@ pl: short: Nazwa skrócona weight: Waga notice: - remember_items_and_projects: Pamiętaj, aby ustawić elementy i projekty w odpowiednich zakładkach dla tego pola niestandardowego. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Możesz automatycznie przyznać określoną rolę w projekcie każdemu użytkownikowi przypisanemu do tego atrybutu projektu, niezależnie od pierwotnej roli tego użytkownika w tym projekcie. dialog: @@ -2833,16 +3038,17 @@ pl: is_enabled_globally: Jest włączony globalnie multi_value_more: other: i jeszcze %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Brak przypisanie roli + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: W pierwszej kolejności wymagany jest wybór pakietu roboczego lub projektu reorder_alphabetical: Ustaw kolejność wartości alfabetycznie reorder_confirmation: 'Ostrzeżenie: bieżąca kolejność dostępnych wartości oraz wszystkie niezapisane wartości zostaną utracone. Czy na pewno chcesz kontynuować?' semantic_keys: job_title: Stanowisko none: Brak - tab: - no_results_content_text: Utwórz pole użytkownika - no_results_title_text: Nie ma jeszcze żadnych pól użytkownika. text_add_new_custom_field: 'Aby dodać do projektu nowe pola niestandardowe, najpierw należy je utworzyć. ' @@ -2906,25 +3112,25 @@ pl: datetime: distance_in_words: about_x_hours: - one: około 1 godziny - few: około %{count} godziny - many: około %{count} godziny - other: około %{count} godziny + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: około 1 miesiąca - few: około %{count} miesięcy - many: około %{count} miesięcy - other: około %{count} miesięcy + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: około 1 roku - few: około %{count} lat - many: około %{count} lat - other: około %{count} lat + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: prawie 1 rok - few: prawie %{count} lata - many: prawie %{count} lata - other: prawie %{count} lata + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: pół minuty less_than_x_minutes: one: mniej niż minutę @@ -2932,65 +3138,65 @@ pl: many: mniej niż %{count} minuty other: mniej niż %{count} minuty less_than_x_seconds: - one: mniej niż 1 sekundę - few: mniej niż %{count} sekundy - many: mniej niż %{count} sekundy - other: mniej niż %{count} sekundy + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: ponad 1 rok - few: ponad %{count} lata - many: ponad %{count} lata - other: ponad %{count} lata + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: 1 dzień - few: "%{count} dni" - many: "%{count} dni" - other: "%{count} dnia" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 godzina - few: "%{count} godziny" - many: "%{count} godzin" - other: "%{count} godziny" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 godzina - few: "%{count} godziny" - many: "%{count} godzin" - other: "%{count} godziny" + one: "%{count} hr" + few: "%{count} hrs" + many: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: 1 minuta - few: "%{count} minut" - many: "%{count} minut" - other: "%{count} minut" + one: "%{count} minute" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - few: "%{count} min" - many: "%{count} min" - other: "%{count} min" + one: "%{count} min" + few: "%{count} mins" + many: "%{count} mins" + other: "%{count} mins" x_months: - one: 1 miesiąc - few: "%{count} miesiące" - many: "%{count} miesiące" - other: "%{count} miesiące" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekunda - few: "%{count} sekundy" - many: "%{count} sekundy" - other: "%{count} sekundy" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: - one: 1 tydzień - few: "%{count} tygodnie" - many: "%{count} tygodni" - other: "%{count} tygodnia" + one: "%{count} week" + few: "%{count} weeks" + many: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 rok - few: "%{count} lata" - many: "%{count} lat" - other: "%{count} roku" + one: "%{count} year" + few: "%{count} years" + many: "%{count} years" + other: "%{count} years" units: day: one: dzień @@ -3146,10 +3352,10 @@ pl: teaser: description_html: Masz dostęp do wszystkich funkcji %{trial_plan}. title: - one: Pozostał jeden dzień próbnego tokena %{trial_plan} - few: Pozostały %{count} dni próbnego tokena %{trial_plan} - many: Pozostało %{count} dni próbnego tokena %{trial_plan} - other: Pozostało %{count} dnia próbnego tokena %{trial_plan} + one: "%{count} day left of %{trial_plan} trial token" + few: "%{count} days left of %{trial_plan} trial token" + many: "%{count} days left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Twój token próbny wersji Enterprise został już pobrany. Sprawdź, czy do wiadomości e-mail nie został dołączony token. Jeśli potrzebujesz nowego tokena, skontaktuj się z naszym zespołem pomocy technicznej. @@ -3488,9 +3694,166 @@ pl: selected: Wybrany include_sub_items: Uwzględnij elementy podrzędne no_results_text: Brak wyników + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Obecnie nie ma żadnych wpisów na forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: "." @@ -3515,6 +3878,8 @@ pl: groups: edit: synchronized_groups: Synchronizowane grupy + form: + group_attributes: Group attributes index: description: Grupując użytkowników, można dodawać ich jako członków do tych samych projektów lub przypisywać im te same role globalne. memberships: @@ -3540,6 +3905,10 @@ pl: leave_project: Opuść projekt no_favorite_projects: Nie masz żadnych ulubionych projektów. title: Projekty + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3557,7 +3926,7 @@ pl: summary: failure: Niektóre kontrole nie powiodły się i system nie działa zgodnie z oczekiwaniami. success: Wszystkie połączenia i systemy działają zgodnie z oczekiwaniami. - warning: Niektóre kontrole zwróciły ostrzeżenie. Może to prowadzić do nieoczekiwanego sposobu działania. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Niepowodzenie @@ -3566,7 +3935,7 @@ pl: warning: Ostrzeżenie help_texts: views: - favoured: Oznacz ten widok jako ulubiony i dodaj do zapisanych widoków na pasku bocznym po lewej stronie. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} są zawsze dołączone do projektu. Możesz tutaj wybrać tylko te projekty, w których aktywny jest moduł %{plural}. Po utworzeniu modułu %{singular} możesz dodawać do niego pakiety robocze z innych projektów.\n" public: Opublikuj ten widok, aby umożliwić dostęp do niego innym użytkownikom. Użytkownicy z uprawnieniami „Zarządzaj widokami publicznymi” mogą zmodyfikować lub usunąć zapytanie publiczne. Nie ma to wpływu na widoczność wyników pakietu roboczego w tym widoku, a użytkownicy mogą widzieć różne wyniki, w zależności od ich uprawnień. homescreen: @@ -3591,6 +3960,31 @@ pl: line_6: Użyj alertów dotyczących daty w wersji społecznościowej. new_features_title: 'Wydanie zawiera różne nowe funkcje i ulepszenia, takie jak: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Przeczytaj o nowych funkcjach i aktualizacjach produktów. learn_about: Dowiedz się więcej o wszystkich nowych funkcjach @@ -3627,8 +4021,10 @@ pl: journals: cause_descriptions: budget_deleted: Budżet został usunięty + forum_message_deleted: "(deleted)" import: changed_with_diff: Zmieniono pole %{field} (%{link}) + csv: from CSV deleted_with_diff: Usunięto pole %{field} (%{link}) field_changed: W polu %{field} wartość %{old_value} zmieniła się na %{new_value} field_removed: Usunięto pole %{field} @@ -3678,6 +4074,7 @@ pl: budget_deleted: Budżet został usunięty dates_changed: Daty zostały zmienione default_attribute_written: Zapisano atrybuty tylko do odczytu + forum_message_html: "Created from forum message %{message_information}" import: Zaimportowano meeting_agenda_item_added_html: "Dodano do spotkania %{meeting_title_information}" meeting_agenda_item_added_template_html: "Dodano do %{meeting_title_information}" @@ -3830,10 +4227,10 @@ pl: label_copy_target: Cel label_copy_workflow_from: Kopiowanie pracy z label_copy_workflow_from_role: Kopiuj do innych ról - label_copy_workflow_from_type: Kopiuj do innego typu label_core_build: Kompilacja bazowa label_core_version: Wersja bazowa label_created_by: 'Autor: %{user}' + label_criteria: Kryteria label_current_status: Aktualny stan label_current_version: Aktualna wersja label_custom_comment: Komentarz %{name} @@ -3857,8 +4254,6 @@ pl: label_custom_field_default_type: Typ pusty label_custom_field_new: Nowe pole niestandardowe label_custom_field_plural: Pola niestandardowe - label_custom_logo: Komputer z logotypem niestandardowym - label_custom_logo_mobile: Telefon komórkowy z logotypem niestandardowym label_custom_pdf_export_settings: Niestandardowe ustawienia eksportu w formacie PDF label_custom_style: Kompozycja label_custom_style_description: Skonfiguruj wygląd OpenProject za pomocą motywów, wybierz domyślne kolory do wykorzystania w aplikacji i zaprojektuj wygląd eksportu produktów. @@ -3867,11 +4262,12 @@ pl: label_database_version: Wersja PostgreSQL label_date: Data label_date_and_time: Data i czas - label_date_format: Format daty + label_date_and_time_formats: Date and time formats label_date_from: Od label_date_from_to: Data od %{start} do %{end} label_date_to: Do label_dates: Daty + label_day: Dzień label_day_plural: dni label_default: Domyślnie label_defaults: Domyślne @@ -3882,6 +4278,7 @@ pl: label_deleted_custom_field: "(usunięte pole niestandardowe)" label_deleted_custom_item: "(usunięty element)" label_deleted_custom_option: "(opcja usunięta)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organizacja label_departments_description_html: 'Zdefiniuj strukturę swojej firmy, tworząc działy i poddziały w sposób hierarchiczny. Pozwala to na odzwierciedlenie linii podległości i utrzymanie przejrzystego, uporządkowanego przeglądu organizacji w OpenProject. Można również zaimportować istniejącą strukturę organizacji poprzez [synchronizację działów LDAP](ldap_docs_article). @@ -3952,6 +4349,7 @@ pl: label_float: Liczba rzeczywista label_folder: Katalog label_follows: Następujący + label_form_configuration_plural: Forms label_formula: Wzór label_forum_new: Nowe forum label_forum_plural: Fora @@ -3970,6 +4368,7 @@ pl: label_go_forward: Otwórz podmenu %{module} label_greater_or_equal: "≥" label_group: Grupa + label_group_attributes_plural: Group attributes label_group_by: Grupuj według label_group_named: Grupa %{name} label_group_new: Nowa Grupa @@ -4021,8 +4420,8 @@ pl: label_journal_diff: Opis porównania label_jump_to_a_project: Skok do projektu... label_keyword_plural: Słowa kluczowe + label_label_plural: Labels label_language: Język - label_language_based: Na podstawie języka użytkownika label_languages: Języki label_last_activity: Ostatnia aktywność label_last_change_on: Ostatnia zmiana na @@ -4044,6 +4443,7 @@ pl: label_list: Lista label_loading: Ładowanie... label_locale: Język i region + label_locale_based: Use default for user locale label_lock_user: Zablokuj użytkownika label_locked: zablokowano label_logged_as: Zalogowany jako @@ -4055,6 +4455,7 @@ pl: label_managed_by_ldap: Zarządzane za pomocą synchronizacji LDAP label_managed_repositories_vendor: Zarządzane %{vendor} repozytoria label_mapping_for: 'Mapowanie dla: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maksymalny rozmiar label_me: ja label_member_all_admin: "(Wszystkie role związane ze statusem administratora)" @@ -4073,7 +4474,6 @@ pl: label_menu_item_name: Nazwa elementu menu label_message: Wiadomość label_message_last: Ostatnia wiadomość - label_message_new: Nowa wiadomość label_message_plural: Wiadomości label_message_posted: Wiadomość dodana label_minute_plural: minuty @@ -4085,6 +4485,7 @@ pl: label_module_plural: Moduły label_modules: Moduły label_modules_and_plugins: Moduły i dodatki plug-in + label_month: Miesiąc label_months_from: miesięcy od label_more: Więcej label_more_information: Więcej informacji @@ -4098,6 +4499,7 @@ pl: label_my_avatar: Mój awatar label_my_queries: Moje zapytania niestandardowe label_my_security: Zabezpieczenia + label_my_time: My time label_name: Nazwa label_never: Nigdy label_new: Nowy @@ -4112,7 +4514,10 @@ pl: label_news_singular: Aktualności label_news_view_all: Zobacz wszystkie wiadomości label_next: Następny + label_next_day: Następny dzień + label_next_month: Następny miesiąc label_next_week: Następny tydzień + label_next_workweek: Następny tydzień pracy label_next_year: Następny rok label_no_change_option: "(Bez zmian)" label_no_data: Brak danych do pokazania @@ -4120,6 +4525,7 @@ pl: label_no_parent_group: "(Brak grupy nadrzędnej)" label_no_parent_page: Bez strony nadrzędnej label_no_start_date: brak daty rozpoczęcia + label_no_time: Brak śledzonego czasu label_nobody: nikt label_non_working_days: Kalendarz dostępności label_non_working_days_summary: Podsumowanie @@ -4186,7 +4592,10 @@ pl: label_preview: Podgląd label_preview_not_available: Podgląd niedostępny label_previous: Poprzedni + label_previous_day: Poprzedni dzień + label_previous_month: Poprzedni miesiąc label_previous_week: Poprzedni tygodzień + label_previous_workweek: Poprzedni tydzień pracy label_previous_year: Poprzedni rok label_principal_invite_via_email: " lub zaproś nowych użytkowników przez email" label_principal_search: Dodaj istniejących użytkowników lub grupy @@ -4305,6 +4714,7 @@ pl: label_sort_lowest: Przenieś na sam dół label_sorted_by: kolejność wg %{value} label_spent_time: Czas pracy + label_stack: Stack label_start_to_end: od początku do końca label_start_to_start: rozpoczęcie-rozpoczęcie label_starts_with: zaczyna się od @@ -4324,6 +4734,7 @@ pl: label_subtask_plural: Zadania podrzędne label_summary: Podsumowanie label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: Ustawienia label_system_storage: Informacje o pamięci label_table_of_contents: Spis treści @@ -4338,6 +4749,7 @@ pl: label_time: Czas label_time_entry_activity_plural: Czas spędzony na aktywności label_time_entry_plural: Czas pracy + label_timer_since: Rozpoczęto o %{time} label_title: Tytuł label_today: dzisiaj label_today_as_date: Wybierz dzisiaj jako datę. @@ -4373,7 +4785,9 @@ pl: label_user_search: Szukaj użytkownika label_user_settings: Ustawienia użytkownika label_users_settings: Ustawienia użytkowników + label_value: Value label_value_x: 'Wartość: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edytuj wersję label_version_new: Nowa wersja label_version_plural: Wersje @@ -4386,6 +4800,7 @@ pl: label_videos: Filmy label_view_all_revisions: Zobacz wszystkie rewizje label_view_diff: Widok różnic + label_view_mode_switcher: Zmień widok label_view_revisions: Widok rewizji label_view_x: 'Wyświetl: %{x}' label_watched_work_packages: Obserwowane pakiety robocze @@ -4409,6 +4824,8 @@ pl: label_wiki_start: Strona startowa label_wiki_toc: Spis treści label_wiki_toc_empty: Spis treści jest pusty, ponieważ nie ma żadnych nagłówków. + label_with_criteria: Z kryteriami + label_without_criteria: Bez kryteriów label_work: Praca label_work_package: Zadanie label_work_package_attachments: Załączniki pakietu roboczego @@ -4431,54 +4848,55 @@ pl: label_working_days: Dni robocze label_working_days_and_hours: Dni i godziny pracy label_working_hours: Harmonogram pracy + label_workweek: Tydzień roboczy label_x_closed_work_packages_abbr: - one: 1 zamknięty + one: "%{count} closed" other: 'Liczba zamkniętych: %{count}' zero: 0 zamknięty label_x_comments: - one: 1 komentarz + one: "%{count} comment" other: 'Liczba komentarzy: %{count}' zero: brak komentarzy label_x_days: - one: 1 dzień - few: "%{count} dni" - many: "%{count} dni" - other: "%{count} dnia" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" label_x_files: - one: 1 plik + one: "%{count} file" other: "%{count} pliku" zero: brak plików label_x_items: - one: 1 element + one: "%{count} item" other: "%{count} elem." zero: brak elementów label_x_items_selected: - one: Wybrano jedną pozycję - few: Wybrano %{count} pozycje - many: Wybrano %{count} pozycji - other: Wybrano %{count} pozycji + one: "%{count} item selected" + few: "%{count} items selected" + many: "%{count} items selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 otwarty + one: "%{count} open" other: 'Liczba otwartych: %{count}' zero: 0 otwarty label_x_projects: - one: 1 projekt + one: "%{count} project" other: 'Liczba projektów: %{count}' zero: brak projektów label_x_work_packages: - one: 1 pakiet roboczy + one: "%{count} work package" other: "%{count} pakiety robocze" zero: Brak pakietów roboczych label_x_working_days: - one: 1 dzień roboczy - few: "%{count} dni robocze" - many: "%{count} dni roboczych" - other: "%{count} dnia roboczego" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Czas wolny: 1 dzień roboczy' - few: 'Czas wolny: %{count} dni robocze' - many: 'Czas wolny: %{count} dni roboczych' - other: 'Czas wolny: %{count} dnia roboczego' + one: 'Time off: %{count} working day' + few: 'Time off: %{count} working days' + many: 'Time off: %{count} working days' + other: 'Time off: %{count} working days' label_yesterday: wczoraj label_zen_mode: Tryb Zen ldap_auth_sources: @@ -4531,7 +4949,7 @@ pl: start_tls: STARTTLS start_tls_description: Wysyła polecenie STARTTLS po połączeniu ze standardowym portem LDAP. Zalecane dla zaszyfrowanych połączeń. tls_options: - tls_certificate_description: Jeśli certyfikat serwera LDAP nie znajduje się w zaufanych źródłach tego systemu, możesz go dodać ręcznie tutaj. Wprowadź ciąg certyfikacji PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Zweryfikuj certyfikat SSL verify_peer_description_html: 'Umożliwia ścisłą weryfikację SSL łańcucha zaufanych certyfikatów.
Ostrzeżenie: wyczyszczenie tej opcji wyłącza weryfikację SSL certyfikatu serwera LDAP. To wystawia Twoje połączenie na ataki typu „Man in the Middle”. @@ -4588,6 +5006,8 @@ pl: you_have: Masz logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} wspomniał o tobie w %{id} — %{subject}" notification: center: Do centrum powiadomień @@ -4644,10 +5064,10 @@ pl: mentioned: "Wspomniano o tobie w komentarzu" mentioned_by: "%{user} wspomniał o tobie w komentarzu" more_to_see: - one: Istnieje jeszcze 1 pakiet roboczy z powiadomieniami. - few: Istnieją jeszcze %{count} pakiety robocze z powiadomieniami. - many: Istnieje jeszcze %{count} pakietów roboczych z powiadomieniami. - other: Istnieją jeszcze %{count} pakietów roboczych z powiadomieniami. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + many: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Otwórz w przeglądarce reason: assigned: Przypisane @@ -4835,6 +5255,15 @@ pl: create_button: Utwórz dialog_body: Ten token umożliwi aplikacjom innych firm komunikację z Twoim wystąpieniem. Aby odróżnić nowy token API, nadaj mu nazwę. dialog_title: Utwórz nowy token API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Nazwa tokena failed_to_create_token: 'Nie można utworzyć tokena dostępu: %{error}' failed_to_reset_token: 'Nie można zresetować tokena dostępu: %{error}' @@ -4848,10 +5277,26 @@ pl: password_confirmation_dialog: confirmation_required: Aby potwierdzić tę zmianę, należy wprowadzić hasło do konta. title: Aby kontynuować, potwierdź hasło + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Tokenu dostępu description: Tokeny dostawcy są wydawane przez OpenProject, co umożliwia dostęp do nich innym aplikacjom. Tokeny klienta są wydawane przez inne aplikacje, co umożliwia dostęp do nich oprogramowaniu OpenProject. + expired_on: Expired on %{date} headers: action: Czynność expiration: Wygasa @@ -5057,7 +5502,6 @@ pl: notice_principals_found_single: |- Znaleziono 1 wynik. Naciśnij Tab, aby go wybrać. - notice_project_cannot_update_custom_fields: 'Nie można zaktualizować dostępnych niestandardowych pól projektu. Projekt jest nieprawidłowy: %{errors}' notice_project_not_deleted: Projekt nie został usunięty. notice_project_not_found: Nie znaleziono projektu. notice_requires_enterprise_token: Brak tokenu wersji Enterprise lub nie zezwala ona na dostęp do tej strony. @@ -5067,9 +5511,6 @@ pl: notice_successful_create: Tworzenie zakończone sukcesem. notice_successful_delete: Usuwanie zakończone sukcesem. notice_successful_update: Aktualizacja zakończona sukcesem. - notice_successful_update_custom_fields_added_to_project: | - Pomyślna aktualizacja. Pola własne aktywowanych typów są automatycznie włączane - do formularza pakietu roboczego. Zobacz więcej. notice_to_many_principals_to_display: |- Istnieje zbyt wiele wyników. Należy zawęzić wyszukiwanie przez wpisanie w nazwy użytkownika (lub grupy). @@ -5173,10 +5614,10 @@ pl: ' confirm_revoke_my_application: - one: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej jeden aktywny token. - few: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywne tokeny. - many: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywnych tokenów. - other: Czy na pewno chcesz usunąć tę aplikację? Unieważni to jej %{count} aktywnego tokenu. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Nie zarejestrowano żadnych aplikacji OAuth. flows: authorization_code: Przepływ Kod autoryzacji @@ -5266,8 +5707,6 @@ pl: not_found: "– nie znaleziono." respond_to?: nie implementuje wymaganej metody. rules: - copy_workflow_from: - workflow_missing: nie ma własnego przepływu pracy. custom_field: format_not_supported: "– format „%{field_format}” nie jest obsługiwany." item: @@ -5287,7 +5726,6 @@ pl: or: lub rules: blueprint: Plan wzorca - copy_workflow_from: Typ kopii przepływu pracy depth: Głębokość enabled: Włączone item: Element @@ -5359,8 +5797,8 @@ pl: label: Spis treści page_nr_footer: Strona %{page} z %{total} template_artefact: - caption: Szczegóły pakietu roboczego renderowane jako artefakt PMflex. - label: Artefakt PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Wszystkie atrybuty obecne w bieżącym formularzu przy użyciu szablonu domyślnego. label: Atrybuty i opis @@ -5385,7 +5823,7 @@ pl: permission_change_work_package_status_explanation: Umożliwia zmianę statusu bez uprawnienia Edycja pakietów roboczych permission_comment_news: Komentowanie Nowości permission_commit_access: Dostęp odczytu i zapisu do repozytorium (wykonanie) - permission_copy_projects: Kopiowanie projektów + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: W projektach szablonowych to uprawnienie ma dodatkową funkcję, umożliwia tworzenie nowych projektów opartych na szablonie. permission_copy_work_packages: Zduplikuj pakiety robocze permission_create_backup: Utwórz kopie zapasowe @@ -5418,6 +5856,7 @@ pl: permission_export_projects: Eksportuj projekty permission_export_work_packages: Eksportowanie pakietów roboczych permission_header_for_project_module_work_package_tracking: Pakiety robocze i wykresy Gantta + permission_import_work_packages: Import work packages permission_invite_members_by_email: Zaproś członków pocztą elektroniczną permission_invite_members_by_email_explanation: 'Umożliwia użytkownikom zapraszanie nowych członków pocztą elektroniczną. Zaproszeni użytkownicy otrzymają wiadomość e-mail z linkiem do ustawienia hasła i aktywacji konta. Zależy od uprawnień do zarządzania członkami @@ -5428,6 +5867,9 @@ pl: permission_manage_dashboards: Zarządzaj pulpitami nawigacyjnymi permission_manage_forums: Zarządzanie forum permission_manage_members: Zarządzanie użytkownikami + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Zarządzanie wiadomościami permission_manage_own_reminders: Tworzenie własnych przypomnień permission_manage_own_working_times: Zarządzaj własnymi godzinami pracy @@ -5456,7 +5898,6 @@ pl: permission_save_bcf_queries: Zapisz zapytania BCF permission_save_queries: Zapisz widoki permission_search_project: Wyszukaj projekt - permission_select_custom_fields: Wybierz pola niestandardowe permission_select_project_custom_fields: Wybierz atrybuty projektu permission_select_project_modules: Wybieranie modułów projektu permission_select_project_phases: Wybierz fazy projektu @@ -5490,6 +5931,16 @@ pl: permission_work_package_assigned: Zostań osobą przypisaną/odpowiedzialną permission_work_package_assigned_explanation: Pakiety robocze mogą być przypisane do użytkowników i grup znajdujących się w posiadaniu tej roli w odpowiednim projekcie placeholder_users: + criteria: + activate: Aktywuj kryteria filtrowania + activate_caption: 'Umożliwia to dodanie zestawu filtrów do tego użytkownika zastępczego, przy pomocy którego użytkownik określa potencjalnych użytkowników spełniających żądane kryteria. + + ' + enable: Dopasuj użytkowników według kryteriów + enable_caption: Opisz, jakiego rodzaju użytkownika reprezentuje ten symbol zastępczy, aby można było zaproponować dla niego pasujących użytkowników. + matching_users: Użytkownicy spełniający kryteria filtrowania + no_matching_users: Żaden użytkownik nie spełnia tych kryteriów. + show_all_matching_users: Pokaż wszystkich %{count} pasujących użytkowników delete_tooltip: Usuń użytkownika zastępczego deletion_info: data_consequences: 'Wszystkie wystąpienia użytkownika zastępczego (np. jako osoby przypisanej, odpowiedzialnej lub inne wartości użytkownika) zostaną przypisane do konta o nazwie „Usunięty użytkownik”. Jako że do tego konta przypisywane są dane każdego usuniętego konta, nie można odróżnić danych utworzonych przez użytkownika od danych innego usuniętego konta. @@ -5511,7 +5962,7 @@ pl: name: SAML OmniAuth / pojedyncze logowanie portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: 'Liczba portfoliów: %{count}' zero: 0 portfoliów filters: @@ -5522,10 +5973,10 @@ pl: label: Filtr nazwy portfolio placeholder: Wyszukaj portfolia sub_items_html: - one: "1 podpozycja" - few: "%{count} podpozycje" - many: "%{count} podpozycji" - other: "%{count} podpozycji" + one: "%{count} sub-item" + few: "%{count} sub-items" + many: "%{count} sub-items" + other: "%{count} sub-items" lists: active: Aktywne portfolia archived: Zarchiwizowane portfolia @@ -5539,7 +5990,7 @@ pl: Można go używać do wyróżniania pakietów roboczych w tabeli. program: count: - one: 1 program + one: "%{count} program" other: 'Liczba programów: %{count}' zero: 0 programów filters: @@ -5551,7 +6002,7 @@ pl: confirmation_message: Archiwizacja tego projektu spowoduje, że zarówno on sam, jak i wszystkie jego elementy potomne staną się niedostępne dla wszystkich użytkowników tego wystąpienia. Zarchiwizowane projekty można przywrócić. title: Zarchiwizuj projekt count: - one: 1 projekt + one: "%{count} project" other: 'Liczba projektów: %{count}' zero: 0 projektów destroy: @@ -5656,11 +6107,11 @@ pl: no_status_when_submitted: Nie udało się włączyć żądania zainicjowania projektu, ponieważ typ pakietu roboczego %{type} wymaga co najmniej jednego powiązanego z nim statusu. Włącz co najmniej jeden przepływ pracy statusu dla tego typu pakietu roboczego. no_work_package_type: Nie udało się włączyć żądania zainicjowania projektu, ponieważ wymaga to co najmniej jednego aktywnego typu pakietu roboczego, a ten projekt nie ma żadnego. Dodaj co najmniej jeden typ pakietu roboczego do tego projektu. export: - description_attachment_export: Wygenerowany artefakt zostanie zapisany jako załącznik PDF do pakietu roboczego artefaktu. - description_file_link_export: Pakiet roboczy artefaktu będzie zawierał link do pliku PDF przechowywanego w zewnętrznym magazynie plików. Wymaga działającego magazynu plików z automatycznie zarządzanymi folderami tego projektu. Obecnie obsługiwane są tylko magazyny plików Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Wybierz, który ze skonfigurowanych zewnętrznych magazynów plików ma być używany. external_file_storage: Zewnętrzny magazyn plików - label_artifact_export: Eksport artefaktu + label_artifact_export: Artifact export label_attachment_export: Zapisz jako załącznik pliku pakietu roboczego label_file_link_export: Prześlij plik do zewnętrznego magazynu plików i dodaj link do pakietu roboczego pdf_file_storage: Magazyn plików PDF @@ -5670,6 +6121,12 @@ pl: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Nie ma dostępnych pól niestandardowych. forums: no_results_content_text: Utwórz nowe forum @@ -5766,21 +6223,21 @@ pl: new_heading: Pola, które stają się dostępne nothing_affected: Nie ma to wpływu na żadne pola ani statusy. status_count: - one: 1 pakiet roboczy - few: "%{count} pakiety robocze" - many: "%{count} pakietów roboczych" - other: "%{count} pakietu roboczego" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" table_suffix: "(tabela)" value_count: - one: 1 pakiet roboczy ma wartość - few: "%{count} pakiety robocze mają wartość" - many: "%{count} pakietów roboczych ma wartość" - other: "%{count} pakietu roboczego ma wartość" + one: "%{count} work package has a value" + few: "%{count} work packages have a value" + many: "%{count} work packages have a value" + other: "%{count} work packages have a value" work_packages: - one: Nowej konfiguracji będzie używać 1 pakiet roboczy - few: Nowej konfiguracji będą używać %{count} pakiety robocze - many: Nowej konfiguracji będzie używać %{count} pakietów roboczych - other: Nowej konfiguracji będą używać %{count} pakietu roboczego + one: "%{count} work package will use the new configuration" + few: "%{count} work packages will use the new configuration" + many: "%{count} work packages will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Projekt używa teraz %{type}. target_label: Wariant title: "%{type}: przełącz wariant" @@ -5791,7 +6248,7 @@ pl: variants_not_allowed: Ten typ nie pozwala na tworzenie wariantów w ramach projektów. versions: no_results_content_text: Utwórz nową wersję projektu - no_results_title_text: Nie ma innych wersji tego projektu. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Pokaż pakiety robocze work_packages_graph: Wykres pakietów roboczych work_package_priorities: @@ -5799,15 +6256,27 @@ pl: status: button_edit: Edytuj status wizard: - create_artifact_storage_error: Nie udało się zapisać artefaktu w magazynie plików - create_artifact_work_package_error: Nie udało się utworzyć pakietu roboczego artefaktu + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: W tym projekcie nie włączono żadnych atrybutów projektu dla kreatora. Włącz co najmniej jeden w ustawieniach projektu. no_help_text: Ten atrybut nie ma zdefiniowanego tekstu pomocy. progress_label: "%{current} z %{total}" sections: Sekcje sidebar_content_title: Zawartość - success: Atrybuty projektu zostały zapisane, a pakiet roboczy artefaktu został utworzony. + success: Project attributes saved and artifact work package created successfully. title: Żądanie zainicjowania projektu + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Zastosuj wstępny filtr configure_view: @@ -5836,10 +6305,10 @@ pl: action_title: Zareaguj add_reaction: Dodaj reakcję and_others: - one: i 1 inny - few: i %{count} inne - many: i %{count} innych - other: i %{count} innej + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others and_user: i %{user} react_with: 'Zareaguj: %{reaction}' reaction_by: "%{reaction} —" @@ -5948,6 +6417,41 @@ pl: warnings: cannot_annotate: Ten plik nie może być odnotowany. roles: + delete_dialog: + confirm: Czy na pewno chcesz usunąć tę rolę? + entry_projects: + one: "(Projekt: %{projects})" + few: "(Projekty: %{projects})" + many: "(Projekty: %{projects})" + other: "(Projekty: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Czy na pewno chcesz usunąć rolę „%{name}”? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: "%{count} z tych użytkowników straci dostęp do projektów, w których pełnili wyłącznie tę rolę. Czy na pewno chcesz usunąć tę rolę?" + zero: Żaden z tych użytkowników nie straci dostępu do żadnego ze swoich projektów. Czy na pewno chcesz usunąć tę rolę? + show_memberships: Pokaż wszystkie członkostwa z tą rolą + summary: "%{users} w %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Usuń rolę edit: default_for_new_projects_warning: 'Ta rola jest skonfigurowana jako domyślna rola nadawana użytkownikom niebędącym administratorami, a którzy tworzą projekt. Nie usuwaj poniższych uprawnień, w przeciwnym razie twórcy projektów nie będą mogli ukończyć konfiguracji swoich nowo utworzonych projektów:' index: @@ -5959,6 +6463,17 @@ pl: permissions: section_check_all_label: Przypisz wszystkie uprawnienia do %{module} section_uncheck_all_label: Cofnij przypisanie wszystkich uprawnień do %{module} + permissions_dialog: + edit_permissions: Edytuj uprawnienia roli + no_permissions: Ta rola nie przyznaje żadnych uprawnień. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: Wyświetl uprawnienia + preview_aria_label: Wyświetl uprawnienia roli %{role} + title: Uprawnienia „%{name}” report: matrix_caption: Macierz uprawnień do modułu %{module} matrix_check_all_label: Przypisz wszystkie uprawnienia do %{module} do wszystkich ról @@ -6063,7 +6578,7 @@ pl: setting_default_projects_wiki: Domyślnie włączaj funkcje wiki dla nowych projektów setting_diff_max_lines_displayed: Maksymalna wyświetlana liczba linii różnic setting_disable_password_login: Wyłącz uwierzytelnianie hasłem - setting_display_subprojects_work_packages: Domyślnie wyświetlaj pakiety robocze podprojektów na głównym projekcie + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Format czasu trwania setting_duration_format_days_and_hours: Dni i godziny setting_duration_format_hours_only: Tylko godziny @@ -6178,6 +6693,7 @@ pl: setting_start_of_week: Początek tygodnia setting_sys_api_description: Zarządzanie repozytoriami przez www umożliwia integrację i autoryzację użytkowników do dostępu do repozytoriów. setting_sys_api_enabled: Uaktywnij zarządzanie repozytoriami przez www + setting_sys_api_key: API key setting_time_format: Godzina setting_total_percent_complete_mode: Obliczenie % Ukończenia pełnej hierarchii setting_total_percent_complete_mode_simple_average: Średnia arytmetyczna @@ -6230,7 +6746,7 @@ pl: description_html: 'Wybierz tryb, w którym będzie działać integracja ze skanerem antywirusowym.
  • %{disabled_option}: Przesłane pliki nie są skanowane w poszukiwaniu wirusów.
  • %{socket_option}: Skonfigurowałeś ClamAV na tym samym serwerze co OpenProject i skanowanie clamd jest uruchomione w tle
  • %{host_option}: Przesyłasz pliki do zewnętrznego hosta antywirusowego.
' - remaining_quarantined_files_html: 'Skanowanie antywirusowe zostało wyłączone. %{file_count} pozostaje w kwarantannie. Aby przejrzeć pliki poddane kwarantannie, proszę odwiedzić ten link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Skanowanie antywirusowe zostało włączone. Niektóre pliki (%{file_count}) zostały przesłane wcześniej i nadal wymagają skanowania. Proces ten został zaplanowany w tle. Pliki pozostaną dostępne podczas skanowania. @@ -6241,6 +6757,7 @@ pl: ' title: Skanowanie antywirusowe attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Wyłączenie tej opcji spowoduje ukrycie listy załączników na karcie plików pakietów roboczych dla nowych projektów. Pliki załączone w opisie pakietu roboczego będą nadal przesyłane do wewnętrznego magazynu załączników. ' @@ -6332,12 +6849,12 @@ pl: confirmation_message: Kreator żądania zainicjowania nie będzie już dostępny dla nowych projektów opartych na tym szablonie. Kierownicy i właściciele projektów będą musieli ręcznie skonfigurować i wypełnić odpowiednie informacje w przeglądzie projektu. heading: Wyłączyć to żądanie zainicjowania projektu? title: Wyłącz żądanie zainicjowania projektu - header_description: 'OpenProject może wygenerować kreatora krok po kroku, aby pomóc kierownikom projektów wypełnić wniosek o zainicjowanie projektu. Można wybrać, które atrybuty projektu powinny zostać uwzględnione i w wyniku utworzyć artefakt PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nazwa artefaktu - artifact_name_caption: Wybierz dla tego artefaktu nazwę, którą zaleca Twoja struktura zarządzania projektami. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Kreator tworzenia projektu project_initiation_request: Żądanie zainicjowania projektu @@ -6356,8 +6873,8 @@ pl: otrzymaliśmy od Ciebie żądanie zainicjowania projektu **%{project_name}**. Oczekuje ono teraz na rozpatrzenie. Kliknij poniższy link, aby uzyskać dostęp do pakietu roboczego z Twoim żądaniem. confirmation_email_text: Tekst wiadomości e-mail z potwierdzeniem - description: Gdy użytkownik prześle żądanie zainicjowania projektu, zostanie utworzony nowy pakiet roboczy z artefaktem żądania załączonym jako plik PDF. Poniższe ustawienia definiują typ, status i odbiorcę tego nowego pakietu roboczego. - description_template: "**Ten pakiet roboczy został automatycznie utworzony po zakończeniu przepływu pracy %{wizard_name}. ** Artefakt PDF zawierający wszystkie przesłane informacje został wygenerowany i dołączony do tego pakietu roboczego w celach referencyjnych i związanych z audytem. Jeśli musisz zaktualizować lub ponownie uruchomić kroki inicjowania, możesz ponownie otworzyć kreatora w dowolnym momencie, korzystając z poniższego linku:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Wyślij wiadomość e-mail z potwierdzeniem do użytkownika, który przesłał żądanie zainicjowania projektu status_when_submitted: Status w chwili przesłania status_when_submitted_caption: Status, do którego przejdzie wygenerowany pakiet roboczy po przesłaniu żądania. @@ -6365,7 +6882,7 @@ pl: work_package_comment_caption: Wybrana powyżej przypisana osoba zostanie automatycznie @wspomniana w komentarzu. work_package_comment_default: Żądanie zainicjowania projektu **%{project_name}** zostało przesłane i oczekuje na rozpatrzenie. work_package_type: Typ pakietu roboczego - work_package_type_caption: Typ pakietu roboczego, który powinien być używany do przechowywania ukończonego artefaktu. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Otwórz kreatora tworzenia projektu project_initiation_request: Otwórz żądanie zainicjowania projektu @@ -6385,6 +6902,7 @@ pl: heading: Nowa faza no_gate: Brak bramki non_defined: Obecnie nie są zdefiniowane żadne fazy. + order_changed: Order successfully changed. phase_gates: Bramki faz section_header: Fazy start_gate: Bramka początkowa @@ -6441,7 +6959,7 @@ pl: section_work_week: Tydzień roboczy sharing: count: - one: 1 użytkownik + one: "%{count} user" other: "%{count} użytkowników" zero: 0 użytkowników denied: Nie masz uprawnień do udostępniania %{entities}. @@ -6533,19 +7051,19 @@ pl:
Uwaga: wartości dziedziczone (np. po elementach podrzędnych lub relacjach) będą nadal stosowane. index: + could_not_be_moved: Nie można przenieść statusu. headers: - excluded_from_totals: Wyłączono z sum is_closed: Zamknięty - is_default: Domyślny is_readonly: Tylko do odczytu + no_filter_results_title_text: Żaden status nie spełnia kryteriów bieżącego filtra. no_results_content_text: Dodaj nowy status no_results_title_text: Nie ma aktualnie żadnych statusów Zestawu zadań. + status_actions: Działania statusu support: array: sentence_connector: i skip_last_comma: fałsz text_access_token_hint: Tokeny dostępu umożliwiają zewnętrznym aplikacjom dostęp do zasobów w OpenProject. - text_accessibility_hint: Tryb ułatwienia dostępu został zaprojektowany dla użytkowników, którzy są niewidomi, niepełnosprawni ruchowo lub mają zły wzrok. Dla tych ostatnich elementy, na których się skupiają, są specjalnie podświetlone. Proszę zauważyć, że moduł Backlogs nie jest dostępny w tym trybie. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Jesteś pewien? text_are_you_sure_continue: Czy na pewno chcesz kontynuować? @@ -6588,12 +7106,6 @@ pl: ' text_custom_field_possible_values_info: Jeden wiersz dla każdej wartości - text_custom_logo_instructions: 'Logotyp jest automatycznie skalowany, aby pasował do nagłówka. Aby uzyskać najlepsze wyniki, prześlij biały logotyp na przezroczystym obrazie o rozmiarze 130 × 47 pikseli. Możesz dodać dowolne odstępy wewnątrz tego obrazu. - - ' - text_custom_logo_mobile_instructions: 'Logotyp jest automatycznie skalowany, aby pasował do nagłówka. Aby uzyskać najlepsze wyniki, prześlij biały logotyp na przezroczystym obrazie o rozmiarze 130 × 35 pikseli. Możesz dodać dowolne odstępy wewnątrz tego obrazu. - - ' text_custom_touch_icon_instructions: 'Jest to ikona, która pojawia się na telefonie komórkowym lub tablecie po umieszczeniu zakładki na ekranie głównym. Musi to być plik kwadratowego obrazu PNG o rozmiarze 180 na 180 pikseli. Upewnij się, że tło obrazu nie jest przezroczyste, w przeciwnym razie będzie źle wyglądać w systemie iOS. ' @@ -6643,6 +7155,7 @@ pl: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Wiele wartości dopuszczalne (jeden wiersz dla każdej wartości). text_load_default_configuration: Załaduj domyślną konfigurację + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Brak tokenów dostępu, które mogą być skonfigurowane. text_no_configuration_data: |- Role, typy, statusy pakietów roboczych i przepływ pracy nie zostały jeszcze skonfigurowane. @@ -6748,6 +7261,70 @@ pl: tree_view: label_empty_sub_tree: Brak elementów types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Dodaj wariant do %{name} create_type: Utwórz typ @@ -6757,14 +7334,40 @@ pl: finish: Zakończ placeholder_description: Ten krok będzie wkrótce dostępny. progress_label: Krok %{number} z %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Domyślne details: Szczegóły form_configuration: Formularz - pdf: Generowanie pliku PDF + pdf: Generate PDF project_attributes: Atrybuty projektu projects: Projekty - workflows: Przepływy pracy + start: Start + workflows: Workflow success: Utworzono. edit: breadcrumb_variant: 'Wariant: %{name}' @@ -6773,8 +7376,10 @@ pl: caption: Zdefiniuj wzorzec za pomocą wywoływanych atrybutów i tekstu, aby automatycznie generować tematy pakietów roboczych. Użytkownicy nie będą mogli ręcznie edytować tematów. label: Automatycznie generowane tematy description: - caption: Dodaj tekst, który będzie dodawany do pola opisu wszystkich nowych pakietów roboczych tego typu. - label: Domyślny tekst opisu + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Użytkownicy mogą bez ograniczeń ręcznie wprowadzać i edytować tematy pakietów roboczych. label: Ręcznie edytowane tematy @@ -6803,21 +7408,21 @@ pl: file_link: caption: Wygenerowany plik PDF jest przesyłany do automatycznie zarządzanego magazynu Nextcloud projektu i powiązywany z pakietem roboczym. Pakiety robocze w projektach bez takiego magazynu są pomijane. label: Prześlij plik do zewnętrznego magazynu plików i dodaj link do pakietu roboczego - intro: Automatycznie wygeneruj artefakt PDF pakietu roboczego tego typu, gdy jego status się zmieni. - invalid_mode: Nieprawidłowy tryb eksportu artefaktu. - label: Automatyczny eksport artefaktów + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Plik PDF nie jest generowany automatycznie. label: Wył. - section_title: Automatyczny eksport artefaktów + section_title: Automatic artifact export unavailable: niedostępne, nie skonfigurowano żadnego automatycznie zarządzanego magazynu Nextcloud - intro: Wybierz spośród dostępnych szablony, które chcesz włączyć dla tego typu. Szablon określa wygląd i atrybuty widoczne w wyeksportowanym pliku PDF pakietu roboczego używającego tego typu. Domyślnie wybrany jest pierwszy szablon z listy. pdf_export_templates: actions: label_disable_all: Wyłącz wszystkie label_enable_all: Włącz wszystkie label_toggle_template: Przełącz %{template} label: Szablony eksportu PDF + order_changed: Order successfully changed. tab: Wygeneruj PDF templates: readonly_error: Nie można zmienić, dopóki jest powiązany z typem źródła. @@ -6834,6 +7439,8 @@ pl: confirm_delete_group: Czy na pewno chcesz usunąć tę sekcję? Tego działania nie można automatycznie cofnąć. confirm_reset: Czy na pewno chcesz zresetować formularz? custom_field: Pole niestandardowe + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Usuń sekcję drag_to_activate: Aby aktywować pola, przeciągaj je stąd drag_to_reorder: Przeciągnij, aby zmienić kolejność @@ -6855,6 +7462,14 @@ pl: query_group_label: Tabela powiązanych pakietów roboczych remove_attribute: Usuń z sekcji rename_group: Zmień nazwę sekcji + required: + already_required_globally: To pole niestandardowe jest wymagane dla wszystkich typów. + for_variant: Wymagane w tym typie + globally: Wymagane + globally_hint: Zmień to w polu niestandardowym + mark: Wymagaj w tym typie + not_a_custom_field: Tylko pole niestandardowe można ustawić jako wymagane dla jednego typu. + unmark: Nie wymagaj w tym typie reset_description: 'Spowoduje to zresetowanie atrybutów do ich domyślnej grupy i wyłączenie WSZYSTKICH pól niestandardowych. ' @@ -6864,12 +7479,14 @@ pl: tab: Formularz untitled_group: Grupa bez nazwy overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Tryb konfiguracji - dependents: Zależne typy i warianty mode: always_manual: Zawsze ręczny - inheriting_from_html: Dziedziczenie z %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Ręcznie konfigurowany + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Ustawienia tab: Przegląd project_attributes: @@ -6883,12 +7500,12 @@ pl: manual: description: Po [utworzeniu atrybutów projektu](administration_url) będą one widoczne w tym miejscu i będzie można je dodać do typu. title: Brak dostępnych atrybutów projektu - description: Wybierz atrybuty projektu, które chcesz włączyć dla tego typu pakietu roboczego. Włączone atrybuty projektu są wyświetlane w osobnej karcie w pakietach roboczych tego typu. Użytkownicy z niezbędnymi uprawnieniami mogą tam przeglądać i edytować owe atrybuty. disabled: Wyłączono exclusions: attribute_label: Dziedzicz %{attribute} filter: Wyszukaj według sekcji lub nazwy tab: Atrybuty projektu + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Usunąć typ %{type} z %{project}? @@ -6901,10 +7518,12 @@ pl: empty_state: description: Dodaj projekt, aby użyć tam tej konfiguracji. no_results: Brak pasujących projektów. + title: Not used in any project yet enable_all: Włącz dla wszystkich projektów select_projects: Wybierz projekty select_projects_description: Wybierz projekty, w których chcesz używać tego typu. tab: Projekty + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6919,47 +7538,17 @@ pl: title: Skopiuj konfigurację invalid_source: Nie można skopiować konfiguracji z wybranego typu. Wybierz inny typ źródłowy. success: Konfiguracja została skopiowana. - dependents: - blank: - description: Żaden inny typ ani wariant nie dziedziczy z tej konfiguracji - title: Brak typów zależnych - description: - one: Poniższa konfiguracja jest dziedziczona przez 1 inny typ lub wariant. Wszelkie zmiany wprowadzone w tym miejscu będą miały również wpływ na element zależny. - few: Poniższa konfiguracja jest dziedziczona przez %{count} inne typy lub warianty. Wszelkie zmiany wprowadzone w tym miejscu będą miały również wpływ na elementy zależne. - many: Poniższa konfiguracja jest dziedziczona przez %{count} innych typów lub wariantów. Wszelkie zmiany wprowadzone w tym miejscu będą miały również wpływ na elementy zależne. - other: Poniższa konfiguracja jest dziedziczona przez %{count} innego typu lub wariantu. Wszelkie zmiany wprowadzone w tym miejscu będą miały również wpływ na elementy zależne. - dialog: - description: Te typy i warianty dziedziczą konfigurację z tej sekcji. Wszelkie zmiany wprowadzone w tym miejscu mają zastosowanie do nich wszystkich. - direct_heading: Bezpośrednie elementy zależne - indirect_heading: Elementy zależne poprzez inne typy - title: Typy zależne - variant_of_html: Wariant %{type_name} - variant_of_via_html: Wariant %{type_name}, dziedziczący poprzez %{source_name} - via_html: Dziedziczenie poprzez %{source_name} - title: - one: 1 typ zależny - few: "%{count} typy zależne" - many: "%{count} typów zależnych" - other: "%{count} typu zależnego" - view: Wyświetl typy zależne exclusions: not_inherited: Ta konfiguracja nie jest dziedziczona, więc nie ma czego wykluczać. Zamiast tego edytuj konfigurację bezpośrednio. unknown_aspect: Nieznana sekcja konfiguracji „%{aspect}”. inherited: - change_source: Zmień typ źródłowy configure_manually: Skonfiguruj ręcznie confirm_dialog: - change_source: - description_html: Zmieniając typ źródłowy na %{source_name}, zastąpisz bieżące ustawienia i może to mieć wpływ na istniejące informacje o pakietach roboczych tego typu. - heading: Zmienić typ źródłowy? - title: Zmień typ źródłowy check_box: Rozumiem, że to zastąpi bieżące ustawienia from_manual: description: Wszystkie aktualnie wybrane ustawienia zostaną zastąpione i mogą wpłynąć na istniejące informacje dotyczące pakietów roboczych tego typu. heading: Przełączyć tryb konfiguracji? title: Przełącz tryb konfiguracji - description: Ta konfiguracja jest dziedziczona z typu źródłowego [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Ta konfiguracja jest dziedziczona z typu źródłowego %{source_name}%{source_suffix}. dialog: description: Dziedzicz tę konfigurację z typu źródłowego. Każda nowa konfiguracja dodana do źródła ma również zastosowanie tutaj. source_label: Typ źródłowy @@ -6967,6 +7556,9 @@ pl: submit: Przełącz title: Dziedzicz z innego typu invalid_source: Nie można dziedziczyć konfiguracji z wybranego typu. Wybierz inny typ źródłowy. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: Tryb konfiguracji został przełączony. title: Dziedziczona konfiguracja manual: @@ -6975,13 +7567,14 @@ pl: description: Wszystkie aktualnie wybrane ustawienia zostaną zastąpione i mogą wpłynąć na istniejące informacje dotyczące pakietów roboczych tego typu. heading: Przełączyć tryb konfiguracji? title: Przełącz tryb konfiguracji - copy_from_type: Kopiuj z innego typu description: Żadne ustawienia nie są dziedziczone. Nadal można jednak jednorazowo skopiować ustawienia z innego typu. dialog: submit: Przełącz title: Skonfiguruj ręcznie - inherit_from_type: Dziedzicz z innego typu + inherit_from_type: Inherit from parent invalid_mode: Wybrany tryb nie jest dostępny dla tej konfiguracji. Wybierz inny tryb. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Zacznij od jednorazowego skopiowania ustawień, które ta konfiguracja dziedziczy teraz. @@ -6995,12 +7588,16 @@ pl: success: Tryb konfiguracji został przełączony. title: Konfiguracja ręczna parent_suffix: " (nadrzędny)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Można tworzyć warianty, aby oferować wersje tego typu różnym projektom.
Każdy wariant może dziedziczyć, kopiować lub posiadać własną, niestandardową konfigurację szablonu domyślnego, pól niestandardowych, przepływów pracy i preferencji. ' title: Brak wariantów dla tego typu + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Utworzono w %{project} delete: description: Projekty korzystające z tego wariantu zostaną przełączone na wariant, który wybierzesz poniżej, zanim ten wariant zostanie usunięty. @@ -7009,35 +7606,80 @@ pl: filter_no_results: Żadne warianty nie spełniają kryteriów tego filtru global_section: description: Te warianty są dostępne we wszystkich projektach. - title: Warianty + title: Warianty globalne project_specific_section: description: Te warianty są dostępne jedynie w projektach, w których zostały utworzone. title: Warianty specyficzne dla projektu workflow: - tab: Przepływy pracy + tab: Workflow index: add_variant: Dodaj wariant do %{name} add_variant_action: Dodaj wariant + convert_to_global: Przekonwertuj na wariant globalny + convert_to_global_dialog: + confirm: Konwertuj + text: 'Spowoduje to, że ten wariant specyficzny dla projektu stanie się wariantem globalnym, dostępnym dla wszystkich projektów. Administrator projektu nie będzie już mógł go edytować. + + ' + workflow_text: 'Jego przepływ pracy „%{name}” należy do tego projektu i również stanie się globalny. + + ' + convert_to_global_notice: "%{name} jest obecnie wariantem globalnym." + convert_to_global_rename: + confirm: Konwertuj + text: Jest już wariant globalny o tej nazwie. Wybierz inną nazwę. + title: Wybierz inną nazwę dla tego wariantu + created_by_migration: Migrated + delete: + description: Typ zostanie trwale usunięty. Tego działania nie można cofnąć. + description_with_variants: Typ i jego wszystkie warianty zostaną trwale usunięte. Tego działania nie można cofnąć. + heading: Usunąć typ „%{name}”? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Usuń typ description: 'Każdy obszar konfiguracji wewnątrz typów i wariantów może być niezależnie skonfigurowany, ograniczony z innego typu lub w pełni powiązany ze źródłem. ' duplicate_name: Kopia %{name} duplicate_notice: "%{name} zduplikowano." enabled_in_new_projects: Aktywne w nowych projektach + filter: Filter by name + filter_no_results: No types match this filter make_default: Aktywuj w nowych projektach make_default_notice: "%{name} aktywowano teraz w nowych projektach." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Utwórz nowy typ no_results_title_text: Nie ma jeszcze żadnych typów. project_variants_count: - one: 1 wariant specyficzny dla projektu - few: "%{count} warianty specyficzne dla projektu" - many: "%{count} wariantów specyficznych dla projektu" - other: "%{count} wariantu specyficznego dla projektu" + one: "%{count} project-specific variant" + few: "%{count} project-specific variants" + many: "%{count} project-specific variants" + other: "%{count} project-specific variants" remove_default: Nie aktywuj w nowych projektach remove_default_notice: "%{name} nie jest już aktywowany w nowych projektach." type_label: Typ variant_label: Wariant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Kamień milowy + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Zignoruj to ostrzeżenie. message: Na tej stronie mogą wystąpić błędy i pogorszenie działania. @@ -7056,10 +7698,10 @@ pl: authorization_rejected: Nie możesz się zalogować. blocked: zablokowany tymczsowo blocked_num_failed_logins: - one: tymczasowo zablokowane (jedna nieudana próba zalogowania) - few: tymczasowo zablokowane (%{count} nieudanych prób zalogowania) - many: tymczasowo zablokowane (%{count} nieudanych prób zalogowania) - other: tymczasowo zablokowane (%{count} nieudanych prób zalogowania) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Zamierzasz zmienić status „%{name}”. Na pewno chcesz kontynuować? deleted: Usunięty uźytkownik department_ldap_managed_caption: Ten dział jest zarządzany za pomocą synchronizacji LDAP i nie można go zmienić tutaj. @@ -7159,7 +7801,7 @@ pl: deletion_warning: Czy na pewno chcesz cofnąć tę sesję? Zostaniesz wylogowany(-a) na tym urządzeniu. device: Urządzenie / system operacyjny expires: Wygasa - instructions: Jesteś zalogowany(a) na swoim koncie za pośrednictwem następujących urządzeń. Wyloguj się z sesji, których nie znasz lub które pochodzą z urządzeń poza Twoją kontrolą. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Ostatnie połączenie may_not_delete_current: Nie możesz usunąć bieżącej sesji. session_name: "%{browser_name} %{browser_version} w systemie %{os_name}" @@ -7219,15 +7861,21 @@ pl: start_date: Data rozpoczęcia work_days: Dni robocze work_days_count: - one: 1 dzień roboczy - few: "%{count} dni robocze" - many: "%{count} dni roboczych" - other: "%{count} dnia roboczego" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" work_hours: Godziny pracy version_status_closed: Zamknięte version_status_locked: zablokowane version_status_open: Otwarte versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Nie ma jeszcze żadnego Zestawu zadań przypisanego do tej wersji. work_packages_in_archived_projects: Wersja jest udostępniona z zarchiwizowanymi projektami, które nadal mają pakiety robocze przypisane do tej wersji. Są one liczone, ale nie pojawią się w powiązanych widokach. @@ -7395,15 +8043,17 @@ pl: required_description: Oznacza ten pakiet roboczy jako wymaganie powiązanego pakietu roboczego requires_description: Oznacza powiązany pakiet roboczy jako wymaganie dla tego pakietu roboczego work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Nie można skopiować pakietów roboczych. could_not_be_deleted: 'Nie można usunąć następujących pakietów roboczych:' could_not_be_saved: 'Nie można zapisać następujących pakietów roboczych:' deletion_successful: - one: Usunięto 1 pakiet roboczy. - few: Usunięto %{count} pakiety robocze. - many: Usunięto %{count} pakietów roboczych. - other: Usunięto %{count} pakietu roboczego. + one: Successfully deleted %{count} work package. + few: Successfully deleted %{count} work packages. + many: Successfully deleted %{count} work packages. + other: Successfully deleted %{count} work packages. descendant: elementy potomne wybranego move_failed: Nie można przenieść pakietów roboczych. none_could_be_saved: Nie mógł zostać zaktualizowany żaden z pakietów roboczych %{total}. @@ -7427,26 +8077,26 @@ pl: description_with_visible_descendants: Czy na pewno chcesz usunąć wybrane pakiety robocze i wszystkie widoczne elementy potomne? heading: Czy usunąć trwale te pakiety robocze (%{count})? hidden_descendants_only_warning: - one: Jest jeden element potomny, którego nie widać. Nie zostanie on usunięty, ale relacja zostanie usunięta. - few: Są %{count} elementy potomne, których nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Jest %{count} elementów potomnych, których nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Jest %{count} elementu potomnego, którego nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Wszystkie widoczne elementy potomne zostaną usunięte. Jest jednak jeden element potomny, którego nie widać. Nie zostanie on usunięty, ale relacja zostanie usunięta. - few: Wszystkie widoczne elementy potomne zostaną usunięte. Są jednak %{count} elementy potomne, których nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Wszystkie widoczne elementy potomne zostaną usunięte. Jest jednak %{count} elementów potomnych, których nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Wszystkie widoczne elementy potomne zostaną usunięte. Jest jednak %{count} elementu potomnego, którego nie widać. Nie zostaną one usunięte, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Usuń pakiety robocze (%{count}) undeletable_descendants_warning: - one: Nie możesz usunąć jednego elementu potomnego, ponieważ nie masz niezbędnych uprawnień. Zostanie on zachowany, ale relacja hierarchiczna zostanie usunięta. - few: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Nie możesz usunąć %{count} elementu potomnego, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Nie możesz usunąć jednego elementu potomnego, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostanie on zachowany, ale relacja hierarchiczna zostanie usunięta. - few: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Nie możesz usunąć %{count} elementu potomnego, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7503,26 +8153,172 @@ pl: description: Czy na pewno chcesz usunąć „%{name}”? heading: Czy trwale usunąć ten pakiet roboczy? hidden_descendants_only_warning: - one: Ten pakiet roboczy ma jeden element potomny, którego nie widać. Nie zostanie on usunięty, ale relacja hierarchiczna zostanie usunięta. - few: Ten pakiet roboczy ma %{count} elementy potomne, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. - many: Ten pakiet roboczy ma %{count} elementów potomnych, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. - other: Ten pakiet roboczy ma %{count} elementu potomnego, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Wszystkie widoczne elementy potomne zostaną usunięte. Ten pakiet roboczy ma jednak jeden element potomny, którego nie widać. Nie zostanie on usunięty, ale relacja hierarchiczna zostanie usunięta. - few: Wszystkie widoczne elementy potomne zostaną usunięte. Ten pakiet roboczy ma jednak %{count} elementy potomne, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. - many: Wszystkie widoczne elementy potomne zostaną usunięte. Ten pakiet roboczy ma jednak %{count} elementów potomnych, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. - other: Wszystkie widoczne elementy potomne zostaną usunięte. Ten pakiet roboczy ma jednak %{count} elementu potomnego, których nie widać. Nie zostaną one usunięte, ale relacja hierarchiczna zostanie usunięta. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Usuwanie pakietu roboczego undeletable_descendants_warning: - one: Nie możesz usunąć jednego elementu potomnego, ponieważ nie masz niezbędnych uprawnień. Zostanie on zachowany, ale relacja hierarchiczna zostanie usunięta. - few: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Nie możesz usunąć %{count} elementu potomnego, ponieważ nie masz niezbędnych uprawnień. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Nie możesz usunąć jednego elementu potomnego, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostanie on zachowany, ale relacja hierarchiczna zostanie usunięta. - few: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - many: Nie możesz usunąć %{count} elementów potomnych, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. - other: Nie możesz usunąć %{count} elementu potomnego, ponieważ nie masz niezbędnych uprawnień w %{projects}. Zostaną one zachowane, ale wszelkie relacje hierarchiczne zostaną usunięte. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Typy pakietów roboczych lub ich elementów potomnych nie są włączone w projekcie docelowym. Włącz brakujące typy w projekcie docelowym, jeśli chcesz, aby pozostały niezmienione. W przeciwnym razie wybierz z listy typ dostępny w projekcie docelowym. @@ -7554,26 +8350,27 @@ pl: version: no_results_title_text: Obecnie żadne wersje nie są dostępne. x_descendants: - one: Jeden potomny pakiet roboczy - few: Wiele potomnych pakietów roboczych (%{count}) - many: Wiele potomnych pakietów roboczych (%{count}) - other: Wiele potomnych pakietów roboczych (%{count}) + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Skopiuj bieżący przepływ pracy do co najmniej jednej z ról wewnątrz tego samego typu pakietu roboczego. Jeśli wybrana rola ma już przepływ pracy, zostanie on zastąpiony. - label: Kopiuj do innych ról - from_type: - caption: Skopiuj bieżący przepływ pracy do innego typu pakietów roboczych. Jeśli wybrany typ ma już przepływ pracy, zostanie on zastąpiony. Dotyczy to wszystkich ról. - label: Kopiuj do innego typu - source_role_id: - label: Rola źródłowa target_role_ids: label: Role docelowe - target_variant_ids: - label: Typy docelowe from_roles: create: notice: @@ -7581,16 +8378,31 @@ pl: few: Przepływ pracy został skopiowany do %{count} ról. many: Przepływ pracy został skopiowany do %{count} ról. other: Przepływ pracy został skopiowany do %{count} roli. - from_variants: - create: - notice: - one: Przepływ pracy został skopiowany do „%{type_name}”. - few: Przepływ pracy został skopiowany do %{count} typów. - many: Przepływ pracy został skopiowany do %{count} typów. - other: Przepływ pracy został skopiowany do %{count} typu. new: - title: Kopiuj przepływ pracy z „%{source_type}” + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Macierz przepływu pracy matrix_caption_assignee: Macierz przepływu pracy osoby przypisanej matrix_caption_author: Macierz przepływu pracy autora @@ -7599,12 +8411,100 @@ pl: matrix_check_uncheck_all_in_row_label_html: Przełącz przejścia z %{old_status} na wszystkie nowe statusy matrix_checkbox_label: Zezwól na przejście z %{old_status} do %{new_status} matrix_uncheck_all_label: Nie zezwalaj na żadne przejścia + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filtruj według nazwy typu… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Skonfiguruj przejścia statusów dla każdego typu pakietu roboczego. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Zmień dni robocze dialog: diff --git a/config/locales/crowdin/pt-BR.seeders.yml b/config/locales/crowdin/pt-BR.seeders.yml index a6ff7198e291..5233fcb085f6 100644 --- a/config/locales/crowdin/pt-BR.seeders.yml +++ b/config/locales/crowdin/pt-BR.seeders.yml @@ -250,68 +250,26 @@ pt-BR: Neste módulo, você pode compartilhar as atualizações do projeto com os membros da sua equipe. versions: item_0: - name: Backlog de Bugs - item_1: - name: Backlog de produtos - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Versão v1.0 content: | - Reunião de Planejamento da Sprint - - _Documente aqui os tópicos para a reunião de planejamento da Sprint - - * Tempo limitado (8 h) - * Entrada: Backlog do produto - * Saída: Backlog da Sprint - - * Dividido em dois blocos de tempo adicionais de 4 h: - - * O proprietário do produto apresenta o [Backlog do produto]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e as prioridades para a equipe, explicando o Objetivo da Sprint, ao qual a equipe deve concordar. Juntos, priorizam os tópicos do Backlog do produto que a equipe irá cuidar na próxima sprint. A equipe se compromete com a entrega discutida. - * A equipe planeja de forma autônoma (sem o proprietário do produto) em detalhes e divide as tarefas dos requisitos discutidos para consolidar um [Backlog da sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - Reunião do Daily Scrum + ### Versão 1.0 - _Documente aqui os tópicos para a reunião diária de Scrum + _Descreva aqui o que esta versão contém._ - * Reunião curta de status diário da equipe. - * Tempo limitado (máx. 15 min). - * Reunião diária para discutir os seguintes tópicos do [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - *O que planejo fazer até o próximo Daily Scrum? - *O que bloqueou meu trabalho (Impedimentos)? - * O Scrum Master modera e anota os [Impedimentos da Sprint](##sprint:scrum_project__version__sprint_1). - * O proprietário do produto pode participar para se manter informado. - - Reunião de Revisão da Sprint - - _Documente aqui os tópicos para a reunião de revisão da Sprint - - * Tempo limitado (4 h). - * Máximo de uma hora de preparação por pessoa. - * A equipe mostra ao proprietário do produto e a outras partes interessadas o que foi alcançado nesta sprint. - * Importante: nada de protótipos e PowerPoint! Apenas a funcionalidade do produto finalizada (Incrementos) deve ser demonstrada. - * Feedback do proprietário do produto, partes interessadas e outros é desejado e será incluído no trabalho futuro. - * Com base nas funcionalidades demonstradas, o proprietário do produto decide se o incremento será colocado em produção ou se será desenvolvido mais. Esta possibilidade permite um ROI antecipado. - - Retrospectiva da Sprint - - _Documente aqui os tópicos para a reunião de retrospectiva da Sprint - - * Tempo limitado (3 h). - * Após a Revisão da Sprint, será moderada pelo Scrum Master. - * A equipe discute a sprint: o que deu certo, o que precisa ser melhorado para ser mais produtivo na próxima sprint ou até mesmo para se divertir mais. - item_3: - name: Sprint 2 + * Os pacotes de trabalho desta versão são aqueles cuja versão de destino é 1.0. + * A data de lançamento é a data do marco *Release v1.0*. + * Abra o [Planejamento]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) para acompanhar o progresso de todas as versões. + * Abra [Configurações do projeto → Versões]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) para vincular outra página do wiki a uma versão. categories: item_0: Categoria 1 (a ser alterada nas configurações do projeto) queries: item_0: name: Plano do projeto item_1: - name: Backlog do produto + name: Versão 1.1 item_2: - name: Sprint 1 + name: Versão 1.0 item_3: name: Tarefas boards: @@ -337,21 +295,21 @@ pt-BR: options: name: Guia de introdução text: | - Ficamos felizes que você tenha se juntado! Sugerimos que você tente algumas coisas para começar no OpenProject. + Estamos felizes por você ter se juntado a nós! Sugerimos algumas coisas para começar a usar o OpenProject. - _Tente as seguintes etapas:_ + _Tente seguir estas etapas:_ - 1. *Convide novos membros para o seu projeto*: → Vá para [Membros]({{opSetting:base_url}}/projects/your-scrum-project/members) na navegação do projeto. - 2. *Veja seu backlog de Produto e backlogs da Sprint*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) na navegação do projeto. - 3. *Veja seu quadro de tarefas*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Clique na seta para a direita em Sprint → Selecione [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - 4. *Crie um novo pacote de trabalho*: → Vá para [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Crie e atualize um plano de projeto*: → Vá para [Plano de projeto](##query:scrum_project__query__project_plan) na navegação do projeto. - 6. *Crie um wiki da Sprint*: → Vá para [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e abra o wiki da sprint no menu suspenso direito em uma sprint. Você pode editar o [modelo wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) com base em suas necessidades. - 7. *Ative mais módulos*: → Vá para [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Convide novos membros para o seu projeto*: → Acesse [Membros]({{opSetting:base_url}}/projects/your-scrum-project/members) na navegação do projeto. + 2. *Visualize o backlog do produto e os backlogs das sprints*: → Acesse [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) na navegação do projeto. + 3. *Crie uma sprint*: → Acesse [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e clique em "+ Sprint" para criar uma nova sprint. Mova os pacotes de trabalho do backlog para a sprint para planejar o trabalho a ser realizado. Quando estiver pronto, clique em "Iniciar sprint". + 4. *Visualize o quadro da sua sprint*: → Acesse [Quadros]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Abra o quadro da sprint clicando no nome da sprint. + 5. *Crie um novo pacote de trabalho*: → Acesse [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Crie e atualize um plano de projeto*: → Acesse [Plano do projeto](##query:scrum_project__query__project_plan) na navegação do projeto. + 7. *Ative outros módulos*: → Acesse [Configurações do projeto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Aqui você encontrará nossos [Guias do Usuário] (https://www.openproject.org/docs/user-guide/). - Avise-nos se tiver alguma dúvida ou precisar de suporte. Entre em contato conosco: [support[at]openproject.com](mailto:support@openproject.com). + Aqui você encontrará nossos [Guias do usuário](https://www.openproject.org/docs/user-guide/). + Se tiver alguma dúvida ou precisar de suporte, fale conosco. Entre em contato: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Pacotes de trabalho diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index 7bdb7559d104..070181dd9f13 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -40,7 +40,9 @@ pt-BR: view: Um link dinâmico para uma visualização inserida usando uma macro. work_package: Um link dinâmico para um pacote de trabalho inserido usando uma macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Faça login como %{login} para ativar sua conta. + continue_with_provider: Continue with %{name} delete: Excluir conta delete_confirmation: Tem certeza que deseja excluir a conta? deletion_info: @@ -65,7 +67,9 @@ pt-BR: error_self_registration_limited_provider: 'O registro do usuário é limitado para o provedor de logon único ''%{name}''. Peça a um administrador para ativar a conta para você ou alterar o limite de auto-registro para este provedor. ' - login_with_auth_provider: ou entre com a sua conta existente + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continuar a iniciar sessão omniauth_direct_login_redirecting: Você será redirecionado para seu provedor de identidade… omniauth_login: Faça login para ativar sua conta. @@ -118,6 +122,8 @@ pt-BR: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Clientes SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID personalizado customized_type: Tipo personalizado @@ -128,8 +134,6 @@ pt-BR: repository: Repositório comment: commented: Comentado - custom_action: - actions: Ações custom_field: admin_only: Apenas administrador allow_non_open_versions: Permitir versões não abertas @@ -168,6 +172,7 @@ pt-BR: uid: ID do cliente emoji_reaction: reactable: Reagiu em + reaction: Reaction enterprise_token: active_user_count_restriction: Usuários ativos encoded_token: Token de suporte Enterprise @@ -179,20 +184,44 @@ pt-BR: company: Empresa favorite: favorited: Item + form_configuration: + attribute_groups: Formulário + description: Descrição + name: Nome + type_variants: Tipos e variantes que utilizam este formulário + form_configuration_attribute: + attribute_key: Atributo + custom_field: Campo personalizado + group: Grupo + position: Posição + form_configuration_group: + default_key: Grupo padrão + kind: Tipo + label: Etiqueta + query: Consulta grids/grid: column_count: Número de colunas page: Página row_count: Número de linhas widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Agrupar usuários identity_url: URL de identidade organizational_unit: Unidade organizacional parent: Grupo principal group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Unidade organizacional parent: Grupo principal import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nome da instância Jira personal_access_token: Token de acesso de pessoal url: URL da instância Jira @@ -223,6 +252,7 @@ pt-BR: title: Título member: blocked: Bloqueado + principal_type: Tipo de membro roles: Papéis notification: read_ian: Lido no aplicativo @@ -235,6 +265,7 @@ pt-BR: position: Posição persisted_query: filters: Filtros + group_bys: Agrupar resultados por name: Nome orders: Pedidos selects: Seleções @@ -367,6 +398,8 @@ pt-BR: ongoing: Em andamento spent_on: Data type: Tipo + token/base: + expires_on: Expiration date token/ical: calendar: Calendário ical_token_query_assignment: Atribuição de consulta @@ -384,19 +417,17 @@ pt-BR: type_variant: attribute_groups: Formulário default_work_package_description: Texto padrão para descrição - defaults_source: Fonte dos padrões enabled_in_new_projects: Ativo em novos projetos - form_configuration_source: Fonte do formulário + linked_aspects: Configuração herdada patterns: Padrões - pdf_export_source: Fonte da exportação em PDF - project_attributes_source: Fonte dos atributos do projeto project_types: Projetos que usam esta variante variant: Variante variant_name: Nome - workflows_source: Fonte dos fluxos de trabalho + workflow: Fluxo de trabalho user: admin: Administrador auth_source: Fonte de autenticação + avatar_type: Avatar type consented_at: Consentido em current_password: Senha Atual department: Departamento @@ -410,7 +441,7 @@ pt-BR: last_name: Sobrenome ldap_auth_source: Conexão LDAP new_password: Nova senha - password_confirmation: Confirmação + password_confirmation: Password confirmation user_custom_field: custom_field_section: Seção user_non_working_time: @@ -419,11 +450,15 @@ pt-BR: user_preference: auto_hide_popups: Ocultar automaticamente as notificações de sucesso auto_hide_popups_caption: Quando habilitado, as notificações verdes de sucesso desaparecem automaticamente após 5 segundos. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Atualizar alertas button_update_look_and_feel: Atualizar aparência e comportamento button_update_user_information: Atulizar perfil comments_sorting: Exibir atividade do pacote de trabalho classificada por daily_reminders: Lembretes diários + date_format: Date format disable_keyboard_shortcuts: Desativar atalhos de teclado dismissed_enterprise_banners: Banners empresariais ocultos force_dark_theme_contrast: Forçar alto contraste quando estiver no modo Escuro @@ -434,13 +469,23 @@ pt-BR: header_look_and_feel: Aparência e comportamento impaired: Modo de acessibilidade increase_contrast: Aumentar contraste - increase_contrast_caption: Habilita o modo de alto contraste para o modo de cor selecionado. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Aumentar contraste do tema mode_guideline: Alguns modos substituirão as cores personalizadas do tema para melhorar acessibilidade e legibilidade. Selecione o modo Claro para suporte total ao tema personalizado. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Modo de cor + time_format: Time format time_zone: Fuso horário warn_on_leaving_unsaved: Alertar-me ao sair de um pacote de trabalho sem salvar as alterações workdays: Dias úteis + user_resource: + description: Descrição + name: Nome + user_filter: Filtro de usuários + user_resource_detail: + description: Descrição + user_filter: Filtro de usuários user_working_hours: availability_factor: Fator de disponibilidade days: Dias úteis @@ -491,6 +536,7 @@ pt-BR: title: Dias úteis true: incluindo dias não-úteis journal_internal: Diário interno + labels: Etiquetas notify: Notificar observed_in_versions: Observado nas versões parent: Pai @@ -519,6 +565,10 @@ pt-BR: work_package: Pacote de trabalho work_package_version: kind: Tipo + workflow: + description: Descrição + name: Nome + type_variants: Types and variants using this workflow errors: messages: accepted: deve ser aceito. @@ -590,6 +640,8 @@ pt-BR: regex_invalid: não pode ser validado com a expressão regular associada. regex_list_invalid: As linhas %{invalid_lines} não puderam ser interpretadas como expressão regular. regex_match_failed: não corresponde à expressão regular %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: deve ser menor ou igual ao tamanho máximo. smaller_than_or_equal_to_max_value: deve ser menor ou igual ao valor máximo. ssrf_filtered: viola a política de SSRF desta instância do OpenProject. @@ -612,6 +664,10 @@ pt-BR: user_in_ldap_managed_department: Este usuário pertence a um departamento gerenciado pela sincronização LDAP e não pode ser movido. wrong_length: é o tamanho errado (deve ser %{count} caracteres). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ pt-BR: general_consent: Aceite os termos e condições. favorite: already_favorited: já foi adicionado aos favoritos. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: o valor final precisa ser maior que o valor inicial. outside: está fora da grade. @@ -689,6 +755,13 @@ pt-BR: not_unique: já está em uso. Selecione outro nome. jira: invalid_protocol: Forneça um protocolo válido (http ou https) + label: + attributes: + name: + blank: Nome não pode estar vazio. + format: "%{message}" + taken: Uma etiqueta com este nome já existe. Por favor, use outra. + too_long: O nome é muito longo (máximo são %{count} caracteres). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ pt-BR: types: cannot_assign_multiple_variants_of_parent: Só é possível habilitar uma única variante de um Tipo no projeto cannot_assign_variant_and_parent: 'Não é possível atribuir uma variante e seu tipo pai ' - cannot_assign_variants_yet: As variantes ainda não podem ser habilitadas em um projeto. Ative o recurso experimental para testar as variantes in_use_by_work_packages: 'ainda em uso pelos pacotes de trabalho: %{types}' switch_target_blank: Selecione a variante para a qual deseja mudar switch_target_identical: O tipo de destino deve ser diferente do tipo que o projeto usa atualmente @@ -857,42 +929,26 @@ pt-BR: blank: Forneça um nome para o token format: "%{message}" in_use: Este nome de token já está em uso, escolha outro + type: + attributes: + base: + in_use_by_work_packages: Este tipo não pode ser excluído enquanto houver pacotes de trabalho que o utilizem. type_variant: attributes: - attribute_groups: - attribute_unknown: Atributo de pacote de trabalho inválido usado. - attribute_unknown_name: 'Atributo de pacote de trabalho inválido: %{attribute}' - duplicate_group: O nome de grupo %{group} foi usado mais de uma vez. Nomes de grupos devem ser únicos. - group_without_name: O nome do grupo não pode estar em branco. - query_invalid: 'A consulta incorporada ''%{group}'' é inválida: %{details}' base: - borrowed_by_variants: Não pode ser excluído enquanto sua configuração for reutilizada por %{names}. is_default_variant: A configuração padrão de um tipo não pode ser excluída. project_variants_not_allowed: Este tipo não permite a criação de variantes dentro dos projetos. restrict_dependent_destroy: has_many: Não pode ser excluído enquanto houver projetos que ainda o utilizem. - defaults_source_id: - must_be_available_to_the_variant: deve ser uma configuração que este projeto possa usar. - would_create_cycle: criaria um loop ao vincular estas configurações. enabled_in_new_projects: not_available_to_project_owned_variant: não pode ser definida em uma variante pertencente a um projeto. taken: já está definido para outra configuração deste tipo. - form_configuration_source_id: - must_be_available_to_the_variant: deve ser uma configuração que este projeto possa usar. - would_create_cycle: criaria um loop ao vincular estas configurações. patterns: invalid_tokens: Um ou mais atributos dentro do campo não são válidos. Corrija os atributos antes de salvar. - pdf_export_source_id: - must_be_available_to_the_variant: deve ser uma configuração que este projeto possa usar. - would_create_cycle: criaria um loop ao vincular estas configurações. - project_attributes_source_id: - must_be_available_to_the_variant: deve ser uma configuração que este projeto possa usar. - would_create_cycle: criaria um loop ao vincular estas configurações. variant: must_belong_to_the_type: deve ser uma variante deste tipo. - workflows_source_id: - must_be_available_to_the_variant: deve ser uma configuração que este projeto possa usar. - would_create_cycle: criaria um loop ao vincular estas configurações. + workflow: + not_available_to_this_variant: deve ser um fluxo de trabalho que este projeto possa usar. user: attributes: base: @@ -906,8 +962,8 @@ pt-BR: numeric: 'número (ex.: ''1'')' requirements_not_met: 'Deve incluir caracteres dos seguintes tipos: %{rules}' reused: - one: foi usada antes. Por favor, escolha uma que seja diferente da sua última. - other: foi usada antes. Por favor, escolha uma que seja diferente das suas %{count} últimas. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: 'carácter especial (ex.: ''%'')' uppercase: 'maiúscula (ex.: ''A'')' password_confirmation: @@ -976,6 +1032,8 @@ pt-BR: identifier: must_not_be_changed: 'não pode ser alterado manualmente. Os identificadores de pacotes de trabalho são atribuídos automaticamente e resolvidos pela tabela de aliases, e alterações manuais podem quebrar links e o histórico de identificadores. Se essa alteração for intencional, salve com "save(context: :%{context})" e mantenha a tabela work_package_semantic_aliases consistente.' semantic_identifier_incomplete: e sequence_number devem ambos ser definidos ao mesmo tempo. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: não pode ser em outro projeto. cannot_be_milestone: não pode ser um marco. @@ -1003,6 +1061,8 @@ pt-BR: status_id: status_invalid_in_type: é inválido porque não existe a situação atual neste tipo. status_transition_invalid: é inválido, pois não existe uma transição válida do status antigo para o novo status para as funções do usuário atual. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: não pode ser um marco, porque este pacote de trabalho possui filhos. is_not_a_valid_target_for_time_entries: 'Pacote de trabalho #%{id} não é válido para re-atribuir os registros de horas gastas.' @@ -1011,8 +1071,8 @@ pt-BR: template: body: 'Por favor, verifique os seguintes campos:' header: - one: 1 erro impediu este %{model} de ser salvo - other: "%{count} erros impediram este %{model} de ser salvo" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Ação @@ -1050,6 +1110,9 @@ pt-BR: auth_provider: one: Provedor de autenticação other: Provedores de autenticação + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ pt-BR: comment: one: Comentário other: Comentários - custom_action: - one: Ação personalizada - other: Ações personalizadas custom_field: one: Campo personalizado other: Campos personalizados @@ -1119,6 +1179,9 @@ pt-BR: export_setting: one: Configuração de exportação other: Configurações de exportação + form_configuration: + one: Formulário + other: Forms forum: one: Fórum other: Fóruns @@ -1137,6 +1200,9 @@ pt-BR: issue_priority: one: Prioridade other: Prioridades + label: + one: Label + other: Labels ldap_auth_source: one: Conexão LDAP other: Conexões LDAP @@ -1401,7 +1467,28 @@ pt-BR: admin: banners: environment_configured_readonly: Esses valores são configurados por meio de variáveis de ambiente e não podem ser editados aqui. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Cores básicas main_menu: Menu lateral principal @@ -1434,7 +1521,11 @@ pt-BR: tab_interface: Interface tab_pdf_export_font: Fonte de exportação para PDF tab_pdf_export_styles: Estilos de exportação em PDF - theme_warning: Alterar o tema irá sobrescrever seu estilo personalizado. O design será perdido. Tem certeza que deseja continuar? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: 'Carregar um token de suporte da edição Enterprise ' book_now: Reserve agora @@ -1467,7 +1558,7 @@ pt-BR: import: title: Importar info: - database_deprecation_html: 'A partir do OpenProject 16.0, é necessário usar o PostgreSQL 16. Sua instalação atual continuará funcionando, mas futuras versões podem não ser compatíveis com o banco de dados atual.
Preparamos [guias de atualização para todos os métodos de instalação](upgrade_guide), que você pode seguir a qualquer momento antes do próximo lançamento. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Alocador de memória Jemalloc @@ -1475,12 +1566,15 @@ pt-BR: actions: button_edit: Editar configuração button_open: Execuções abertas + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Ajude-nos a melhorar o Migrador do Jira com seu feedback e doações de dados privados. Você pode participar da [comunidade de desenvolvimento](link) do Migrador do Jira. ' description: Este Migrador do Jira está atualmente em beta. No momento, oferecemos suporte apenas às versões 10.x e 11.x do Jira Server/Data Center. Instâncias Cloud ainda não são compatíveis. title: Beta - Experimente! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure um host do Jira para começar a importar itens do Jira para esta instância do OpenProject. title: Nenhum host do Jira configurado até o momento @@ -1513,16 +1607,30 @@ pt-BR: description: O Jira usa identificadores de issue compostos por uma chave de projeto e um número sequencial (PRJ-123). O OpenProject também oferece suporte a isso, mas precisa ser ativado [aqui](link). title: Os identificadores semânticos baseados em projeto devem estar ativados. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Adicionar configuração - button_delete_token: Excluir token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Salvar configuração - delete_token_confirm: Tem certeza de que deseja excluir o token? Isso desativará a conexão com o Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nome - personal_access_token: Token de acesso pessoal + personal_access_token: Personal access token (PAT) url: URL do Jira Server/Data Center label_testing: Testando configuração... - test_configuration_caption: Você pode testar essa configuração [clicando aqui](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Editar execução @@ -1626,26 +1734,26 @@ pt-BR: title: Certifique-se de ter um backup! parts: issues: - one: 1 tarefa - other: "%{count} tarefas" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 projeto - other: "%{count} projetos" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 status - other: "%{count} status" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 tipo - other: "%{count} tipos" + one: "%{count} type" + other: "%{count} types" users: - one: 1 usuário - other: "%{count} usuários" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 pacote de trabalho - other: "%{count} pacotes de trabalho" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Estou ciente de que esta reversão excluirá os dados de forma permanente description: Isso excluirá todos os objetos importados (incluindo projetos inteiros). @@ -1710,8 +1818,8 @@ pt-BR: caption: Escolha o que deseja importar para o OpenProject caption_done: Concluído caption_done_description: - one: 1 projeto selecionado como escopo - other: "%{count} projetos selecionados como escopo" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Selecione os dados que deseja importar a partir das informações disponíveis obtidas da instância Jira host. elements: custom_fields: Um subconjunto de campos personalizados @@ -1775,23 +1883,53 @@ pt-BR: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: A API do Jira retornou o status de erro %{status}. Verifique o URL da sua instância do Jira e o token da API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Erro de conexão: %{message}' error: Ocorreu um erro inesperado ao testar a conexão failed: 'Falha na conexão: não foi possível recuperar as informações do servidor' invalid_url: Forneça um URL válido - missing_credentials: Forneça tanto o URL quanto o Token de Acesso Pessoal para testar a conexão parse_error: Falha ao interpretar a resposta do servidor. O servidor pode não ser uma instância válida do Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Conectado com sucesso a %{server} (versão %{version}) - token_error: Token da API inválido. Verifique suas credenciais na configuração. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Migrador do Jira - token_deleted: Token excluído com sucesso. user: unknown_name: Desconhecido journal_aggregation: caption_with_maximum: 'As ações do usuário em um pacote de trabalho (alterar descrição, status, valores ou escrever comentários) são agrupadas se realizadas dentro deste período. Esse intervalo também controla os atrasos nas notificações e nos [webhooks] (webhook_link). O valor máximo é de %{max} minutos. ' + labels: + delete_dialog_component: + confirmation: Entendo que esta ação é irreversível + description_html: Isso removerá a etiqueta %{name} de todos os pacotes de trabalho em todos os projetos. + heading: Excluir esta etiqueta? + title: Excluir esta etiqueta? + dialog_component: + create_title: Criar etiqueta + rename_title: Renomear "%{name}" + index: + description: Todos os usuários com permissão para editar pacotes de trabalho podem atribuir livremente rótulos a esses pacotes, seja utilizando rótulos já existentes, seja criando novos instantaneamente. Isso inclui todos os rótulos criados pelos usuários em todos os projetos. + row_component: + used_in_work_packages: + one: "%{count} pacote de trabalho" + other: "%{count} pacotes de trabalho" + sub_header_component: + button_add: Etiqueta + label_add: Adicionar etiqueta + search_placeholder: Digite aqui para pesquisar + table_component: + blank_slate: + description: Etiquetas criadas por usuários em pacotes de trabalho aparecerão aqui. + title: Nenhuma etiqueta ainda + headers: + name: Etiqueta + usage: Usado em + no_matches: + description: Tente um termo de busca diferente. + title: Nenhuma etiqueta corresponde à sua pesquisa mcp_configurations: index: description: O protocolo de contexto do modelo permite que agentes de IA forneçam aos seus usuários ferramentas e recursos disponibilizados por esta instância do OpenProject. Este recurso ainda está em versão beta. @@ -1822,6 +1960,18 @@ pt-BR: update: failure: A configuração MCP não pôde ser atualizada. success: Configuração MCP atualizada com sucesso. + members: + index: + blank_description: Nenhuma associação corresponde ao filtro atual. + blank_title: Nenhuma associação + filter_label: Pesquisar usuários + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Associações + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Confira nossa página de integrações e plugins para obter mais informações. no_results_title_text: Atualmente, não existem plugins instalados. @@ -1835,8 +1985,8 @@ pt-BR: confirm_button: Liberar identificador description: A liberação deste identificador de projeto não pode ser desfeita. Links externos e integrações que o utilizam deixarão de funcionar, e o identificador ficará disponível para ser usado por qualquer novo projeto. description_with_work_packages: - one: A liberação deste identificador de projeto (e seu 1 identificador de pacote de trabalho) não pode ser desfeita. Links externos e integrações que o utilizam deixarão de funcionar, e o identificador ficará disponível para ser usado por qualquer novo projeto. - other: A liberação deste identificador de projeto (e seus %{count} identificadores de pacote de trabalho) não pode ser desfeita. Links externos e integrações que o utilizam deixarão de funcionar, e o identificador ficará disponível para ser usado por qualquer novo projeto. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Liberar "%{identifier}"? title: Liberar identificador empty_body: Quando o identificador de um projeto é alterado, o anterior aparecerá aqui para que você possa liberá-lo quando for seguro fazê-lo. @@ -1964,8 +2114,8 @@ pt-BR: error_unknown: Requer revisão manual error_used_in_past: Reservado pelo histórico de identificadores de outro projeto remaining_projects: - one: "… mais 1 projeto" - other: "… mais %{count} projetos" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Os identificadores existentes de %{project_count} projetos não atendem aos requisitos para Ids semânticos baseados em projeto. O OpenProject pode atualizá-los automaticamente para que fiquem válidos, como nos exemplos abaixo. Clique em “Converter identificadores” para atualizar os identificadores de todos os projetos dessa forma e ativar os Ids semânticos baseados em projeto. @@ -2005,7 +2155,7 @@ pt-BR: types_caption: Adicione os tipos de pacote de trabalho para os quais esta ação deve estar disponível. Todas as variantes disponíveis serão incluídas automaticamente. usage_scope_caption: 'Você pode limitar onde esta ação ficará visível: em todos os lugares (incluindo comentários, wikis e campos personalizados), para todos os tipos de pacote de trabalho ou para tipos de pacote de trabalho específicos.' index: - description: As ações de transformação de texto oferecem aos usuários ações baseadas em LLM para escrever, organizar e revisar textos onde quer que o editor de texto formatado seja usado, como nas descrições de pacotes de trabalho, comentários e páginas wiki. Você pode criar novas ações usando seus próprios prompts e instruções. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Ação label_aria_add_action: Adicionar ação de transformação de texto index_component: @@ -2038,13 +2188,20 @@ pt-BR: ignore: Ignorar alterações save: Salvar alterações e continuar title: Salvar alterações antes de continuar? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Função: %{role}' no_role: Selecionar função roles: - one: Uma função selecionada - other: "%{count} funções selecionadas" + one: "%{count} role selected" + other: "%{count} roles selected" title: Selecionar funções + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Adicione ou remova os status que deseja associar a este tipo. Remover um status também excluirá o fluxo de trabalho associado a ele. @@ -2054,8 +2211,8 @@ pt-BR: confirm: Remover description: Ao remover esses status, eles ficarão indisponíveis para este tipo e os fluxos de trabalho existentes serão excluídos. Tem certeza de que deseja continuar? heading: - one: Remover 1 status? - other: Remover %{count} status? + one: Remove %{count} status? + other: Remove %{count} statuses? title: Remover status tabs: always: Transições padrão @@ -2067,7 +2224,31 @@ pt-BR: assignee: Transições adicionais disponíveis para o responsável pelo pacote de trabalho. author: Transições adicionais disponíveis para o autor do pacote de trabalho. menu_label: Transições exibidas + workflow_button: Fluxo de Trabalho + ai: + text_transform: + errors: + connection_failed: Não foi possível acessar o serviço de IA. + not_available: O assistente de IA não está disponível. + timeout: O serviço de IA não respondeu a tempo. + upstream_error: O serviço de IA apresentou um erro. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: atualmente exibido is_inactive: não exibido atualmente show_until: Mostrar até @@ -2075,7 +2256,7 @@ pt-BR: deleted_by_admin: O arquivo em quarentena '%{filename}' foi excluído por um administrador. deleted_message: Foi detectado um vírus no arquivo '%{filename}'. O arquivo foi excluído. not_processed_yet_message: O download está bloqueado, pois o arquivo ainda não foi verificado quanto a vírus. Tente novamente mais tarde. - overridden_by_admin: A quarentena do arquivo '%{filename}' foi removida por %{user}. Agora o arquivo pode ser acessado. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Contêiner delete: Excluir a arquivo em quarentena @@ -2129,10 +2310,6 @@ pt-BR: not_found: reminder: O lembrete que você está procurando não pode ser encontrado ou foi excluído. work_package: O pacote de trabalho que você está procurando não pode ser encontrado ou foi excluído. - render: - context_not_parsable: O contexto fornecido não é um link para o recurso. - context_object_not_found: Não é possível encontrar o recurso dado como contexto. - unsupported_context: O recurso dado não está suportado como contexto. unable_to_create_attachment: O anexo não pôde ser criado unable_to_create_attachment_permissions: O anexo não pôde ser salvo devido à falta de permissões do sistema de arquivos user: @@ -2203,6 +2380,7 @@ pt-BR: groups: Grupos hexcode: Código hexadecimal id: ID + inexistent: Inexistent is_default: Valor padrão is_for_all: Para todos os projetos issue: Pacote de trabalho @@ -2253,6 +2431,7 @@ pt-BR: updated_at: Atualizado em updated_on: Atualizado em uploader: Enviado por + url: URL user: Usuário username: Nome de usuário value: Valor @@ -2267,6 +2446,29 @@ pt-BR: ' login_and_registration: Entrar e cadastrar + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'A tarefa foi cancelada devido ao erro: %{message}' @@ -2395,6 +2597,7 @@ pt-BR: button_set_reminder: Definir lembrete button_show: Mostrar button_sort: Ordenar + button_stop_timer: Parar temporizador button_submit: Enviar button_test: Teste button_unarchive: Desarquivar @@ -2461,9 +2664,9 @@ pt-BR: text: failed: Não foi possível copiar o projeto "%{source_project_name}" para o projeto "%{target_project_name}". succeeded: Projeto "%{source_project_name}" copiado para "%{target_project_name}". - title: Copiar projeto "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Um objeto deste tipo + one: "%{count} object of this type" other: "%{count} objetos deste tipo" zero: Nenhum objeto deste tipo create_portfolio: @@ -2501,13 +2704,9 @@ pt-BR: plural: Ações personalizadas custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Este campo personalizado está ativado em todos os projetos, pois a opção “Para todos os projetos” está selecionada. Não é possível desativá-lo para projetos individuais. - heading: Para todos os projetos hierarchy: subitems: - one: 1 subitem + one: "%{count} sub-item" other: "%{count} subitens" zero: sem subitens items: @@ -2528,7 +2727,7 @@ pt-BR: short: Nome abreviado weight: Peso notice: - remember_items_and_projects: Lembre-se de configurar itens e projetos nas respectivas abas para este campo personalizado. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Você pode conceder automaticamente uma função específica no projeto a qualquer usuário atribuído a este atributo, independentemente da função original desse usuário no projeto. dialog: @@ -2593,16 +2792,17 @@ pt-BR: is_enabled_globally: Está habilitado globalmente multi_value_more: other: e mais %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Nenhuma atribuição de função + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Primeiro é necessária a seleção do pacote de trabalho ou projeto reorder_alphabetical: Reorganizar valores em ordem alfabética reorder_confirmation: 'Aviso: A ordem atual dos valores disponíveis, assim como todos os valores não salvos, será perdida. Tem certeza de que deseja continuar?' semantic_keys: job_title: Cargo none: Nenhum - tab: - no_results_content_text: Criar um novo campo personalizado - no_results_title_text: Atualmente, não há campos personalizados. text_add_new_custom_field: 'Para adicionar campos personalizados a um projeto é necessário criá-los primeiro para depois adicioná-los a este projeto. ' @@ -2666,57 +2866,57 @@ pt-BR: datetime: distance_in_words: about_x_hours: - one: aproximadamente 1 hora - other: aproximadamente %{count} horas + one: about %{count} hour + other: about %{count} hours about_x_months: - one: aproximadamente 1 mês - other: aproximadamente %{count} meses + one: about %{count} month + other: about %{count} months about_x_years: - one: aproximadamente 1 ano - other: aproximadamente %{count} anos + one: about %{count} year + other: about %{count} years almost_x_years: - one: quase 1 ano - other: quase %{count} anos + one: almost %{count} year + other: almost %{count} years half_a_minute: meio minuto less_than_x_minutes: one: menos de um minuto other: menos de %{count} minutos less_than_x_seconds: - one: menos de 1 segundo - other: menos de %{count} segundos + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: mais de 1 ano - other: mais de %{count} anos + one: over %{count} year + other: over %{count} years x_days: - one: 1 dia - other: "%{count} dias" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hora - other: "%{count} horas" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minuto - other: "%{count} minutos" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 mês - other: "%{count} meses" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 segundo - other: "%{count} segundos" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 semana - other: "%{count} semanas" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 ano - other: "%{count} anos" + one: "%{count} year" + other: "%{count} years" units: day: one: dia @@ -2866,8 +3066,8 @@ pt-BR: teaser: description_html: Você possui acesso a todos os recursos do %{trial_plan}. title: - one: Falta um dia para o término do token de avaliação %{trial_plan} - other: Faltam %{count} dias para o término do token de avaliação %{trial_plan} + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Seu token de avaliação Enterprise já foi resgatado. Verifique seus e-mails, pois o token está anexado. Entre em contato com nossa equipe de suporte se precisar de um novo. @@ -3206,9 +3406,150 @@ pt-BR: selected: Selecionado include_sub_items: Incluir subitens no_results_text: Sem resultados + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Não há postagens no fórum no momento. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ pt-BR: groups: edit: synchronized_groups: Grupos sincronizados + form: + group_attributes: Group attributes index: description: Agrupando usuários, você pode adicioná-los como membros aos mesmos projetos ou atribuir as mesmas funções globais a eles. memberships: @@ -3258,6 +3601,10 @@ pt-BR: leave_project: Sair do projeto no_favorite_projects: Você não possui projetos favoritos. title: Projetos + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ pt-BR: summary: failure: Algumas verificações falharam e o sistema não está funcionando como esperado. success: Todas as conexões e sistemas estão funcionando como esperado. - warning: Algumas verificações retornaram um aviso. Isso pode levar a comportamentos inesperados. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Falhou @@ -3280,7 +3627,7 @@ pt-BR: warning: Aviso help_texts: views: - favoured: Marcar esta exibição como favorita e adicionar à barra lateral de exibições salvas à esquerda. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} sempre estão anexados a um projeto. Você só pode selecionar projetos aqui que o módulo %{plural} está ativo. Depois de criar um %{singular} você pode adicionar pacotes de trabalho de outros projetos a ele.\n" public: Publique esta exibição, permitindo que outros usuários acessem sua visualização. Usuários com a permissão de 'Gerenciar exibições públicas' podem modificar ou remover a consulta pública. Isto não afeta a visibilidade dos resultados do pacote de trabalho nesta exibição e, dependendo de suas permissões, os usuários podem ver resultados diferentes. homescreen: @@ -3305,6 +3652,31 @@ pt-BR: line_6: Use alertas de datas na Community Edition. new_features_title: 'O lançamento inclui vários novos recursos e melhorias, como: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Leia sobre novos recursos e atualizações do produto. learn_about: Saiba mais sobre todos os novos recursos @@ -3341,8 +3713,10 @@ pt-BR: journals: cause_descriptions: budget_deleted: Orçamento foi excluído + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} alterado (%{link})" + csv: from CSV deleted_with_diff: "%{field} excluído (%{link})" field_changed: "%{field} alterado de %{old_value} para %{new_value}" field_removed: "%{field} removido" @@ -3392,6 +3766,7 @@ pt-BR: budget_deleted: Orçamento foi excluído dates_changed: Datas alteradas default_attribute_written: Atributos de somente leitura escritos + forum_message_html: "Created from forum message %{message_information}" import: Importado meeting_agenda_item_added_html: "Adicionado à reunião %{meeting_title_information}" meeting_agenda_item_added_template_html: "Adicionado à %{meeting_title_information}" @@ -3544,10 +3919,10 @@ pt-BR: label_copy_target: Destino label_copy_workflow_from: Copiar o fluxo de trabalho de label_copy_workflow_from_role: Copiar para outras funções - label_copy_workflow_from_type: Copiar para outro tipo label_core_build: Construção principal label_core_version: Versão do núcleo label_created_by: Criado por %{user} + label_criteria: Critério label_current_status: Situação atual label_current_version: Versão atual label_custom_comment: Comentário de %{name} @@ -3571,8 +3946,6 @@ pt-BR: label_custom_field_default_type: Tipo vazio label_custom_field_new: Novo campo personalizado label_custom_field_plural: Campos personalizados - label_custom_logo: Logotipo personalizado para desktop - label_custom_logo_mobile: Logotipo personalizado para celular label_custom_pdf_export_settings: Configurações de exportação de PDF personalizadas label_custom_style: Design label_custom_style_description: Escolha como o OpenProject será exibido para você com os temas, selecione suas cores padrão para usar no aplicativo e defina a aparência das exportações. @@ -3581,11 +3954,12 @@ pt-BR: label_database_version: Versão do PostgreSQL label_date: Data label_date_and_time: Data e hora - label_date_format: Formato de data + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: De %{start} até %{end} label_date_to: Para label_dates: Datas + label_day: Dia label_day_plural: dias label_default: Padrão label_defaults: Padrões @@ -3596,6 +3970,7 @@ pt-BR: label_deleted_custom_field: "(campo personalizado excluído)" label_deleted_custom_item: "(item excluído)" label_deleted_custom_option: "(opção excluída)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organização label_departments_description_html: 'Defina a estrutura da sua empresa criando departamentos e subdepartamentos de forma hierárquica. Isso permite refletir as linhas de reporte e manter uma visão clara e estruturada da sua organização no OpenProject. Você também pode importar uma estrutura organizacional existente por meio da [sincronização de departamento LDAP](ldap_docs_article). @@ -3666,6 +4041,7 @@ pt-BR: label_float: Ponto flutuante label_folder: Pasta label_follows: Segue + label_form_configuration_plural: Forms label_formula: Fórmula label_forum_new: Novo fórum label_forum_plural: Fóruns @@ -3684,6 +4060,7 @@ pt-BR: label_go_forward: Abrir o submenu %{module} label_greater_or_equal: ">=" label_group: Grupo + label_group_attributes_plural: Group attributes label_group_by: Agrupar por label_group_named: Grupo %{name} label_group_new: Novo grupo @@ -3735,8 +4112,8 @@ pt-BR: label_journal_diff: Comparação de Descrição label_jump_to_a_project: Saltar para um projeto... label_keyword_plural: Palavras-chave + label_label_plural: Etiquetas label_language: Idioma - label_language_based: Com base no idioma do usuário label_languages: Idiomas label_last_activity: Última atividade label_last_change_on: Última alteração em @@ -3758,6 +4135,7 @@ pt-BR: label_list: Lista label_loading: Carregando... label_locale: Idioma e região + label_locale_based: Use default for user locale label_lock_user: Bloquear usuário label_locked: bloqueado label_logged_as: Conectado como @@ -3769,6 +4147,7 @@ pt-BR: label_managed_by_ldap: Gerenciado pela sincronização LDAP label_managed_repositories_vendor: Repositórios gerenciados %{vendor} label_mapping_for: 'Mapeamento para: %{attribute}' + label_markdown_version: Markdown version label_max_size: Tamanho máximo label_me: eu label_member_all_admin: "(Todos os papéis devidos ao status de administrador)" @@ -3787,7 +4166,6 @@ pt-BR: label_menu_item_name: Nome do item de menu label_message: Mensagem label_message_last: Última mensagem - label_message_new: Nova mensagem label_message_plural: Mensagens label_message_posted: Mensagem adicionada label_minute_plural: minutos @@ -3799,6 +4177,7 @@ pt-BR: label_module_plural: Módulos label_modules: Módulos label_modules_and_plugins: Módulos e Plugins + label_month: Mês label_months_from: meses de label_more: Mais label_more_information: Mais informações @@ -3812,6 +4191,7 @@ pt-BR: label_my_avatar: Meu avatar label_my_queries: Minhas consultas personalizadas label_my_security: Segurança + label_my_time: My time label_name: Nome label_never: Nunca label_new: Novo @@ -3826,7 +4206,10 @@ pt-BR: label_news_singular: Notícias label_news_view_all: Ver todas as notícias label_next: Próxima + label_next_day: Próximo dia + label_next_month: Próximo mês label_next_week: Próxima semana + label_next_workweek: Próxima semana útil label_next_year: Próximo ano label_no_change_option: "(Sem alteração)" label_no_data: Sem dados para exibir @@ -3834,6 +4217,7 @@ pt-BR: label_no_parent_group: "(Sem grupo pai)" label_no_parent_page: Nenhuma página pai label_no_start_date: nenhuma data de início + label_no_time: Sem tempo controlado label_nobody: ninguém label_non_working_days: Calendário de disponibilidade label_non_working_days_summary: Resumo @@ -3900,7 +4284,10 @@ pt-BR: label_preview: Pré-visualizar label_preview_not_available: Visualização não disponível label_previous: Anterior + label_previous_day: Dia anterior + label_previous_month: Mês anterior label_previous_week: Semana anterior + label_previous_workweek: Semana útil anterior label_previous_year: Ano anterior label_principal_invite_via_email: " ou convidar novos usuários via e-mail" label_principal_search: Adicionar usuários existentes ou grupos @@ -4019,6 +4406,7 @@ pt-BR: label_sort_lowest: Mover para o final label_sorted_by: ordenados por %{value} label_spent_time: Tempo gasto + label_stack: Pilha label_start_to_end: início ao fim label_start_to_start: início à início label_starts_with: inicia com @@ -4038,6 +4426,7 @@ pt-BR: label_subtask_plural: Subtarefas label_summary: Sumário label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Configurações do sistema label_system_storage: Informações de armazenamento label_table_of_contents: Tabela de conteúdos @@ -4052,6 +4441,7 @@ pt-BR: label_time: Horário label_time_entry_activity_plural: Tempo investido em atividades label_time_entry_plural: Tempo gasto + label_timer_since: Iniciado às %{time} label_title: Título label_today: hoje label_today_as_date: Selecionar hoje como data. @@ -4087,7 +4477,9 @@ pt-BR: label_user_search: Busca por usuário label_user_settings: Configurações do usuário label_users_settings: Configurações de usuário + label_value: Value label_value_x: 'Valor: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Editar versão label_version_new: Nova versão label_version_plural: Versões @@ -4100,6 +4492,7 @@ pt-BR: label_videos: Vídeos label_view_all_revisions: Ver todas as revisões label_view_diff: Ver diferenças + label_view_mode_switcher: Alterar vista label_view_revisions: Ver revisões label_view_x: 'Visualizar: %{x}' label_watched_work_packages: Pacotes de trabalho observados @@ -4123,6 +4516,8 @@ pt-BR: label_wiki_start: Página inicial label_wiki_toc: Tabela de conteúdos label_wiki_toc_empty: A Tabela de Conteúdo está vazia, pois nenhum cabeçalho está presente. + label_with_criteria: Com critérios + label_without_criteria: Sem critérios label_work: Trabalho label_work_package: Pacote de trabalho label_work_package_attachments: Anexos de pacote de trabalho @@ -4145,46 +4540,47 @@ pt-BR: label_working_days: Dias úteis label_working_days_and_hours: Dias e horas úteis label_working_hours: Programa de trabalho + label_workweek: Semana útil label_x_closed_work_packages_abbr: - one: 1 fechado + one: "%{count} closed" other: "%{count} fechados" zero: 0 fechado label_x_comments: - one: 1 comentário + one: "%{count} comment" other: "%{count} comentários" zero: sem comentários label_x_days: - one: 1 dia - other: "%{count} dias" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 arquivo + one: "%{count} file" other: "%{count} arquivos" zero: nenhum arquivo label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} itens" zero: sem itens label_x_items_selected: - one: Um item selecionado - other: "%{count} Itens selecionados" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 aberto + one: "%{count} open" other: "%{count} abertos" zero: 0 aberto label_x_projects: - one: 1 projeto + one: "%{count} project" other: "%{count} projetos" zero: sem projetos label_x_work_packages: - one: 1 pacote de trabalho + one: "%{count} work package" other: "%{count} pacotes de trabalho" zero: Nenhum pacote de trabalho label_x_working_days: - one: 1 dia útil - other: "%{count} dias úteis" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Dia de folga: 1 dia útil' - other: 'Dia de folga: %{count} dias úteis' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: ontem label_zen_mode: Modo Zen ldap_auth_sources: @@ -4238,7 +4634,7 @@ pt-BR: start_tls: STARTTLS start_tls_description: Envia um comando STARTTLS depois de se conectar à porta LDAP padrão. Recomendado para conexões criptografadas. tls_options: - tls_certificate_description: Se o certificado do servidor LDAP não estiver nas fontes de confiança deste sistema, você poderá adicioná-lo manualmente. Digite uma cadeia de caracteres de certificado PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verificar certificado SSL verify_peer_description_html: 'Ativa a verificação rigorosa da cadeia de confiança do certificado SSL.
Aviso: Desmarcar esta opção desativa a verificação SSL do certificado do servidor LDAP, expondo sua conexão a ataques do tipo Man-in-the-Middle. @@ -4295,6 +4691,8 @@ pt-BR: you_have: Você possui logo_alt_text: Logotipo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mencionou você em %{id} - %{subject}" notification: center: Para o centro de notificação @@ -4351,8 +4749,8 @@ pt-BR: mentioned: Você foi mencionado(a) em um comentário mentioned_by: "%{user} mencionou você em um comentário" more_to_see: - one: Há mais 1 pacote de trabalho com notificações. - other: Há mais %{count} pacotes de trabalho com notificações. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Abrir no navegador reason: assigned: Atribuído @@ -4529,6 +4927,13 @@ pt-BR: create_button: Criar dialog_body: Este token permitirá que aplicativos de terceiros se comuniquem com sua instância. Para diferenciar o novo token de API, de um nome a ela. dialog_title: Criar novo token de API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nome do token failed_to_create_token: 'Falha ao criar o token de acesso: %{error}' failed_to_reset_token: 'Falha ao redefinir o token de acesso: %{error}' @@ -4542,10 +4947,26 @@ pt-BR: password_confirmation_dialog: confirmation_required: É necessário inserir a senha da sua conta para confirmar esta alteração. title: Confirme sua senha para continuar + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Tokens de acesso description: Tokens de provedor são emitidos pelo OpenProject, permitindo que outros aplicativos tenham acesso a ele. Tokens de cliente são emitidos por outros aplicativos, permitindo que o OpenProject tenha acesso a eles. + expired_on: Expired on %{date} headers: action: Ação expiration: Expira @@ -4749,7 +5170,6 @@ pt-BR: Existe(m) %{number} resultado(s) encontrado(s). Tecle tab para ir ao primeiro resultado. notice_principals_found_single: Existe um resultado. Tecle tab para ir para ele. - notice_project_cannot_update_custom_fields: 'Você não pode atualizar campos personalizados disponíveis do projeto. O projeto é inválido: %{errors}' notice_project_not_deleted: O projeto não foi excluído. notice_project_not_found: Projeto não encontrado. notice_requires_enterprise_token: O token Enterprise está ausente ou não permite acesso a esta página. @@ -4759,9 +5179,6 @@ pt-BR: notice_successful_create: Criado com sucesso. notice_successful_delete: Exclusão bem sucedida. notice_successful_update: Atualizado com sucesso. - notice_successful_update_custom_fields_added_to_project: | - Atualização bem-sucedida. Os campos personalizados dos tipos ativados são ativados automaticamente - no formulário do pacote de trabalho. Ver mais. notice_to_many_principals_to_display: Existem muitos resultados. Reduza a busca, digitando o nome do novo membro (ou grupo). notice_unsuccessful_create: Falha na criação. notice_unsuccessful_create_with_reason: 'Falha na criação: %{reason}' @@ -4861,8 +5278,8 @@ pt-BR: ' confirm_revoke_my_application: - one: Você realmente deseja remover esta aplicação? Isso irá revogar um token ativo associado a ela. - other: Você realmente deseja remover esta aplicação? Isso irá revogar %{count} tokens ativos associados a ela. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Nenhuma aplicação OAuth foi registrada. flows: authorization_code: Fluxo de código de autorização @@ -4952,8 +5369,6 @@ pt-BR: not_found: não encontrado. respond_to?: não implementa o método obrigatório. rules: - copy_workflow_from: - workflow_missing: não possui fluxo de trabalho próprio. custom_field: format_not_supported: o formato "%{field_format}" não é compatível. item: @@ -4973,7 +5388,6 @@ pt-BR: or: ou rules: blueprint: Esquema de padrão - copy_workflow_from: Tipo de cópia do fluxo de trabalho depth: Profundidade enabled: Habilitado item: Item @@ -5045,8 +5459,8 @@ pt-BR: label: Tabela de conteúdos page_nr_footer: Página %{page} de %{total} template_artefact: - caption: Detalhes do pacote de trabalho renderizados como um artefato PMflex. - label: Artefato PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Todos os atributos do formulário atual, com base no modelo padrão. label: Atributos e descrição @@ -5071,7 +5485,7 @@ pt-BR: permission_change_work_package_status_explanation: Permite alterar o status sem permissão para Editar pacotes de trabalho permission_comment_news: Comentar notícias permission_commit_access: Acesso de leitura/gravação para o repositório (commit) - permission_copy_projects: Copiar projetos + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'Em projetos modelo, essa permissão possui uma função secundária: permite a criação de novos projetos derivados do modelo.' permission_copy_work_packages: Duplicar pacotes de trabalho permission_create_backup: Criar backups @@ -5104,6 +5518,7 @@ pt-BR: permission_export_projects: Exportar projetos permission_export_work_packages: Exportar pacotes de trabalho permission_header_for_project_module_work_package_tracking: Pacotes de trabalho e gráficos de Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Convidar membros por e-mail permission_invite_members_by_email_explanation: 'Permite que usuários convidem novos membros por e-mail. Os usuários convidados receberão um e-mail com um link para definir sua senha e ativar a conta. Depende da permissão para gerenciar membros @@ -5114,6 +5529,9 @@ pt-BR: permission_manage_dashboards: Gerenciar painéis permission_manage_forums: Gerenciar fóruns permission_manage_members: Gerenciar membros + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Administrar notícias permission_manage_own_reminders: Criar seus próprios lembretes permission_manage_own_working_times: Gerenciar seus próprios horários de trabalho @@ -5142,7 +5560,6 @@ pt-BR: permission_save_bcf_queries: Salvar consultas a BCF permission_save_queries: Salvar visões permission_search_project: Buscar projeto - permission_select_custom_fields: Selecionar campos personalizados permission_select_project_custom_fields: Selecione os atributos do projeto permission_select_project_modules: Selecionar módulos do projeto permission_select_project_phases: Selecionar fases de projeto @@ -5176,6 +5593,16 @@ pt-BR: permission_work_package_assigned: Torne-se responsável permission_work_package_assigned_explanation: Os pacotes de trabalho podem ser atribuídos a usuários e grupos que possuam esta função no respectivo projeto placeholder_users: + criteria: + activate: Ativar critérios de filtro + activate_caption: 'Isso permite adicionar um conjunto de filtros a este usuário substituto, usado para definir os possíveis usuários que atendem aos critérios desejados. + + ' + enable: Corresponder usuários por critérios + enable_caption: Descreva o tipo de usuário que este espaço reservado representa para que os usuários correspondentes possam ser sugeridos. + matching_users: Usuários que atendem aos critérios do filtro + no_matching_users: Nenhum usuário atende a esses critérios. + show_all_matching_users: Mostrar todos os %{count} usuários que atendem aos critérios delete_tooltip: Excluir usuário de espaço reserva deletion_info: data_consequences: 'Todas as ocorrências do usuário de espaço reservado (por exemplo, como responsável, competente ou outros valores de usuário) serão reatribuídas a uma conta chamada "Usuário excluído". Como os dados de todas as contas excluídas são reatribuídos a esta conta, não será possível diferenciar os dados criados por usuários de dados excluídos por outra conta. @@ -5197,7 +5624,7 @@ pt-BR: name: OmniAuth SAML/Início de sessão único portfolio: count: - one: 1 portfólio + one: "%{count} portfolio" other: "%{count} portfólios" zero: 0 portfólios filters: @@ -5208,8 +5635,8 @@ pt-BR: label: Filtro de nome do portfólio placeholder: Pesquisar portfólios sub_items_html: - one: "1 subitem" - other: "%{count} subitens" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Ativar portfólios archived: Portfólios ativados @@ -5223,7 +5650,7 @@ pt-BR: Pode ser usado para destacar pacotes de trabalho na tabela. program: count: - one: 1 programa + one: "%{count} program" other: "%{count} programas" zero: 0 programas filters: @@ -5235,7 +5662,7 @@ pt-BR: confirmation_message: Arquivar este projeto tornará ele e todos os seus descendentes indisponíveis para todos os usuários desta instância. Projetos arquivados podem ser restaurados. title: Arquivar projeto count: - one: 1 projeto + one: "%{count} project" other: "%{count} projetos" zero: 0 projetos destroy: @@ -5340,11 +5767,11 @@ pt-BR: no_status_when_submitted: Falha ao ativar a solicitação de início de projeto, pois o tipo de pacote de trabalho %{type} precisa ter pelo menos um status associado. Habilite pelo menos um fluxo de trabalho de status para este tipo de pacote de trabalho. no_work_package_type: Falha ao ativar a solicitação de início de projeto, pois é necessário ter pelo menos um tipo de pacote de trabalho ativo, e este projeto não possui nenhum. Adicione pelo menos um tipo de pacote de trabalho a este projeto. export: - description_attachment_export: O artefato gerado será salvo como um anexo PDF no pacote de trabalho do artefato. - description_file_link_export: O pacote de trabalho do artefato incluirá um link para um PDF armazenado em um armazenamento de arquivos externo. É necessário que o armazenamento ofereça gerenciamento automático de pastas por projeto. Atualmente, apenas armazenamentos Nextcloud são compatíveis. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Selecione qual dos armazenamentos de arquivos externos configurados deve ser utilizado. external_file_storage: Armazenamento de arquivos externo - label_artifact_export: Exportação de artefato + label_artifact_export: Artifact export label_attachment_export: Salvar como anexo de pacote de trabalho label_file_link_export: Carregar arquivo no armazenamento externo e adicionar link do arquivo ao pacote de trabalho pdf_file_storage: Armazenamento de arquivos PDF @@ -5354,6 +5781,12 @@ pt-BR: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Não há campos personalizados disponíveis. forums: no_results_content_text: Criar um novo fórum @@ -5450,15 +5883,15 @@ pt-BR: new_heading: Campos que ficam disponíveis nothing_affected: Nenhum campo ou status é afetado. status_count: - one: 1 pacote de trabalho - other: "%{count} pacotes de trabalho" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tabela)" value_count: - one: 1 pacote de trabalho tem um valor - other: "%{count} pacotes de trabalho tem um valor" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 pacote de trabalho usará a nova configuração - other: "%{count} pacotes de trabalho usará a nova configuração" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: O projeto agora usa %{type}. target_label: Variante title: "%{type}: Trocar variante" @@ -5469,7 +5902,7 @@ pt-BR: variants_not_allowed: Este tipo não permite a criação de variantes dentro dos projetos. versions: no_results_content_text: Criar uma nova versão - no_results_title_text: Atualmente, não há versões para o projeto. + no_results_title_text: Nenhuma versão correspondente aos critérios de filtro foi encontrada para este projeto. show_work_packages: Exibir pacotes de trabalho work_packages_graph: Gráfico de pacotes de trabalho work_package_priorities: @@ -5477,15 +5910,27 @@ pt-BR: status: button_edit: Editar status wizard: - create_artifact_storage_error: Falha ao armazenar o artefato no armazenamento de arquivos - create_artifact_work_package_error: Falha ao criar o pacote de trabalho do artefato + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Este projeto não tem atributos de projeto habilitados para o assistente. Habilite pelo menos um atributo nas configurações do projeto. no_help_text: Nenhum texto de ajuda definido para este atributo. progress_label: "%{current} de %{total}" sections: Seções sidebar_content_title: Conteúdo - success: Atributos do projeto salvos e pacote de trabalho do artefato criado com sucesso. + success: Project attributes saved and artifact work package created successfully. title: Solicitação de início de projeto + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplicar filtro pré-configurado configure_view: @@ -5514,8 +5959,8 @@ pt-BR: action_title: Reagir add_reaction: Adicionar reação and_others: - one: e 1 outro - other: e %{count} outros + one: and %{count} other + other: and %{count} others and_user: e %{user} react_with: Reagir com %{reaction} reaction_by: "%{reaction} por" @@ -5628,6 +6073,31 @@ pt-BR: warnings: cannot_annotate: Este arquivo não pode ser anotado. roles: + delete_dialog: + confirm: Tem certeza de que deseja excluir esta função? + entry_projects: + one: "(Projeto: %{projects})" + other: "(Projetos: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Tem certeza de que deseja excluir a função "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Desses usuários, %{count} perderão o acesso aos projetos nos quais essa é a única função atribuída a eles. Tem certeza de que deseja excluir esta função? + zero: Nenhum desses usuários perderá o acesso a nenhum de seus projetos. Tem certeza de que deseja excluir esta função? + show_memberships: Mostrar todas as associações com esta função + summary: "%{users} em %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Excluir função edit: default_for_new_projects_warning: 'Falha ao mover o usuário entre departamentos. Este perfil está configurado como o perfil padrão atribuído a usuários não administradores que criam um projeto. Não remova as permissões a seguir, caso contrário os criadores de projetos não conseguirão concluir a configuração dos novos projetos que criarem:' index: @@ -5639,6 +6109,15 @@ pt-BR: permissions: section_check_all_label: Atribuir todas as permissões de %{module} section_uncheck_all_label: Remover todas as permissões de %{module} + permissions_dialog: + edit_permissions: Editar permissões de função + no_permissions: Esta função não concede nenhuma permissão. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Ver permissões + preview_aria_label: Ver as permissões do %{role} + title: Permissões de "%{name}" report: matrix_caption: Matriz de permissões do módulo %{module} matrix_check_all_label: Atribuir todas as permissões do módulo %{module} a todas as funções @@ -5743,7 +6222,7 @@ pt-BR: setting_default_projects_wiki: Ative a funcionalidade de wiki por padrão para novos projetos setting_diff_max_lines_displayed: Número máximo de linhas diferentes exibidas setting_disable_password_login: Desativar a autenticação por senha - setting_display_subprojects_work_packages: Exibir pacotes de trabalho de subprojetos no projeto principal por padrão + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: formato de duração setting_duration_format_days_and_hours: Dias e horas setting_duration_format_hours_only: Apenas horas @@ -5858,6 +6337,7 @@ pt-BR: setting_start_of_week: A semana começa em setting_sys_api_description: O serviço de web de gerenciamento de repositório fornece integração e autorização de usuário para acessar repositórios. setting_sys_api_enabled: Habilitar o serviço web de gerenciamento de repositório + setting_sys_api_key: API key setting_time_format: Horário setting_total_percent_complete_mode: Cálculo de totais de hierarquia de % de conclusão setting_total_percent_complete_mode_simple_average: Média simples @@ -5910,7 +6390,7 @@ pt-BR: description_html: 'Selecione como deseja configurar a verificação de vírus.
  • %{disabled_option}: Os arquivos carregados não serão verificados quanto a vírus.
  • %{socket_option}: O ClamAV está configurado no mesmo servidor que o OpenProject, com o daemon clamd de verificação em execução em segundo plano
  • %{host_option}: Os arquivos serão enviados para um host externo para verificação de vírus.
' - remaining_quarantined_files_html: 'A verificação de vírus foi desativada. %{file_count} permanece(m) em quarentena. Para revisar os arquivos em quarentena, visite este link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'A verificação de vírus foi ativada com sucesso. Há %{file_count} arquivos que foram carregados anteriormente e ainda precisam ser verificados. Este processo foi agendado em segundo plano. Os arquivos permanecerão acessíveis durante a verificação. @@ -5921,6 +6401,7 @@ pt-BR: ' title: Verificação de vírus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Desativar esta opção ocultará a lista de anexos na aba Arquivos dos pacotes de trabalho para novos projetos. Os arquivos anexados na descrição de um pacote de trabalho ainda serão carregados no armazenamento interno de anexos. ' @@ -6012,12 +6493,12 @@ pt-BR: confirmation_message: O assistente de solicitação de início não estará mais disponível para novos projetos com base neste modelo. Os gerentes e responsáveis pelo projeto precisarão configurar manualmente e preencher as informações relevantes na visão geral do projeto. heading: Desativar esta solicitação de início de projeto? title: Desativar solicitação de início de projeto - header_description: 'O OpenProject pode gerar um assistente guiado para auxiliar os gerentes de projeto no preenchimento de uma solicitação de início de projeto. É possível selecionar quais atributos do projeto devem ser incluídos e gerar um artefato em PDF como resultado. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nome do artefato - artifact_name_caption: Escolha o nome deste artefato conforme recomendado pelo seu framework de gerenciamento de projetos. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Assistente de criação de projeto project_initiation_request: Solicitação de início de projeto @@ -6037,8 +6518,8 @@ pt-BR: Você enviou uma solicitação de início de projeto para **%{project_name}**. Ela agora aguarda revisão. Clique no link abaixo para acessar o pacote de trabalho com a sua solicitação. confirmation_email_text: Texto do e-mail de confirmação - description: Quando um usuário envia uma solicitação de início de projeto, um novo pacote de trabalho será criado com o artefato da solicitação anexado como arquivo PDF. As configurações abaixo definem o tipo, o status e o responsável por este novo pacote de trabalho. - description_template: "**Este pacote de trabalho foi criado automaticamente ao concluir o fluxo de trabalho %{wizard_name}.** Um artefato em PDF contendo todas as informações enviadas foi gerado e anexado a este pacote de trabalho para referência e auditoria. Se for necessário atualizar ou refazer as etapas de início, você pode reabrir o assistente a qualquer momento usando o link abaixo:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Enviar e-mail de confirmação para o usuário que enviou a solicitação de início de projeto status_when_submitted: Status ao enviar status_when_submitted_caption: O status para o qual o pacote de trabalho gerado será alterado assim que a solicitação for enviada. @@ -6046,7 +6527,7 @@ pt-BR: work_package_comment_caption: O responsável selecionado acima será automaticamente @mencionado no comentário. work_package_comment_default: Uma solicitação de início de projeto para **%{project_name}** foi enviada e está aguardando revisão. work_package_type: Tipo de pacote de trabalho - work_package_type_caption: O tipo de pacote de trabalho que deve ser usado para armazenar o artefato concluído. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Abrir assistente de criação de projeto project_initiation_request: Abrir solicitação de início de projeto @@ -6066,6 +6547,7 @@ pt-BR: heading: Nova fase no_gate: Sem controle non_defined: Nenhuma fase foi definida no momento. + order_changed: Order successfully changed. phase_gates: Controles de fase section_header: Fases start_gate: Data inicial @@ -6122,7 +6604,7 @@ pt-BR: section_work_week: Semana de trabalho sharing: count: - one: 1 usuário + one: "%{count} user" other: "%{count} usuários" zero: 0 usuários denied: Você não possui permissões para compartilhar %{entities}. @@ -6212,19 +6694,19 @@ pt-BR:
Nota: Valores herdados (por exemplo, de itens filhos ou relações) ainda serão aplicados. index: + could_not_be_moved: O estado não pôde ser alterado. headers: - excluded_from_totals: Excluído dos totais is_closed: Fechado - is_default: Padrão is_readonly: Somente leitura + no_filter_results_title_text: Nenhum estado corresponde ao filtro atual. no_results_content_text: Adicionar uma nova situação no_results_title_text: Atualmente, não há nenhuma situação de pacote de trabalho. + status_actions: Ações de estado support: array: sentence_connector: e skip_last_comma: falso text_access_token_hint: Tokens de acesso permitem que você conceda acesso de aplicativos externos a recursos no OpenProject. - text_accessibility_hint: O modo de acessibilidade foi projetado para usuários cegos, deficientes físicos ou que possuem uma visão ruim. Para este último, os elementos em foco são especialmente destacados. Observe que o módulo Backlogs não está disponível neste modo. text_analyze: 'Analisar mais: %{subject}' text_are_you_sure: Você tem certeza? text_are_you_sure_continue: Tem certeza de que deseja continuar? @@ -6267,12 +6749,6 @@ pt-BR: ' text_custom_field_possible_values_info: Uma linha para cada valor - text_custom_logo_instructions: 'O logotipo é redimensionado automaticamente para se ajustar ao cabeçalho. Para melhores resultados, envie um logotipo branco em uma imagem transparente de 130×47px. É possível adicionar o espaçamento interno que desejar nessa imagem. - - ' - text_custom_logo_mobile_instructions: 'O logotipo é redimensionado automaticamente para se ajustar ao cabeçalho. Para melhores resultados, envie um logotipo branco em uma imagem transparente de 130×33px. É possível adicionar o espaçamento interno que desejar nessa imagem. - - ' text_custom_touch_icon_instructions: 'Este é o ícone que aparece no seu celular ou tablet quando você coloca um marcador em sua tela inicial. O arquivo de imagem precisa ser PNG de 180 por 180 pixels. Certifique-se de que o plano de fundo da imagem não seja transparente, caso contrário ficará ruim no iOS. ' @@ -6322,6 +6798,7 @@ pt-BR: text_length_between: Tamanho entre %{min} e %{max} caracteres. text_line_separated: Vários valores permitidos (uma linha para cada valor). text_load_default_configuration: Carregar a configuração padrão + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Não há nenhum token de acesso que pode ser configurado. text_no_configuration_data: Papéis, tipos, situação do pacote de trabalho e fluxo de trabalho não foram configurados ainda. É altamente recomendável carregar a configuração padrão. Uma vez carregada, você será capaz de modificá-la. text_no_notes: Não há comentários disponíveis para este pacote de trabalho. @@ -6421,6 +6898,68 @@ pt-BR: tree_view: label_empty_sub_tree: Sem itens types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Comparar variantes + blankslate: + description: Adicione uma segunda variante a este tipo para ver o que as diferencia. + title: Ainda não há nada para comparar + description: Compare as variantes deste tipo com o tipo pai. + labels: + duplicate: Possível duplicata + duplicate_of: Configurado exatamente como %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Tipo pai + same_as_type: Igual ao tipo pai + rows: + form: + fields: Campos + groups: Seções + required: Dos quais obrigatórios + same_as_base: Igual ao tipo pai + scope: + availability: Disponível para + enabled_in_new_projects: Ativo em novos projetos + projects: Projetos + workflows: + roles: Funções envolvidas + same_as_base: Igual ao tipo pai + statuses: Estados + transitions: Transições + sections: + configuration: Visão geral da configuração + form: Formulário + scope: Escopo + workflows: Fluxos de trabalho + title: Comparar variantes + title_for_type: Comparar variantes de %{name} + values: + global: Todos os projetos + inheriting_from: Herdando de + project_specific: Específico do projeto ([%{project}](project_url)) + same_as_base: Idêntico ao tipo pai creation_wizard: add_variant: Adicionar uma variante a %{name} create_type: Criar tipo @@ -6430,14 +6969,40 @@ pt-BR: finish: Concluir placeholder_description: Esta etapa estará disponível em breve. progress_label: Etapa %{number} de %{total} + start: + next_heading: What happens next? + submit: Iniciar + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Padrões details: Detalhes form_configuration: Formulário - pdf: Geração do PDF + pdf: Generate PDF project_attributes: Atributos do projeto projects: Projetos - workflows: Fluxos de trabalho + start: Iniciar + workflows: Workflow success: Criado com sucesso. edit: breadcrumb_variant: 'Variante: %{name}' @@ -6446,8 +7011,10 @@ pt-BR: caption: Defina um padrão usando atributos referenciados e texto para gerar automaticamente os assuntos dos pacotes de trabalho. Os usuários não poderão editar os assuntos manualmente. label: Tópicos gerados automaticamente description: - caption: Adicione o texto que será incluído no campo de descrição de todos os novos pacotes de trabalho com este tipo. - label: Texto de descrição padrão + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Os usuários podem inserir e editar manualmente os assuntos dos pacotes de trabalho sem restrições. label: Assuntos editáveis manualmente @@ -6476,21 +7043,21 @@ pt-BR: file_link: caption: O PDF gerado foi carregado no armazenamento Nextcloud gerenciado automaticamente pelo projeto e vinculado ao pacote de trabalho. Os pacotes de trabalho de projetos sem esse tipo de armazenamento serão ignorados. label: Carregar arquivo no armazenamento externo e adicionar link do arquivo ao pacote de trabalho - intro: Gerar automaticamente um artefato PDF de um pacote de trabalho deste tipo sempre que seu status for alterado. - invalid_mode: Modo de exportação de artefato inválido. - label: Exportação automática de artefato + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Nenhum PDF é gerado automaticamente. label: Desativado - section_title: Exportação automática de artefato + section_title: Automatic artifact export unavailable: indisponível, nenhum armazenamento Nextcloud gerenciado automaticamente está configurado - intro: Selecione quais modelos disponíveis você deseja ativar para este tipo. O modelo define o design e os atributos visíveis no PDF exportado de um pacote de trabalho desse tipo. O primeiro modelo da lista é selecionado por padrão. pdf_export_templates: actions: label_disable_all: Desabilitar todos label_enable_all: Habilitar todos label_toggle_template: Alternar %{template} label: Modelos de exportação de PDF + order_changed: Order successfully changed. tab: Gerar PDF templates: readonly_error: Não pode ser alterado enquanto estiver vinculado a um tipo de origem. @@ -6507,6 +7074,8 @@ pt-BR: confirm_delete_group: Tem certeza que deseja excluir esta seção? Esta ação não pode ser revertida automaticamente. confirm_reset: Tem certeza de que deseja restaurar o formulário? custom_field: Campo personalizado + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Excluir seção drag_to_activate: Arraste os campos daqui para ativá-los drag_to_reorder: Arraste para reordenar @@ -6528,6 +7097,14 @@ pt-BR: query_group_label: Tabela de pacotes de trabalho relacionados remove_attribute: Remover da seção rename_group: Renomear seção + required: + already_required_globally: Este campo personalizado é obrigatório para todos os tipos. + for_variant: Obrigatório para este tipo + globally: Obrigatório + globally_hint: Altere isso no campo personalizado + mark: Exigir para este tipo + not_a_custom_field: Somente um campo personalizado pode ser definido como obrigatório para um único tipo. + unmark: Não exigir para este tipo reset_description: 'Isso redefinirá os atributos para o grupo padrão e desabilitará TODOS os campos personalizados. ' @@ -6537,12 +7114,14 @@ pt-BR: tab: Formulário untitled_group: Grupo sem título overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Modo de configuração - dependents: Tipos e variantes dependentes mode: always_manual: Sempre manual - inheriting_from_html: Herdando de %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Configurado manualmente + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Configurações tab: Visão geral project_attributes: @@ -6556,12 +7135,12 @@ pt-BR: manual: description: Depois que você [criar atributos de projeto](administration_url), eles ficarão visíveis aqui e poderão ser adicionados a um tipo. title: Nenhum atributo de projeto disponível - description: Selecione os atributos do projeto que deseja habilitar para este tipo de pacote de trabalho. Os atributos do projeto habilitados são exibidos em uma guia separada nos pacotes de trabalho deste tipo. Usuários com as permissões necessárias podem visualizar e editar esses atributos nessa guia. disabled: Desativado exclusions: attribute_label: Herdar %{attribute} filter: Pesquisar por seção ou nome tab: Atributos do projeto + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remover o tipo %{type} de %{project}? @@ -6574,10 +7153,12 @@ pt-BR: empty_state: description: Adicione um projeto para usar esta configuração nele. no_results: Não existem projetos correspondentes. + title: Not used in any project yet enable_all: Habilitar para todos os projetos select_projects: Selecionar projetos select_projects_description: Selecione os projetos nos quais deseja usar esse tipo. tab: Projetos + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6592,43 +7173,17 @@ pt-BR: title: Copiar configuração invalid_source: A configuração não pode ser copiada do tipo selecionado. Selecione um tipo de origem diferente. success: A configuração foi copiada. - dependents: - blank: - description: Nenhum outro tipo ou variante herda desta configuração - title: Nenhum tipo dependente - description: - one: A configuração a seguir é herdada por outro tipo ou variante. Qualquer alteração feita aqui também afetará o tipo ou a variante dependente. - other: A configuração a seguir é herdada por %{count} outros tipos ou variantes. Qualquer alteração feita aqui também afetará os tipos ou variantes dependentes. - dialog: - description: Esses tipos e variantes herdam a configuração desta seção. Qualquer alteração feita aqui será aplicada a todos eles. - direct_heading: Dependentes diretos - indirect_heading: Dependentes através de outros tipos - title: Tipos dependentes - variant_of_html: Variante de %{type_name} - variant_of_via_html: Variante de %{type_name}, herdando por meio de %{source_name} - via_html: Herdando por meio de %{source_name} - title: - one: 1 tipo dependente - other: "%{count} tipos dependentes" - view: Exibir tipos dependentes exclusions: not_inherited: Esta configuração não é herdada, portanto não há nada a excluir. Edite a configuração diretamente. unknown_aspect: Seção de configuração desconhecida "%{aspect}". inherited: - change_source: Alterar tipo de origem configure_manually: Configurar manualmente confirm_dialog: - change_source: - description_html: Ao copiar o tipo de origem de %{source_name}, você substituirá as configurações atuais e isso poderá afetar informações existentes nos pacotes de trabalho deste tipo. - heading: Alterar tipo de origem? - title: Alterar tipo de origem check_box: Entendo que isso substituirá as configurações atuais from_manual: description: Todas as configurações selecionadas atualmente serão substituídas e isso poderá afetar informações existentes nos pacotes de trabalho deste tipo. heading: Alternar modo de configuração? title: Alternar modo de configuração - description: Esta configuração é herdada do tipo de origem [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Esta configuração é herdada do tipo de origem %{source_name}%{source_suffix}. dialog: description: Herdar esta configuração de um tipo de origem. Qualquer nova configuração adicionada à origem também será aplicada aqui. source_label: Tipo de fonte @@ -6636,6 +7191,9 @@ pt-BR: submit: Alternar title: Herdar de outro tipo invalid_source: A configuração não pode ser herdada do tipo selecionado. Selecione um tipo de origem diferente. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: O modo de configuração foi alterado. title: Configuração herdada manual: @@ -6644,13 +7202,14 @@ pt-BR: description: Todas as configurações selecionadas atualmente serão substituídas e isso poderá afetar informações existentes nos pacotes de trabalho deste tipo. heading: Alternar modo de configuração? title: Alternar modo de configuração - copy_from_type: Copiar de outro tipo description: Nenhuma configuração é herdada. Ainda é possível copiar as configurações de outro tipo uma única vez. dialog: submit: Alternar title: Configurar manualmente - inherit_from_type: Herdar de outro tipo + inherit_from_type: Inherit from parent invalid_mode: O modo selecionado não está disponível para esta configuração. Escolha um modo diferente. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Começar com uma cópia única das configurações que esta configuração herda atualmente. @@ -6664,12 +7223,16 @@ pt-BR: success: O modo de configuração foi alterado. title: Configuração manual parent_suffix: " (pai)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Você pode criar variantes para oferecer versões deste tipo a diferentes projetos.
Cada variante pode herdar, copiar ou ter sua própria configuração personalizada para o modelo padrão, campos personalizados, fluxos de trabalho e preferências. ' title: Não existem variantes para este tipo + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Criado em %{project} delete: description: Os projetos que usam esta variante serão alterados para a variante escolhida abaixo antes que esta variante seja excluída. @@ -6678,33 +7241,74 @@ pt-BR: filter_no_results: Nenhuma variante corresponde a este filtro global_section: description: Estas variantes estão disponíveis em todos os projetos. - title: Variantes + title: Variantes globais project_specific_section: description: Estas variantes estão disponíveis apenas nos projetos em que foram criadas. title: Variantes específicas do projeto workflow: - tab: Fluxos de trabalho + tab: Workflow index: add_variant: Adicionar uma variante a %{name} add_variant_action: Adicionar variante + convert_to_global: Converter para variante global + convert_to_global_dialog: + confirm: Converter + text: 'Isso tornará esta variante específica do projeto uma variante global, disponível para todos os projetos. O administrador do projeto não poderá mais editá-la. + + ' + workflow_text: 'O fluxo de trabalho "%{name}" pertence a este projeto e também se tornará global. + + ' + convert_to_global_notice: "%{name} agora é uma variante global." + convert_to_global_rename: + confirm: Converter + text: Já existe uma variante global com este nome. Escolha um nome diferente. + title: Escolha outro nome para esta variante + created_by_migration: Migrated + delete: + description: O tipo será excluído permanentemente. Esta ação não pode ser desfeita. + description_with_variants: O tipo e todas as suas variantes serão excluídos permanentemente. Esta ação não pode ser desfeita. + heading: Apagar o tipo '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Excluir tipo description: 'Cada área de configuração em tipos e variantes pode ser configurada independentemente, limitada por outro tipo ou totalmente vinculada a uma origem. ' duplicate_name: Cópia de %{name} duplicate_notice: "%{name} foi duplicado." enabled_in_new_projects: Ativo em novos projetos + filter: Filter by name + filter_no_results: No types match this filter make_default: Ativar em novos projetos make_default_notice: "%{name} agora está ativado em novos projetos." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Criar um novo tipo no_results_title_text: Atualmente, não há nenhum tipo. project_variants_count: - one: 1 variante específica do projeto - other: "%{count} variantes especificas do projeto" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: Não ativar em novos projetos remove_default_notice: "%{name} não está mais ativado em novos projetos." type_label: Tipo variant_label: Variante + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Marco + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Apenas etiqueta + hierarchy_short: Somente curto + weighted_item_list_default: Padrão (rótulo e peso) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorar este aviso. message: Você pode encontrar erros e experiência degradada nesta página. @@ -6723,8 +7327,8 @@ pt-BR: authorization_rejected: Você não tem permissão para acessar. blocked: bloqueado temporariamente blocked_num_failed_logins: - one: bloqueado temporariamente (uma tentativa de login inválida) - other: bloqueado temporariamente (%{count} tentativas de login inválidas) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Você está prestes a mudar a situação de '%{name}'. Tem certeza que deseja continuar? deleted: Usuário excluído department_ldap_managed_caption: Este departamento é gerenciado pela sincronização LDAP e não pode ser alterado aqui. @@ -6824,7 +7428,7 @@ pt-BR: deletion_warning: Tem certeza de que deseja revogar esta sessão? Você será desconectado neste dispositivo. device: Dispositivo / OS expires: Expira - instructions: Você está conectado à sua conta nos seguintes dispositivos. Revogue as sessões que você não reconhecer ou que estejam em dispositivos que você não controla. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Último acesso may_not_delete_current: Você não pode excluir a sessão atual. session_name: "%{browser_name} %{browser_version} em %{os_name}" @@ -6884,13 +7488,19 @@ pt-BR: start_date: Data de início work_days: Dias úteis work_days_count: - one: 1 dia de trabalho - other: "%{count} dias de trabalho" + one: "%{count} working day" + other: "%{count} working days" work_hours: Horas de trabalho version_status_closed: fechado version_status_locked: bloqueado version_status_open: aberto versions: + filter_status_labels: + closed: Fechado + locked: Bloqueado + open: Abrir + index: + filter_label: Pesquisar versões overview: no_results_title_text: Não há pacote de trabalho atribuído a esta versão. work_packages_in_archived_projects: A versão é compartilhada com projetos arquivados que ainda possuem pacotes de trabalho atribuídos a esta versão. Eles são contados, mas não aparecerão nas exibições vinculadas. @@ -7060,13 +7670,15 @@ pt-BR: required_description: Marca este pacote de trabalho como um requisito para o pacote de trabalho relacionado requires_description: Marca o pacote de trabalho relacionado como um pré-requisito para este work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Os pacotes de trabalho não puderam ser copiados. could_not_be_deleted: 'Não foi possível excluir os seguintes pacotes de trabalho:' could_not_be_saved: 'Os seguintes pacotes de trabalho não puderam ser salvos:' deletion_successful: - one: 1 pacote de trabalho excluído com sucesso. - other: "%{count} pacotes de trabalho excluídos com sucesso." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: descendente de selecionados move_failed: Os pacotes de trabalho não puderam ser movidos. none_could_be_saved: Nenhum dos %{total} pacotes de trabalho pode ser atualizado. @@ -7090,18 +7702,18 @@ pt-BR: description_with_visible_descendants: Tem certeza de que deseja excluir os pacotes de trabalho selecionados e todos os descendentes visíveis? heading: Excluir estes %{count} pacotes de trabalho de forma permanente? hidden_descendants_only_warning: - one: Há um descendente que você não pode ver. Ele não será excluído, mas a relação será removida. - other: Há %{count} descendentes que você não pode ver. Eles não serão excluídos, mas quaisquer relações hierárquicas serão removidas. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Todos os descendentes visíveis serão removidos. No entanto, há um descendente que você não pode ver. Ele não será excluído, mas a relação será removida. - other: Todos os descendentes visíveis serão removidos. No entanto, há %{count} descendentes que você não pode ver. Eles não serão excluídos, mas quaisquer relações hierárquicas serão removidas. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Excluir %{count} pacotes de trabalho undeletable_descendants_warning: - one: Você não pode excluir um dos descendentes porque não tem as permissões necessárias. Ele será preservado, mas a relação hierárquica será removida. - other: Você não pode excluir %{count} descendentes porque não tem as permissões necessárias. Eles serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Você não pode excluir um dos descendentes porque não tem as permissões necessárias em %{projects}. Ele será preservado, mas a relação hierárquica será removida. - other: Você não pode excluir %{count} descendentes porque não tem as permissões necessárias em %{projects}. Eles serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7158,18 +7770,154 @@ pt-BR: description: Tem certeza de que deseja excluir "%{name}"? heading: Excluir este pacote de trabalho de forma permanente? hidden_descendants_only_warning: - one: Este pacote de trabalho tem um descendente que você não pode ver. Ele não será excluído, mas a relação hierárquica será removida. - other: Este pacote de trabalho tem %{count} descendentes que você não pode ver. Eles não serão excluídos, mas a relação hierárquica será removida. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Todos os descendentes visíveis serão excluídos. No entanto, este pacote de trabalho tem um descendente que você não pode ver. Ele não será excluído, mas a relação hierárquica será removida. - other: Todos os descendentes visíveis serão excluídos. No entanto, este pacote de trabalho tem %{count} descendentes que você não pode ver. Eles não serão excluídos, mas a relação hierárquica será removida. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Excluir pacote de trabalho undeletable_descendants_warning: - one: Você não pode excluir um dos descendentes porque não tem as permissões necessárias. Ele será preservado, mas a relação hierárquica será removida. - other: Você não pode excluir %{count} descendentes porque não tem as permissões necessárias. Eles serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Você não pode excluir um dos descendentes porque não tem as permissões necessárias em %{projects}. Ele será preservado, mas a relação hierárquica será removida. - other: Você não pode excluir %{count} descendentes porque não tem as permissões necessárias em %{projects}. Eles serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Os tipos dos pacotes de trabalho ou seus descendentes não estão habilitados no projeto de destino. Habilite os tipos ausentes no projeto de destino se quiser mantê-los inalterados. Caso contrário, selecione um tipo disponível no projeto de destino na lista. @@ -7201,37 +7949,53 @@ pt-BR: version: no_results_title_text: Atualmente, não há versões disponíveis. x_descendants: - one: Um pacote de trabalho descendente - other: "%{count} pacotes de trabalho descendentes" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Alterar o fluxo de trabalho copies: form: - mode: - from_role: - caption: Copiar o fluxo de trabalho atual para uma ou mais funções dentro do mesmo tipo de pacote de trabalho. Se a função selecionada já tiver um fluxo de trabalho, o atual será substituído. - label: Copiar para outras funções - from_type: - caption: Copiar o fluxo de trabalho atual para outro tipo de pacote de trabalho. Se o tipo selecionado já tiver um fluxo de trabalho, o atual será substituído. Isso afeta todas as funções. - label: Copiar para outro tipo - source_role_id: - label: Função de origem target_role_ids: label: Funções alvo - target_variant_ids: - label: Tipos alvo from_roles: create: notice: one: Fluxo de trabalho copiado com sucesso para a função "%{role_name}". other: Fluxo de trabalho copiado com sucesso para %{count} funções. - from_variants: - create: - notice: - one: Fluxo de trabalho copiado com sucesso para "%{type_name}". - other: Fluxo de trabalho copiado com sucesso para %{count} tipos. new: - title: Copiar fluxo de trabalho de “%{source_type}” + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Matriz de fluxo de trabalho matrix_caption_assignee: Matriz de fluxo de trabalho para o responsável matrix_caption_author: Matriz de fluxo de trabalho para o autor @@ -7240,12 +8004,88 @@ pt-BR: matrix_check_uncheck_all_in_row_label_html: Alternar transições de %{old_status} para todos os novos status matrix_checkbox_label: Permitir transição de %{old_status} para %{new_status} matrix_uncheck_all_label: Não permitir nenhuma transição + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Criar fluxo de trabalho index: + actions: + create: Fluxo de Trabalho + edit: Editar transições + menu: Ações para %{name} + rename: Editar nome e descrição + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projetos + roles: Funções + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtrar por nome do tipo… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configurar transições de status para cada tipo de pacote de trabalho. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Alterar dias úteis dialog: diff --git a/config/locales/crowdin/pt-PT.seeders.yml b/config/locales/crowdin/pt-PT.seeders.yml index ac712ea04702..143fff2ce452 100644 --- a/config/locales/crowdin/pt-PT.seeders.yml +++ b/config/locales/crowdin/pt-PT.seeders.yml @@ -250,70 +250,26 @@ pt-PT: Neste módulo, pode comunicar as novidades do projeto aos membros da sua equipa. versions: item_0: - name: Lista de acumulados de erros - item_1: - name: Lista de acumulados de produto - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Versão 1.0 content: | - ### Reunião de planeamento do Sprint - - _Documente aqui os tópicos da reunião de planeamento do Sprint_ - - * Tempo atribuído (8 h) - * Entrada: Backlog do produto - * Saída: Backlog do Sprint - - * Dividido em dois períodos adicionais de 4 h: - - * O Proprietário do Produto apresenta o [Backlog do produto]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e as prioridades à equipa, e explica o objetivo do Sprint, com o qual a equipa deve concordar. Juntos, dão prioridade aos tópicos do backlog de produto que a equipa irá tratar no próximo sprint. A equipa compromete-se com a entrega discutida. - * A equipa planeia autonomamente (sem o Proprietário do Produto) em pormenor, e divide as tarefas a partir dos requisitos discutidos para consolidar um [Backlog do Sprint]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Reunião diária do Scrum - - _Documente aqui os tópicos da reunião diária do Scrum_ - - * Reunião breve diária sobre o estado da equipa. - * Tempo atribuído (máx. 15 min). - * Reunião de pé para debater os seguintes temas do [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - * O que tenciono fazer até à próxima reunião diária do Scrum? - * O que é que bloqueou o meu trabalho (Impedimentos)? - * O Scrum Master modera e anota [Impedimentos do Sprint](##sprint:scrum_project__version__sprint_1). - * O Proprietário do Produto pode participar para se manter a par. + ### Versão 1.0 - ### Reunião de revisão do Sprint + _Documente aqui o que esta versão contém._ - _Documente aqui os tópicos da reunião de revisão do Sprint_ - - * Tempo atribuído (4 h). - * No máximo, uma hora de preparação por pessoa. - * A equipa mostra ao proprietário do produto e a outras pessoas interessadas o que foi alcançado neste sprint. - * Importante: sem guias e sem PowerPoint! Apenas deve ser demonstrada a funcionalidade do produto acabado (incrementos). - * O feedback do Proprietário do Produto, das partes interessadas e de outros é desejado e será incluído no trabalho futuro. - * Com base nas funcionalidades demonstradas, o Proprietário do Produto decide avançar com este incremento ou desenvolvê-lo mais. Esta possibilidade permite um retorno sobre o investimento antecipado. - - - ### Retrospetiva do Sprint - - _Documente aqui os tópicos da reunião de retrospetiva do Sprint_ - - * Tempo atribuído (3 h). - * Após a revisão do Sprint, será moderado pelo Scrum Master. - * A equipa discute o sprint: o que correu bem, o que precisa de ser melhorado para ser mais produtivo no próximo sprint ou até para se divertirem mais. - item_3: - name: Sprint 2 + * Os pacotes de trabalho desta versão são os que têm a versão de destino 1.0. + * A data de lançamento é a data do marco *Lançamento v1.0*. + * Abra o [Roteiro]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) para acompanhar o progresso de todas as versões. + * Abra [Definições do projeto → Versões]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) para associar outra página wiki a uma versão. categories: item_0: Categoria 1 (para ser alterado nas definições do Projeto) queries: item_0: name: Plano do projeto item_1: - name: Backlog do produto + name: Versão 1.1 item_2: - name: Sprint 1 + name: Versão 1.0 item_3: name: Tarefas boards: @@ -339,20 +295,21 @@ pt-PT: options: name: Introdução text: | - Estamos contentes por se ter juntado a nós! Sugerimos que experimente algumas coisas para começar a usar o OpenProject. + Estamos contentes por se ter juntado a nós! Sugerimos que experimente algumas coisas para dar os primeiros passos no OpenProject. - _Experimente os seguintes passos:_ + _Siga os seguintes passos:_ - 1. *Convidar novos membros para o projeto*: → Aceda a [Membros]({{opSetting:base_url}}/projects/your-scrum-project/members) na navegação do projeto. - 2. *Ver o seu backlog de produtos e backlog de sprint*: → Aceda a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) na navegação do projeto. - 3. *Ver o seu quadro de tarefas*: → Aceda a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Clique na seta para a direita em Sprint → Selecione [Quadro de tarefas](##sprint:scrum_project__version__sprint_1). - 4. *Criar um novo pacote de trabalho*: → Aceda a [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Criar e atualizar um plano de projeto*: → Aceda a [Plano do projeto](##query:scrum_project__query__project_plan) na navegação do projeto. - 6. *Criar uma wiki do Sprint*: → Aceda a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e abra a wiki do sprint a partir do menu pendente do lado direito num sprint. Pode editar o [modelo da wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) mediante as suas necessidades. - 7. *Ativar mais módulos*: → Aceda a [Definições do projeto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Convide novos membros para o seu projeto*: → Aceda a [Membros]({{opSetting:base_url}}/projects/your-scrum-project/members) na navegação do projeto. + 2. *Veja o seu Backlog de Produto e os Backlogs de Sprint*: → Aceda a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) na navegação do projeto. + 3. *Crie um Sprint*: → Aceda a [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) e clique em "+ Sprint" para criar um novo Sprint. Transfira os pacotes de trabalho do backlog para o Sprint, a fim de planear o trabalho a realizar. Quando estiver pronto, clique em "Iniciar Sprint". + 4. *Veja o seu quadro do Sprint*: → Aceda a [Quadros]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Abra o quadro do sprint clicando no nome do mesmo. + 5. *Criar um novo pacote de trabalho*: → Aceda a [Pacotes de trabalho → Criar]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Criar e atualizar um plano de projeto*: → Aceda a [Plano de projeto](##query:scrum_project__query__project_plan) na navegação do projeto. + 7. *Ativar módulos adicionais*: → Aceda a [Definições do projeto → Módulos]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Aqui encontra as nossas [Guias do Utilizador](https://www.openproject.org/docs/user-guide/). - Informe-nos se tiver alguma dúvida ou precisar de apoio. Contacte-nos: [support[at]openproject.com](mailto:support@openproject.com). + + Aqui encontrará os nossos [Guias do Utilizador](https://www.openproject.org/docs/user-guide/). + Informe-nos caso tenha alguma dúvida ou necessite de apoio. Contacte-nos: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Pacotes de trabalho diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index 588ad539eb14..89836e3aa4d1 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -40,7 +40,9 @@ pt-PT: view: Uma ligação dinâmica a uma vista inserida através de uma macro. work_package: Uma ligação dinâmica a um pacote de trabalho inserida através de uma macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Inicie sessão como %{login} para ativar a sua conta. + continue_with_provider: Continue with %{name} delete: Eliminar conta delete_confirmation: Tem certeza que deseja eliminar a conta? deletion_info: @@ -65,7 +67,9 @@ pt-PT: error_self_registration_limited_provider: 'O registo de utilizadores é limitado para o fornecedor de início de sessão único "%{name}". Peça a um administrador para ativar a conta para si ou para alterar o limite de auto-registo para este fornecedor. ' - login_with_auth_provider: ou inicie sessão com a sua conta + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continuar para o início de sessão omniauth_direct_login_redirecting: A redirecionar para o seu fornecedor de identidade... omniauth_login: Por favor, inicie a sessão para ativar a sua conta. @@ -118,6 +122,8 @@ pt-PT: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Clientes SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID personalizado customized_type: Tipo personalizado @@ -128,8 +134,6 @@ pt-PT: repository: Repositório comment: commented: Comentado - custom_action: - actions: Ações custom_field: admin_only: Apenas administradores allow_non_open_versions: Permitir versões não abertas @@ -168,6 +172,7 @@ pt-PT: uid: ID de cliente emoji_reaction: reactable: Reagiu a + reaction: Reaction enterprise_token: active_user_count_restriction: Utilizadores ativos encoded_token: Token de suporte da versão Enterprise @@ -179,20 +184,44 @@ pt-PT: company: Empresa favorite: favorited: Elemento + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Número de colunas page: Página row_count: Número de linhas widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Agrupar utilizadores identity_url: URL de identidade organizational_unit: Unidade organizacional parent: Grupo principal group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Unidade organizacional parent: Grupo principal import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Nome da instância do Jira personal_access_token: Token de acesso pessoal url: URL da instância do Jira @@ -223,6 +252,7 @@ pt-PT: title: Título member: blocked: Bloqueado + principal_type: Tipo de membro roles: Funções notification: read_ian: Ler na aplicação @@ -235,6 +265,7 @@ pt-PT: position: Posição persisted_query: filters: Filtros + group_bys: Agrupar resultados por name: Nome orders: Pedidos selects: Seleciona @@ -367,6 +398,8 @@ pt-PT: ongoing: Em curso spent_on: Data type: Tipo + token/base: + expires_on: Expiration date token/ical: calendar: Calendário ical_token_query_assignment: Atribuição de consultas @@ -384,19 +417,17 @@ pt-PT: type_variant: attribute_groups: Formulário default_work_package_description: Texto padrão para a descrição - defaults_source: Origem das predefinições enabled_in_new_projects: Ativo em novos projetos - form_configuration_source: Origem do formulário + linked_aspects: Inherited configuration patterns: Padrões - pdf_export_source: Origem da exportação para PDF - project_attributes_source: Origem dos atributos do projeto project_types: Projetos que utilizam esta variante variant: Variante variant_name: Nome - workflows_source: Origem dos fluxos de trabalho + workflow: Workflow user: admin: Administrador auth_source: Fonte de autenticação + avatar_type: Avatar type consented_at: Consentiu em current_password: Senha atual department: Departamento @@ -410,7 +441,7 @@ pt-PT: last_name: Sobrenome ldap_auth_source: Ligação LDAP new_password: Nova senha - password_confirmation: Confirmação + password_confirmation: Password confirmation user_custom_field: custom_field_section: Secção user_non_working_time: @@ -419,11 +450,15 @@ pt-PT: user_preference: auto_hide_popups: Ocultar automaticamente os banners de sucesso auto_hide_popups_caption: Quando ativado, os banners verdes de sucesso desaparecerão automaticamente após 5 segundos. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Atualizar alertas button_update_look_and_feel: Atualizar o aspeto e a sensação button_update_user_information: Atualizar perfil comments_sorting: Apresentar as atividades dos pacotes de trabalho ordenadas por daily_reminders: Lembretes diários + date_format: Date format disable_keyboard_shortcuts: Desativar atalhos de teclado dismissed_enterprise_banners: Faixas de empresas ocultas force_dark_theme_contrast: Forçar alto contraste quando no modo Escuro @@ -434,13 +469,23 @@ pt-PT: header_look_and_feel: Aspeto e sensação impaired: Modo de acessibilidade increase_contrast: Aumentar contraste - increase_contrast_caption: Ativa o modo de alto contraste para o modo de cor escolhido. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Aumentar contraste do tema mode_guideline: Alguns modos substituirão as cores personalizadas do tema para acessibilidade e legibilidade. Selecione o modo Ligeiro para ter suporte total para temas personalizados. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Modo de cor + time_format: Time format time_zone: Fuso horário warn_on_leaving_unsaved: Alertar-me quando sair de um pacote de trabalho sem guardar as alterações workdays: Dias úteis + user_resource: + description: Descrição + name: Nome + user_filter: Filtro de utilizador + user_resource_detail: + description: Descrição + user_filter: Filtro de utilizador user_working_hours: availability_factor: Fator de disponibilidade days: Dias úteis @@ -491,6 +536,7 @@ pt-PT: title: Dias úteis true: incluir dias não úteis journal_internal: Diário Interno + labels: Labels notify: Notificar observed_in_versions: Observado nas versões parent: Mãe @@ -519,6 +565,10 @@ pt-PT: work_package: Pacote de trabalho work_package_version: kind: Tipo + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: deve ser aceite. @@ -590,6 +640,8 @@ pt-PT: regex_invalid: não pode ser validado com a expressão regular associada. regex_list_invalid: Não foi possível analisar as linhas %{invalid_lines} como expressão regular. regex_match_failed: não corresponde à expressão regular %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: deve ser menor ou igual ao comprimento máximo. smaller_than_or_equal_to_max_value: deve ser inferior ou igual ao valor máximo. ssrf_filtered: viola a política de SSRF desta instância do OpenProject. @@ -612,6 +664,10 @@ pt-PT: user_in_ldap_managed_department: Este utilizador pertence a um departamento gerido por sincronização LDAP, e não pode ser transferido. wrong_length: tamanho errado (deve ser %{count} caracteres). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ pt-PT: general_consent: Aceite os termos e condições. favorite: already_favorited: já foi marcado como favorito. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: o valor final tem de ser maior que o valor inicial. outside: está fora da rede. @@ -689,6 +755,13 @@ pt-PT: not_unique: já está a ser utilizado. Escolha outro nome. jira: invalid_protocol: Forneça um protocolo válido (http ou https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ pt-PT: types: cannot_assign_multiple_variants_of_parent: Só é possível ativar uma única variante de um Tipo no projeto cannot_assign_variant_and_parent: 'Não é possível atribuir uma variante e o seu elemento pai ' - cannot_assign_variants_yet: Ainda não é possível ativar variantes num projeto. Ative o indicador de funcionalidade para experimentar as variantes in_use_by_work_packages: 'ainda em uso por pacotes de trabalho: %{types}' switch_target_blank: Selecione a variante para a qual pretende mudar switch_target_identical: O tipo de destino deve ser diferente do tipo que o projeto utiliza atualmente @@ -857,42 +929,26 @@ pt-PT: blank: Forneça um nome de token format: "%{message}" in_use: Este nome de token já está a ser utilizado, selecione um diferente + type: + attributes: + base: + in_use_by_work_packages: Este tipo não pode ser eliminado enquanto ainda houver pacotes de trabalho que o utilizem. type_variant: attributes: - attribute_groups: - attribute_unknown: Foi utilizado um atributo de pacote de trabalho inválido. - attribute_unknown_name: 'Foi utilizado um atributo de pacote de trabalho inválido: %{attribute}' - duplicate_group: O nome de grupo '%{group}' foi usado mais de uma vez. Os nomes de grupos têm de ser exclusivos. - group_without_name: O nome do grupo não pode ficar em branco - query_invalid: 'A consulta incorporada ''%{group}'' é inválida: %{details}' base: - borrowed_by_variants: Não pode ser eliminado enquanto a sua configuração for reutilizada por %{names}. is_default_variant: A configuração predefinida de um tipo não pode ser eliminada. project_variants_not_allowed: Este tipo não permite a criação de variantes no interior dos projetos. restrict_dependent_destroy: has_many: Não pode ser eliminada enquanto houver projetos a utilizá-la. - defaults_source_id: - must_be_available_to_the_variant: tem de ser uma configuração que este projeto possa utilizar. - would_create_cycle: ligaria estas configurações num loop. enabled_in_new_projects: not_available_to_project_owned_variant: não pode ser definido numa variante pertencente a um projeto. taken: já está definida para outra configuração deste tipo. - form_configuration_source_id: - must_be_available_to_the_variant: tem de ser uma configuração que este projeto possa utilizar. - would_create_cycle: ligaria estas configurações num loop. patterns: invalid_tokens: Um ou mais atributos dentro do campo não são válidos. Corrija os atributos antes de os guardar. - pdf_export_source_id: - must_be_available_to_the_variant: tem de ser uma configuração que este projeto possa utilizar. - would_create_cycle: ligaria estas configurações num loop. - project_attributes_source_id: - must_be_available_to_the_variant: tem de ser uma configuração que este projeto possa utilizar. - would_create_cycle: ligaria estas configurações num loop. variant: must_belong_to_the_type: deve ser uma variante deste tipo. - workflows_source_id: - must_be_available_to_the_variant: tem de ser uma configuração que este projeto possa utilizar. - would_create_cycle: ligaria estas configurações num circuito. + workflow: + not_available_to_this_variant: tem de ser um fluxo de trabalho que este projeto possa utilizar. user: attributes: base: @@ -906,8 +962,8 @@ pt-PT: numeric: numérico (exemplo, '1') requirements_not_met: 'Deve incluir caracteres dos seguintes tipos: %{rules}' reused: - one: já foi utilizada antes. Por favor, escolha uma que seja diferente da anterior. - other: já foram utilizadas antes. Por favor, escolha uma que seja diferente das %{count} anteriores. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: caráter especial (exemplo, %) uppercase: maiúsculas (exemplo, 'A') password_confirmation: @@ -976,6 +1032,8 @@ pt-PT: identifier: must_not_be_changed: 'não devem ser alterados manualmente. Os identificadores dos pacotes de trabalho são atribuídos automaticamente e resolvidos através da tabela de alias; por isso, alterá-los manualmente interrompe as ligações e o histórico dos identificadores. Se esta alteração for deliberada, guarde com `save(context: :%{context})` e mantenha a tabela `work_package_semantic_aliases` consistente.' semantic_identifier_incomplete: e sequence_number devem ser definidos ao mesmo tempo. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: não pode fazer parte de outro projeto. cannot_be_milestone: não pode ser um marco. @@ -1003,6 +1061,8 @@ pt-PT: status_id: status_invalid_in_type: é inválido porque não existe o status atual deste tipo. status_transition_invalid: é inválido porque não existe transição válida da antiga para a nova situação do utilizador actual. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: não pode ser um marco porque este pacote de trabalho tem filhos. is_not_a_valid_target_for_time_entries: 'Pacote de trabalho #%{id} não válido para reafectar os registos de horas.' @@ -1011,8 +1071,8 @@ pt-PT: template: body: 'Por favor, verifique os seguintes campos:' header: - one: 'Não foi possível guardar este %{model}: 1 erro' - other: "%{count} erros impediram que este %{model} fosse guardado" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Ação @@ -1050,6 +1110,9 @@ pt-PT: auth_provider: one: Fornecedor de autenticação other: Fornecedores de autenticação + automation: + one: Automation + other: Automations backup: one: Cópia de segurança other: Cópias de segurança @@ -1071,9 +1134,6 @@ pt-PT: comment: one: Comentário other: Comentários - custom_action: - one: Ação personalizada - other: Ações personalizadas custom_field: one: Campo personalizado other: Campos personalizados @@ -1119,6 +1179,9 @@ pt-PT: export_setting: one: Definição de exportação other: Definições de exportação + form_configuration: + one: Form + other: Forms forum: one: Fórum other: Fóruns @@ -1137,6 +1200,9 @@ pt-PT: issue_priority: one: Prioridade other: Prioridades + label: + one: Label + other: Labels ldap_auth_source: one: Ligação LDAP other: Ligações LDAP @@ -1401,7 +1467,28 @@ pt-PT: admin: banners: environment_configured_readonly: Estes valores são configurados através de variáveis de ambiente e não podem ser editados aqui. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Cores de base main_menu: Menu lateral principal @@ -1434,7 +1521,11 @@ pt-PT: tab_interface: Interface tab_pdf_export_font: Tipo de letra para exportação em PDF tab_pdf_export_styles: Estilos de exportação PDF - theme_warning: Alterar o tema irá sobrescrever seu estilo personalizado. O design será perdido. Tem certeza que deseja continuar? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Carregar um token de suporte da edição Enterprise book_now: Reserve agora @@ -1467,7 +1558,7 @@ pt-PT: import: title: Importar info: - database_deprecation_html: 'A partir do OpenProject 16.0, PostgreSQL 16 é necessário para usar o OpenProject. A sua instalação permanecerá funcional com a sua base de dados atual, mas antecipe a incompatibilidade em versões futuras.
Preparámos [guias de atualização para todos os métodos de instalação](upgrade_guide). Pode fazer a atualização antes da próxima versão a qualquer momento, seguindo os guias. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Alocador de memória Jemalloc @@ -1475,12 +1566,15 @@ pt-PT: actions: button_edit: Editar configuração button_open: Execuções abertas + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Ajude-nos a melhorar o Jira Migrator com comentários e doações de dados privados. Pode [juntar-se à comunidade de desenvolvimento](link) do Jira Migrator. ' description: Este Jira Migrator está em fase beta. Neste momento, só tempo suporte para oJira Server/Data Center nas versões 10.x e 11.x. As instâncias na nuvem não têm suporte neste momento. title: Beta - Experimente! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure um anfitrião do Jira para começar a importar elementos do Jira para esta instância do OpenProject. title: Ainda não há anfitriões do Jira configurados @@ -1513,16 +1607,30 @@ pt-PT: description: Jira utiliza identificadores de tarefa compostos por uma chave de projeto e um número sequencial (PRJ-123). O OpenProject também suporta esta funcionalidade, mas é necessário ativá-la [aqui](link). title: Os identificadores semânticos baseados em projetos devem ser ativados. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Adicionar configuração - button_delete_token: Eliminar token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Guardar configuração - delete_token_confirm: Tem a certeza de que quer eliminar o token? Isto vai desativar a ligação ao Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Nome - personal_access_token: Token de acesso pessoal + personal_access_token: Personal access token (PAT) url: URL do servidor/centro de dados do Jira label_testing: A testar configuração... - test_configuration_caption: Pode testar esta configuração [ao clicar aqui](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Editar execução @@ -1626,26 +1734,26 @@ pt-PT: title: Garanta que tem uma cópia de segurança! parts: issues: - one: 1 ocorrência - other: "%{count} ocorrências" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 projeto - other: "%{count} projetos" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 estado - other: "%{count} estados" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 tipo - other: "%{count} tipos" + one: "%{count} type" + other: "%{count} types" users: - one: 1 utilizador - other: "%{count} utilizadores" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 pacote de trabalho - other: "%{count} pacotes de trabalho" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Compreendo que esta reversão irá apagar os dados permanentemente description: Isto eliminará todos os objetos importados (incluindo projetos inteiros). @@ -1710,8 +1818,8 @@ pt-PT: caption: Escolha o que quer importar para o OpenProject caption_done: Concluído caption_done_description: - one: 1 projeto selecionado como âmbito - other: "%{count} projetos selecionados como âmbito" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Selecione os dados que pretende importar a partir dos dados disponíveis obtidos na instância anfitriã do Jira. elements: custom_fields: Um subconjunto de campos personalizados @@ -1775,23 +1883,53 @@ pt-PT: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: A API do Jira devolveu o estado de erro %{status}. Verifique o URL da sua instância do Jira e o token da API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Erro de ligação: %{message}' error: Ocorreu um erro inesperado ao testar a ligação failed: 'A ligação falhou: Não foi possível recuperar as informações do servidor' invalid_url: Forneça um URL válido - missing_credentials: Forneça o URL e o Token de Acesso Pessoal para testar a ligação parse_error: Falha ao analisar a resposta do servidor. O servidor pode não ser uma instância válida do Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Ligado com sucesso a %{server} (versão %{version}) - token_error: Token de API inválido. Verifique as suas credenciais na configuração. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: O token foi eliminado com sucesso. user: unknown_name: Desconhecido journal_aggregation: caption_with_maximum: 'As ações do utilizador num pacote de trabalho (alterar a descrição, o estado, os valores ou escrever comentários) são agrupadas se forem realizadas neste período. Este período também controla os atrasos nas notificações e no [webhook](webhook_link). O máximo é de %{max} minutos. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: O protocolo de contexto do modelo permite que os agentes de IA forneçam aos seus utilizadores ferramentas e recursos expostos por esta instância do OpenProject. Esta funcionalidade ainda está em fase beta. @@ -1822,6 +1960,18 @@ pt-PT: update: failure: Não foi possível atualizar a configuração MCP. success: A configuração da MCP foi atualizada com êxito. + members: + index: + blank_description: Não há nenhuma adesão que corresponda ao filtro atual. + blank_title: Sem adesões + filter_label: Pesquisar utilizadores + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Adesões + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Para mais informações, consulte a nossa página de integrações e plugins. no_results_title_text: Atualmente não há plugins instalados. @@ -1835,8 +1985,8 @@ pt-PT: confirm_button: Anular a reserva do identificador description: A anulação da reserva deste identificador de projeto não pode ser revertida. As ligações externas e integrações que o utilizam deixarão de funcionar, e o nome ficará disponível para ser reclamado por qualquer novo projeto. description_with_work_packages: - one: A anulação da reserva deste identificador de projeto (e o identificador do seu primeiro pacote de trabalho) não pode ser revertida. As ligações externas e integrações que o utilizam deixarão de funcionar, e o nome ficará disponível para ser reclamado por qualquer novo projeto. - other: A anulação da reserva deste identificador de projeto (e os seus %{count} identificadores de pacotes de trabalho) não pode ser revertida. As ligações externas e integrações que o utilizam deixarão de funcionar, e o nome ficará disponível para ser reclamado por qualquer novo projeto. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Anular a reserva de "%{identifier}"? title: Anular a reserva do identificador empty_body: Quando o identificador de um projeto for alterado, o identificador anterior aparecerá aqui para poder cancelar a sua reserva assim que for seguro fazê-lo. @@ -1964,8 +2114,8 @@ pt-PT: error_unknown: Precisa de revisão manual error_used_in_past: Reservado pelo histórico do identificador de outro projeto remaining_projects: - one: "... mais 1 projeto" - other: "... mais %{count} projetos" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Os identificadores existentes para %{project_count} projetos não cumprem os requisitos para identificadores semânticos baseados em projetos. O OpenProject pode atualizá-los automaticamente para serem válidos, como nos exemplos abaixo. Clique em ''Converter identificadores'' para atualizar os identificadores de todos os projetos desta forma, e ativar identificadores semânticos baseados em projetos. @@ -2005,7 +2155,7 @@ pt-PT: types_caption: Adicione os tipos de pacotes de trabalho para os quais esta ação deve estar disponível. Todas as variantes disponíveis serão incluídas automaticamente. usage_scope_caption: 'Pode limitar a visibilidade desta ação: em todo o lado (incluindo comentários, wikis e campos personalizados), para todos os tipos de pacotes de trabalho, ou apenas para determinados tipos de pacotes de trabalho.' index: - description: As ações de transformação de texto oferecem aos utilizadores ações baseadas em modelos de linguagem de grande escala (LLM) para escrever, organizar e rever texto em qualquer contexto em que seja utilizado o editor de texto rico, como descrições de pacotes de trabalho, comentários e páginas wiki. Pode criar novas ações com prompts e instruções próprios. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Ação label_aria_add_action: Adicionar ação de transformação de texto index_component: @@ -2038,13 +2188,20 @@ pt-PT: ignore: Ignorar alterações save: Guardar as alterações e continuar title: Guardar as alterações antes de continuar? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Função: %{role}' no_role: Selecionar função roles: - one: Uma função selecionada - other: "%{count} funções selecionadas" + one: "%{count} role selected" + other: "%{count} roles selected" title: Selecionar funções + with_transitions: With transitions + without_transitions: Without transitions status_button: Estado statuses_dialog: caption: Adicione ou remova os estados que gostaria de associar a este tipo. A remoção de um estado também elimina o fluxo de trabalho que lhe está associado. @@ -2054,8 +2211,8 @@ pt-PT: confirm: Remover description: A remoção destes estados torna-os indisponíveis para este tipo e elimina os fluxos de trabalho existentes. Tem a certeza de que quer continuar? heading: - one: Remover 1 estado? - other: Remover %{count} estados? + one: Remove %{count} status? + other: Remove %{count} statuses? title: Remover estados tabs: always: Transições padrão @@ -2067,7 +2224,31 @@ pt-PT: assignee: Transições adicionais disponíveis para o encarregado pelo pacote de trabalho. author: Transições adicionais disponíveis para o autor pelo pacote de trabalho. menu_label: Transições apresentadas + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: Não foi possível aceder ao serviço de IA. + not_available: O assistente de IA não está disponível. + timeout: O serviço de IA não respondeu a tempo. + upstream_error: O serviço de IA apresentou um erro. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: atualmente exibidos is_inactive: não exibidos atualmente show_until: Mostrar até @@ -2075,7 +2256,7 @@ pt-PT: deleted_by_admin: O ficheiro em quarentena '%{filename}' foi eliminado por um administrador. deleted_message: Foi detetado um vírus no ficheiro '%{filename}'. O ficheiro foi eliminado. not_processed_yet_message: A transferência está bloqueada porque ainda não foi feita a análise de vírus do ficheiro. Tente novamente mais tarde. - overridden_by_admin: A quarentena do ficheiro '%{filename}' foi removida por %{user}. O ficheiro pode agora ser acedido. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Contentor delete: Eliminar o ficheiro em quarentena @@ -2129,10 +2310,6 @@ pt-PT: not_found: reminder: O lembrete que procura não pode ser encontrado ou foi eliminado. work_package: O pacote de trabalho que procura não foi encontrado ou foi eliminado. - render: - context_not_parsable: O contexto fornecido não é um link para um recurso. - context_object_not_found: Não é possível encontrar o recurso dado como contexto. - unsupported_context: Não há suporte para o recurso dado como contexto. unable_to_create_attachment: Não foi possível criar o anexo unable_to_create_attachment_permissions: Não foi possível guardar o anexo devido a falta de permissões no sistema de ficheiros user: @@ -2203,6 +2380,7 @@ pt-PT: groups: Grupos hexcode: Código hex id: ID + inexistent: Inexistent is_default: Valor predefinido is_for_all: Para todos os projetos issue: Pacote de trabalho @@ -2253,6 +2431,7 @@ pt-PT: updated_at: Atualizado em updated_on: Atualizado em uploader: Enviado por + url: URL user: Utilizador username: Nome de utilizador value: Valor @@ -2267,6 +2446,29 @@ pt-PT: ' login_and_registration: Iniciar sessão e registo + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'A tarefa foi cancelada devido ao erro: %{message}' @@ -2395,6 +2597,7 @@ pt-PT: button_set_reminder: Definir lembrete button_show: Mostrar button_sort: Ordenar + button_stop_timer: Parar temporizador button_submit: Enviar button_test: Testar button_unarchive: Desarquivar @@ -2461,9 +2664,9 @@ pt-PT: text: failed: Não foi possível copiar o projecto "%{source_project_name}" para o projecto "%{target_project_name}". succeeded: Projecto "%{source_project_name}" copiado para "%{target_project_name}". - title: Copiar projeto "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Um objeto deste tipo + one: "%{count} object of this type" other: "%{count} objetos deste tipo" zero: Nenhum objeto deste tipo create_portfolio: @@ -2501,13 +2704,9 @@ pt-PT: plural: Ações personalizadas custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Este campo personalizado é ativado em todos os projetos, uma vez que a opção "Para todos os projetos" está assinalada. Não pode ser desativado para projetos individuais. - heading: Para todos os projetos hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: sem sub-itens items: @@ -2528,7 +2727,7 @@ pt-PT: short: Nome abreviado weight: Peso notice: - remember_items_and_projects: Lembre-se de definir itens e projetos nos respetivos separadores para este campo personalizado. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Pode conceder automaticamente uma determinada função de projeto a qualquer utilizador atribuído a este atributo de projeto, independentemente da função original desse utilizador nesse projeto. dialog: @@ -2593,16 +2792,17 @@ pt-PT: is_enabled_globally: Ativado a nível global multi_value_more: other: e mais %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Sem atribuição de funções + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: A seleção do pacote de trabalho ou do projeto é necessária em primeiro lugar reorder_alphabetical: Reordenar valores em ordem alfabética reorder_confirmation: 'Aviso: Será perdida a ordem atual dos valores disponíveis, bem como todos os valores não guardados. Tem a certeza de que quer continuar?' semantic_keys: job_title: Cargo none: Nenhum - tab: - no_results_content_text: Criar um novo campo personalizado - no_results_title_text: Atualmente, não existem campos personalizados. text_add_new_custom_field: 'Para adicionar novos campos personalizados a um projeto, primeiro precisa de criá-los para depois adicioná-los a este projeto. ' @@ -2666,57 +2866,57 @@ pt-PT: datetime: distance_in_words: about_x_hours: - one: cerca de 1 hora - other: cerca de %{count} horas + one: about %{count} hour + other: about %{count} hours about_x_months: - one: cerca de 1 mês - other: cerca de %{count} meses + one: about %{count} month + other: about %{count} months about_x_years: - one: cerca de 1 ano - other: cerca de %{count} anos + one: about %{count} year + other: about %{count} years almost_x_years: - one: quase 1 ano - other: quase %{count} anos + one: almost %{count} year + other: almost %{count} years half_a_minute: meio minuto less_than_x_minutes: one: menos de 1 minuto other: menos de %{count} minutos less_than_x_seconds: - one: menos de 1 segundo - other: menos de %{count} segundos + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: mais de 1 ano - other: mais de %{count} anos + one: over %{count} year + other: over %{count} years x_days: - one: 1 dia - other: "%{count} dias" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hora - other: "%{count} horas" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 h - other: "%{count} h" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 minuto - other: "%{count} minutos" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min. - other: "%{count} min." + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 mês - other: "%{count} meses" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 segundo - other: "%{count} segundos" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 semana - other: "%{count} semanas" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 ano - other: "%{count} anos" + one: "%{count} year" + other: "%{count} years" units: day: one: dia @@ -2866,8 +3066,8 @@ pt-PT: teaser: description_html: Tem acesso a todas as funcionalidades de %{trial_plan}. title: - one: Um dia restante do token de teste %{trial_plan} - other: F%{count} dias restantes do token de teste %{trial_plan} + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'O seu token de teste Enterprise já foi recuperado. Verifique os seus e-mails para ver se o token foi anexado. Contacte a nossa equipa de apoio se precisar de um novo token. @@ -3206,9 +3406,150 @@ pt-PT: selected: Selecionado include_sub_items: Incluir sub-elementos no_results_text: Sem resultados + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Atualmente, não existem publicações para o fórum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ pt-PT: groups: edit: synchronized_groups: Grupos sincronizados + form: + group_attributes: Group attributes index: description: Ao agrupar utilizadores, pode adicioná-los como membros aos mesmos projetos ou atribuir-lhes as mesmas funções globais. memberships: @@ -3258,6 +3601,10 @@ pt-PT: leave_project: Sair do projeto no_favorite_projects: Não tem projetos favoritos. title: Projetos + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ pt-PT: summary: failure: Algumas verificações não foram aprovadas e o sistema não funciona como esperado. success: Todas as ligações e sistemas funcionam conforme esperado. - warning: Algumas verificações foram devolvidas com um aviso. Pode levar a comportamento inesperado. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Falhou @@ -3280,7 +3627,7 @@ pt-PT: warning: Aviso help_texts: views: - favoured: Marcar esta vista como favorita e adicionar à barra lateral de visualizações guardadas à esquerda. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} estão sempre associados a um projeto. Aqui, só pode selecionar projetos nos quais o módulo %{plural} esteja ativo. Depois de criar um %{singular}, pode adicionar-lhe pacotes de trabalho de outros projetos.\n" public: Publicar esta visualização, permitindo que outros utilizadores acedam à sua visualização. Utilizadores com a permissão para "Gerir visualizações públicas" podem modificar ou remover a consulta pública. Isto não afeta a visibilidade dos resultados do pacote de trabalho nessa visualização e, dependendo das suas permissões, os utilizadores podem ver resultados diferentes. homescreen: @@ -3305,6 +3652,31 @@ pt-PT: line_6: Utilize os alertas de data na Edição Community. new_features_title: 'A versão contém várias novas funcionalidades e melhorias, como: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Leia sobre novas funcionalidades e atualizações de produtos. learn_about: Mais informações sobre todas as novas funcionalidades @@ -3341,8 +3713,10 @@ pt-PT: journals: cause_descriptions: budget_deleted: O orçamento foi eliminado + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} alterou (%{link})" + csv: from CSV deleted_with_diff: "%{field} eliminou (%{link})" field_changed: "%{field} alterado de %{old_value} para %{new_value}" field_removed: "%{field} removido" @@ -3392,6 +3766,7 @@ pt-PT: budget_deleted: O orçamento foi eliminado dates_changed: Datas alteradas default_attribute_written: Escrita de atributos só de leitura + forum_message_html: "Created from forum message %{message_information}" import: Importado meeting_agenda_item_added_html: "Adicionado à reunião %{meeting_title_information}" meeting_agenda_item_added_template_html: "Adicionado a %{meeting_title_information}" @@ -3544,10 +3919,10 @@ pt-PT: label_copy_target: Destino label_copy_workflow_from: Copiar Fluxo de Trabalho de label_copy_workflow_from_role: Copiar para outras funções - label_copy_workflow_from_type: Copiar para outro tipo label_core_build: Construção principal label_core_version: Versão do núcleo label_created_by: Criado por %{user} + label_criteria: Critérios label_current_status: Estado atual label_current_version: Versão atual label_custom_comment: "%{name} comentário" @@ -3571,8 +3946,6 @@ pt-PT: label_custom_field_default_type: Tipo de vazio label_custom_field_new: Novo campo personalizado label_custom_field_plural: Campos personalizados - label_custom_logo: Logótipo personalizado para computador - label_custom_logo_mobile: Logótipo personalizado para dispositivo móvel label_custom_pdf_export_settings: Definições personalizadas de exportação para PDF label_custom_style: Design label_custom_style_description: Escolha o aspeto do OpenProject com temas, selecione as cores predefinidas a utilizar na aplicação e o aspeto das exportações. @@ -3581,11 +3954,12 @@ pt-PT: label_database_version: versão PostgreSQL label_date: Data label_date_and_time: Data e hora - label_date_format: Formato da data + label_date_and_time_formats: Date and time formats label_date_from: De label_date_from_to: De %{start} até %{end} label_date_to: Para label_dates: Datas + label_day: Dia label_day_plural: dias label_default: Predefinido label_defaults: Predefinições @@ -3596,6 +3970,7 @@ pt-PT: label_deleted_custom_field: "(campo personalizado apagado)" label_deleted_custom_item: "(item eliminado)" label_deleted_custom_option: "(opção eliminada)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organização label_departments_description_html: 'Defina a estrutura da sua empresa criando departamentos e sub-departamentos de forma hierárquica. Isto permite refletir as linhas de reporte e manter uma visão geral clara e estruturada da sua organização no OpenProject. Também pode importar uma estrutura organizacional existente através da [sincronização de departamento LDAP](ldap_docs_article). @@ -3666,6 +4041,7 @@ pt-PT: label_float: Float label_folder: Pasta label_follows: segue + label_form_configuration_plural: Forms label_formula: Fórmula label_forum_new: Novo fórum label_forum_plural: Fóruns @@ -3684,6 +4060,7 @@ pt-PT: label_go_forward: Abrir sub-menu %{module} label_greater_or_equal: ">=" label_group: Grupo + label_group_attributes_plural: Group attributes label_group_by: Agrupar por label_group_named: Grupo %{name} label_group_new: Novo Grupo @@ -3735,8 +4112,8 @@ pt-PT: label_journal_diff: Comparação de descrição label_jump_to_a_project: Saltar para um projeto... label_keyword_plural: Palavras-chave + label_label_plural: Labels label_language: Idioma - label_language_based: Com base no idioma do utilizador label_languages: Idiomas label_last_activity: Última atividade label_last_change_on: Última alteração @@ -3758,6 +4135,7 @@ pt-PT: label_list: Lista label_loading: A carregar... label_locale: Idioma e região + label_locale_based: Use default for user locale label_lock_user: Bloquear utilizador label_locked: bloqueado label_logged_as: Autenticado como @@ -3769,6 +4147,7 @@ pt-PT: label_managed_by_ldap: Gerido pela sincronização LDAP label_managed_repositories_vendor: Repositórios sob gestão %{vendor} label_mapping_for: 'Mapeamento para: %{attribute}' + label_markdown_version: Markdown version label_max_size: Tamanho máximo label_me: eu label_member_all_admin: "(Todas as funções devidas ao status do administrador)" @@ -3787,7 +4166,6 @@ pt-PT: label_menu_item_name: Nome do item de menu label_message: Mensagem label_message_last: Última mensagem - label_message_new: Nova mensagem label_message_plural: Mensagens label_message_posted: Mensagem adicionada label_minute_plural: minutos @@ -3799,6 +4177,7 @@ pt-PT: label_module_plural: Módulos label_modules: Módulos label_modules_and_plugins: Módulos e Plugins + label_month: Mês label_months_from: meses desde label_more: Mais label_more_information: Mais informações @@ -3812,6 +4191,7 @@ pt-PT: label_my_avatar: O meu avatar label_my_queries: As minhas consultas personalizadas label_my_security: Segurança + label_my_time: My time label_name: Nome label_never: Nunca label_new: Novo @@ -3826,7 +4206,10 @@ pt-PT: label_news_singular: Notícias label_news_view_all: Exibir todas as notícias label_next: Próxima + label_next_day: Dia seguinte + label_next_month: Mês seguinte label_next_week: Próxima semana + label_next_workweek: Semana de trabalho seguinte label_next_year: Próximo ano label_no_change_option: "(Sem mudança)" label_no_data: Sem dados para apresentar @@ -3834,6 +4217,7 @@ pt-PT: label_no_parent_group: "(Nenhum grupo pai)" label_no_parent_page: Sem página pai label_no_start_date: sem data de início + label_no_time: Sem tempo controlado label_nobody: ninguém label_non_working_days: Calendário de disponibilidade label_non_working_days_summary: Resumo @@ -3900,7 +4284,10 @@ pt-PT: label_preview: Pré visualizar label_preview_not_available: Pré-visualização não disponível label_previous: Anterior + label_previous_day: Dia anterior + label_previous_month: Mês anterior label_previous_week: Semana passada + label_previous_workweek: Semana de trabalho anterior label_previous_year: Ano anterior label_principal_invite_via_email: " ou convide novos utilizadores via correio eletrónico" label_principal_search: Adicionar utilizadores ou grupos existentes @@ -4019,6 +4406,7 @@ pt-PT: label_sort_lowest: Mover para o último label_sorted_by: ordenado por %{value} label_spent_time: Tempo usado + label_stack: Stack label_start_to_end: início ao fim label_start_to_start: início a início label_starts_with: começa com @@ -4038,6 +4426,7 @@ pt-PT: label_subtask_plural: Subtarefas label_summary: Resumo label_system: Sistema + label_system_or_language_default: Use system or language based default label_system_settings: Configurações do Sistema label_system_storage: Informação do armazenamento label_table_of_contents: Índice @@ -4052,6 +4441,7 @@ pt-PT: label_time: Hora label_time_entry_activity_plural: Tempo despendido em atividades label_time_entry_plural: Tempo gasto + label_timer_since: Iniciado em %{time} label_title: Título label_today: hoje label_today_as_date: Selecione hoje como data. @@ -4087,7 +4477,9 @@ pt-PT: label_user_search: Procurar utilizadores label_user_settings: Definições do utilizador label_users_settings: Definições do utilizador + label_value: Value label_value_x: 'Valor: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Editar versão label_version_new: Nova versão label_version_plural: Versões @@ -4100,6 +4492,7 @@ pt-PT: label_videos: Vídeos label_view_all_revisions: Ver os todas as revisões label_view_diff: Ver diferenças + label_view_mode_switcher: Mudar vista label_view_revisions: Ver revisões label_view_x: 'Ver: %{x}' label_watched_work_packages: Pacotes de trabalho observados @@ -4123,6 +4516,8 @@ pt-PT: label_wiki_start: Página inicial label_wiki_toc: Índice label_wiki_toc_empty: A Tabela de Conteúdo está vazia, pois não está presente nenhum cabeçalho. + label_with_criteria: Com critérios + label_without_criteria: Sem critérios label_work: Trabalho label_work_package: Pacote de trabalho label_work_package_attachments: Anexos do pacote de trabalho @@ -4145,46 +4540,47 @@ pt-PT: label_working_days: Dias úteis label_working_days_and_hours: Dias e horas de trabalho label_working_hours: Horários de trabalho + label_workweek: Semana de trabalho label_x_closed_work_packages_abbr: - one: 1 fechado + one: "%{count} closed" other: "%{count} fechados" zero: 0 fechados label_x_comments: - one: 1 comentário + one: "%{count} comment" other: "%{count} comentários" zero: sem comentários label_x_days: - one: 1 dia - other: "%{count} dias" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 ficheiro + one: "%{count} file" other: "%{count} ficheiros" zero: nenhum ficheiro label_x_items: - one: 1 elemento + one: "%{count} item" other: "%{count} elementos" zero: nenhum elemento label_x_items_selected: - one: Um elemento selecionado - other: "%{count} elementos selecionados" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 aberto + one: "%{count} open" other: "%{count} abertos" zero: 0 abertos label_x_projects: - one: 1 projeto + one: "%{count} project" other: "%{count} projetos" zero: sem projetos label_x_work_packages: - one: 1 pacote de trabalho + one: "%{count} work package" other: "%{count} pacotes de trabalho" zero: Nenhum pacote de trabalho label_x_working_days: - one: 1 dia útil - other: "%{count} dias úteis" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Ausência: 1 dia útil' - other: 'Ausência: %{count} dias úteis' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: ontem label_zen_mode: Modo Zen ldap_auth_sources: @@ -4237,7 +4633,7 @@ pt-PT: start_tls: STARTTLS start_tls_description: Envia um comando STARTTLS depois de se ligar à porta LDAP padrão. Recomendado para conexões encriptadas. tls_options: - tls_certificate_description: Se o certificado do servidor LDAP não estiver nas fontes de confiança deste sistema, poderá adicioná-lo manualmente. Digite uma string de certificado PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verificar certificado SSL verify_peer_description_html: 'Permite a verificação SSL estrita da cadeia de confiança do certificado.
Aviso: Desmarcar esta opção desativa a verificação SSL do certificado do servidor LDAP, o que expõe a sua ligação a ataques man-in-the-middle. @@ -4294,6 +4690,8 @@ pt-PT: you_have: Você tem logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mencionou-o em %{id} - %{subject}" notification: center: Para o centro de notificações @@ -4350,8 +4748,8 @@ pt-PT: mentioned: Foi mencionado num comentário mentioned_by: "%{user} mencionou-o num comentário" more_to_see: - one: Existe mais 1 pacote de trabalho com notificações. - other: Existem mais %{count} pacotes de trabalho com notificações. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Abrir no navegador reason: assigned: Atribuído @@ -4528,6 +4926,13 @@ pt-PT: create_button: Criar dialog_body: Este token irá permitir que aplicações de terceiros comuniquem com a sua instância. Para diferenciar o novo token de API, dê-lhe um nome. dialog_title: Criar novo token de API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Nome do token failed_to_create_token: 'Não foi possível criar o token de acesso: %{error}' failed_to_reset_token: 'Não foi possível reiniciar o token de acesso: %{error}' @@ -4541,10 +4946,26 @@ pt-PT: password_confirmation_dialog: confirmation_required: Tem de introduzir a palavra-passe da sua conta para confirmar esta alteração. title: Confirme a sua palavra-passe para continuar + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Tokens de acesso description: Os tokens de fornecedor são emitidos pelo OpenProject e permitem o acesso de outras aplicações. Os tokens de cliente são emitidos por outras aplicações e permitem que o OpenProject lhes aceda. + expired_on: Expired on %{date} headers: action: Ação expiration: Expira @@ -4746,7 +5167,6 @@ pt-PT: notice_password_confirmation_failed: A palavra-passe introduzida não está correta. notice_principals_found_multiple: Foram encontrados %{number} resultados. Carregue em TAB para ver o primeiro resultado. notice_principals_found_single: Foi encontrado um resultado. Carregue em TAB para vê-lo. - notice_project_cannot_update_custom_fields: 'Não pode atualizar os campos personalizados disponíveis do projeto. O projeto não é válido: %{errors}' notice_project_not_deleted: O projeto não foi eliminado. notice_project_not_found: Projeto não encontrado. notice_requires_enterprise_token: O token da empresa está em falta ou não permite o acesso a esta página. @@ -4756,9 +5176,6 @@ pt-PT: notice_successful_create: Criado com sucesso. notice_successful_delete: Eliminado com sucesso. notice_successful_update: Actualizado com sucesso. - notice_successful_update_custom_fields_added_to_project: | - Atualização bem-sucedida. Os campos personalizados dos tipos ativados são ativados automaticamente - no formulário de pacote de trabalho. Veja mais. notice_to_many_principals_to_display: Existem demasiados resultados. Reduza a busca digitando o nome do novo membro (ou grupo). notice_unsuccessful_create: A criação falhou. notice_unsuccessful_create_with_reason: 'A criação falhou: %{reason}' @@ -4858,8 +5275,8 @@ pt-PT: ' confirm_revoke_my_application: - one: Quero mesmo remover esta aplicação? Isto irá revogar um token ativo para a mesma. - other: Quer mesmo remover esta aplicação? Isto irá revogar %{count} tokens ativos para a mesma. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Não foram registadas aplicações OAuth. flows: authorization_code: Fluxo de código de autorização @@ -4949,8 +5366,6 @@ pt-PT: not_found: não encontrado. respond_to?: não implementa o método requerido. rules: - copy_workflow_from: - workflow_missing: não tem um fluxo de trabalho próprio. custom_field: format_not_supported: o formato '%{field_format}' não é suportado. item: @@ -4970,7 +5385,6 @@ pt-PT: or: ou rules: blueprint: Plano do padrão - copy_workflow_from: Tipo de cópia do fluxo de trabalho depth: Profundidade enabled: Ativado item: Elemento @@ -5042,8 +5456,8 @@ pt-PT: label: Índice page_nr_footer: Página %{page} de %{total} template_artefact: - caption: Dados do pacote de trabalho apresentados como artefacto do PMflex. - label: Artefacto PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Todos os atributos presentes no formulário atual com o modelo predefinido. label: Atributos e descrição @@ -5068,7 +5482,7 @@ pt-PT: permission_change_work_package_status_explanation: Permite alterar o estado sem permissão de edição de pacotes de trabalho permission_comment_news: Comentar notícias permission_commit_access: Acesso de leitura/escrita ao repositório (comprometer) - permission_copy_projects: Copiar projeto + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'Nos projetos modelo, esta permissão tem uma função secundária: permite a criação de novos projetos derivados do modelo.' permission_copy_work_packages: Duplicar pacotes de trabalho permission_create_backup: Criar cópias de segurança @@ -5101,6 +5515,7 @@ pt-PT: permission_export_projects: Exportar projetos permission_export_work_packages: Exportar pacotes de trabalho permission_header_for_project_module_work_package_tracking: Pacotes de trabalho e gráficos de Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Convidar membros por e-mail permission_invite_members_by_email_explanation: 'Permite aos utilizadores convidar novos membros por e-mail. Os utilizadores convidados receberão um e-mail com um link para definir a palavra-passe e ativar a conta. Depende da permissão para gerir membros @@ -5111,6 +5526,9 @@ pt-PT: permission_manage_dashboards: Gerir painéis de controlo permission_manage_forums: Gerir fóruns permission_manage_members: Gerir Membros + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Gerir noticias permission_manage_own_reminders: Crie os seus próprios lembretes permission_manage_own_working_times: Gerir o próprio horário de trabalho @@ -5139,7 +5557,6 @@ pt-PT: permission_save_bcf_queries: Guardar consultas BCF permission_save_queries: Guardar visualizações permission_search_project: Pesquisar projeto - permission_select_custom_fields: Escolher campos adicionais... permission_select_project_custom_fields: Selecionar atributos do projeto permission_select_project_modules: Selecione módulos do projeto permission_select_project_phases: Selecionar fases do projeto @@ -5173,6 +5590,16 @@ pt-PT: permission_work_package_assigned: Torne-se responsável permission_work_package_assigned_explanation: Os pacotes de trabalho podem ser atribuídos a utilizadores e grupos com deste papel nos respetivos projetos placeholder_users: + criteria: + activate: Ativar critérios de filtragem + activate_caption: 'Permite adicionar um conjunto de filtros a este utilizador de substituição, utilizado para definir os utilizadores que correspondem aos critérios pretendidos. + + ' + enable: Encontrar utilizadores por critérios + enable_caption: Descreva o tipo de utilizador que este utilizador de marcador de posição representa, para que possam ser sugeridos utilizadores que correspondam aos critérios. + matching_users: Utilizadores que correspondem aos critérios de filtragem + no_matching_users: Nenhum utilizador corresponde a estes critérios. + show_all_matching_users: Mostrar todos os %{count} utilizadores correspondentes delete_tooltip: Eliminar utilizador de espaço reservado deletion_info: data_consequences: 'Todas as ocorrências do utilizador de espaço reservado (por exemplo, como responsável, competente ou outros valores de utilizador) serão reatribuídas a uma conta chamada "Utilizador eliminado". Como os dados de todas as contas eliminadas são reatribuídos a esta conta, não será possível diferenciar os dados criados pelo utilizador a partir de dados de outra conta eliminada. @@ -5194,7 +5621,7 @@ pt-PT: name: OmniAuth SAML/Início de sessão único portfolio: count: - one: 1 carteira + one: "%{count} portfolio" other: "%{count} carteiras" zero: 0 carteiras filters: @@ -5205,8 +5632,8 @@ pt-PT: label: Filtro de nome da carteira placeholder: Pesquisar carteiras sub_items_html: - one: "1 sub-elemento" - other: "%{count} sub-elementos" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Carteiras ativas archived: Carteiras arquivadas @@ -5220,7 +5647,7 @@ pt-PT: Pode ser usada para destacar os pacotes de trabalho na tabela. program: count: - one: 1 programa + one: "%{count} program" other: "%{count} programas" zero: 0 programas filters: @@ -5232,7 +5659,7 @@ pt-PT: confirmation_message: O estado do pacote de trabalho não pode ser alterado porque o estado e a versão atribuídos estão fechados. title: Arquivar projeto count: - one: 1 projeto + one: "%{count} project" other: "%{count} projetos" zero: 0 projetos destroy: @@ -5337,11 +5764,11 @@ pt-PT: no_status_when_submitted: Falha ao ativar o pedido de iniciação do projeto, porque o tipo de pacote de trabalho %{type} requer pelo menos um estado associado. Ative pelo menos um fluxo de estados para este tipo de pacote de trabalho. no_work_package_type: Não foi possível ativar o pedido de iniciação do projeto porque requer pelo menos um tipo de pacote de trabalho ativo, e este projeto não tem nenhum. Adicione pelo menos um tipo de pacote de trabalho a este projeto. export: - description_attachment_export: O artefacto gerado será guardado como anexo PDF no pacote de trabalho do artefacto. - description_file_link_export: O pacote de trabalho do artefacto terá uma ligação de ficheiro a um PDF armazenado num arquivo externo. Requer um armazenamento de ficheiros funcional com pastas de projeto geridas automaticamente para este projeto. De momento, só são suportados os armazenamentos de ficheiros Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Selecione qual dos armazenamentos de ficheiros externos configurados deve ser utilizado. external_file_storage: Armazenamento externo de ficheiros - label_artifact_export: Exportação de artefactos + label_artifact_export: Artifact export label_attachment_export: Guardar como anexo do ficheiro do pacote de trabalho label_file_link_export: Carregue o ficheiro para um armazenamento externo e adicione o link do ficheiro ao pacote de trabalho pdf_file_storage: Armazenamento de ficheiros PDF @@ -5351,6 +5778,12 @@ pt-PT: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Atualmente não existem campos personalizados disponíveis. forums: no_results_content_text: Criar um novo fórum @@ -5447,15 +5880,15 @@ pt-PT: new_heading: Campos que ficam disponíveis nothing_affected: Nenhum campo ou estado é afetado. status_count: - one: 1 pacote de trabalho - other: "%{count} pacotes de trabalho" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tabela)" value_count: - one: 1 pacote de trabalho tem um valor - other: "%{count} pacotes de trabalho têm um valor" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 pacote de trabalho utilizará a nova configuração - other: "%{count} pacotes de trabalho utilizarão a nova configuração" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: O projeto utiliza agora %{type}. target_label: Variante title: "%{type}: Mudar variante" @@ -5466,7 +5899,7 @@ pt-PT: variants_not_allowed: Este tipo não permite a criação de variantes no interior dos projetos. versions: no_results_content_text: Crie uma nova versão - no_results_title_text: Atualmente, não existem versões para o projeto. + no_results_title_text: Não foram encontradas versões correspondentes aos critérios de filtragem deste projeto. show_work_packages: Mostrar pacotes de trabalho work_packages_graph: Gráfico de pacotes de trabalho work_package_priorities: @@ -5474,15 +5907,27 @@ pt-PT: status: button_edit: Editar estado wizard: - create_artifact_storage_error: Erro ao armazenar artefacto no armazenamento de ficheiros - create_artifact_work_package_error: Erro ao criar pacote de trabalho de artefacto + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Este projeto não tem atributos de projeto ativados para o assistente. Ative pelo menos um nas definições do projeto. no_help_text: Este atributo não tem texto de ajuda definido. progress_label: "%{current} de %{total}" sections: Secções sidebar_content_title: Conteúdo - success: Atributos do projeto guardados e pacote de trabalho do artefacto criado com sucesso. + success: Project attributes saved and artifact work package created successfully. title: Pedido de início do projeto + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplicar filtro pré-configurado configure_view: @@ -5511,8 +5956,8 @@ pt-PT: action_title: Reagir add_reaction: Adicionar reação and_others: - one: e 1 outro - other: e %{count} outros + one: and %{count} other + other: and %{count} others and_user: e %{user} react_with: Reagir com %{reaction} reaction_by: "%{reaction} por" @@ -5621,6 +6066,31 @@ pt-PT: warnings: cannot_annotate: Este ficheiro não pode ser anotado. roles: + delete_dialog: + confirm: Tem a certeza de que quer eliminar esta função? + entry_projects: + one: "(Projeto: %{projects})" + other: "(Projetos: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Tem a certeza de que quer eliminar a função "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Destes utilizadores, %{count} perderão o acesso aos projetos em que esta era a sua única função. Tem a certeza de que pretende eliminar esta função? + zero: Nenhum destes utilizadores perderá o acesso a nenhum dos seus projetos. Tem a certeza de que pretende eliminar esta função? + show_memberships: Mostrar todas as adesões a esta função + summary: "%{users} em %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Eliminar função edit: default_for_new_projects_warning: 'Esta função está configurada como função predefinida atribuída aos utilizadores não administradores que criam um projeto. Não remova as seguintes permissões, caso contrário os criadores não conseguirão concluir a configuração dos seus projetos recém-criados:' index: @@ -5632,6 +6102,15 @@ pt-PT: permissions: section_check_all_label: Atribua todas as permissões de %{module} section_uncheck_all_label: Anular a atribuição de todas as permissões de %{module} + permissions_dialog: + edit_permissions: Editar permissões de função + no_permissions: Esta função não concede permissões. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Ver permissões + preview_aria_label: Ver as permissões de %{role} + title: Permissões de "%{name}" report: matrix_caption: Matriz de permissões para o módulo %{module} matrix_check_all_label: Atribuir todas as permissões %{module} a todas as funções @@ -5736,7 +6215,7 @@ pt-PT: setting_default_projects_wiki: Permite a funcionalidade de wiki para novos projetos por padrão setting_diff_max_lines_displayed: Número máximo de linhas de diff mostradas setting_disable_password_login: Desativar a autenticação por palavra-passe - setting_display_subprojects_work_packages: Mostrar os pacotes de trabalho dos sub-projetos nos projetos principais + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Formato de duração setting_duration_format_days_and_hours: Dias e horas setting_duration_format_hours_only: Apenas horas @@ -5851,6 +6330,7 @@ pt-PT: setting_start_of_week: A semana começa a setting_sys_api_description: O serviço de web de gestão de repositório fornece integração e autorização ao utilizador para aceder a repositórios. setting_sys_api_enabled: Ativar o serviço web de gestão de repositórios + setting_sys_api_key: API key setting_time_format: Hora setting_total_percent_complete_mode: Cálculo dos totais da hierarquia da % de conclusão setting_total_percent_complete_mode_simple_average: Média simples @@ -5903,7 +6383,7 @@ pt-PT: description_html: 'Selecione o modo em que a integração do scanner antivírus deve funcionar.
  • %{disabled_option}: os ficheiros carregados não são verificados quanto a vírus.
  • %{socket_option}: configurou o ClamAV no mesmo servidor que o OpenProject e o daemon de verificação clamd está a ser executado em segundo plano
  • %{host_option}: está a transmitir ficheiros para um anfitrião externo de verificação de vírus.
' - remaining_quarantined_files_html: 'A verificação de vírus foi desativada. %{file_count} permanece(m) em quarentena. Para rever os ficheiros colocados em quarentena, aceda a esta ligação: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'A verificação de vírus foi ativada com êxito. Existem %{file_count} que foram carregados anteriormente e que ainda precisam de ser verificados. Este processo foi agendado em segundo plano. Os ficheiros permanecerão acessíveis durante a verificação. @@ -5914,6 +6394,7 @@ pt-PT: ' title: Análise de vírus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Se desativar esta opção, irá ocultar a lista de anexos no separador de ficheiros dos pacotes de trabalho para novos projetos. Os ficheiros anexados na descrição de um pacote de trabalho irão continuar a ser carregados no armazenamento interno de anexos. ' @@ -6005,12 +6486,12 @@ pt-PT: confirmation_message: O assistente de pedido de iniciação deixará de estar disponível para novos projetos baseados neste modelo. Os gestores de projetos e os proprietários de projetos terão de configurar e preencher manualmente as informações relevantes na síntese do projeto. heading: Desativar este pedido de início de projeto? title: Desativar o pedido de início de projeto - header_description: 'O OpenProject pode gerar um assistente passo a passo para ajudar os gestores de projeto a preencher um pedido de lançamento de projeto. Pode escolher os atributos do projeto a incluir e criar um artefacto PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Nome do artefacto - artifact_name_caption: Escolha o nome deste artefacto recomendado pelo seu quadro de gestão de projetos. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Assistente de criação de projetos project_initiation_request: Pedido de início de projeto @@ -6030,8 +6511,8 @@ pt-PT: Enviou um pedido de início de projeto para **%{project_name}**. Aguarda revisão. Clique no link abaixo para aceder ao pacote de trabalho com o seu pedido. confirmation_email_text: Texto do e-mail de confirmação - description: Quando um utilizador envia um pedido de iniciação de projeto, é criado um novo pacote de trabalho com o artefacto do pedido anexado como ficheiro PDF. As configurações abaixo definem o tipo, o estado e o responsável por este novo pacote de trabalho. - description_template: "**Este pacote de trabalho foi criado automaticamente após a conclusão do fluxo de trabalho %{wizard_name}.** Foi gerado e anexado a este pacote de trabalho um artefacto PDF com todas as informações submetidas, para efeitos de referência e auditoria. Se precisar de atualizar ou voltar a executar os passos de iniciação, pode reabrir o assistente em qualquer altura, com a ligação abaixo:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Enviar um e-mail de confirmação ao utilizador que apresentou o pedido de iniciação do projeto status_when_submitted: Estado quando enviado status_when_submitted_caption: O estado para o qual o pacote de trabalho gerado transitará quando o pedido for apresentado. @@ -6039,7 +6520,7 @@ pt-PT: work_package_comment_caption: O destinatário selecionado acima será automaticamente @mencionado no comentário. work_package_comment_default: Foi apresentado um pedido de início de projeto para **%{project_name}** que aguarda análise. work_package_type: Tipo de pacote de trabalho - work_package_type_caption: O tipo de pacote de trabalho que deve ser utilizado para armazenar o artefacto concluído. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Abrir o assistente de criação de projetos project_initiation_request: Abrir o pedido de início do projeto @@ -6059,6 +6540,7 @@ pt-PT: heading: Nova fase no_gate: Sem porta non_defined: De momento não está definida nenhuma fase. + order_changed: Order successfully changed. phase_gates: Portas de fases section_header: Fases start_gate: Porta de início @@ -6115,7 +6597,7 @@ pt-PT: section_work_week: Semana de trabalho sharing: count: - one: 1 utilizador + one: "%{count} user" other: "%{count} utilizadores" zero: 0 utilizadores denied: Não tem permissões para partilhar %{entities}. @@ -6207,19 +6689,19 @@ pt-PT:
Nota: Valores herdados (p. ex.,: por crianças ou relações) ainda serão aplicados. index: + could_not_be_moved: Não foi possível mover o estado. headers: - excluded_from_totals: Excluído dos totais is_closed: Fechado - is_default: Predefinido is_readonly: Só de leitura + no_filter_results_title_text: Não existe nenhum estado que corresponda ao filtro atual. no_results_content_text: Adicione um novo estado no_results_title_text: Atualmente, não existem estados de pacote de trabalho. + status_actions: Ações de estado support: array: sentence_connector: e skip_last_comma: falso text_access_token_hint: Tokens de acesso permitem que conceda acesso de aplicações externas para recursos em OpenProject. - text_accessibility_hint: O modo de acessibilidade foi concebido para utilizadores cegos, deficientes motores ou com falta de vista. Para os últimos, os elementos em foco são especialmente destacados. De salientar que o módulo Backlogs não está disponível neste modo. text_analyze: 'Mais análise: %{subject}' text_are_you_sure: Tem a certeza? text_are_you_sure_continue: Tem a certeza que deseja continuar? @@ -6262,12 +6744,6 @@ pt-PT: ' text_custom_field_possible_values_info: Uma linha para cada valor - text_custom_logo_instructions: 'O logótipo é dimensionado automaticamente para se ajustar ao cabeçalho. Para melhores resultados, carregue um logótipo branco numa imagem transparente de 130×47px. Pode adicionar o espaçamento que quiser dentro dessa imagem. - - ' - text_custom_logo_mobile_instructions: 'O logótipo é dimensionado automaticamente para se ajustar ao cabeçalho. Para melhores resultados, carregue um logótipo branco numa imagem transparente de 130×33px. Pode adicionar o espaçamento que quiser dentro dessa imagem. - - ' text_custom_touch_icon_instructions: 'Este é o ícone que aparece no seu telemóvel ou tablet quando coloca um marcador no seu ecrã inicial. Precisa de ser um ficheiro de imagem PNG de 180 por 180 píxeis. Certifique-se que o fundo da imagem não é transparente, caso contrário ficará esteticamente mal no iOS. ' @@ -6317,6 +6793,7 @@ pt-PT: text_length_between: Comprimento entre %{min} e %{max} caráteres. text_line_separated: Múltiplos valores permitidos (uma linha para cada valor). text_load_default_configuration: Carregar a configuração por defeito + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Não há tokens de acesso que possam ser configurados. text_no_configuration_data: |- Os papéis, tipos, estados de pacotes de trabalho e o fluxo de trabalho ainda não foram configurados. @@ -6422,6 +6899,68 @@ pt-PT: tree_view: label_empty_sub_tree: Nenhum elemento types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Comparar variantes + blankslate: + description: Adicione uma segunda variante a este tipo para ver o que as distingue. + title: Ainda não há nada para comparar + description: Compare as variantes deste tipo com o tipo pai. + labels: + duplicate: Possível duplicado + duplicate_of: Configurado exatamente como %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Tipo de pai + same_as_type: Igual ao tipo pai + rows: + form: + fields: Campos + groups: Secções + required: Dos quais obrigatórios + same_as_base: Igual ao tipo pai + scope: + availability: Disponível para + enabled_in_new_projects: Ativo em novos projetos + projects: Projetos + workflows: + roles: Funções envolvidas + same_as_base: Igual ao tipo pai + statuses: Estados + transitions: Transições + sections: + configuration: Síntese da configuração + form: Formulário + scope: Âmbito + workflows: Fluxos de trabalho + title: Comparar variantes + title_for_type: Comparar variantes de %{name} + values: + global: Todos os projetos + inheriting_from: A herdar de + project_specific: Específico do projeto ([%{project}](project_url)) + same_as_base: Idêntico ao tipo pai creation_wizard: add_variant: Adicionar uma variante a %{name} create_type: Criar tipo @@ -6431,14 +6970,40 @@ pt-PT: finish: Terminar placeholder_description: Este passo estará disponível em breve. progress_label: Passo %{number} de %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Padrões details: Detalhes form_configuration: Formulário - pdf: Geração de PDF + pdf: Generate PDF project_attributes: Atributos do projeto projects: Projetos - workflows: Fluxos de trabalho + start: Start + workflows: Workflow success: Criado com sucesso. edit: breadcrumb_variant: 'Variante: %{name}' @@ -6447,8 +7012,10 @@ pt-PT: caption: Defina um modelo com atributos referenciados e texto, para gerar automaticamente os assuntos dos pacotes de trabalho. Os utilizadores não poderão editar manualmente os assuntos. label: Assuntos gerados automaticamente description: - caption: Insira o texto que será adicionado ao campo de descrição de todos os novos pacotes de trabalho deste tipo. - label: Texto de descrição padrão + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Os utilizadores podem introduzir e editar manualmente os assuntos dos pacotes de trabalho sem restrições. label: Assuntos editáveis manualmente @@ -6477,21 +7044,21 @@ pt-PT: file_link: caption: O PDF gerado é carregado para o armazenamento Nextcloud do projeto, gerido automaticamente, e é incluído uma ligação a partir do pacote de trabalho. Os pacotes de trabalho em projetos que não disponham desse armazenamento são ignorados. label: Carregue o ficheiro para um armazenamento externo e adicione o link do ficheiro ao pacote de trabalho - intro: Gerar automaticamente um documento em PDF relativo a um pacote de trabalho deste tipo sempre que o seu estado se alterar. - invalid_mode: Modo de exportação de artefactos inválido. - label: Exportação automática de artefactos + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Não é gerado automaticamente nenhum ficheiro PDF. label: Desligar - section_title: Exportação automática de artefactos + section_title: Automatic artifact export unavailable: indisponível; não está configurado qualquer armazenamento Nextcloud gerido automaticamente - intro: Selecione os modelos disponíveis que pretende ativar para este tipo. O modelo determina o design e os atributos visíveis no PDF exportado de um pacote de trabalho que utiliza este tipo. O primeiro modelo da lista é selecionado por predefinição. pdf_export_templates: actions: label_disable_all: Desativar todos label_enable_all: Ativar todos label_toggle_template: Alternar %{template} label: Modelos de Exportação PDF + order_changed: Order successfully changed. tab: Gerar PDF templates: readonly_error: Não pode ser alterado enquanto estiver associado a um tipo de origem. @@ -6508,6 +7075,8 @@ pt-PT: confirm_delete_group: Tem a certeza de que quer eliminar esta secção? Esta ação não pode ser revertida automaticamente. confirm_reset: Tem a certeza de que pretende repor o formulário? custom_field: Campo personalizado + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Eliminar secção drag_to_activate: Arraste campos daqui para ativá-los drag_to_reorder: Arrastar para reordenar @@ -6529,6 +7098,14 @@ pt-PT: query_group_label: Tabela de pacotes de trabalho relacionados remove_attribute: Remover da secção rename_group: Mudar o nome da secção + required: + already_required_globally: Este campo personalizado é obrigatório para todos os tipos. + for_variant: Obrigatório neste tipo + globally: Obrigatório + globally_hint: Altere isto no campo personalizado + mark: Exigir neste tipo + not_a_custom_field: Apenas um campo personalizado pode ser definido como obrigatório para um único tipo. + unmark: Não exigir neste tipo reset_description: 'Isto irá redefinir os atributos para o seu grupo predefinido e desativar TODOS os campos personalizados. ' @@ -6538,12 +7115,14 @@ pt-PT: tab: Formulário untitled_group: Grupo sem título overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Modo de configuração - dependents: Tipos dependentes e variantes mode: always_manual: Sempre manual - inheriting_from_html: A herdar de %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Configurado manualmente + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Definições tab: Síntese project_attributes: @@ -6557,12 +7136,12 @@ pt-PT: manual: description: Após [criar os atributos do projeto](administration_url), estes ficarão visíveis aqui e poderão ser adicionados a um tipo. title: Não existem atributos de projeto disponíveis - description: Selecione os atributos do projeto que pretende ativar para este tipo de pacote de trabalho. Os atributos do projeto ativados são apresentados num separador distinto nos pacotes de trabalho deste tipo. Os utilizadores com as permissões necessárias podem ver e editar esses atributos nesse separador. disabled: Desativado exclusions: attribute_label: Herdar %{attribute} filter: Pesquisar por secção ou nome tab: Atributos do projeto + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remover o tipo %{type} de %{project}? @@ -6575,10 +7154,12 @@ pt-PT: empty_state: description: Adicione um projeto para utilizar esta configuração nesse local. no_results: Sem projetos correspondentes. + title: Not used in any project yet enable_all: Ativar para todos os projetos select_projects: Selecionar projetos select_projects_description: Selecione os projetos em que pretende utilizar este tipo. tab: Projetos + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6593,43 +7174,17 @@ pt-PT: title: Copiar configuração invalid_source: A configuração não pode ser copiada a partir do tipo selecionado. Selecione um tipo de origem diferente. success: A configuração foi copiada. - dependents: - blank: - description: Nenhum outro tipo ou variante herda a partir desta configuração - title: Sem tipos dependentes - description: - one: A configuração seguinte é herdada por mais 1 tipo ou variante. As alterações que efetuar aqui afetarão igualmente o elemento dependente. - other: A configuração seguinte é herdada por %{count} outros tipos ou variantes. As alterações que efetuar aqui afetarão igualmente os elementos dependentes. - dialog: - description: Estes tipos e variantes herdam a configuração desta secção. Qualquer alteração que efetuar aqui aplica-se a todos eles. - direct_heading: Dependentes diretos - indirect_heading: Dependentes através de outros tipos - title: Tipos dependentes - variant_of_html: Variante de %{type_name} - variant_of_via_html: Variante de %{type_name}, herdada através de %{source_name} - via_html: A herdar via %{source_name} - title: - one: 1 tipo dependente - other: "%{count} tipos dependentes" - view: Ver tipos dependentes exclusions: not_inherited: Esta configuração não é herdada, pelo que não há nada a excluir. Em vez disso, edite a configuração diretamente. unknown_aspect: Secção de configuração desconhecida "%{aspect}". inherited: - change_source: Alterar o tipo de origem configure_manually: Configurar manualmente confirm_dialog: - change_source: - description_html: Ao alterar o tipo de fonte para %{source_name}, irá substituir as definições atuais, o que pode afetar as informações existentes nos pacotes de trabalho deste tipo. - heading: Alterar o tipo de origem? - title: Alterar o tipo de origem check_box: Compreendo que isto vai substituir as definições atuais from_manual: description: Todas as definições selecionadas serão substituídas, e poderão afetar as informações existentes relativas aos pacotes de trabalho deste tipo. heading: Alterar o modo de configuração? title: Alterar o modo de configuração - description: Esta configuração é herdada do tipo de origem [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Esta configuração é herdada do tipo de origem %{source_name}%{source_suffix}. dialog: description: Herdar esta configuração de um tipo de origem. Qualquer nova configuração adicionada à origem aplica-se também aqui. source_label: Tipo de origem @@ -6637,6 +7192,9 @@ pt-PT: submit: Trocar title: Herdar de outro tipo invalid_source: A configuração não pode ser herdada a partir do tipo selecionado. Selecione um tipo de origem diferente. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: O modo de configuração foi alterado. title: Configuração herdada manual: @@ -6645,13 +7203,14 @@ pt-PT: description: Todas as definições selecionadas serão substituídas, e poderão afetar as informações existentes relativas aos pacotes de trabalho deste tipo. heading: Alterar o modo de configuração? title: Alterar o modo de configuração - copy_from_type: Copiar de outro tipo description: Não são herdadas definições. No entanto, pode copiar as definições de outro tipo uma única vez. dialog: submit: Trocar title: Configurar manualmente - inherit_from_type: Herdar de outro tipo + inherit_from_type: Inherit from parent invalid_mode: O modo selecionado não está disponível para esta configuração. Escolha um modo diferente. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Comece por criar uma cópia única das definições que esta configuração herda atualmente. @@ -6665,12 +7224,16 @@ pt-PT: success: O modo de configuração foi alterado. title: Configuração manual parent_suffix: " (pai)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Pode criar variantes para disponibilizar versões deste tipo a diferentes projetos.
Cada variante pode herdar, copiar ou ter a sua própria configuração personalizada para o modelo predefinido, campos personalizados, fluxos de trabalho e preferências. ' title: Não existem variantes para este tipo + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Criado em %{project} delete: description: Os projetos que utilizam esta variante serão transferidos para a que escolher abaixo, antes desta variante ser eliminada. @@ -6679,33 +7242,74 @@ pt-PT: filter_no_results: Nenhuma variante corresponde a este filtro global_section: description: Estas variantes estão disponíveis em todos os projetos. - title: Variantes + title: Variantes globais project_specific_section: description: Estas variantes só estão disponíveis nos projetos em que foram criadas. title: Variantes específicas do projeto workflow: - tab: Fluxos de trabalho + tab: Workflow index: add_variant: Adicionar uma variante a %{name} add_variant_action: Adicionar variante + convert_to_global: Converter para variante global + convert_to_global_dialog: + confirm: Converter + text: 'Isto tornará esta variante específica do projeto numa variante global, disponível para todos os projetos. O administrador do projeto deixará de poder editá-la. + + ' + workflow_text: 'O seu fluxo de trabalho "%{name}" faz parte deste projeto e passa também a ser global. + + ' + convert_to_global_notice: "%{name} é agora uma variante global." + convert_to_global_rename: + confirm: Converter + text: Já existe uma variante global com este nome. Escolha um nome diferente. + title: Escolha outro nome para esta variante + created_by_migration: Migrated + delete: + description: O tipo será eliminado definitivamente. Esta ação não pode ser anulada. + description_with_variants: O tipo e todas as suas variantes serão eliminados de forma definitiva. Esta ação não pode ser revertida. + heading: Eliminar o tipo '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Eliminar tipo description: 'Cada área de configuração dentro dos tipos e variantes pode ser configurada de forma independente, limitada em relação a outro tipo, ou totalmente associada a uma fonte. ' duplicate_name: Cópia de %{name} duplicate_notice: "%{name} foi duplicado." enabled_in_new_projects: Ativo em novos projetos + filter: Filter by name + filter_no_results: No types match this filter make_default: Ativar em novos projetos make_default_notice: "%{name} está agora ativo nos novos projetos." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Crie um novo tipo no_results_title_text: Atualmente, não existem tipos. project_variants_count: - one: 1 variante específica do projeto - other: "%{count} variantes específicas do projeto" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: Não ativar em novos projetos remove_default_notice: "%{name} já não está ativo nos novos projetos." type_label: Tipo variant_label: Variante + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Marco + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore este aviso. message: Pode encontrar erros e uma experiência degradada desta página. @@ -6724,8 +7328,8 @@ pt-PT: authorization_rejected: Não tem permissão para iniciar sessão. blocked: bloqueado temporariamente blocked_num_failed_logins: - one: bloqueada temporariamente (uma tentativa de início de sessão falhada) - other: bloqueada temporariamente (%{count} tentativas de início de sessão falhadas) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Está prestes a mudar o estado de '%{name}'. Tem certeza que deseja continuar? deleted: Eliminar Utilizador department_ldap_managed_caption: Este departamento é gerido através da sincronização LDAP e não pode ser alterado aqui. @@ -6825,7 +7429,7 @@ pt-PT: deletion_warning: Tem a certeza de que quer revogar esta sessão? A sua sessão será terminada neste dispositivo. device: Dispositivo/SO expires: Validade - instructions: Tem sessão iniciada na sua conta através dos seguintes dispositivos. Revogue as sessões que não reconhece ou de dispositivos que não controla. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Último acesso may_not_delete_current: Não pode eliminar a sessão atual. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6885,13 +7489,19 @@ pt-PT: start_date: Data de início work_days: Dias úteis work_days_count: - one: 1 dia útil - other: "%{count} dias úteis" + one: "%{count} working day" + other: "%{count} working days" work_hours: Horário de trabalho version_status_closed: fechado version_status_locked: bloqueado version_status_open: aberto versions: + filter_status_labels: + closed: Fechada + locked: Bloqueada + open: Aberta + index: + filter_label: Pesquisar versões overview: no_results_title_text: Atualmente não existem pacotes de trabalho atribuídos para esta versão. work_packages_in_archived_projects: A versão é partilhada com projetos arquivados que ainda têm pacotes de trabalho atribuídos a esta versão. Estes são contabilizados, mas não irão aparecer nas vistas vinculadas. @@ -7061,13 +7671,15 @@ pt-PT: required_description: Assinala este pacote de trabalho como sendo um requisito para o pacote relacionado requires_description: Marca o pacote de trabalho relacionado como um requisito para este work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Não foi possível copiar os pacotes de trabalho. could_not_be_deleted: 'Não foi possível eliminar os seguintes pacotes de trabalho:' could_not_be_saved: 'Os seguintes pacotes de trabalho não puderam ser guardados:' deletion_successful: - one: Foi eliminado com sucesso 1 pacote de trabalho. - other: Foram eliminados com sucesso %{count} pacotes de trabalho. + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: descendente de selecionados move_failed: Não foi possível mover os pacotes de trabalho. none_could_be_saved: Não foi possível atualizar nenhum dos %{total} pacotes de trabalho. @@ -7091,18 +7703,18 @@ pt-PT: description_with_visible_descendants: Tem a certeza de que pretende eliminar os pacotes de trabalho selecionados e todos os descendentes visíveis? heading: Eliminar permanentemente estes %{count} pacotes de trabalho? hidden_descendants_only_warning: - one: Existe um descendente que não consegue ver. Este não será eliminado, mas a relação será removida. - other: Existem %{count} descendentes que não consegue ver. Estes não serão eliminados, mas as relações hierárquicas serão removidas. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Todos os descendentes visíveis serão eliminados. No entanto, existe um descendente que não consegue ver. Este não será eliminado, mas a relação será removida. - other: Todos os descendentes visíveis serão removidos. No entanto, existem %{count} descendentes que não consegue ver. Estes não serão eliminados, mas as relações hierárquicas serão removidas. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Eliminar %{count} pacotes de trabalho undeletable_descendants_warning: - one: Não é possível eliminar um descendente, uma vez que não dispõe das autorizações necessárias. Este será mantido, mas a relação hierárquica será removida. - other: Não é possível eliminar %{count} descendentes porque não dispõe das autorizações necessárias. Estes serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Não é possível eliminar um descendente, uma vez que não dispõe das autorizações necessárias em %{projects}. O elemento será mantido, mas a relação hierárquica será removida. - other: Não é possível eliminar %{count} descendentes porque não dispõe das permissões necessárias em %{projects}. Estes serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7159,18 +7771,154 @@ pt-PT: description: Tem a certeza de que quer eliminar "%{name}"? heading: Eliminar permanentemente este pacote de trabalho? hidden_descendants_only_warning: - one: Este pacote de trabalho tem um descendente que não consegue ver. Não será eliminado, mas a relação hierárquica será removida. - other: Este pacote de trabalho tem %{count} descendentes que não consegue ver. Estes não serão eliminados, mas a relação hierárquica será removida. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Todos os descendentes visíveis serão eliminados. No entanto, este pacote de trabalho tem um descendente que não consegue ver. Este não será eliminado, mas a relação hierárquica será removida. - other: Todos os descendentes visíveis serão eliminados. No entanto, este pacote de trabalho tem %{count} descendentes que não consegue ver. Estes não serão eliminados, mas a relação hierárquica será removida. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Eliminar pacote de trabalho undeletable_descendants_warning: - one: Não é possível eliminar um descendente, uma vez que não dispõe das autorizações necessárias. Este será mantido, mas a relação hierárquica será removida. - other: Não é possível eliminar %{count} descendentes porque não dispõe das autorizações necessárias. Estes serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Não é possível eliminar um descendente, uma vez que não dispõe das autorizações necessárias em %{projects}. O elemento será mantido, mas a relação hierárquica será removida. - other: Não é possível eliminar %{count} descendentes porque não dispõe das permissões necessárias em %{projects}. Estes serão preservados, mas quaisquer relações hierárquicas serão removidas. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Os tipos dos pacotes de trabalho ou dos seus descendentes não estão ativados no projeto de destino. Ative os tipos em falta no projeto de destino, caso pretenda que estes permaneçam inalterados. Caso contrário, selecione na lista um tipo disponível no projeto de destino. @@ -7202,37 +7950,53 @@ pt-PT: version: no_results_title_text: Atualmente, não existem versões disponíveis. x_descendants: - one: Um pacote de trabalho descendente - other: "%{count} pacotes de trabalho descendentes" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copie o fluxo de trabalho atual para uma ou mais funções dentro do mesmo tipo de pacote de trabalho. Se a função selecionada já tiver um fluxo de trabalho, o atual será substituído. - label: Copiar para outras funções - from_type: - caption: Copie o fluxo de trabalho atual para outro tipo de pacote de trabalho. Se o tipo selecionado já tiver um fluxo de trabalho, o atual será substituído. Isto afeta todas as funções. - label: Copiar para outro tipo - source_role_id: - label: Função de origem target_role_ids: label: Funções de destino - target_variant_ids: - label: Tipos de destino from_roles: create: notice: one: O fluxo de trabalho foi copiado com sucesso para a função '%{role_name}'. other: O fluxo de trabalho foi copiado com sucesso para %{count} funções. - from_variants: - create: - notice: - one: O fluxo de trabalho foi copiado com sucesso para '%{type_name}'. - other: O fluxo de trabalho foi copiado com sucesso para %{count} tipos. new: - title: Copiar fluxo de trabalho de "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Matriz de fluxo de trabalho matrix_caption_assignee: Matriz de fluxo de trabalho para o encarregado matrix_caption_author: Matriz de fluxo de trabalho para autor @@ -7241,12 +8005,88 @@ pt-PT: matrix_check_uncheck_all_in_row_label_html: Alternar as transições de %{old_status} para todos os novos estatutos matrix_checkbox_label: Permitir transição de %{old_status} para %{new_status} matrix_uncheck_all_label: Proibir todas as transições + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtrar por tipo de nome… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configurar transições de estado para cada tipo de pacote de trabalho. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Alterar dias úteis dialog: diff --git a/config/locales/crowdin/ro.seeders.yml b/config/locales/crowdin/ro.seeders.yml index a7e5b3a397fb..5d3b97d1cbe5 100644 --- a/config/locales/crowdin/ro.seeders.yml +++ b/config/locales/crowdin/ro.seeders.yml @@ -250,70 +250,26 @@ ro: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint plan meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divizat în două cutii suplimentare de timp de 4 h: - - * The Product Owner prezintă [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) și prioritățile pentru echipă și explică Obiectivul de printare, la care echipa trebuie să cadă de acord. Împreună, acestea prioritizează subiectele din lista de produse backlog de care echipa va avea grijă în primăvara următoare. Echipa se angajează să obțină rezultatele discutate. - * Echipa plănuiește autonom (fără proprietarul produsului) și descompune sarcinile din cerințele discutate pentru a consolida o [Sprint Backlog]({{opSetting:base_url}}/proiecte/proiectul-tău/backlog-uri). - - - ### Șirul Zilnic - - _Te rugăm să documentezi aici subiectele la întâlnirea Zilnic Scrum + ### Release 1.0 - * Scurtă, întâlnirea zilnică de stare a echipei. - * Orar casat (max. 15 min). - * Întâlnire standard pentru a discuta următoarele subiecte din [Grupul de lucru](##sprint:scrum_project__version__sprint_1). - * Ce plănuiesc să fac până la următorul Daily Scrum? - * Ce mi-a blocat munca (impedimente)? - * Maestru Strălucitor moderează şi notează [Impulsionări print](##sprint:scrum_project__version__sprint_1). - * Proprietarul Produsului poate participa pentru a rămâne informat. + _Please document here what this release contains._ - ### Întâlnire de Recenzie Amprentă - - _Te rugăm să documentezi aici subiectele la întâlnirea de Recenzie Sprint - - * Ora Căutată (4 h). - * Un maxim de o oră de preparare per persoană. - * Echipa arată proprietarului produsului şi altor persoane interesate ce s-a realizat în această primăvară. - * Important: nici un manechin şi nici o PowerPoint! Doar funcţionalitatea produselor finite (increments) ar trebui demonstrată. - * Este dorit un feedback din partea proprietarului de produse, a părților interesate și a altor părți interesate și va fi inclus în activitățile ulterioare. - * Pe baza funcționalităților demonstrate, proprietarul produsului decide să trăiască cu acest increment sau să-l dezvolte în continuare. Această posibilitate permite un ROI timpuriu. - - - ### Retrospective - - _Te rugăm să documentezi aici subiectele la întâlnirea Retrospectivă Sprint - - * Timp pus (3 h). - * După examinarea tipăririi, va fi moderat de către Maestrul Scrum. - * Echipa discută sprintul: ce a mers bine, ce trebuie îmbunătățit pentru a fi mai productiv pentru primăvara următoare sau chiar pentru a fi mai distractiv. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Fișa produsului + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ ro: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 6c29ce71b546..f87af4dc106e 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -40,7 +40,9 @@ ro: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Ştergere cont delete_confirmation: Sunteţi sigur că doriţi să ştergeţi contul? deletion_info: @@ -65,7 +67,9 @@ ro: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: sau conectaţi-vă cu contul existent + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Autentifică-te pentru activarea contului tău. @@ -118,6 +122,8 @@ ro: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Clienți SCIM + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ ro: repository: Repo comment: commented: Cu comentarii - custom_action: - actions: Acțiuni custom_field: admin_only: Doar administratorii allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ ro: uid: ID Client emoji_reaction: reactable: A reacţionat la + reaction: Reaction enterprise_token: active_user_count_restriction: Utilizatori activi encoded_token: Token de sprijin pentru întreprinderi @@ -179,20 +184,44 @@ ro: company: Companie favorite: favorited: Element + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Număr de coloane page: Pagină row_count: Număr de rânduri widgets: Widget-uri group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Grup părinte group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Grup părinte import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ ro: title: Title member: blocked: Blocked + principal_type: Member type roles: Roluri notification: read_ian: Read in-app @@ -235,6 +265,7 @@ ro: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ ro: ongoing: În desfășurare spent_on: Dată type: Tip + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ ro: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Sursa de autentificare + avatar_type: Avatar type consented_at: Consimţit la current_password: Parola curentă department: Department @@ -410,7 +441,7 @@ ro: last_name: Nume ldap_auth_source: Conexiune LDAP new_password: Parolă nouă - password_confirmation: Confirmare + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ ro: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: Când este activată, bannerele de succes verzi vor dispărea automat după 5 secunde. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Actualizează alerte button_update_look_and_feel: Actualizează aspectul și simțul button_update_user_information: Update profile comments_sorting: Afișează activitatea pachetelor de lucru sortate după daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Dezactivează comenzile rapide pentru tastatură dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ ro: header_look_and_feel: Aspect și stil impaired: Mod accesibilitate increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Fus orar warn_on_leaving_unsaved: Avertizează când părăsesc un pachet de lucru cu modificări nesalvate workdays: Zile lucrătoare + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ ro: title: Zile lucrătoare true: include zile nelucrătoare journal_internal: Internal Journal + labels: Labels notify: Notifică observed_in_versions: Observed in versions parent: Părinte @@ -519,6 +565,10 @@ ro: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: trebuie acceptat. @@ -590,6 +640,8 @@ ro: regex_invalid: nu a putut fi validată cu expresia regulată asociată. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: trebuie să fie mai mic sau egal cu lungimea maximă. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ ro: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: nu are lungimea corectă (ar trebui să fie de %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ ro: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: valoarea finală trebuie să fie mai mare decât valoarea inițială. outside: se află în afara rețelei. @@ -690,6 +756,13 @@ ro: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ ro: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'încă în uz în pachetele de lucru: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ ro: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,9 +963,9 @@ ro: numeric: cifre (ex. ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: a fost deja utilizată. Te rog să alegi una diferită de anterioara. - few: a fost deja utilizată. Te rog să alegi una diferită de ultimele %{count}. - other: a fost deja utilizată. Te rog să alegi una diferită de ultimele %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: caractere speciale (ex. '%') uppercase: litere mari (ex. 'A') password_confirmation: @@ -978,6 +1034,8 @@ ro: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nu poate fi într-un alt proiect. cannot_be_milestone: nu poate fi o etapă. @@ -1005,6 +1063,8 @@ ro: status_id: status_invalid_in_type: nu este valabilă deoarece starea curentă nu există în acest tip. status_transition_invalid: este invalid, deoarece nu există nici o tranziție validă din vechea în noua stare pentru rolurile utilizatorului curent. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: nu poate fi o piatră de hotar, deoarece acest pachet de lucru are copii. is_not_a_valid_target_for_time_entries: 'Pachetul de lucru #%{id} nu este o ţintă validă pentru reasocierea timpilor de lucru.' @@ -1013,9 +1073,9 @@ ro: template: body: 'Verificaţi următoarele câmpuri:' header: - one: O eroare a împiedicat salvarea acestui %{model} - few: "%{count} erori au împiedicat salvarea acestui %{model}" - other: "%{count} de erori au împiedicat salvarea acestui %{model}" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1065,6 +1125,10 @@ ro: one: Authentication provider few: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + other: Automations backup: one: Backup few: Backups @@ -1093,10 +1157,6 @@ ro: one: Comment few: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1157,6 +1217,10 @@ ro: one: Export setting few: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + other: Forms forum: one: Forum few: Forums @@ -1181,6 +1245,10 @@ ro: one: Prioritate few: Priorități other: Priorități + label: + one: Label + few: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1509,7 +1577,28 @@ ro: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1542,7 +1631,11 @@ ro: tab_interface: Interfață tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Schimbarea temei va suprascrie stilul personalizat. În acest caz, designul va fi pierdut. Sunteți sigur că doriți să continuați? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Încărcacă un token de suport pentru ediția Enterprise book_now: Rezervă acum @@ -1575,7 +1668,7 @@ ro: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1583,12 +1676,15 @@ ro: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1621,16 +1717,30 @@ ro: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1734,31 +1844,31 @@ ro: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" other: "%{count} projects" statuses: - one: 1 stare - few: "%{count} stări" - other: "%{count} stări" + one: "%{count} status" + few: "%{count} statuses" + other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" revert_dialog: @@ -1825,7 +1935,7 @@ ro: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. @@ -1891,23 +2001,54 @@ ro: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1938,6 +2079,18 @@ ro: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1951,7 +2104,7 @@ ro: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? @@ -2081,7 +2234,7 @@ ro: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" other: "... %{count} more projects" banner: @@ -2123,7 +2276,7 @@ ro: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Acțiunile de transformare a textului le oferă utilizatorilor funcționalități bazate pe modele lingvistice mari (LLM) pentru a scrie, organiza și revizui textul oriunde se utilizează editorul de text formatat, cum ar fi descrierile pachetelor de lucru, comentariile și paginile wiki. Puteți crea acțiuni noi folosind propriile solicitări și instrucțiuni. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2157,14 +2310,21 @@ ro: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2174,7 +2334,7 @@ ro: confirm: Elimină description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Elimini o stare? + one: Remove %{count} status? few: Remove %{count} statuses? other: Remove %{count} statuses? title: Remove statuses @@ -2188,7 +2348,31 @@ ro: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: afișat acum is_inactive: neafișat acum show_until: Afişare până la @@ -2196,7 +2380,7 @@ ro: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Descărcarea este blocată deoarece fișierul nu a fost încă scanat pentru virusuri. Te rog să încerci din nou mai târziu. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2250,10 +2434,6 @@ ro: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Pachetul de lucru pe care îl căutați nu poate fi găsit sau a fost șters. - render: - context_not_parsable: Contextul primit nu reprezintă un link la o resursă. - context_object_not_found: Resursa furnizată ca și contet nu poate fi identificată. - unsupported_context: Resursa furnizată nu este suportată ca și context. unable_to_create_attachment: Atașamentul nu a putut fi creat unable_to_create_attachment_permissions: Atașamentul nu a putut fi salvat din cauza lipsei permisiunilor sistemului de fișiere user: @@ -2324,6 +2504,7 @@ ro: groups: Grupuri hexcode: Cod hexa id: ID + inexistent: Inexistent is_default: Valoare implicită is_for_all: Pentru toate proiectele issue: Pachet de lucru @@ -2374,6 +2555,7 @@ ro: updated_at: Actualizat pe updated_on: Actualizat în uploader: Autor + url: URL user: Utilizator username: Utilizator value: Valoare @@ -2388,6 +2570,29 @@ ro: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Lucrarea a fost anulată din cauza unei erori: %{message}' @@ -2516,6 +2721,7 @@ ro: button_set_reminder: Setează memento button_show: Afişare button_sort: Sortare + button_stop_timer: Oprește cronometrul button_submit: Trimite button_test: Testare button_unarchive: Dezarhivare @@ -2582,9 +2788,9 @@ ro: text: failed: Proiectul "%{source_project_name}" nu a putut fi copiat în proiectul "%{target_project_name}". succeeded: Proiectul "%{source_project_name}" a fost copiat în proiectul "%{target_project_name}". - title: Copiază proiectul "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Un obiect de acest tip + one: "%{count} object of this type" other: "%{count} obiecte de acest tip" zero: Nu există obiecte de acest tip create_portfolio: @@ -2622,13 +2828,9 @@ ro: plural: Acțiuni personalizate custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Pentru toate proiectele hierarchy: subitems: - one: 1 subelement + one: "%{count} sub-item" other: "%{count} subelemente" zero: fără subelemente items: @@ -2649,7 +2851,7 @@ ro: short: Nume scurt weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2714,16 +2916,17 @@ ro: is_enabled_globally: Este activat/ă la nivel global multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reordonează valorile alfabetic reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Creează câmp personalizat nou - no_results_title_text: În acest moment nu există câmpuri personalizate. text_add_new_custom_field: 'Dacă vrei să adaugi noi câmpuri personalizate în cadrul unui proiect va trebui, mai întâi, să le creezi. ' @@ -2787,74 +2990,74 @@ ro: datetime: distance_in_words: about_x_hours: - one: aproximativ o oră - few: aproximativ %{count} ore - other: aproximativ %{count} ore + one: about %{count} hour + few: about %{count} hours + other: about %{count} hours about_x_months: - one: aproximativ o lună - few: aproximativ %{count} luni - other: aproximativ %{count} luni + one: about %{count} month + few: about %{count} months + other: about %{count} months about_x_years: - one: aproximativ un an - few: aproximativ %{count} ani - other: aproximativ %{count} ani + one: about %{count} year + few: about %{count} years + other: about %{count} years almost_x_years: - one: aproape un an - few: aproape %{count} ani - other: aproape %{count} ani + one: almost %{count} year + few: almost %{count} years + other: almost %{count} years half_a_minute: jumătate de minut less_than_x_minutes: one: mai puțin de un minut few: mai puțin de %{count} minute other: mai puțin de %{count} minute less_than_x_seconds: - one: mai puțin de o secundă - few: mai puțin de %{count} secunde - other: mai puțin de %{count} secunde + one: less than %{count} second + few: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: peste un an - few: peste %{count} ani - other: peste %{count} ani + one: over %{count} year + few: over %{count} years + other: over %{count} years x_days: - one: o zi - few: "%{count} zile" - other: "%{count} zile" + one: "%{count} day" + few: "%{count} days" + other: "%{count} days" x_hours: - one: 1 oră - few: "%{count} ore" - other: "%{count} ore" + one: "%{count} hour" + few: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 h - few: "%{count} h" - other: "%{count} h" + one: "%{count} hr" + few: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: un minut - few: "%{count} minute" - other: "%{count} minute" + one: "%{count} minute" + few: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - few: "%{count} min" - other: "%{count} min" + one: "%{count} min" + few: "%{count} mins" + other: "%{count} mins" x_months: - one: o lună - few: "%{count} luni" - other: "%{count} luni" + one: "%{count} month" + few: "%{count} months" + other: "%{count} months" x_seconds: - one: o secundă - few: "%{count} secunde" - other: "%{count} secunde" + one: "%{count} second" + few: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" other: "%{count} s" x_weeks: - one: 1 săptămână - few: "%{count} săptămâni" - other: "%{count} săptămâni" + one: "%{count} week" + few: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 an - few: "%{count} ani" - other: "%{count} ani" + one: "%{count} year" + few: "%{count} years" + other: "%{count} years" units: day: one: zi @@ -3007,7 +3210,7 @@ ro: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: @@ -3350,9 +3553,158 @@ ro: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: În prezent nu există mesaje pentru acest forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: ";" @@ -3377,6 +3729,8 @@ ro: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: Prin gruparea utilizatorilor împreună, îi poți adăuga ca membri la aceleași proiecte sau le poți atribui aceleași roluri globale. memberships: @@ -3402,6 +3756,10 @@ ro: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3417,7 +3775,7 @@ ro: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3426,7 +3784,7 @@ ro: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Publică această vizualizare, permițând altor utilizatori să vă acceseze vizualizarea. Utilizatorii cu permisiunea "Manage public views" pot modifica sau elimina interogarea publică. Acest lucru nu afectează vizibilitatea rezultatelor pachetului de lucru în vizualizarea respectivă și, în funcție de permisiunile lor, utilizatorii pot vedea rezultate diferite. homescreen: @@ -3451,6 +3809,31 @@ ro: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Citește despre noile caracteristici și actualizări de produse. learn_about: Learn more about all new features @@ -3487,8 +3870,10 @@ ro: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3538,6 +3923,7 @@ ro: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3690,10 +4076,10 @@ ro: label_copy_target: Destinație label_copy_workflow_from: Copiază flux de la label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Versiune de bază label_created_by: Creat de %{user} + label_criteria: Criteria label_current_status: Stare actuală label_current_version: Versiune actuală label_custom_comment: "%{name} comment" @@ -3717,8 +4103,6 @@ ro: label_custom_field_default_type: Golire tip label_custom_field_new: Câmp personalizat nou label_custom_field_plural: Câmpuri personalizate - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3727,11 +4111,12 @@ ro: label_database_version: Versiunea PostgreSQL label_date: Data label_date_and_time: Data - label_date_format: Format dată + label_date_and_time_formats: Date and time formats label_date_from: Din label_date_from_to: Din %{start} la %{end} label_date_to: La label_dates: Date + label_day: Zi label_day_plural: zile label_default: Implicit label_defaults: Defaults @@ -3742,6 +4127,7 @@ ro: label_deleted_custom_field: "(câmp personalizat șters)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(opțiune eliminată)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3765,7 +4151,7 @@ ro: label_duplicate: duplicat label_duplicated_by: dublat de label_duplicates: dublează - label_edit: Editează + label_edit: Editare label_edit_x: 'Editare: %{x}' label_empty_element: "(gol)" label_enable_multi_select: Comutare selecție multiplă @@ -3812,6 +4198,7 @@ ro: label_float: Număr real label_folder: Dosar label_follows: urmează după + label_form_configuration_plural: Forms label_formula: Formulă label_forum_new: Forum nou label_forum_plural: Forumuri @@ -3830,7 +4217,8 @@ ro: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Grup - label_group_by: Grupează după + label_group_attributes_plural: Group attributes + label_group_by: Grupare după label_group_named: Grup %{name} label_group_new: Grupare nouă label_group_plural: Grupuri @@ -3881,8 +4269,8 @@ ro: label_journal_diff: Comparare descriere label_jump_to_a_project: Salt la un proiect... label_keyword_plural: Cuvinte cheie + label_label_plural: Labels label_language: Limbă - label_language_based: Bazat pe limba utilizatorului label_languages: Languages label_last_activity: Ultima activitate label_last_change_on: Ultima modificare @@ -3904,6 +4292,7 @@ ro: label_list: Listă label_loading: Se încarcă... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Blocați utilizatorul label_locked: blocat label_logged_as: Autentificat ca @@ -3915,6 +4304,7 @@ ro: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Gestionare arhive %{vendor} label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Dimensiunea maximă label_me: eu label_member_all_admin: "(Toate rolurile datorită statutului de administrator)" @@ -3933,7 +4323,6 @@ ro: label_menu_item_name: Numele meniului label_message: Mesaj label_message_last: Ultimul mesaj - label_message_new: Mesaj nou label_message_plural: Mesaje label_message_posted: Mesaj adăugat label_minute_plural: minute @@ -3945,6 +4334,7 @@ ro: label_module_plural: Module label_modules: Module label_modules_and_plugins: Module și Plugin-uri + label_month: Luna label_months_from: luni de la label_more: Mai mult label_more_information: Mai multe informații @@ -3958,6 +4348,7 @@ ro: label_my_avatar: My avatar label_my_queries: Interogările mele label_my_security: Security + label_my_time: My time label_name: Nume label_never: Niciodată label_new: Nou @@ -3972,7 +4363,10 @@ ro: label_news_singular: Noutăţi label_news_view_all: Afișează toate știrile label_next: Înainte + label_next_day: Ziua următoare + label_next_month: Luna următoare label_next_week: Săptămâna viitoare + label_next_workweek: Următoarea săptămână de lucru label_next_year: Anul următor label_no_change_option: "(Fără modificări)" label_no_data: Nu există date de afișat @@ -3980,6 +4374,7 @@ ro: label_no_parent_group: "(No parent group)" label_no_parent_page: 'Pagină părinte:' label_no_start_date: fără dată început + label_no_time: Nici un timp urmărit label_nobody: nimeni label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4046,7 +4441,10 @@ ro: label_preview: Previzualizare label_preview_not_available: Preview not available label_previous: Înapoi + label_previous_day: Ziua precedentă + label_previous_month: Luna anterioară label_previous_week: Săptămâna trecută + label_previous_workweek: Săptămâna lucru anterioară label_previous_year: Previous year label_principal_invite_via_email: " sau invită utilizatori folosind email" label_principal_search: Adaugă utilizatori sau grupuri existente @@ -4165,6 +4563,7 @@ ro: label_sort_lowest: Mută jos label_sorted_by: sortate după %{value} label_spent_time: Timp consumat + label_stack: Stack label_start_to_end: început la sfârșit label_start_to_start: început la început label_starts_with: starts with @@ -4184,6 +4583,7 @@ ro: label_subtask_plural: Sub-activități label_summary: Rezumat label_system: Sistem + label_system_or_language_default: Use system or language based default label_system_settings: Setări sistem label_system_storage: Informații privind stocarea label_table_of_contents: Cuprins @@ -4198,6 +4598,7 @@ ro: label_time: Timp label_time_entry_activity_plural: Activități timp consumat label_time_entry_plural: Timp consumat + label_timer_since: Început la %{time} label_title: Titlu label_today: astăzi label_today_as_date: Select today as date. @@ -4233,7 +4634,9 @@ ro: label_user_search: Căutare utilizator label_user_settings: Setări utilizator label_users_settings: Setări utilizatori + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Editați versiunea label_version_new: Versiune nouă label_version_plural: Versiuni @@ -4246,6 +4649,7 @@ ro: label_videos: Videoclipuri label_view_all_revisions: Cu toate reviziile label_view_diff: Afișare diferențe + label_view_mode_switcher: Schimbă vizualizarea label_view_revisions: Afișare revizii label_view_x: 'View: %{x}' label_watched_work_packages: Pachete de lucru urmărite @@ -4269,6 +4673,8 @@ ro: label_wiki_start: Pagina de start label_wiki_toc: Cuprins label_wiki_toc_empty: Cuprinsul este gol, deoarece nu există rubrici. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Muncă label_work_package: Pachet de lucru label_work_package_attachments: Anexe la pachetul de lucru @@ -4291,48 +4697,49 @@ ro: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Săptămână de lucru label_x_closed_work_packages_abbr: - one: unul închis + one: "%{count} closed" other: "%{count} închise" zero: 0 închis label_x_comments: - one: un comentariu + one: "%{count} comment" other: "%{count} comentarii" zero: fara comentarii label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: unul deschis + one: "%{count} open" other: "%{count} deschise" zero: 0 deschis label_x_projects: - one: un proiect + one: "%{count} project" other: "%{count} proiecte" zero: Proiecte label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' other: 'Time off: %{count} working days' label_yesterday: ieri @@ -4388,7 +4795,7 @@ ro: start_tls: STARTTLS start_tls_description: Trimite o comandă STARTTLS după conectarea la portul LDAP standard. Recomandată pentru conexiuni criptate. tls_options: - tls_certificate_description: Dacă certificatul serverului LDAP nu se află în sursele de încredere ale acestui sistem, îl poți adăuga manual aici. Introdu un șir de certificate PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verifică certificatul SSL verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4445,6 +4852,8 @@ ro: you_have: Aveți logo_alt_text: Logo-ul mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Centrul de notificare @@ -4501,9 +4910,9 @@ ro: mentioned: Ai fost menționat într-un comentariu mentioned_by: "%{user} v-a menționat într-un comentariu" more_to_see: - one: Mai există un pachet de lucru cu notificări. - few: Există %{count} pachete de lucru cu notificări. - other: Există %{count} de pachete de lucru cu notificări. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Deschide în browser reason: assigned: Alocat @@ -4687,6 +5096,14 @@ ro: create_button: Creează dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Resetarea tokenului de acces nu a reușit: %{error}' @@ -4700,10 +5117,26 @@ ro: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Token-uri de acces description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Acțiune expiration: Expirare @@ -4909,7 +5342,6 @@ ro: notice_principals_found_single: |- Există un singur rezultat Tab pentru a-l concentra. - notice_project_cannot_update_custom_fields: 'Nu poți actualiza câmpurile particularizate disponibile ale proiectului. Proiectul este invalid: %{errors}' notice_project_not_deleted: Proiectul nu a fost şters. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4919,9 +5351,6 @@ ro: notice_successful_create: Creare reuşită. notice_successful_delete: Ştergere reuşită. notice_successful_update: Actualizare reușită. - notice_successful_update_custom_fields_added_to_project: | - Actualizare reușită. Câmpurile personalizate ale tipurilor activate sunt activate automat - în formularul Pachet de lucru. Vezi mai multe. notice_to_many_principals_to_display: Există prea multe rezultate. Restrânge căutarea prin tastarea numelui noului membru (sau grup). notice_unsuccessful_create: Creation failed. notice_unsuccessful_create_with_reason: 'Creation failed: %{reason}' @@ -5022,7 +5451,7 @@ ro: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. @@ -5112,8 +5541,6 @@ ro: not_found: nu a fost găsit. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: nu are un flux de lucru propriu. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5133,7 +5560,6 @@ ro: or: sau rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Adâncime enabled: Activat item: Element @@ -5205,8 +5631,8 @@ ro: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5231,7 +5657,7 @@ ro: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comentare noutăți permission_commit_access: Acces de citire/scriere la repo (încărcare) - permission_copy_projects: Copiază proiecte + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Creează copie de rezervă @@ -5264,6 +5690,7 @@ ro: permission_export_projects: Export projects permission_export_work_packages: Export pachete de lucru permission_header_for_project_module_work_package_tracking: Pachete de lucru și diagrame Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5274,6 +5701,9 @@ ro: permission_manage_dashboards: Manage dashboards permission_manage_forums: Gestionare forumuri permission_manage_members: Gestionare participanți + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Gestionare știri permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5302,7 +5732,6 @@ ro: permission_save_bcf_queries: Save BCF queries permission_save_queries: Salvare vizualizări permission_search_project: Caută proiect - permission_select_custom_fields: Selectează câmpuri personalizate permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Selectare module proiect permission_select_project_phases: Selectează faze proiect @@ -5336,6 +5765,16 @@ ro: permission_work_package_assigned: Devino executant/responsabil permission_work_package_assigned_explanation: Pachetele de lucru pot fi atribuite utilizatorilor și grupurilor care dețin acest rol în proiectul respectiv placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Șterge utilizator placeholder deletion_info: data_consequences: 'Toate prezențele utilizatorului de tip "placeholder" (de exemplu, ca destinatar, responsabil sau alte valori de utilizator) vor fi realocate unui cont numit "Utilizator eliminat". Deoarece datele fiecărui cont șters sunt realocate acestui cont, nu va fi posibilă deosebirea datelor create de utilizator de datele unui alt cont șters. @@ -5357,7 +5796,7 @@ ro: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portofoliu + one: "%{count} portfolio" other: "%{count} portofolii" zero: 0 portofolii filters: @@ -5368,9 +5807,9 @@ ro: label: Filtru nume portofoliu placeholder: Caută portofolii sub_items_html: - one: "1 subelement" - few: "%{count} subelemente" - other: "%{count} subelemente" + one: "%{count} sub-item" + few: "%{count} sub-items" + other: "%{count} sub-items" lists: active: Portofolii active archived: Portofolii arhivate @@ -5384,7 +5823,7 @@ ro: Poate fi utilizate pentru a evidenția pachetele de lucru dintr-un tabel. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5396,7 +5835,7 @@ ro: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: un proiect + one: "%{count} project" other: "%{count} proiecte" zero: 0 projects destroy: @@ -5501,11 +5940,11 @@ ro: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5515,6 +5954,12 @@ ro: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: În acest moment nu există câmpuri personalizate disponibile. forums: no_results_content_text: Creați un nou forum @@ -5611,16 +6056,16 @@ ro: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. @@ -5633,7 +6078,7 @@ ro: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Creează versiune nouă - no_results_title_text: În acest moment nu există versiuni pentru acest proiect. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Grafic pachete de lucru work_package_priorities: @@ -5641,15 +6086,27 @@ ro: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Cerere de inițiere a proiectului + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplicare filtru preconfigurat configure_view: @@ -5678,9 +6135,9 @@ ro: action_title: React add_reaction: Add reaction and_others: - one: și încă unul - few: și %{count} alții - other: și %{count} alții + one: and %{count} other + few: and %{count} others + other: and %{count} others and_user: and %{user} react_with: React with %{reaction} reaction_by: "%{reaction} by" @@ -5797,6 +6254,36 @@ ro: warnings: cannot_annotate: Acest fișier nu poate fi adnotat. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5808,6 +6295,16 @@ ro: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5912,7 +6409,7 @@ ro: setting_default_projects_wiki: Activează funcționalitate wiki pentru proiectele noi implicit setting_diff_max_lines_displayed: Numărul maxim de linii afișate în comparație setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Afișare pachete de lucru din subproiecte pe pagina proiectului principal + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6027,6 +6524,7 @@ ro: setting_start_of_week: Săptămâna începe pe setting_sys_api_description: Serviciul web de administrare repo oferă integrare şi autorizare utilizatori pentru accesul la repo-uri. setting_sys_api_enabled: Activare serviciul web de administrare repo + setting_sys_api_key: API key setting_time_format: Timp setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6079,7 +6577,7 @@ ro: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6090,6 +6588,7 @@ ro: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6181,12 +6680,12 @@ ro: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Dezactivează solicitarea de inițiere a proiectului - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Asistent pentru crearea de proiecte project_initiation_request: Cerere de inițiere a proiectului @@ -6206,8 +6705,8 @@ ro: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Textul e-mailului de confirmare - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Statusul când este trimis status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6215,7 +6714,7 @@ ro: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Deschide expertul de creare a proiectului project_initiation_request: Deschide cererea de inițiere a proiectului @@ -6235,6 +6734,7 @@ ro: heading: Fază nouă no_gate: Fără poartă non_defined: Nicio fază nu este definită. + order_changed: Order successfully changed. phase_gates: Porți fază section_header: Faze start_gate: Poartă început @@ -6291,7 +6791,7 @@ ro: section_work_week: Săptămână de lucru sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6384,19 +6884,19 @@ ro:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Exclus din totaluri is_closed: Închis - is_default: Implicit is_readonly: Doar citire + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Adaugă stare nouă no_results_title_text: În acest moment nu există stări pentru pachetele de lucru. + status_actions: Status actions support: array: sentence_connector: și skip_last_comma: fals text_access_token_hint: Tichetele de acces permit aplicaţiilor externe accesul la resurse din OpenProject. - text_accessibility_hint: Modul de accesibilitate este conceput pentru utilizatorii nevăzători, cu handicap motor sau cu vedere slabă. Pentru aceștia din urmă, elementele focalizate sunt evidențiate în mod special. Vă rugăm să rețineți că modulul Backlogs nu este disponibil în acest mod. text_analyze: 'Continuare analiză: %{subject}' text_are_you_sure: Sunteți sigur? text_are_you_sure_continue: Sigur dorești să continui? @@ -6439,12 +6939,6 @@ ro: ' text_custom_field_possible_values_info: O linie pentru fiecare valoare - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6494,6 +6988,7 @@ ro: text_length_between: Lungime între %{min} şi %{max} de caractere. text_line_separated: Sunt permise valori multiple (un rând pentru fiecare valoare). text_load_default_configuration: Încărcare configurația implicită + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Nu există tichete de acces care pot fi configurate. text_no_configuration_data: |- Rolurile, tipurile, stările pachetelor de lucru și fluxul de lucru nu au fost configurate încă. @@ -6597,6 +7092,69 @@ ro: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Tip părinte + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: Toate proiectele + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6606,14 +7164,40 @@ ro: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6622,8 +7206,10 @@ ro: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6652,21 +7238,21 @@ ro: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Dezactivează tot label_enable_all: Activează tot label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generează PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6683,6 +7269,8 @@ ro: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6704,6 +7292,14 @@ ro: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6713,12 +7309,14 @@ ro: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6732,12 +7330,12 @@ ro: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Caută după secțiune sau nume tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6750,10 +7348,12 @@ ro: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Activează pentru toate proiectele select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Proiecte + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6768,45 +7368,17 @@ ro: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6814,6 +7386,9 @@ ro: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6822,13 +7397,14 @@ ro: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6842,12 +7418,16 @@ ro: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (părinte)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6856,34 +7436,77 @@ ro: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Creează tip nou no_results_title_text: În acest moment nu există tipuri. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignoră acest avertisment. message: Este posibil să întâmpinați erori și o experiență degradată pe această pagină. @@ -6902,9 +7525,9 @@ ro: authorization_rejected: Nu aveți drepturi de autentificare. blocked: blocat temporar blocked_num_failed_logins: - one: blocat temporar (o tentativă de autentificare eșuată) - few: blocat temporar (%{count} tentative de autentificare eșuate) - other: blocat temporar (%{count} tentative de autentificare eșuate) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Sunteți pe cale să modificați statutul lui "%{name}". Sunteți sigur că doriți să continuați? deleted: Utilizator șters department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7004,7 +7627,7 @@ ro: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Dispozitiv / OS expires: Expiră - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: Nu poți șterge sesiunea curentă. session_name: "%{browser_name} %{browser_version} pe %{os_name}" @@ -7064,7 +7687,7 @@ ro: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" work_hours: Work hours @@ -7072,6 +7695,12 @@ ro: version_status_locked: blocat version_status_open: deschis versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: În acest moment nu există pachete de lucru alocate acestei versiuni. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7241,12 +7870,14 @@ ro: required_description: Marchează acest pachet de lucru ca fiind o cerință pentru cel asociat requires_description: Marchează pachetul de lucru asociat ca o cerință pentru acesta work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Pachetele de lucru nu pot fi copiate. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Următoarele pachete de lucru nu au putut fi salvate:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. descendant: descendent al selectatului @@ -7272,20 +7903,20 @@ ro: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: @@ -7344,22 +7975,163 @@ ro: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7391,40 +8163,56 @@ ro: version: no_results_title_text: În acest moment nu există versiuni disponibile. x_descendants: - one: Un pachet de lucru descendent - few: "%{count} descendenți ai pachetului de lucru" - other: "%{count} pachete de lucru descendente" + one: "%{count} descendant work package" + few: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. few: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7433,12 +8221,94 @@ ro: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Modifică zilelor lucrătoare dialog: diff --git a/config/locales/crowdin/ru.seeders.yml b/config/locales/crowdin/ru.seeders.yml index d7cdc51923d0..ad2b3a7b84b2 100644 --- a/config/locales/crowdin/ru.seeders.yml +++ b/config/locales/crowdin/ru.seeders.yml @@ -250,70 +250,26 @@ ru: В этом модуле вы можете сообщать новости проекта членам вашей команды. versions: item_0: - name: Невыполненные задачи по исправлению ошибок - item_1: - name: Невыполненные работы по продукту - item_2: - name: Спринт 1 wiki: - title: Спринт 1 + title: Релиз 1.0 content: | - ### Совещание по планированию спринта - - _Пожалуйста, документируйте здесь темы на встречу по планированию спринта_ - - * Время (8 h) - * Вход: невыполненные работы продукта - * Выход: невыполненные работы спринта - - * Разделен на два дополнительных ящика по 4 ч: - - * Владелец продукта представляет [Невыполненные работы продукта]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) и приоритеты для команды и объясняет цель спринта, с которой команда должна согласиться. Вместе они приоритизируют темы из бэклога товаров, о которых команда позаботится в следующем спринте. Команда обязуется выполнять обсуждаемую поставку. - * Команда планирует автономно (без владельца продукта) и подробно отбирает задачи из обсуждаемых требований для консолидации [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Ежедневная Scrum встреча + ### Релиз 1.0 - _Пожалуйста, напишите темы на Ежедневную встречу Scrum_ + _Пожалуйста, опишите здесь, что входит в данный релиз._ - * Короткая ежедневная встреча команды. - * Временная рамка (Макс. 15 мин). - * Стандартное заседание для обсуждения следующих тем на [Панели заданий](##sprint:scrum_project__version__sprint_1). - * Что я планирую сделать до следующей Ежедневной скрамы? - * Что заблокировало мою работу (препятствия)? - * Scrum Master модерирует и отмечает [Препятствия](##sprint:scrum_project__version__sprint_1). - * Владелец продукта может принять участие для того, чтобы быть информированным об этом. - - ### Встреча по обзору - - _Пожалуйста, напишите здесь темы на встречу по обзору спринта_ - - * Время (4 ч). - * Максимальный один час времени подготовки на человека. - * Команда показывает владельца продукта и других заинтересованных лиц, что было достигнуто в этом спринте. - * Важно: нет смартфонов и PowerPoint! Только законченный продукт (Препятствия) должен быть продемонстрирован. - * Отзыв от Владельца продукта, заинтересованных сторон и других желаемых и будет включен в дальнейшую работу. - * Основываясь на проверенных функциях, Владелец Продукта решит вступить в силу с этим увеличением или развить его дальше. Эта возможность позволяет ранний ROI. - - - ### Ретроспектива спринта - - _Пожалуйста, документируйте здесь темы для Ретроспективы Спринта_ - - * Время (3 ч). - * После просмотра спринта, будет модерироваться Scrum Master. - * Команда обсуждает спринт: что пошло хорошо, что должно быть улучшено, чтобы быть более продуктивным для следующего спринта или даже весело. - item_3: - name: Спринт 2 + * Пакеты работ данного релиза — это те, целевая версия которых равна 1.0. + * Дата выпуска — это дата достижения вехи *Release v1.0*. + * Откройте [План развития]({{opSetting:base_url}}/projects/your-scrum-project/roadmap), чтобы отслеживать ход работ по всем версиям. + * Откройте [Настройки проекта → Версии]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions), чтобы связать другую страницу вики с конкретной версией. categories: item_0: Категория 1 (будет изменена в настройках проекта) queries: item_0: name: План проекта item_1: - name: бэклог продукта + name: Версия 1.1 item_2: - name: Спринт 1 + name: Версия 1.0 item_3: name: Задачи boards: @@ -339,20 +295,20 @@ ru: options: name: Приступая к работе text: | - Мы рады, что Вы присоединились! Мы предлагаем попробовать несколько вещей, чтобы начать работу с OpenProject. + Рады, что вы присоединились! Мы предлагаем попробовать несколько действий, чтобы начать работу в OpenProject. - _Попробуйте выполнить следующие шаги:_ + _Выполните следующие шаги:_ - 1. *Пригласите новых участников в свой проект*: → Перейдите к [Участники]({{opSetting:base_url}}/projects/your-scrum-project/members) в меню проекта. - 2. *Просмотрите бэклог Вашего продукта и бэклог спринта*: → Перейдите к [Бэклог]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) в меню проекта. - 3. *Просмотрите Вашу доску задач*: → Перейдите к [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Нажмите стрелку вправо на Этапы → Выберите [Панель задач](##sprint:scrum_project__version__sprint_1). - 4. *Создайте новый пакет работ*: → Перейдите в раздел [Пакеты работ → Создать]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Создайте и обновите план проекта*: → Перейдите к разделу [План проекта](##query:scrum_project__query__project_plan) в меню проекта. - 6. *Создайте вики спринта*: → Перейдите в раздел [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) и откройте вики спринта из правого выпадающего меню в спринте. Вы можете отредактировать шаблон [wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) в соответствии со своими потребностями. - 7. *Активируйте дополнительные модули*: → Перейдите в раздел [Настройки проекта → Модули]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Пригласите новых участников в проект*: → Перейдите в [Участники]({{opSetting:base_url}}/projects/your-scrum-project/members) в навигации проекта. + 2. *Просмотрите Product Backlog и Sprint Backlog*: → Перейдите в [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) в навигации проекта. + 3. *Создайте спринт*: → Перейдите в [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) и нажмите "+ Спринт", чтобы создать новый спринт. Перемещайте рабочие пакеты из бэклога в спринт, чтобы спланировать работу. Когда будете готовы, нажмите "Начать спринт". + 4. *Просмотрите доску спринта*: → Перейдите в [Доски]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Откройте доску спринта, нажав на название спринта. + 5. *Создайте новый рабочий пакет*: → Перейдите в [Рабочие пакеты → Создать]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Создайте и обновите план проекта*: → Перейдите в [План проекта](##query:scrum_project__query__project_plan) в навигации проекта. + 7. *Активируйте дополнительные модули*: → Перейдите в [Параметры проекта → Модули]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Здесь Вы найдете наши [руководства пользователя](https://www.openproject.org/docs/user-guide/). - Пожалуйста, сообщите нам, если у Вас возникнут вопросы или Вам понадобится поддержка. Свяжитесь с нами: [support[at]openproject.com](mailto:support@openproject.com). + Здесь вы найдёте наши [Руководства пользователя](https://www.openproject.org/docs/user-guide/). + Дайте нам знать, если у вас есть вопросы или вам нужна поддержка. Свяжитесь с нами: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Пакеты работ diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index 948fce0c2f31..1a92f805fe78 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -40,7 +40,9 @@ ru: view: Динамическая ссылка на представление, размещённая с помощью макроса. work_package: Динамическая ссылка на пакет работ, размещенная с помощью макроса. account: + already_have_an_account: You already have an account? auth_source_login_html: Пожалуйста, войдите в систему как %{login} чтобы активировать свою учетную запись. + continue_with_provider: Continue with %{name} delete: Удалить учётную запись delete_confirmation: Вы уверены, что хотите удалить учетную запись? deletion_info: @@ -65,7 +67,9 @@ ru: error_self_registration_limited_provider: 'Регистрация пользователей ограничена для поставщика системы единого входа «%{name}». Попросите администратора активировать для вас учетную запись или изменить лимит самостоятельной регистрации для этого провайдера. ' - login_with_auth_provider: или войдите своей учетной записью + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Продолжить вход omniauth_direct_login_redirecting: Перенаправление к вашему поставщику идентификационных данных… omniauth_login: Пожалуйста, авторизируйтесь для активации вашей учетной записи. @@ -118,6 +122,8 @@ ru: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: Клиенты SCIM + automation: + actions: Actions calculated_value_error: customized_id: Настраиваемый ID customized_type: Настраиваемый тип @@ -128,8 +134,6 @@ ru: repository: Репозиторий comment: commented: Прокомментировано - custom_action: - actions: Действия custom_field: admin_only: Только администратор allow_non_open_versions: Разрешить неоткрытые версии @@ -168,6 +172,7 @@ ru: uid: ID клиента emoji_reaction: reactable: Реакция на + reaction: Reaction enterprise_token: active_user_count_restriction: Активные пользователи encoded_token: Маркер поддержки корпоративной версии @@ -179,20 +184,44 @@ ru: company: Компания favorite: favorited: Элемент + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Количество столбцов page: Страница row_count: Количество строк widgets: Виджеты group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Пользователи группы identity_url: URL идентификации organizational_unit: Подразделение организации parent: Родительская группа group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Подразделение организации parent: Родительская группа import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Имя экземпляра Jira personal_access_token: Персональный токен доступа url: URL-адрес экземпляра Jira @@ -223,6 +252,7 @@ ru: title: Название member: blocked: Заблокирован + principal_type: Тип участника roles: Роль notification: read_ian: Читайте в приложении @@ -235,6 +265,7 @@ ru: position: Позиция persisted_query: filters: Фильтры + group_bys: Группировать результаты по name: Имя orders: Порядок selects: Выбирает @@ -367,6 +398,8 @@ ru: ongoing: В процессе spent_on: Дата type: Тип + token/base: + expires_on: Expiration date token/ical: calendar: Календарь ical_token_query_assignment: Задание запроса @@ -384,19 +417,17 @@ ru: type_variant: attribute_groups: Форма default_work_package_description: Текст для описания по умолчанию - defaults_source: Источник по умолчанию enabled_in_new_projects: Активно в новых проектах - form_configuration_source: Источник формы + linked_aspects: Унаследованная конфигурация patterns: Шаблоны - pdf_export_source: Источник экспорта PDF - project_attributes_source: Источник атрибутов проекта project_types: Проекты, в которых используется данный вариант variant: Вариант variant_name: Название - workflows_source: Источник рабочих процессов + workflow: Рабочий поток user: admin: Администратор auth_source: Источник аутентификации + avatar_type: Avatar type consented_at: Согласен с current_password: Текущий пароль department: Подразделение @@ -410,7 +441,7 @@ ru: last_name: Фамилия ldap_auth_source: Подключение к LDAP new_password: Новый пароль - password_confirmation: Подтверждение + password_confirmation: Password confirmation user_custom_field: custom_field_section: Раздел user_non_working_time: @@ -419,11 +450,15 @@ ru: user_preference: auto_hide_popups: Автоматически скрывать успешные баннеры auto_hide_popups_caption: Когда эта функция включена, зеленые успешные баннеры автоматически исчезают через 5 секунд. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Обновить оповещения button_update_look_and_feel: Обновить оформление button_update_user_information: Обновить профиль comments_sorting: Отображение активности пакета работ, отсортированной по daily_reminders: Ежедневные напоминания + date_format: Date format disable_keyboard_shortcuts: Отключить горячие клавиши dismissed_enterprise_banners: Скрытые корпоративные баннеры force_dark_theme_contrast: Принудительная высокая контрастность в темном режиме @@ -434,13 +469,23 @@ ru: header_look_and_feel: Оформление impaired: Режим отображения для людей с ограниченными возможностями increase_contrast: Увеличить контраст - increase_contrast_caption: Включает режим высокой контрастности для выбранного цветового режима. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Увеличить контрастность темы mode_guideline: Некоторые режимы перезаписывают цвета пользовательских тем для обеспечения доступности и читаемости. Пожалуйста, выберите светлый режим для полной поддержки пользовательских тем. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Цветовой режим + time_format: Time format time_zone: Часовой пояс warn_on_leaving_unsaved: При покидании рабочего пакета предупреждать о не сохраненных изменениях workdays: Рабочие дни + user_resource: + description: Описание + name: Имя + user_filter: Фильтр пользователей + user_resource_detail: + description: Описание + user_filter: Фильтр пользователей user_working_hours: availability_factor: Фактор доступности days: Рабочие дни @@ -491,6 +536,7 @@ ru: title: Рабочие дни true: включить нерабочие дни journal_internal: Внутренний журнал + labels: Метки notify: Уведомлять observed_in_versions: Наблюдается в версиях parent: Родитель @@ -519,6 +565,10 @@ ru: work_package: Пакет работ work_package_version: kind: Вид + workflow: + description: Описание + name: Имя + type_variants: Типы и варианты, использующие этот рабочий процесс errors: messages: accepted: нужно подтвердить. @@ -590,6 +640,8 @@ ru: regex_invalid: не может быть проверен связанным регулярным выражением. regex_list_invalid: Строки %{invalid_lines} не могут быть проанализированы как регулярное выражение. regex_match_failed: не соответствует регулярному выражению %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: должно быть меньше или равно максимальной длине. smaller_than_or_equal_to_max_value: должно быть меньше или равно максимальному значению. ssrf_filtered: нарушает политику SSRF данного экземпляра OpenProject. @@ -612,6 +664,10 @@ ru: user_in_ldap_managed_department: Этот пользователь принадлежит подразделению, управляемому LDAP синхронизацией, и не может быть перемещен. wrong_length: неправильная длина (должно быть %{count} знаков). models: + ai/text_transform_run: + attributes: + base: + not_available: Данное действие недоступно. attachment: attributes: content_type: @@ -674,6 +730,16 @@ ru: general_consent: Пожалуйста, подтвердите правила и условия пользования. favorite: already_favorited: уже добавлено. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: конечное значение должно быть больше начального. outside: за пределами сетки. @@ -691,6 +757,13 @@ ru: not_unique: уже используется. Пожалуйста, выберите другое имя. jira: invalid_protocol: Пожалуйста, укажите корректный протокол (http или https) + label: + attributes: + name: + blank: Имя не может быть пустым. + format: "%{message}" + taken: Метка с таким именем уже существует. Пожалуйста, используйте другое имя. + too_long: Имя слишком длинное (максимум %{count} символов). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ ru: types: cannot_assign_multiple_variants_of_parent: В проекте можно включить только один вариант типа cannot_assign_variant_and_parent: 'Не удается назначить вариант и его родителя ' - cannot_assign_variants_yet: Варианты пока не могут быть включены в проекте. Включите feature флаг, чтобы попробовать варианты in_use_by_work_packages: 'всё ещё используются в пакетах работ: %{types}' switch_target_blank: Выберите вариант, на который хотите переключиться switch_target_identical: Целевой тип должен отличаться от типа, который сейчас используется в проекте @@ -859,42 +931,26 @@ ru: blank: Пожалуйста, укажите имя токена format: "%{message}" in_use: Это имя токена уже используется, пожалуйста, выберите другое + type: + attributes: + base: + in_use_by_work_packages: Этот тип нельзя удалить, пока пакеты работ все еще используют его. type_variant: attributes: - attribute_groups: - attribute_unknown: Используется недопустимый атрибут пакета работ. - attribute_unknown_name: 'Используется неверный атрибут пакета работ: %{attribute}' - duplicate_group: Имя группы '%{group}' используется более одного раза. Имена групп должны быть уникальными. - group_without_name: Имя группы не может быть пустым. - query_invalid: 'Встроенный запрос ''%{group}'' является недопустимым: %{details}' base: - borrowed_by_variants: Нельзя удалить, пока его конфигурация повторно используется %{names}. is_default_variant: Конфигурация по умолчанию для типа не может быть удалена. project_variants_not_allowed: Этот тип не позволяет создавать варианты внутри проектов. restrict_dependent_destroy: has_many: Невозможно удалить, пока он используется в проектах. - defaults_source_id: - must_be_available_to_the_variant: должно быть конфигурацией, которую проект может использовать. - would_create_cycle: объединит эти конфигурации в цикл. enabled_in_new_projects: not_available_to_project_owned_variant: не может быть установлен на вариант, принадлежащий проекту. taken: уже настроен для другой конфигурации данного типа. - form_configuration_source_id: - must_be_available_to_the_variant: должно быть конфигурацией, которую проект может использовать. - would_create_cycle: объединит эти конфигурации в цикл. patterns: invalid_tokens: Один или несколько атрибутов внутри поля недействительны. Пожалуйста, исправьте атрибуты перед сохранением. - pdf_export_source_id: - must_be_available_to_the_variant: должно быть конфигурацией, которую проект может использовать. - would_create_cycle: объединит эти конфигурации в цикл. - project_attributes_source_id: - must_be_available_to_the_variant: должно быть конфигурацией, которую проект может использовать. - would_create_cycle: объединит эти конфигурации в цикл. variant: must_belong_to_the_type: должен быть вариантом данного типа. - workflows_source_id: - must_be_available_to_the_variant: должно быть конфигурацией, которую проект может использовать. - would_create_cycle: объединит эти конфигурации в цикл. + workflow: + not_available_to_this_variant: должен быть рабочим процессом, который может использовать проект. user: attributes: base: @@ -908,10 +964,10 @@ ru: numeric: цифры (например "1") requirements_not_met: 'Должны включать символы следующих типов: %{rules}' reused: - one: уже использовался ранее. Пожалуйста, укажите другое значение. - few: использовалось ранее. Пожалуйста, укажите отличающееся от ваших последних %{count}. - many: использовалось ранее. Пожалуйста, укажите отличающееся от ваших последних %{count}. - other: уже использовался ранее. Пожалуйста, укажите пароль отличающийся от использованных ранее %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: спецсимволы (например, "%") uppercase: прописные буквы (например, "A") password_confirmation: @@ -980,6 +1036,8 @@ ru: identifier: must_not_be_changed: не должно быть изменено вручную. Идентификаторы пакетов работ автоматически выделяются и разрешаются через таблицу псевдонимов, поэтому их изменение вручную прерывает ссылки и историю идентификатора. Если это намеренно, сохраните `save(контекст:%{context})` и поддерживайте таблицу work_package_semantic_aliass. semantic_identifier_incomplete: и sequence_number должны быть установлены одновременно. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: не может быть в другом проекте. cannot_be_milestone: не может быть вехой @@ -1007,6 +1065,8 @@ ru: status_id: status_invalid_in_type: недопустимо, так как текущего статуса в этом типе нет. status_transition_invalid: недопустимо, так как для текущих ролей пользователя нет правильного перехода от старого этапа к новому. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: не может быть вехой, поскольку этот пакет работ имеет потомков. is_not_a_valid_target_for_time_entries: 'Пакет работ #%{id} не допустимым для переназначения времени записи.' @@ -1015,10 +1075,10 @@ ru: template: body: 'Пожалуйста, проверьте следующие поля:' header: - one: 1 ошибка не позволила сохранить %{model} - few: "%{count} ошибки не позволили сохранить %{model}" - many: "%{count} ошибок не позволили сохранить %{model}" - other: "%{count} ошибок не позволили сохранить %{model}" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Действие @@ -1080,6 +1140,11 @@ ru: few: Провайдера аутентификации many: Провайдеров аутентификации other: Провайдеры аутентификации + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Резервная копия few: Backups @@ -1115,11 +1180,6 @@ ru: few: Comments many: Comments other: Комментарии - custom_action: - one: Пользовательское действие - few: Custom actions - many: Custom actions - other: Пользовательские действия custom_field: one: Пользовательское поле few: Custom fields @@ -1195,6 +1255,11 @@ ru: few: Export settings many: Export settings other: Настройки экспорта + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Форум few: Forums @@ -1225,6 +1290,11 @@ ru: few: Приоритеты many: Приоритеты other: Приоритеты + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP-подключение few: LDAP connections @@ -1617,7 +1687,28 @@ ru: admin: banners: environment_configured_readonly: Эти значения настраиваются через переменные окружения и не могут быть отредактированы. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: По умолчанию используются логотипы OpenProject, но если вы загрузите новые логотипы, то тема автоматически будет изменена на пользовательскую тему. Для лучшего результата мы рекомендуем использовать прозрачный логотип. + title: Пользовательские логотипы рабочего стола + mobile: + description: По умолчанию логотипы OpenProject используются в версии мобильного браузера, это изменение не будет обновлено. Для лучшего результата мы рекомендуем использовать прозрачный логотип. + title: Пользовательские мобильные логотипы + modes: + dark: + description: Заголовок приложения будет черным. Мы рекомендуем белый логотип на прозрачном фоне. + name: Логотип в темном режиме + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Логотип в светлом режиме + light_high_contrast: + description: Заголовок приложения будет серым. Мы рекомендуем черный логотип на прозрачном фоне. + name: Логотип в режиме высокой контрастности color_groups: base_colors: Основные цвета main_menu: Главное боковое меню @@ -1650,7 +1741,11 @@ ru: tab_interface: Интерфейс tab_pdf_export_font: Шрифт для экспорта в PDF tab_pdf_export_styles: Стили экспорта PDF - theme_warning: Изменение темы перезапишет ваш пользовательский стиль. Дизайн будет утерян. Вы уверены, что хотите продолжить? + theme_warning: + confirmation: Я понимаю, что это действие нельзя отменить + description: Смена темы приведёт к перезаписи настраиваемых стилей и цветов. Созданные параметры оформления будут утрачены. + heading: Изменить цветовую схему? + title: Изменить цветовую тему enterprise: add_token: Загрузить токен поддержки корпоративной версии book_now: Заказать сейчас @@ -1683,7 +1778,7 @@ ru: import: title: Импорт info: - database_deprecation_html: 'Начиная с OpenProject 16.0, для использования OpenProject требуется PostgreSQL 16. Ваша установка останется работоспособной с текущей базой данных, но ожидайте несовместимости в будущих выпусках.
Мы подготовили [руководства по обновлению для всех способов установки](upgrade_guide). Вы можете выполнить обновление до следующего релиза в любое время, следуя этим руководствам. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Распределитель памяти Jemalloc @@ -1691,12 +1786,15 @@ ru: actions: button_edit: Редактировать конфигурацию button_open: Открыть запуск + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Пожалуйста, помогите нам улучшить Jira Migrator с помощью Ваших отзывов и частных пожертвований данных. Вы можете [присоединиться к сообществу разработчиков](link) Jira Migrator. ' description: Этот мигратор Jira в настоящее время находится в бета-версии. В настоящее время мы поддерживаем только Jira Server/Data Center версии 10. и 11.x. Облачные экземпляры в данный момент не поддерживаются. title: Бета-версия - попробовать! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Настройте хост Jira, чтобы начать импортировать элементы из Jira в этот экземпляр OpenProject. title: Хосты Jira еще не настроены @@ -1729,16 +1827,30 @@ ru: description: В Jira используются идентификаторы задач, состоящие из ключа проекта и порядкового номера (PRJ-123). OpenProject также поддерживает эту функцию, однако её необходимо включить [здесь](link). title: Семантические идентификаторы на основе проекта должны быть включены. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Добавить конфигурацию - button_delete_token: Удалить токен + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Сохранить конфигурацию - delete_token_confirm: Вы уверены, что хотите удалить токен? Это отключит подключение к Jira. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Имя - personal_access_token: Персональный токен доступа + personal_access_token: Personal access token (PAT) url: URL сервера/центра обработки данных Jira label_testing: Тестирование конфигурации... - test_configuration_caption: Вы можете протестировать эту конфигурацию, [нажав здесь](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Редактировать запуск @@ -1842,40 +1954,40 @@ ru: title: Пожалуйста, убедитесь, что у Вас есть резервная копия! parts: issues: - one: 1 проблема - few: "%{count} проблем" - many: "%{count} проблем" - other: "%{count} проблем" + one: "%{count} issue" + few: "%{count} issues" + many: "%{count} issues" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 проект - few: "%{count} проектов" - many: "%{count} проектов" - other: "%{count} проектов" + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" statuses: - one: 1 статус - few: "%{count} статусов" - many: "%{count} статусов" - other: "%{count} статусов" + one: "%{count} status" + few: "%{count} statuses" + many: "%{count} statuses" + other: "%{count} statuses" types: - one: 1 тип - few: "%{count} типов" - many: "%{count} типов" - other: "%{count} типов" + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" users: - one: 1 пользователь - few: "%{count} пользователей" - many: "%{count} пользователей" - other: "%{count} пользователей" + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" work_packages: - one: 1 пакет работ - few: "%{count} пакетов работ" - many: "%{count} пакетов работ" - other: "%{count} пакетов работ" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" revert_dialog: confirm: Я понимаю, что при отмене данные будут удалены навсегда description: Это приведет к удалению всех импортированных объектов (включая целые проекты). @@ -1940,10 +2052,10 @@ ru: caption: Выберите, что Вы хотите импортировать в OpenProject caption_done: Завершено caption_done_description: - one: 1 проект выбран в области применения - few: "%{count} проекта выбраны в области применения" - many: "%{count} проектов выбраны в области применения" - other: "%{count} проектов выбраны в области применения" + one: "%{count} project selected as scope" + few: "%{count} projects selected as scope" + many: "%{count} projects selected as scope" + other: "%{count} projects selected as scope" description: Выберите, какие данные Вы хотите импортировать из доступных, полученных из хоста Jira. elements: custom_fields: Подмножество настраиваемых полей @@ -2007,23 +2119,55 @@ ru: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API вернул статус ошибки %{status}. Пожалуйста, проверьте ваш экземпляр Jira URL и API токен. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Ошибка соединения: %{message}' error: Во время тестирования соединения произошла непредвиденная ошибка failed: 'Соединение не удалось: Невозможно получить информацию о сервере' invalid_url: Укажите корректный URL - missing_credentials: Пожалуйста, укажите URL и персональный токен доступа, чтобы проверить соединение parse_error: Не удалось разобрать ответ от сервера. Возможно, сервер не является действующим экземпляром Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Успешное подключение к %{server} (версия %{version}) - token_error: Неверный API токен. Пожалуйста, проверьте свои учетные данные в конфигурации. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Мигратор Jira - token_deleted: Токен был успешно удален. user: unknown_name: Неизвестен journal_aggregation: caption_with_maximum: 'Действия пользователя над пакетом работ (изменение описания, статуса, значений или добавление комментариев) группируются, если они выполняются в течение этого периода. Этот параметр также регулирует задержки в отправке уведомлений и [webhook](webhook_link). Максимальное значение составляет %{max} минут. ' + labels: + delete_dialog_component: + confirmation: Я понимаю, что это действие нельзя отменить + description_html: Это удалит метку %{name} из всех пакетов работ во всех проектах. + heading: Удалить эту метку? + title: Удалить эту метку? + dialog_component: + create_title: Создать метку + rename_title: Переименовать "%{name}" + index: + description: Все пользователи, способные редактировать пакеты работ, могут свободно помечать пакеты работ как существующими, так и сразу создавать новые. Сюда входят все метки, созданные пользователями во всех проектах. + row_component: + used_in_work_packages: + one: "%{count} пакет работ" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} пакетов работ" + sub_header_component: + button_add: Метка + label_add: Добавить метку + search_placeholder: Введите текст для поиска + table_component: + blank_slate: + description: Здесь появятся ярлыки, созданные пользователями на пакетах работ. + title: Пока нет меток + headers: + name: Метка + usage: Используется в + no_matches: + description: Попробуйте изменить поисковой запрос. + title: Нет меток, соответствующих вашему запросу mcp_configurations: index: description: Протокол контекста модели позволяет агентам ИИ предоставлять своим пользователям инструменты и ресурсы, открытые данным экземпляром OpenProject. Эта функция пока находится в стадии бета-версии. @@ -2054,6 +2198,18 @@ ru: update: failure: Конфигурация MCP не может быть обновлена. success: Конфигурация MCP была успешно обновлена. + members: + index: + blank_description: Ни одно членство не соответствует текущему фильтру. + blank_title: Нет членства + filter_label: Поиск пользователей + inheritance_source: "%{type} %{name}" + inherited_via: "(источник: %{source})" + title: Членства + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Более подробную информацию см. на странице "Наши интеграции и плагины". no_results_title_text: В настоящее время плагины не установлены. @@ -2067,10 +2223,10 @@ ru: confirm_button: Снять резервирование идентификатора description: Отмена резервирования данного идентификатора проекта не может быть отменена. Внешние ссылки и интеграции, использующие этот идентификатор, перестанут работать, а само имя станет доступным для использования любым новым проектом. description_with_work_packages: - one: Отмена резервирования этого идентификатора проекта (и его один идентификатор пакета работ) не может быть отменена. Внешние ссылки и интеграции, использующие ее, перестают разрешать и имя становится доступным для любого нового проекта. - few: Отмена резервирования этого идентификатора проекта (и его %{count} идентификатора пакетов работ) не может быть отменена. Внешние ссылки и интеграции, использующие ее, перестают разрешать и имя становится доступным для любого нового проекта. - many: Отмена резервирования этого идентификатора проекта (и его %{count} идентификаторов пакетов работ) не может быть отменена. Внешние ссылки и интеграции, использующие ее, перестают разрешать и имя становится доступным для любого нового проекта. - other: Отмена резервирования этого идентификатора проекта (и его %{count} идентификаторов пакетов работ) не может быть отменена. Внешние ссылки и интеграции, использующие ее, перестают разрешать и имя становится доступным для любого нового проекта. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Отменить резервирование "%{identifier}? title: Снять резервирование идентификатора empty_body: В случае изменения идентификатора проекта предыдущий идентификатор будет отображаться здесь, чтобы вы могли отменить его резервирование, как только это станет безопасным. @@ -2198,10 +2354,10 @@ ru: error_unknown: Требуется ручная проверка error_used_in_past: Зарезервировано другим проектом remaining_projects: - one: "... еще 1 проект" - few: "... еще %{count} проектов" - many: "... еще %{count} проектов" - other: "... еще %{count} проектов" + one: "... %{count} more project" + few: "... %{count} more projects" + many: "... %{count} more projects" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Существующие идентификаторы для %{project_count} проектов не соответствуют требованиям, предъявляемым к семантическим идентификаторам. OpenProject может автоматически обновить их, чтобы они были действительными, как показано в примерах ниже. Щелкните на ''Конвертировать идентификаторы'', чтобы обновить идентификаторы для всех проектов и включить семантические идентификаторы для проектов. @@ -2241,7 +2397,7 @@ ru: types_caption: Добавьте типы пакетов работ, для которых должно быть доступно данное действие. Все доступные варианты будут включены автоматически. usage_scope_caption: 'Вы можете ограничить область видимости этого действия: везде (включая комментарии, Вики и настраиваемые поля), для всех типов пакетов работ или для определенных типов пакетов работ.' index: - description: Действия по преобразованию текста предоставляют пользователям возможности на базе больших языковых моделей для написания, систематизации и проверки текста везде, где используется редактор форматированного текста, например в описаниях пакетов работ, комментариях и на страницах вики. Вы можете создавать новые действия, используя собственные подсказки и инструкции. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Действие label_aria_add_action: Добавить действие «Преобразование текста» index_component: @@ -2276,15 +2432,22 @@ ru: ignore: Игнорировать изменения save: Сохранить изменения и продолжить title: Сохранить изменения, прежде чем продолжить? + read_only: + edit_action: Редактировать рабочий процесс + text_html: 'Вы используете существующий рабочий процесс. Чтобы внести изменения, либо отредактируйте исходный рабочий процесс, либо нажмите + %{action} выше, чтобы создать новый. + + ' role_selector: label: 'Роль: %{role}' no_role: Выберите роль roles: - one: Выбрана одна роль - few: "%{count} роли выбрано" - many: "%{count} ролей выбрано" - other: "%{count} ролей выбрано" + one: "%{count} role selected" + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" title: Выберите роли + with_transitions: With transitions + without_transitions: Without transitions status_button: Статус statuses_dialog: caption: Добавление или удаление статусов, которые вы хотите ассоциировать с этим типом. Удаление статуса также удалит связанный с ним рабочий процесс. @@ -2294,10 +2457,10 @@ ru: confirm: Удалить description: Удаление этих статусов сделает их недоступными для данного типа и удалит существующие рабочие процессы. Вы уверены, что хотите продолжить? heading: - one: Удалить 1 статус? - few: Удалить %{count} статусов? - many: Удалить %{count} статусов? - other: Удалить %{count} статусов? + one: Remove %{count} status? + few: Remove %{count} statuses? + many: Remove %{count} statuses? + other: Remove %{count} statuses? title: Удаление статусов tabs: always: Переходы по умолчанию @@ -2309,7 +2472,31 @@ ru: assignee: Дополнительные варианты перехода, доступные исполнителю пакета работ. author: Дополнительные варианты перехода, доступные автору пакета работ. menu_label: Показаны переходы + workflow_button: Рабочий процесс + ai: + text_transform: + errors: + connection_failed: Не удалось установить соединение с сервисом ИИ. + not_available: ИИ-ассистент недоступен. + timeout: Сервис ИИ не ответил вовремя. + upstream_error: Сервис ИИ выдал ошибку. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: теперь отображается is_inactive: теперь не отображается show_until: Показать до @@ -2317,7 +2504,7 @@ ru: deleted_by_admin: Находящийся в карантине файл '%{filename}' был удален администратором. deleted_message: Вирус обнаружен в файле '%{filename}'. Файл был удален. not_processed_yet_message: Загрузка заблокирована, так как файл еще не был проверен на вирусы. Пожалуйста, повторите попытку позже. - overridden_by_admin: Карантин для файла '%{filename}' был снят с помощью %{user}. Теперь к файлу можно получить доступ. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Контейнер delete: Удалите файл, помещенный в карантин @@ -2371,10 +2558,6 @@ ru: not_found: reminder: Напоминание, которое вы ищете, не найдено или было удалено. work_package: Пакет работ, который вы ищете, не найден или был удален. - render: - context_not_parsable: Предоставленного контекста не является ссылка на ресурс. - context_object_not_found: Не удается найти ресурс заданный как контекст. - unsupported_context: Ресурс не поддерживается как контекст. unable_to_create_attachment: Вложение не может быть создано unable_to_create_attachment_permissions: Вложение не может быть сохранено из-за отсутствия прав на файловую систему user: @@ -2447,6 +2630,7 @@ ru: groups: Группы hexcode: Шестнадцатеричный код id: ID + inexistent: Inexistent is_default: Значение по умолчанию is_for_all: Для всех проектов issue: Пакет работ @@ -2497,6 +2681,7 @@ ru: updated_at: Обновлено updated_on: Обновлено uploader: Кто загрузил + url: URL user: Пользователь username: Имя пользователя value: Значение @@ -2511,6 +2696,29 @@ ru: ' login_and_registration: Войти и зарегистрироваться + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Задание было отменено из-за ошибки: %{message}' @@ -2639,6 +2847,7 @@ ru: button_set_reminder: Установить напоминание button_show: Показать button_sort: Сортировать + button_stop_timer: Остановить таймер button_submit: Отправить button_test: Тест button_unarchive: Разархивировать @@ -2705,9 +2914,9 @@ ru: text: failed: Не удалось скопировать проект «%{source_project_name}» в проект «%{target_project_name}». succeeded: Скопированный проект «%{source_project_name}» в «%{target_project_name}». - title: Копировать проект "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Один объект этого типа + one: "%{count} object of this type" other: "%{count} объектов этого типа" zero: Нет объектов данного типа create_portfolio: @@ -2745,13 +2954,9 @@ ru: plural: Пользовательские действия custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Это пользовательское поле включено во всех проектах, так как отмечена опция «Для всех проектов». Его нельзя отключить для отдельных проектов. - heading: Для всех проектов hierarchy: subitems: - one: 1 подпункт + one: "%{count} sub-item" other: "%{count} подпунктов" zero: нет подпунктов items: @@ -2772,7 +2977,7 @@ ru: short: Короткое имя weight: Вес notice: - remember_items_and_projects: Не забудьте задать элементы и проекты на соответствующих вкладках для этого пользовательского поля. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Вы можете автоматически предоставить определенную роль проекта любому пользователю, назначенному на этот атрибут проекта, независимо от первоначальной роли этого пользователя в проекте. dialog: @@ -2837,16 +3042,17 @@ ru: is_enabled_globally: Разрешено в глобальном масштабе multi_value_more: other: и еще %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Роль не назначена + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Сначала необходимо выбрать пакет работ или проект reorder_alphabetical: Переупорядочить значения по алфавиту reorder_confirmation: 'Предупреждение: Текущий порядок доступных значений, а также все несохраненные значения будут потеряны. Вы уверены, что хотите продолжить?' semantic_keys: job_title: Должность none: Отсутствует - tab: - no_results_content_text: Создать новое настраиваемое поле - no_results_title_text: Нет настраиваемых полей. text_add_new_custom_field: 'Прежде чем добавлять настраиваемые поля в проект, нужно создать их. ' @@ -2910,25 +3116,25 @@ ru: datetime: distance_in_words: about_x_hours: - one: около часа - few: около %{count} часов - many: около %{count} часов - other: около %{count} часов + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: около месяца - few: около %{count} месяцев - many: около %{count} месяцев - other: около %{count} месяцев + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: около года - few: около %{count} лет - many: около %{count} лет - other: около %{count} лет + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: почти год - few: почти %{count} года - many: почти %{count} года - other: почти %{count} года + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: полминуты less_than_x_minutes: one: менее минуты @@ -2936,65 +3142,65 @@ ru: many: менее %{count} минут other: менее %{count} минут less_than_x_seconds: - one: меньше секунды - few: менее %{count} секунд - many: менее %{count} секунд - other: менее %{count} секунд + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: более года - few: более %{count} лет - many: более %{count} лет - other: более %{count} лет + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: День - few: "%{count} дней" - many: "%{count} дней" - other: "%{count} дней" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 час - few: "%{count} часов" - many: "%{count} часов" - other: "%{count} часов" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 ч - few: "%{count} ч" - many: "%{count} ч" - other: "%{count} ч" + one: "%{count} hr" + few: "%{count} hrs" + many: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: 1 минута - few: "%{count} минут" - many: "%{count} минут" - other: "%{count} минут" + one: "%{count} minute" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 мин - few: "%{count} мин" - many: "%{count} мин" - other: "%{count} мин" + one: "%{count} min" + few: "%{count} mins" + many: "%{count} mins" + other: "%{count} mins" x_months: - one: 1 месяц - few: "%{count} месяца" - many: "%{count} месяцев" - other: "%{count} месяца" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 секунда - few: "%{count} секунды" - many: "%{count} секунд" - other: "%{count} секунды" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 секунда - few: "%{count} секунд" - many: "%{count} секунд" - other: "%{count} секунд" + one: "%{count} s" + few: "%{count} s" + many: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 неделя - few: "%{count} недель" - many: "%{count} недель" - other: "%{count} недель" + one: "%{count} week" + few: "%{count} weeks" + many: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 год - few: "%{count} года" - many: "%{count} лет" - other: "%{count} лет" + one: "%{count} year" + few: "%{count} years" + many: "%{count} years" + other: "%{count} years" units: day: one: день @@ -3150,10 +3356,10 @@ ru: teaser: description_html: У вас есть доступ ко всем функциям %{trial_plan}. title: - one: Остался один день для пробного токена %{trial_plan} - few: Осталось %{count} дня для пробного токена %{trial_plan} - many: Осталось %{count} дней для пробного токена %{trial_plan} - other: Осталось %{count} дней для пробного токена %{trial_plan} + one: "%{count} day left of %{trial_plan} trial token" + few: "%{count} days left of %{trial_plan} trial token" + many: "%{count} days left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Токен пробной версии уже был получен. Пожалуйста, проверьте ваши письма на наличие прикрепленного токена. Свяжитесь с нашей службой поддержки, если вам нужен новый токен. @@ -3494,9 +3700,166 @@ ru: selected: Выбрано include_sub_items: Включить подпроекты no_results_text: Нет результатов + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: На данный момент сообщений для форума нет. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3521,6 +3884,8 @@ ru: groups: edit: synchronized_groups: Синхронизированные группы + form: + group_attributes: Group attributes index: description: Объединяя пользователей в группы, Вы можете добавлять их в качестве участников в одни и те же проекты или назначать им одинаковые глобальные роли. memberships: @@ -3546,6 +3911,10 @@ ru: leave_project: Покинуть проект no_favorite_projects: У вас нет избранных проектов. title: Проекты + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3563,7 +3932,7 @@ ru: summary: failure: Некоторые проверки не удались, и система работает не так, как ожидалось. success: Все соединения и системы работают, как и ожидалось. - warning: Некоторые проверки вернули предупреждение. Это может привести к неожиданному поведению. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Ошибка @@ -3572,7 +3941,7 @@ ru: warning: Предупреждение help_texts: views: - favoured: Отметить это представление как избранное и добавить в панель сохранённых представлений слева. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} всегда прикреплены к проекту. Вы можете выбрать только проекты, в которых активен модуль %{plural} . После создания %{singular} вы можете добавлять к нему пакеты работ из других проектов.\n" public: Опубликуйте это представление, позволив другим пользователям получить доступ к вашему представлению. Пользователи с разрешением "Управление общедоступными представлениями" могут изменять или удалять общедоступный запрос. Это не влияет на видимость результатов рабочего пакета в этом представлении, и в зависимости от их разрешений пользователи могут видеть разные результаты. homescreen: @@ -3597,6 +3966,31 @@ ru: line_6: Используйте оповещения о дедлайне в версии Community Edition. new_features_title: 'Релиз содержит различные новые функции и улучшения, такие как: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Читайте о новых возможностях и обновлениях продуктов. learn_about: Узнайте больше о всех новых функциях @@ -3633,8 +4027,10 @@ ru: journals: cause_descriptions: budget_deleted: Бюджет был удален + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} изменено (%{link})" + csv: from CSV deleted_with_diff: "%{field} удалено (%{link})" field_changed: "%{field} изменено с %{old_value} на %{new_value}" field_removed: "%{field} удалено" @@ -3684,6 +4080,7 @@ ru: budget_deleted: Бюджет был удален dates_changed: Даты изменены default_attribute_written: Запись атрибутов со свойством "только для чтения" + forum_message_html: "Created from forum message %{message_information}" import: Импортировано meeting_agenda_item_added_html: "Добавлено в повестку встречи %{meeting_title_information}" meeting_agenda_item_added_template_html: "Добавлено в %{meeting_title_information}" @@ -3836,10 +4233,10 @@ ru: label_copy_target: Цель label_copy_workflow_from: Копировать рабочий поток из label_copy_workflow_from_role: Копировать в другие роли - label_copy_workflow_from_type: Копировать в другой тип label_core_build: Сборка ядра label_core_version: Текущая версия label_created_by: Создано %{user} + label_criteria: Критерий label_current_status: Текущий статус label_current_version: Текущий этап label_custom_comment: "%{name} комментарий" @@ -3863,8 +4260,6 @@ ru: label_custom_field_default_type: Пустой тип label_custom_field_new: Новое настраиваемое поле label_custom_field_plural: Пользовательские поля - label_custom_logo: Пользовательский логотип компьютера - label_custom_logo_mobile: Пользовательский логотип мобильного устройства label_custom_pdf_export_settings: Настройки экспорта PDF label_custom_style: Дизайн label_custom_style_description: Выберите, как OpenProject будет выглядеть с помощью тем, выберите цвета по умолчанию, которые Вы будете использовать в приложении, и как будет выглядеть экспорт. @@ -3873,11 +4268,12 @@ ru: label_database_version: Версия PostgreSQL label_date: Дата label_date_and_time: Дата и время - label_date_format: Формат даты + label_date_and_time_formats: Date and time formats label_date_from: От label_date_from_to: C %{start} по %{end} label_date_to: Кому label_dates: Даты + label_day: День label_day_plural: дней label_default: по умолчанию label_defaults: По умолчанию @@ -3888,6 +4284,7 @@ ru: label_deleted_custom_field: "(удалено настраиваемое поле)" label_deleted_custom_item: "(удалено)" label_deleted_custom_option: "(удалённая опция)" + label_deleted_label: "(deleted label)" label_deleted_version: "(удаленная версия)" label_departments: Департаменты label_departments_description_html: 'Определите структуру вашей компании, создав подразделения в соответствии с Вашей иерархией подразделений. Это позволит вам отразить структуру подчиненности и обеспечить наглядный и четкий обзор вашей организации в OpenProject. Вы также можете импортировать существующую организационную структуру с помощью [синхронизации отделов по LDAP](ldap_docs_article). @@ -3958,6 +4355,7 @@ ru: label_float: Плавающий label_folder: Папка label_follows: Следует + label_form_configuration_plural: Forms label_formula: Формула label_forum_new: Новый форум label_forum_plural: Форумы @@ -3976,6 +4374,7 @@ ru: label_go_forward: Открыть подменю %{module} label_greater_or_equal: ">=" label_group: Группа + label_group_attributes_plural: Group attributes label_group_by: Группировать по label_group_named: Группа %{name} label_group_new: Новая группа @@ -4027,8 +4426,8 @@ ru: label_journal_diff: Описание сравнения label_jump_to_a_project: Перейти к проекту... label_keyword_plural: Ключевые слова + label_label_plural: Метки label_language: Язык - label_language_based: Основанный на языке пользователя label_languages: Языки label_last_activity: Последняя активность label_last_change_on: Последнее изменение @@ -4050,6 +4449,7 @@ ru: label_list: Список label_loading: Загрузка... label_locale: Язык и регион + label_locale_based: Use default for user locale label_lock_user: Заблокировать пользователя label_locked: заблокировано label_logged_as: Войти в систему как @@ -4061,6 +4461,7 @@ ru: label_managed_by_ldap: Управляется LDAP синхронизацией label_managed_repositories_vendor: Управляемые %{vendor} репозиториев label_mapping_for: 'Привязки для: %{attribute}' + label_markdown_version: Markdown version label_max_size: Максимальный размер label_me: мне label_member_all_admin: "(Все роли из-за статуса администратора)" @@ -4079,7 +4480,6 @@ ru: label_menu_item_name: Название пункта меню label_message: Сообщение label_message_last: Последнее сообщение - label_message_new: Новое сообщение label_message_plural: Сообщения label_message_posted: Сообщение добавлено label_minute_plural: минуты @@ -4091,6 +4491,7 @@ ru: label_module_plural: Модули label_modules: Модули label_modules_and_plugins: Модули и плагины + label_month: Месяц label_months_from: месяцев с label_more: Более label_more_information: Больше информации @@ -4104,6 +4505,7 @@ ru: label_my_avatar: Мой аватар label_my_queries: Мои пользовательские запросы label_my_security: Безопасность + label_my_time: My time label_name: Имя label_never: Никогда label_new: Новое @@ -4118,7 +4520,10 @@ ru: label_news_singular: Новости label_news_view_all: Посмотреть все новости label_next: Следующие + label_next_day: След. день + label_next_month: Следующий месяц label_next_week: На следующей неделе + label_next_workweek: Следующая рабочая неделя label_next_year: Следующий год label_no_change_option: "(Без изменений)" label_no_data: Нет данных для отображения @@ -4126,6 +4531,7 @@ ru: label_no_parent_group: "(Нет родительской группы)" label_no_parent_page: Без родительской страницы label_no_start_date: нет даты начала + label_no_time: Нет учтённого времени label_nobody: никто label_non_working_days: Доступный календарь label_non_working_days_summary: Итог @@ -4192,7 +4598,10 @@ ru: label_preview: Предварительный просмотр label_preview_not_available: Предварительный просмотр недоступен label_previous: Предыдущие + label_previous_day: Предыдущий день + label_previous_month: Предыдущий месяц label_previous_week: Предыдущая неделя + label_previous_workweek: Предыдущая рабочая неделя label_previous_year: Предыдущий год label_principal_invite_via_email: " или пригласить новых пользователей по электронной почте" label_principal_search: Добавление существующих пользователей или групп @@ -4311,6 +4720,7 @@ ru: label_sort_lowest: Переместить вниз label_sorted_by: отсортировано по %{value} label_spent_time: Затраченное время + label_stack: Stack label_start_to_end: от начала до конца label_start_to_start: Пуск, чтобы начать label_starts_with: начинается с @@ -4330,6 +4740,7 @@ ru: label_subtask_plural: Подзадачи label_summary: Сводка label_system: Система + label_system_or_language_default: Use system or language based default label_system_settings: Настройки системы label_system_storage: Информация хранилища label_table_of_contents: Содержание @@ -4344,6 +4755,7 @@ ru: label_time: Время label_time_entry_activity_plural: Потраченное время label_time_entry_plural: Затраченное время + label_timer_since: Начато в %{time} label_title: Заголовок label_today: Сегодня label_today_as_date: Выберите сегодня в качестве даты. @@ -4379,7 +4791,9 @@ ru: label_user_search: Найти пользователя label_user_settings: Настройки пользователя label_users_settings: Настройки пользователей + label_value: Value label_value_x: 'Значение: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Изменить версию label_version_new: Новый этап label_version_plural: Этапы @@ -4392,6 +4806,7 @@ ru: label_videos: Видео label_view_all_revisions: Посмотреть все версии label_view_diff: Посмотреть различия + label_view_mode_switcher: Изменить вид label_view_revisions: Просмотр версий label_view_x: 'Вид: %{x}' label_watched_work_packages: Наблюдаемые пакеты работ @@ -4415,6 +4830,8 @@ ru: label_wiki_start: Начальная страница label_wiki_toc: Содержание label_wiki_toc_empty: Содержание пусто, так как нет заголовков. + label_with_criteria: С критериями + label_without_criteria: Без критериев label_work: Предполагаемое время label_work_package: Пакет работ label_work_package_attachments: Вложения пакета работ @@ -4437,54 +4854,55 @@ ru: label_working_days: Рабочие дни label_working_days_and_hours: Рабочие дни и часы label_working_hours: График работы + label_workweek: Рабочая неделя label_x_closed_work_packages_abbr: - one: 1 закрыто + one: "%{count} closed" other: "%{count} закрыто" zero: 0 закрытых label_x_comments: - one: 1 комментарий + one: "%{count} comment" other: "%{count} комментариев" zero: нет комментариев label_x_days: - one: 1 день - few: "%{count} дней" - many: "%{count} дней" - other: "%{count} дней" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" label_x_files: - one: 1 файл + one: "%{count} file" other: "%{count} файлов" zero: нет файлов label_x_items: - one: 1 элемент + one: "%{count} item" other: "%{count} элементов" zero: нет элементов label_x_items_selected: - one: Один элемент выбран - few: "%{count} элемента выбрано" - many: "%{count} элементов выбрано" - other: "%{count} элементов выбрано" + one: "%{count} item selected" + few: "%{count} items selected" + many: "%{count} items selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 открыт + one: "%{count} open" other: "%{count} открыто" zero: 0 открытых label_x_projects: - one: 1 проект + one: "%{count} project" other: "%{count} проектов" zero: нет проектов label_x_work_packages: - one: 1 пакет работ + one: "%{count} work package" other: "%{count} пакетов работ" zero: Пакетов работ нет label_x_working_days: - one: 1 рабочий день - few: "%{count} рабочих дней" - many: "%{count} рабочих дней" - other: "%{count} рабочих дней" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Время отдыха: 1 рабочий день' - few: 'Время отдыха: %{count} рабочих дней' - many: 'Время отдыха: %{count} рабочих дней' - other: 'Время отдыха: %{count} рабочих дней' + one: 'Time off: %{count} working day' + few: 'Time off: %{count} working days' + many: 'Time off: %{count} working days' + other: 'Time off: %{count} working days' label_yesterday: вчера label_zen_mode: Режим «Дзен» (только доска и часы) ldap_auth_sources: @@ -4537,7 +4955,7 @@ ru: start_tls: STARTTLS start_tls_description: Отправляет команду STARTTLS после подключения к стандартному LDAP порту. Рекомендуется для шифрованных соединений. tls_options: - tls_certificate_description: Если сертификат сервера LDAP отсутствует в источниках доверия этой системы, вы можете добавить его вручную. Введите строку сертификации PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Проверка SSL сертификата verify_peer_description_html: 'Включает строгую проверку SSL цепочки доверенных сертификатов.
Предупреждение: Отключение этой опции отключает проверку SSL сертификата сервера LDAP. Это делает ваше соединение уязвимым к атакам "человек посередине". @@ -4594,6 +5012,8 @@ ru: you_have: У вас logo_alt_text: Логотип mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} упомянул вас в #%{id} - %{subject}" notification: center: В центр уведомлений @@ -4650,10 +5070,10 @@ ru: mentioned: Вы были упомянуты в комментариях mentioned_by: "%{user} упомянул вас в комментарии" more_to_see: - one: Есть еще 1 пакет работ с уведомлениями. - few: Есть еще %{count} пакетов работ с уведомлениями. - many: Есть еще %{count} пакетов работ с уведомлениями. - other: Есть еще %{count} пакетов работ с уведомлениями. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + many: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Открыть в браузере reason: assigned: Назначено @@ -4841,6 +5261,15 @@ ru: create_button: Создать dialog_body: Этот токен позволит сторонним приложениям взаимодействовать с вашим экземпляром. Чтобы выделить новый токен API, пожалуйста, дайте ему имя. dialog_title: Создать новый токен API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Название токена failed_to_create_token: 'Не удалось создать токен доступа: %{error}' failed_to_reset_token: 'Не удалось сбросить маркер доступа: %{error}' @@ -4854,10 +5283,26 @@ ru: password_confirmation_dialog: confirmation_required: Чтобы подтвердить изменения, введите пароль учетной записи. title: Подтвердите свой пароль, чтобы продолжить + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Маркеры доступа description: Провайдерские токены выпускаются OpenProject, позволяя другим приложениям получать к ним доступ. Клиентские токены выпускаются другими приложениями, позволяя OpenProject получить к ним доступ. + expired_on: Expired on %{date} headers: action: Действие expiration: Срок действия @@ -5059,7 +5504,6 @@ ru: notice_password_confirmation_failed: Введенный пароль неверен. notice_principals_found_multiple: Найдено %{number} результатов. Нажмите для перехода к первому. notice_principals_found_single: Найден один результат. Нажмите для перехода к нему. - notice_project_cannot_update_custom_fields: 'Не удается обновить имеющиеся настраиваемые поля проекта. Этот проект является недопустимым: %{errors}' notice_project_not_deleted: Проект удалён не был. notice_project_not_found: Проект не найден. notice_requires_enterprise_token: Токен Enterprise отсутствует или не разрешает доступ к этой странице. @@ -5069,9 +5513,6 @@ ru: notice_successful_create: Создание выполнено. notice_successful_delete: Удаление выполнено. notice_successful_update: Обновление выполнено. - notice_successful_update_custom_fields_added_to_project: | - Успешное обновление. Пользовательские поля активированных типов автоматически активируются - в форме пакета работ. Подробнее. notice_to_many_principals_to_display: Слишком много результатов. Сузьте поиск, введя имя нового участника (или группы). notice_unsuccessful_create: Создание не удалось. notice_unsuccessful_create_with_reason: 'Создание не удалось: %{reason}' @@ -5173,10 +5614,10 @@ ru: ' confirm_revoke_my_application: - one: Вы действительно хотите удалить это приложение? Это приведет к отзыву одного активного токена. - few: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. - many: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. - other: Вы действительно хотите удалить это приложение? Это приведет к отзыву %{count} активных токенов. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Нет зарегистрированных приложений OAuth. flows: authorization_code: Поток кода авторизации @@ -5266,8 +5707,6 @@ ru: not_found: не найдено. respond_to?: не реализует требуемый метод. rules: - copy_workflow_from: - workflow_missing: не имеет собственного рабочего процесса. custom_field: format_not_supported: формат '%{field_format}' не поддерживается. item: @@ -5287,7 +5726,6 @@ ru: or: или rules: blueprint: Шаблон чертежа - copy_workflow_from: Тип копии рабочего процесса depth: Глубина enabled: Включено item: Элемент @@ -5359,8 +5797,8 @@ ru: label: Содержание page_nr_footer: Страница %{page} из %{total} template_artefact: - caption: Сведения о пакете работ, представлены в виде артефакта PMflex. - label: Артефакт PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Все атрибуты, присутствующие в текущей форме используют шаблон по умолчанию. label: Атрибуты и описание @@ -5385,7 +5823,7 @@ ru: permission_change_work_package_status_explanation: Позволяет изменять статус без редактирования разрешения пакетов работ permission_comment_news: Комментировать новость permission_commit_access: Возможность чтения/записи в репозиторий (commit) - permission_copy_projects: Копировать проект + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: В шаблонных проектах это разрешение имеет второстепенную функцию - оно позволяет создавать новые проекты, основанные на шаблоне. permission_copy_work_packages: Дублировать пакеты работ permission_create_backup: Создание резервных копий @@ -5418,6 +5856,7 @@ ru: permission_export_projects: Экспорт проектов permission_export_work_packages: Экспорт пакетов работ permission_header_for_project_module_work_package_tracking: Пакеты работ и диаграммы Гантта + permission_import_work_packages: Import work packages permission_invite_members_by_email: Пригласить участников по электронной почте permission_invite_members_by_email_explanation: 'Позволяет пользователям приглашать новых пользователей по электронной почте. Приглашенные пользователи получат письмо со ссылкой для установки пароля и активации учетной записи. Зависит от разрешения на управление участниками @@ -5428,6 +5867,9 @@ ru: permission_manage_dashboards: Управление панелями инструментов permission_manage_forums: Управление форумами permission_manage_members: Управление участниками + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Управление новостями permission_manage_own_reminders: Создать собственные напоминания permission_manage_own_working_times: Управлять своим рабочим временем @@ -5456,7 +5898,6 @@ ru: permission_save_bcf_queries: Сохранить запросы BCF permission_save_queries: Сохранить представления permission_search_project: Поиск проекта - permission_select_custom_fields: Выберите настраиваемые поля permission_select_project_custom_fields: Выберите атрибуты проекта permission_select_project_modules: Выбор модулей проекта permission_select_project_phases: Выбрать этапы проекта @@ -5490,6 +5931,16 @@ ru: permission_work_package_assigned: Становиться исполнителем/ответственным permission_work_package_assigned_explanation: Пакеты работ могут быть привязаны к пользователям и группам в зависимости от этой роли в рамках соответствующего проекта placeholder_users: + criteria: + activate: Активировать критерии фильтра + activate_caption: 'Это позволяет добавить набор фильтров для этого плейсхолдера, используемого для определения возможных пользователей, удовлетворяющих желаемым критериям. + + ' + enable: Фильтровать пользователей по критериям + enable_caption: Опишите, какого типа пользователя обозначает данный заполнитель, чтобы можно было предложить подходящих для него пользователей. + matching_users: Пользователи, удовлетворяющие критериям фильтра + no_matching_users: Ни один пользователь не отвечает этим критериям. + show_all_matching_users: Показать всех %{count} подходящих пользователей delete_tooltip: Удалить пользователя-заполнителя deletion_info: data_consequences: 'Все вхождения пользователя плейсхолдера (например, как цессионария, ответственные или другие пользовательские значения) будут переназначены на учетную запись под названием "Удаленный пользователь". Так как данные каждого удаленного аккаунта переназначены на этот аккаунт, невозможно отличить данные пользователя от данных другого удаленного аккаунта. @@ -5511,7 +5962,7 @@ ru: name: OmniAuth SAML / Однозначный вход portfolio: count: - one: 1 портфолио + one: "%{count} portfolio" other: "%{count} портфолио" zero: 0 портфолио filters: @@ -5522,10 +5973,10 @@ ru: label: Фильтр по названию портфолио placeholder: Поиск портфолио sub_items_html: - one: "1 подпункт" - few: "%{count} подпункта" - many: "%{count} подпунктов" - other: "%{count} подпунктов" + one: "%{count} sub-item" + few: "%{count} sub-items" + many: "%{count} sub-items" + other: "%{count} sub-items" lists: active: Активные портфолио archived: Архивные портфолио @@ -5539,7 +5990,7 @@ ru: Этот цвет может использоваться для выделения пакетов работ в таблице. program: count: - one: 1 программа + one: "%{count} program" other: "%{count} программ" zero: 0 программ filters: @@ -5551,7 +6002,7 @@ ru: confirmation_message: Архивирование данного проекта приведет к тому, что он и все его потомки станут недоступны для всех пользователей данного экземпляра. Архивированные проекты можно восстановить. title: Архивировать проект count: - one: 1 проект + one: "%{count} project" other: "%{count} проектов" zero: 0 проектов destroy: @@ -5656,11 +6107,11 @@ ru: no_status_when_submitted: Не удалось включить запрос на инициирование проекта, поскольку тип пакета работ %{type} требует наличия хотя бы одного связанного с ним статуса. Пожалуйста, включите хотя бы один рабочий процесс со статусом для этого типа пакета работ. no_work_package_type: Не удалось включить запрос на инициирование проекта, поскольку для этого требуется хотя бы один активный тип пакета работ, а в данном проекте его нет. Пожалуйста, добавьте хотя бы один тип пакета работ в этот проект. export: - description_attachment_export: Сгенерированный артефакт будет сохранен в виде PDF приложения к пакету работ артефакта. - description_file_link_export: Пакет работ артефакта будет иметь ссылку на файл PDF на внешнем файловом хранилище. Требует рабочего хранилища файлов с автоматически управляемыми папками проекта для этого проекта. В настоящее время поддерживается только файловые хранилища Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Выберите, какое из настроенных внешних файловых хранилищ должно использоваться. external_file_storage: Внешнее хранилище файлов - label_artifact_export: Экспорт артефакта + label_artifact_export: Artifact export label_attachment_export: Сохраните как вложение файла в пакете работ label_file_link_export: Загрузить файл на внешнее хранилище файлов и добавить ссылку на файл в пакет работ pdf_file_storage: Хранилище файлов PDF @@ -5670,6 +6121,12 @@ ru: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Нет доступных настраиваемых полей. forums: no_results_content_text: Создать новый форум @@ -5766,21 +6223,21 @@ ru: new_heading: Поля, которые становятся доступными nothing_affected: Поля или статусы не затронуты. status_count: - one: 1 пакет работ + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" - other: "%{count} пакетов работ" + other: "%{count} work packages" table_suffix: "(таблица)" value_count: - one: 1 пакет работ имеет значение + one: "%{count} work package has a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" - other: "%{count} пакетов работ имеют значение" + other: "%{count} work packages have a value" work_packages: - one: 1 пакет работ будет использовать новую конфигурацию + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" - other: "%{count} пакетов работ будут использовать новую конфигурацию" + other: "%{count} work packages will use the new configuration" success: Проект теперь использует %{type}. target_label: Вариант title: "%{type}: Переключить вариант" @@ -5791,7 +6248,7 @@ ru: variants_not_allowed: Этот тип не позволяет создавать варианты внутри проектов. versions: no_results_content_text: Создать новую версию - no_results_title_text: На данный момент этапы в проекте отсутствуют. + no_results_title_text: Для этого проекта не найдено версий, соответствующих критериям фильтра. show_work_packages: Показать пакеты работ work_packages_graph: Диаграмма по пакетам работ work_package_priorities: @@ -5799,15 +6256,27 @@ ru: status: button_edit: Редактировать статус wizard: - create_artifact_storage_error: Не удалось сохранить артефакт в хранилище файлов - create_artifact_work_package_error: Не удалось создать пакет работ артефакта + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Для данного проекта не включены атрибуты проекта, необходимые для работы мастера. Пожалуйста, включите хотя бы один из них в настройках проекта. no_help_text: Для этого атрибута не определен текст справки. progress_label: "%{current} из %{total}" sections: Разделы sidebar_content_title: Содержимое - success: Атрибуты проекта сохранены, пакет работ артефакта создан успешно. + success: Project attributes saved and artifact work package created successfully. title: Запрос на инициализацию проекта + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Применить ранее настроенный фильтр configure_view: @@ -5836,10 +6305,10 @@ ru: action_title: Реакция add_reaction: Добавить реакцию and_others: - one: и еще 1 - few: и %{count} других - many: и %{count} других - other: и %{count} других + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others and_user: и %{user} react_with: Реакция %{reaction} reaction_by: "%{reaction} от" @@ -5948,6 +6417,41 @@ ru: warnings: cannot_annotate: Этот файл не может быть прокомментирован. roles: + delete_dialog: + confirm: Вы действительно хотите удалить эту роль? + entry_projects: + one: "(Проект: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Проекты: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Вы уверены, что хотите удалить роль "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Из этих пользователей %{count} потеряет доступ к проектам, в которых это была их единственная роль. Вы уверены, что хотите удалить эту роль? + zero: Ни один из этих пользователей не потеряет доступа к одному из их проектов. Вы уверены, что хотите удалить эту роль? + show_memberships: Показать все членства с этой ролью + summary: "%{users} в %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Удалить роль edit: default_for_new_projects_warning: 'Эта роль настроена как роль по умолчанию, предоставляемая пользователям, не являющимся администраторами, которые создают проект. Не удаляйте следующие разрешения, иначе создатели проектов не смогут завершить настройку своих новых проектов:' index: @@ -5959,6 +6463,17 @@ ru: permissions: section_check_all_label: Назначьте все разрешения %{module} section_uncheck_all_label: Отменить все разрешения %{module} + permissions_dialog: + edit_permissions: Редактирование прав доступа ролей + no_permissions: Эта роль не предоставляет никаких разрешений. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: Просмотреть разрешения + preview_aria_label: Просмотр разрешений %{role} + title: Разрешения "%{name}" report: matrix_caption: Матрица разрешений для модуля %{module} matrix_check_all_label: Назначьте все разрешения %{module} всем ролям @@ -6063,7 +6578,7 @@ ru: setting_default_projects_wiki: Включить функциональность вики для новых проектов по умолчанию setting_diff_max_lines_displayed: Максимальное количество отображаемых строк diff(разницы) setting_disable_password_login: Отключить аутентификацию по паролю - setting_display_subprojects_work_packages: Отображать пакеты работ подпроектов в основном проекте по умолчанию + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Формат длительности setting_duration_format_days_and_hours: Дни и часы setting_duration_format_hours_only: Только часы @@ -6178,6 +6693,7 @@ ru: setting_start_of_week: Начало недели в setting_sys_api_description: Веб-сервис управления репозиторием обеспечивает интеграцию и авторизацию пользователя для доступа к репозиторию. setting_sys_api_enabled: Разрешить веб-сервис управления репозиторием + setting_sys_api_key: API key setting_time_format: Время setting_total_percent_complete_mode: Расчет общего % завершения полной иерархии setting_total_percent_complete_mode_simple_average: Среднее арифметическое @@ -6230,7 +6746,7 @@ ru: description_html: 'Выберите режим, в котором будет работать интеграция антивирусного сканера.
  • %{disabled_option}: Загруженные файлы не проверяются на наличие вирусов.
  • %{socket_option}: Вы установили ClamAV на том же сервере, что и OpenProject, и демон сканирования clamd работает в фоновом режиме.
  • %{host_option}: Вы передаете файлы на внешний хост для сканирования на вирусы.
' - remaining_quarantined_files_html: 'Сканирование вирусов отключено. %{file_count} остается в карантине. Чтобы просмотреть файлы карантина, перейдите по ссылке: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Проверка на вирусы успешно включена. Есть %{file_count}, которые были загружены ранее и все еще нуждаются в сканировании. Этот процесс был запланирован в фоновом режиме. Файлы останутся доступными во время сканирования. @@ -6241,6 +6757,7 @@ ru: ' title: Сканирование вирусов attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Отключение этой опции скроет список вложений на вкладке "Файлы" пакетов работ для новых проектов. Файлы, прикрепленные в описании пакета работ, по-прежнему будут загружаться во внутреннее хранилище вложений. ' @@ -6332,12 +6849,12 @@ ru: confirmation_message: Мастер запроса инициации больше не будет доступен для новых проектов, основанных на этом шаблоне. Менеджерам и руководителям проектов придется вручную настраивать и заполнять соответствующую информацию в обзоре проекта. heading: Отключить запрос на инициирование этого проекта? title: Отключить запрос на инициализацию проекта - header_description: 'OpenProject может сгенерировать пошаговый мастер, чтобы помочь менеджерам проектов заполнить запрос на запуск проекта. Вы можете выбрать, какие атрибуты проекта должны быть включены и создать артефакт в PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Название артефакта - artifact_name_caption: Выберите название для этого артефакта, рекомендованное вашей методологией управления проектами. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Мастер создания проекта project_initiation_request: Запрос на инициализацию проекта @@ -6357,8 +6874,8 @@ ru: Вы подали запрос на инициирование проекта **%{project_name}**. Сейчас он ожидает рассмотрения. Щелкните по ссылке ниже, чтобы получить доступ к пакету работ с Вашим запросом. confirmation_email_text: Текст письма подтверждения - description: Когда пользователь отправляет запрос на запуск проекта, создается новый пакет работ с приложением — артефактом запроса в формате PDF. Приведенные ниже настройки определяют тип, статус и ответственное лицо для этого нового рабочего пакета. - description_template: "**Этот пакет работ был автоматически создан по завершении рабочего процесса %{wizard_name}.** Артефакт в формате PDF, содержащий всю предоставленную информацию, был создан и прикреплен к этому пакету работ для справки и аудита. Если Вам необходимо обновить или повторно выполнить шаги запуска проекта, Вы можете в любой момент снова открыть мастер, воспользовавшись приведенной ниже ссылкой:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Отправить подтверждение по электронной почте пользователю, подавшему запрос на инициирование проекта status_when_submitted: Статус на момент подачи status_when_submitted_caption: Статус, в который перейдет созданный пакет работ после отправки запроса. @@ -6366,7 +6883,7 @@ ru: work_package_comment_caption: Выбранный выше адресат будет автоматически @указан в комментарии. work_package_comment_default: Запрос на инициализацию проекта **%{project_name}** был отправлен и ожидает рассмотрения. work_package_type: Тип пакета работ - work_package_type_caption: Тип пакета работ, который следует использовать для хранения готового артефакта. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Открыть мастер создания проекта project_initiation_request: Открыть запрос на инициализацию проекта @@ -6386,6 +6903,7 @@ ru: heading: Новый этап no_gate: Нет стадии non_defined: В настоящее время этапы не определены. + order_changed: Order successfully changed. phase_gates: Стадии этапа section_header: Этапы start_gate: Начать стадию @@ -6442,7 +6960,7 @@ ru: section_work_week: Рабочая неделя sharing: count: - one: 1 пользователь + one: "%{count} user" other: "%{count} пользователей" zero: 0 пользователей denied: У вас нет прав на предоставление общего доступа к %{entities}. @@ -6535,19 +7053,19 @@ ru:
Примечание: Будут применены унаследованные значения (например, от дочерних или родительских пакетов работ). index: + could_not_be_moved: Статус не может быть перемещён. headers: - excluded_from_totals: Исключен из итогов is_closed: Закрыт - is_default: По умолчанию is_readonly: Только для чтения + no_filter_results_title_text: Ни один статус не соответствует текущему фильтру. no_results_content_text: Добавить новый статус no_results_title_text: В данный момент статусы пакетов работ отсутствуют. + status_actions: Действия, связанные со статусом support: array: sentence_connector: и skip_last_comma: Ложно text_access_token_hint: Маркеры доступа позволяют предоставить внешним приложениям доступ к ресурсам в OpenProject. - text_accessibility_hint: Режим упрощенного просмотра предназначен для ограниченных в движении пользователей и пользователей с плохим зрением. Для последних активные элементы выделяются специально. Обращаем внимание, что модуль Отставаний в этом режиме не доступен. text_analyze: 'Дополнительный анализ: %{subject}' text_are_you_sure: Вы уверены? text_are_you_sure_continue: Вы уверены, что хотите продолжить? @@ -6590,12 +7108,6 @@ ru: ' text_custom_field_possible_values_info: Каждое значение на отдельной строке - text_custom_logo_instructions: 'Логотип автоматически масштабируется, чтобы соответствовать заголовку. Для достижения наилучших результатов загрузите белый логотип на прозрачном фоне размером 130×47px. Вы можете добавить столько интервалов внутри этого изображения, сколько захотите. - - ' - text_custom_logo_mobile_instructions: 'Логотип автоматически масштабируется, чтобы соответствовать заголовку. Для достижения наилучших результатов загрузите белый логотип на прозрачном фоне размером 130×33px. Вы можете добавить столько интервалов внутри этого изображения, сколько захотите. - - ' text_custom_touch_icon_instructions: 'Это значок, который появляется на вашем мобильном устройстве или планшете, когда вы размещаете закладку на своем рабочем столе. Это должен быть файл изображения в формате PNG размером 180 на 180 пикселей в квадрате. Пожалуйста, убедитесь, что фон изображения не прозрачный, иначе это будет плохо смотреться на iOS. ' @@ -6645,6 +7157,7 @@ ru: text_length_between: Количество символов между %{min} и %{max} . text_line_separated: Допускается несколько значений (одна строка для каждого значения). text_load_default_configuration: Загрузить конфигурацию по умолчанию + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Маркеры доступа, которые могут быть настроены, отсутствуют. text_no_configuration_data: Роли, типы, статусы пакетов работ и рабочие потоки еще не сконфигурированы. Настоятельно рекомендуем для правки загрузить конфигурацию по умолчанию. text_no_notes: Комментарии для этого пакета работ отсутствуют. @@ -6744,6 +7257,70 @@ ru: tree_view: label_empty_sub_tree: Нет элементов types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Сравнить варианты + blankslate: + description: Добавьте второй вариант к данному типу, чтобы понять, чем они отличаются друг от друга. + title: Пока сравнивать не с чем + description: Сравните варианты данного типа с исходным типом. + labels: + duplicate: Возможный дубликат + duplicate_of: Настроен точно так же, как %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Родительский тип + same_as_type: Такой же, как у родительского типа + rows: + form: + fields: Поля + groups: Разделы + required: Из которых требуется + same_as_base: Такой же, как у родительского типа + scope: + availability: Доступно для + enabled_in_new_projects: Активно в новых проектах + projects: Проекты + workflows: + roles: Участвующие роли + same_as_base: Такой же, как у родительского типа + statuses: Статусы + transitions: Переходы + sections: + configuration: Обзор конфигурации + form: Форма + scope: Область + workflows: Рабочие процессы + title: Сравнить варианты + title_for_type: Сравнить варианты %{name} + values: + global: Все проекты + inheriting_from: Наследование от + project_specific: Связанные с конкретными проектами ([%{project}](project_url)) + same_as_base: Идентичен родительскому типу creation_wizard: add_variant: Добавить вариант в %{name} create_type: Создать тип @@ -6753,14 +7330,40 @@ ru: finish: Закончить placeholder_description: Этот шаг скоро будет доступен. progress_label: Шаг %{number} из %{total} + start: + next_heading: What happens next? + submit: Начать + type: + heading: Создать новый тип + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Создать новый вариант + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: По умолчанию details: Детали form_configuration: Форма - pdf: Создание PDF + pdf: Generate PDF project_attributes: Атрибуты проекта projects: Проекты - workflows: Рабочие потоки + start: Начать + workflows: Workflow success: Успешно создано. edit: breadcrumb_variant: 'Вариант: %{name}' @@ -6769,8 +7372,10 @@ ru: caption: Определите шаблон, используя атрибуты ссылок и текст, чтобы автоматически генерировать темы пакетов работ. Пользователи не смогут вручную редактировать темы. label: Автоматически сгенерированные темы description: - caption: Добавьте текст, который будет добавлен в поле описания всех новых пакетов работ данного типа. - label: Текст описания по умолчанию + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Пользователи могут вручную вводить и редактировать темы пакетов работ без ограничений. label: Вручную редактируемые темы @@ -6799,21 +7404,21 @@ ru: file_link: caption: Сгенерированный PDF-файл загружается в хранилище Nextcloud, управляемое автоматически в рамках проекта, и ссылка на него добавляется в пакет работ. Пакеты работ в проектах, не имеющих такого хранилища, пропускаются. label: Загрузить файл на внешнее хранилище файлов и добавить ссылку на файл в пакет работ - intro: Автоматически создавать PDF-документ по пакету работ данного типа при каждом изменении его статуса. - invalid_mode: Недопустимый режим экспорта артефактов. - label: Автоматический экспорт артефактов + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: PDF-файл не создается автоматически. label: Выключено - section_title: Автоматический экспорт артефактов + section_title: Automatic artifact export unavailable: недоступно, не настроено ни одного хранилища Nextcloud с автоматическим администрированием - intro: Выберите, какие шаблоны из имеющихся Вы хотите активировать для этого типа. Шаблон задаёт дизайн и атрибуты в экспортированном PDF-файле пакета работ этого типа. Первый шаблон из списка выбирается по умолчанию. pdf_export_templates: actions: label_disable_all: Выключить всё label_enable_all: Включить всё label_toggle_template: Переключить %{template} label: Шаблоны экспорта в PDF + order_changed: Order successfully changed. tab: Создать PDF templates: readonly_error: Не может быть изменено, пока связано с источником типа. @@ -6830,6 +7435,8 @@ ru: confirm_delete_group: Вы уверены, что хотите удалить эту секцию? Это действие нельзя автоматически отменить. confirm_reset: Вы уверены, что хотите сбросить форму? custom_field: Настраиваемое поле + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Удалить секцию drag_to_activate: Чтобы включить поля, перетащите их отсюда drag_to_reorder: Перетащите, чтобы изменить порядок @@ -6851,6 +7458,14 @@ ru: query_group_label: Таблица связанных пакетов работ remove_attribute: Удалить из секции rename_group: Переименовать секцию + required: + already_required_globally: Это настраиваемое поле обязательно для всех типов. + for_variant: Обязательно для данного типа + globally: Обязательно + globally_hint: Измените это в пользовательском поле + mark: Обязательно в этом типе + not_a_custom_field: Обязательным для заполнения для одного конкретного типа может быть назначено только одно настраиваемое поле. + unmark: Не требовать в этом типе reset_description: 'Это сбросит атрибуты к группе по умолчанию и отключит ВСЕ настраиваемые поля. ' @@ -6860,12 +7475,14 @@ ru: tab: Форма untitled_group: Безымянная группа overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Режим конфигурации - dependents: Зависимые типы и варианты mode: always_manual: Всегда вручную - inheriting_from_html: Наследование от %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Настроена вручную + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Настройки tab: Обзор project_attributes: @@ -6879,12 +7496,12 @@ ru: manual: description: После [создания атрибутов проекта](administration_url), они будут видны здесь и могут быть добавлены к типу. title: Нет доступных атрибутов проекта - description: Выберите атрибуты проекта, которые вы хотите включить для этого типа пакета работ. Включенные атрибуты проекта отображаются на отдельной вкладке в пакетах работ данного типа. Пользователи с необходимыми правами могут просматривать и редактировать эти атрибуты. disabled: Отключено exclusions: attribute_label: Наследовать %{attribute} filter: Поиск по секции или названию tab: Атрибуты проекта + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Удалить тип «%{type}» из «%{project}»? @@ -6897,10 +7514,12 @@ ru: empty_state: description: Добавьте проект для использования этой конфигурации. no_results: Нет подходящих проектов. + title: Not used in any project yet enable_all: Использовать во всех проектах select_projects: Выберите проекты select_projects_description: Выберите проекты, в которых вы хотели бы использовать этот тип. tab: Проекты + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6915,47 +7534,17 @@ ru: title: Скопировать конфигурацию invalid_source: Конфигурация не может быть скопирована из выбранного типа. Пожалуйста, выберите другой источник типа. success: Конфигурация была скопирована. - dependents: - blank: - description: Ни один другой тип или вариант не наследуется от данной конфигурации - title: Нет зависимых типов - description: - one: Следующая конфигурация унаследована 1 другим типом или вариантом. Любые изменения, которые вы вносите здесь, также повлияют на зависимость. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: Следующая конфигурация унаследована %{count} другими типами или вариантами. Любые изменения, внесенные здесь, также повлияют на зависимости. - dialog: - description: Эти типы и варианты наследуют конфигурацию этого раздела. Внесенные вами изменения применяются ко всем из них. - direct_heading: Прямые зависимые - indirect_heading: Зависимости от других типов - title: Зависимые типы - variant_of_html: Вариант %{type_name} - variant_of_via_html: Вариант %{type_name}, унаследованный от %{source_name} - via_html: Наследование от %{source_name} - title: - one: 1 зависимый тип - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} зависимых типов" - view: Просмотр зависимых типов exclusions: not_inherited: Данная конфигурация не наследуется, поэтому исключать ничего не нужно. Вместо этого отредактируйте конфигурацию напрямую. unknown_aspect: Неизвестная секция конфигурации "%{aspect}". inherited: - change_source: Изменить источник типа configure_manually: Настройка вручную confirm_dialog: - change_source: - description_html: Изменив тип источника на %{source_name}, вы перезапишете текущие настройки, что может повлиять на имеющуюся информацию о рабочих пакетах данного типа. - heading: Изменить тип источника? - title: Изменить тип источника check_box: Я понимаю, что это переопределит текущие настройки from_manual: description: Все текущие выбранные настройки будут переопределены, что может повлиять на имеющуюся информацию о пакетах работ данного типа. heading: Переключить режим конфигурации? title: Переключить режим конфигурации - description: Данная конфигурация наследуется от исходного типа [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Данная конфигурация унаследована от исходного типа %{source_name}%{source_suffix}. dialog: description: Наследовать эту конфигурацию из исходного типа. Любая новая конфигурация, добавленная в источник, также применяется здесь. source_label: Исходный тип @@ -6963,6 +7552,9 @@ ru: submit: Переключить title: Наследовать от другого типа invalid_source: Конфигурация не может быть унаследована от выбранного типа. Пожалуйста, выберите другой тип источника. + mode_description: В данном варианте будут использоваться те же настройки, что и в типе ([%{source_name}](source_url)). Любые изменения, внесенные там, автоматически отразятся и здесь. + mode_description_unlinked: В этом варианте будут использоваться те же настройки, что и в типе. Любые изменения, внесенные там, автоматически отразятся и здесь. + mode_label: Использовать те же настройки, что и тип success: Режим конфигурации переключен. title: Наследуемая конфигурация manual: @@ -6971,13 +7563,14 @@ ru: description: Все текущие выбранные настройки будут переопределены, что может повлиять на имеющуюся информацию о пакетах работ данного типа. heading: Переключить режим конфигурации? title: Переключить режим конфигурации - copy_from_type: Копировать из другого типа description: Настройки не наследуются. Однако вы можете один раз скопировать настройки из другого типа. dialog: submit: Переключить title: Настройка вручную - inherit_from_type: Наследовать от другого типа + inherit_from_type: Наследовать от родителя invalid_mode: Выбранный режим недоступен для этой конфигурации. Пожалуйста, выберите другой режим. + mode_description: Настройте эту страницу вручную. Изменения, внесённые в родительский тип, больше не будут влиять на неё. + mode_label: Настроить эту страницу вручную modes: copy: caption: Начните с однократного копирования настроек, которые в настоящее время наследуются данной конфигурацией. @@ -6991,12 +7584,16 @@ ru: success: Режим конфигурации переключен. title: Ручная настройка parent_suffix: " (родитель)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Вы можете создать варианты, чтобы предложить версии этого типа различным проектам.
Каждый вариант может наследовать, копировать или иметь собственную настраиваемую конфигурацию для шаблона по умолчанию, настраиваемые поля, рабочие процессы и настройки. ' title: Для этого типа не существует вариантов + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Создан в %{project} delete: description: Проекты, в которых используется данный вариант, будут переведены на вариант, который вы выберете ниже, до того как данный вариант будет удален. @@ -7005,35 +7602,80 @@ ru: filter_no_results: Нет вариантов, соответствующих этому фильтру global_section: description: Эти варианты доступны во всех проектах. - title: Варианты + title: Глобальные варианты project_specific_section: description: Эти варианты доступны только в рамках тех проектов, в которых они были созданы. title: Варианты конкретных проектов workflow: - tab: Рабочие процессы + tab: Workflow index: add_variant: Добавить вариант в %{name} add_variant_action: Добавить вариант + convert_to_global: Преобразовать в глобальный вариант + convert_to_global_dialog: + confirm: Преобразовать + text: 'В результате данный вариант, относящийся к конкретному проекту, станет глобальным и будет доступен для всех проектов. Администратор проекта больше не сможет его редактировать. + + ' + workflow_text: 'Рабочий процесс «%{name}» относится к данному проекту и также приобретает глобальный статус. + + ' + convert_to_global_notice: "%{name} теперь является глобальным вариантом." + convert_to_global_rename: + confirm: Преобразовать + text: Глобальный вариант с таким именем уже существует. Пожалуйста, выберите другое имя. + title: Выберите другое имя для этого варианта + created_by_migration: Migrated + delete: + description: Этот тип будет удален навсегда. Это действие не может быть отменено. + description_with_variants: Тип и все его варианты будут удалены навсегда. Это действие нельзя отменить. + heading: Удалить тип '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Удалить тип description: 'Каждая область конфигурации внутри типов и вариантов может быть настроена самостоятельно, ограничена другим типом или полностью связана с источником. ' duplicate_name: Копия %{name} duplicate_notice: "%{name} был дублирован." enabled_in_new_projects: Активно в новых проектах + filter: Filter by name + filter_no_results: No types match this filter make_default: Активировать в новых проектах make_default_notice: "%{name} теперь активирован в новых проектах." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Создать новый тип no_results_title_text: В данный момент типы отсутствуют. project_variants_count: - one: 1 вариант конкретного проекта + one: "%{count} project-specific variant" few: "%{count} project-specific variants" many: "%{count} project-specific variants" - other: "%{count} вариантов, используемых в конкретных проектах" + other: "%{count} project-specific variants" remove_default: Не активировать в новых проектах remove_default_notice: "%{name} в новых проектах эта функция больше не активируется." type_label: Тип variant_label: Вариант + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Веха + patterns: + formats: + hierarchy_default: По умолчанию (метка и сокращённое название) + hierarchy_label: Только метка + hierarchy_short: Только сокращённое название + weighted_item_list_default: По умолчанию (метка и вес) + weighted_item_list_weight: Только вес unsupported_browser: close_warning: Игнорировать это предупреждение. message: На этой странице вы рискуете столкнуться с ошибками и обедненным опытом. @@ -7052,10 +7694,10 @@ ru: authorization_rejected: У вас нет разрешения на вход. blocked: Временно заблокирован blocked_num_failed_logins: - one: временно заблокирован (одна неудачная попытка авторизации) - few: временно заблокирован (%{count} неудачные попытки авторизации) - many: временно заблокирован (%{count} неудачных попыток авторизации) - other: временно заблокирован (%{count} неудачные попытки авторизации) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Вы собираетесь изменить статус '%{name}'. Хотите продолжить? deleted: Удалённый пользователь department_ldap_managed_caption: Это подразделение управляется с помощью синхронизации LDAP и не может быть изменено здесь. @@ -7155,7 +7797,7 @@ ru: deletion_warning: Вы уверены, что хотите отменить эту сессию? Вы выйдите на этом устройстве. device: Устройство / ОС expires: Срок действия - instructions: Вы вошли в свою учетную запись через следующие устройства. Отмените сеансы, которые вы не узнаете или устройства, которые вы не контролируете. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Последнее соединение may_not_delete_current: Вы не можете удалить ваш текущий сеанс. session_name: "%{browser_name} %{browser_version} на %{os_name}" @@ -7215,15 +7857,21 @@ ru: start_date: Дата начала work_days: Рабочие дни work_days_count: - one: 1 рабочий день - few: "%{count} рабочих дней" - many: "%{count} рабочих дней" - other: "%{count} рабочих дней" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" work_hours: Рабочие часы version_status_closed: закрыт version_status_locked: заблокировано version_status_open: открыт versions: + filter_status_labels: + closed: Закрыт + locked: Заблокирован + open: Открыт + index: + filter_label: Поиск версий overview: no_results_title_text: В настоящее время пакетов работ для этой версии нет. work_packages_in_archived_projects: Эта версия используется совместно с архивными проектами, в которых все еще есть рабочие пакеты, назначенные на эту версию. Они учитываются, но не отображаются в связанных представлениях. @@ -7395,15 +8043,17 @@ ru: required_description: Отмечает этот пакет работ как требование к связанному requires_description: Отмечает связанный с этим пакет работ как требование к нему work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Пакеты работ не могут быть скопированы. could_not_be_deleted: 'Следующие пакеты работ удалить не удалось:' could_not_be_saved: 'Не удалось сохранить следующие пакеты работ:' deletion_successful: - one: 1 пакет работ успешно удалён. - few: "%{count} пакета работ успешно удалено." - many: "%{count} пакетов работ успешно удалено." - other: "%{count} пакетов работ успешно удалено." + one: Successfully deleted %{count} work package. + few: Successfully deleted %{count} work packages. + many: Successfully deleted %{count} work packages. + other: Successfully deleted %{count} work packages. descendant: дочерний пакет работ выбранного элемента move_failed: Пакеты работ не могут быть перемещены. none_could_be_saved: Ни один из пакетов работ %{total} не может быть обновлен. @@ -7427,26 +8077,26 @@ ru: description_with_visible_descendants: Вы уверены, что хотите удалить выбранные пакеты работ и все видимые вложенные элементы? heading: Окончательно удалить эти %{count} пакеты работ? hidden_descendants_only_warning: - one: Есть один потомок, которого вы не видите. Он не будет удалён, но будет удалена связь. - few: Есть %{count} потомка, которых вы не видите. Они не будут удалены, но будет удалена связь. - many: Есть %{count} потомков, которых вы не видите. Они не будут удалены, но будет удалена связь. - other: Есть %{count} потомков, которых вы не видите. Они не будут удалены, но будет удалена связь. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Все видимые потомки будут удалены. Однако есть один потомок, которого вы не можете увидеть. Он не будет удален, но будет удалена связь с ним. - few: Все видимые потомки будут удалены. Однако есть %{count} потомка, которых вы не можете увидеть. Они не будут удалены, но будет удалена связь с ними. - many: Все видимые потомки будут удалены. Однако есть %{count} потомков, которые вы не можете увидеть. Они не будут удалены, но будет удалена связь с ними. - other: Все видимые потомки будут удалены. Однако есть %{count} потомков, которые вы не можете увидеть. Они не будут удалены, но будет удалена связь с ними. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Удалить %{count} пакетов работ undeletable_descendants_warning: - one: Вы не можете удалить один из потомков, поскольку у вас отсутствуют необходимые права доступа. Он будет сохранен, но будет удалена иерархическая связь. - few: Вы не можете удалить %{count} из потомка, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но будет удалена иерархическая связь. - many: Вы не можете удалить %{count} из потомков, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но будет удалена иерархическая связь. - other: Вы не можете удалить %{count} из потомков, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но будет удалена иерархическая связь. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Вы не можете удалить один из потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Он будет сохранен, но иерархическая связь будет удалена. - few: Вы не можете удалить %{count} из потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но будет удалена иерархическая связь. - many: Вы не можете удалить %{count} из потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но будет удалена иерархическая связь. - other: Вы не можете удалить %{count} из потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но будет удалена иерархическая связь. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7503,26 +8153,172 @@ ru: description: Вы уверены, что хотите удалить "%{name}"? heading: Удалить этот пакет работ навсегда? hidden_descendants_only_warning: - one: У данного пакета работ есть один дочерний элемент, который вам не отображается. Он не будет удален, однако иерархическая связь будет потеряна. - few: У данного пакета работ есть %{count} дочерних элементов, которые вам не отображается. Они не будет удалены, однако иерархическая связь будет потеряна. - many: У данного пакета работ есть %{count} дочерних элементов, которые вам не отображается. Они не будет удалены, однако иерархическая связь будет потеряна. - other: У данного пакета работ есть %{count} дочерних элементов, которые вам не отображается. Они не будет удалены, однако иерархическая связь будет потеряна. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Все видимые потомки будут удалены. Однако у данного рабочего пакета есть один потомок, который вам не виден. Он не будет удален, но иерархическая связь с ним будет потеряна. - few: Все видимые потомки будут удалены. Однако у данного рабочего пакета есть %{count} потомока, которые вам не видны. Они не будут удалены, но иерархическая связь с ними будет потеряна. - many: Все видимые потомки будут удалены. Однако у данного рабочего пакета есть %{count} потомоков, которые вам не видны. Они не будут удалены, но иерархическая связь с ними будет потеряна. - other: Все видимые потомки будут удалены. Однако у данного рабочего пакета есть %{count} потомоков, которые вам не видны. Они не будут удалены, но иерархическая связь с ними будет потеряна. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Удалить пакеты работ undeletable_descendants_warning: - one: Вы не можете удалить одного потомка, поскольку у вас отсутствуют необходимые права доступа. Он будет сохранен, но иерархическая связь будет потеряна. - few: Вы не можете удалить %{count} потомка, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но иерархическая связь будет потеряна. - many: Вы не можете удалить %{count} потомков, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но иерархическая связь будет потеряна. - other: Вы не можете удалить %{count} потомка, поскольку у вас отсутствуют необходимые права доступа. Они будут сохранены, но иерархическая связь будет потеряна. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Вы не можете удалить одного потомка, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Он будет сохранен, но иерархическая связь будет потеряна. - few: Вы не можете удалить %{count} потомка, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но иерархическая связь будет потеряна. - many: Вы не можете удалить %{count} потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но иерархическая связь будет потеряна. - other: Вы не можете удалить %{count} потомков, поскольку у вас отсутствуют необходимые права доступа в %{projects}. Они будут сохранены, но иерархическая связь будет потеряна. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Типы пакетов работ или их потомков не включены в целевом проекте. Пожалуйста, включите отсутствующие типы в целевом проекте, если вы хотите, чтобы они остались без изменений. В противном случае выберите из списка доступный тип в целевом проекте. @@ -7554,26 +8350,27 @@ ru: version: no_results_title_text: На данный момент этапы отсутствуют. x_descendants: - one: Один пакет работ, являющийся потомком - few: 'Пакетов работ, являющихся потомками: %{count}' - many: 'Пакетов работ, являющихся потомками: %{count}' - other: 'Пакетов работ, являющихся потомками: %{count}' + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Изменить рабочий процесс copies: form: - mode: - from_role: - caption: Скопируйте текущий рабочий процесс в одну или несколько ролей внутри одного и того же типа пакета работ. Если выбранная роль уже имеет рабочий процесс, текущий будет перезаписан. - label: Копировать в другие роли - from_type: - caption: Скопируйте текущий рабочий процесс в другой тип пакетов работ. Если у выбранного типа уже есть рабочий процесс, текущий рабочий процесс будет перезаписан. Это влияет на все роли. - label: Копировать в другой тип - source_role_id: - label: Исходная роль target_role_ids: label: Целевые роли - target_variant_ids: - label: Целевые типы from_roles: create: notice: @@ -7581,16 +8378,31 @@ ru: few: Рабочий процесс успешно скопирован в %{count} ролей. many: Рабочий процесс успешно скопирован в %{count} ролей. other: Рабочий процесс успешно скопирован в %{count} ролей. - from_variants: - create: - notice: - one: Рабочий процесс успешно скопирован в тип '%{type_name}'. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Рабочий процесс успешно скопирован в %{count} типов. new: - title: Копировать рабочий процесс из типа "%{source_type}" + dialog_title: Копия рабочего процесса для "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: Новый рабочий процесс начинается с копии переходов статусов этого рабочего процесса. + label: Скопировать из + placeholder: Выберите рабочий процесс… + description: + caption: Добавьте краткое описание того, где и как будет использоваться этот рабочий процесс. + label: Описание + edit_title: Редактирование рабочего процесса matrix_caption: Матрица рабочего процесса matrix_caption_assignee: Матрица рабочего процесса для назначенного matrix_caption_author: Матрица рабочего процесса для автора @@ -7599,12 +8411,100 @@ ru: matrix_check_uncheck_all_in_row_label_html: Переключить переходы от %{old_status} ко всем новым статусам matrix_checkbox_label: Разрешить переход от %{old_status} к %{new_status} matrix_uncheck_all_label: Запретить все переходы + name: + caption: Выберите название, которое позволит вам впоследствии идентифицировать этот рабочий процесс в других местах. + label: Название рабочего процесса + new_title: Создать рабочий процесс index: + actions: + create: Рабочий процесс + edit: Редактировать переходы + menu: Действия для %{name} + rename: Изменить имя и описание + blank_slate: + description: Создайте рабочий процесс для определения статусных переходов, который может использовать тип или вариант. + filtered_description: Ни один рабочий процесс не соответствует текущим фильтрам. + filtered_title: Нет подходящих рабочих процессов + title: Нет рабочих процессов + columns: + name: Название рабочего процесса + projects: Проекты + roles: Роли + types_and_variants: Типы и варианты + description: Каждый именованный набор переходов статуса с использованием типов и вариантов. + filters: + name: Рабочий процесс + name_placeholder: Фильтр по имени рабочего процесса или описанию… + projects_placeholder: Фильтровать проекты… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Фильтр по имени типа… + types_and_variants_count: "%{types} (в том числе %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Рабочий процесс + implicit: рабочий процесс %{name} page_headers: index_component: description: Настроить переходы статусов для каждого типа пакета работ. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Начните с существующего рабочего процесса, измените его по своему усмотрению и сохраните в качестве нового рабочего процесса. + label: Начните с создания копии существующего рабочего процесса + missing: Выберите рабочий процесс для копирования или начинайте с нуля. + label: Отправная точка + scratch: + caption: Начните с пустого рабочего процесса и создайте его вручную. + label: Начать с нуля + title: New workflow + usage: + dialog: + button: Просмотр зависимых типов + caption_html: Рабочий процесс %{name} используется в следующих типах и вариантах. + title: Рабочий процесс, используемый в типах + variant_of: Вариант %{type} + variants: Варианты + unused: Этот рабочий процесс пока не использует ни тип, ни вариант. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Использовать существующий рабочий процесс для этого типа с заранее определенным набором переходов статуса для набора ролей. + label: Использовать существующий рабочий процесс + new: + caption: Вручную определить новый рабочий процесс для этого типа, выбрав, для каких ролей разрешены переходы статусов. + label: Настроить новый рабочий процесс working_days: change_button: Изменить рабочие дни dialog: diff --git a/config/locales/crowdin/rw.seeders.yml b/config/locales/crowdin/rw.seeders.yml index 6c56aa9f9eac..44202ebfc0b6 100644 --- a/config/locales/crowdin/rw.seeders.yml +++ b/config/locales/crowdin/rw.seeders.yml @@ -250,70 +250,26 @@ rw: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ rw: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/rw.yml b/config/locales/crowdin/rw.yml index de83da5209e4..1446ee361ba0 100644 --- a/config/locales/crowdin/rw.yml +++ b/config/locales/crowdin/rw.yml @@ -40,7 +40,9 @@ rw: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ rw: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ rw: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ rw: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ rw: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ rw: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ rw: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ rw: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ rw: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ rw: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ rw: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ rw: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ rw: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ rw: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ rw: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ rw: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ rw: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ rw: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ rw: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ rw: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ rw: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ rw: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ rw: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ rw: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ rw: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ rw: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ rw: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ rw: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ rw: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ rw: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ rw: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ rw: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ rw: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ rw: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ rw: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ rw: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ rw: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ rw: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ rw: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ rw: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ rw: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ rw: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ rw: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ rw: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ rw: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ rw: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ rw: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ rw: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ rw: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ rw: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ rw: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ rw: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ rw: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ rw: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ rw: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ rw: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ rw: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ rw: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ rw: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ rw: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ rw: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ rw: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ rw: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ rw: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ rw: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ rw: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ rw: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ rw: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ rw: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ rw: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ rw: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ rw: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ rw: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ rw: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ rw: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ rw: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ rw: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ rw: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ rw: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ rw: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ rw: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ rw: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ rw: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ rw: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ rw: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ rw: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ rw: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ rw: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ rw: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ rw: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ rw: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ rw: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ rw: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ rw: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ rw: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ rw: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ rw: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ rw: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ rw: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ rw: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ rw: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ rw: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ rw: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ rw: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ rw: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ rw: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ rw: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ rw: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ rw: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ rw: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ rw: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ rw: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ rw: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ rw: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ rw: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ rw: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ rw: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ rw: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ rw: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ rw: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ rw: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ rw: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ rw: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ rw:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ rw: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ rw: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ rw: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ rw: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ rw: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ rw: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ rw: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ rw: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ rw: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ rw: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ rw: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ rw: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ rw: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ rw: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ rw: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ rw: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ rw: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ rw: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ rw: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ rw: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ rw: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ rw: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ rw: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ rw: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/si.seeders.yml b/config/locales/crowdin/si.seeders.yml index 1cec5fd175b4..3998ece802ed 100644 --- a/config/locales/crowdin/si.seeders.yml +++ b/config/locales/crowdin/si.seeders.yml @@ -250,70 +250,26 @@ si: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: නිෂ්පාදන බැක්ලොග් + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ si: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/si.yml b/config/locales/crowdin/si.yml index f1733792020d..2a0b84be788c 100644 --- a/config/locales/crowdin/si.yml +++ b/config/locales/crowdin/si.yml @@ -40,7 +40,9 @@ si: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: ගිණුම මකන්න delete_confirmation: ඔබට ගිණුම මකා දැමීමට අවශ්ය බව ඔබට විශ්වාසද? deletion_info: @@ -65,7 +67,9 @@ si: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: හෝ ඔබගේ පවතින ගිණුම සමඟ පුරනය වන්න + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: කරුණාකර ඔබගේ ගිණුම සක්රිය කිරීමට පුරනය වන්න. @@ -118,6 +122,8 @@ si: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ si: repository: ගබඩාව comment: commented: අදහස් දැක්වීය - custom_action: - actions: ක්‍රියාමාර්ග custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ si: uid: සේවාලාභියා හැඳුනුම්පත emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: ව්යවසාය සහාය ටෝකනය @@ -179,20 +184,44 @@ si: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: තීරු ගණන page: පිටුව row_count: පේළි ගණන widgets: විජට් group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ si: title: Title member: blocked: Blocked + principal_type: Member type roles: භූමිකාවන් notification: read_ian: Read in-app @@ -235,6 +265,7 @@ si: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ si: ongoing: Ongoing spent_on: දිනය type: වර්ගය + token/base: + expires_on: Expiration date token/ical: calendar: දින දර්ශනය ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ si: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: පරිපාලක auth_source: Authentication source + avatar_type: Avatar type consented_at: එකඟ විය current_password: වත්මන් මුරපදය department: Department @@ -410,7 +441,7 @@ si: last_name: අවසාන නම ldap_auth_source: LDAP connection new_password: නව මුරපදය - password_confirmation: තහවුරු කිරීම + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ si: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ si: header_look_and_feel: Look and feel impaired: ප්රවේශ්යතා ප්රකාරය increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: වේලා කලාපය warn_on_leaving_unsaved: නොගැලවූ වෙනස්කම් සහිත වැඩ පැකේජයකින් පිටවන විට මට අනතුරු අඟවන්න workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ si: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: මාපිය @@ -519,6 +565,10 @@ si: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: පිළිගත යුතුය. @@ -590,6 +640,8 @@ si: regex_invalid: ආශ්රිත නිත්ය ප්රකාශනය සමඟ වලංගු කළ නොහැකි විය. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: උපරිම දිගට වඩා කුඩා හෝ සමාන විය යුතුය. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ si: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: වැරදි දිග (අක්ෂර %{count} විය යුතුය). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ si: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: අවසාන අගය ආරම්භක අගයට වඩා විශාල විය යුතුය. outside: ජාලයෙන් පිටත වේ. @@ -689,6 +755,13 @@ si: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ si: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'වැඩ පැකේජ මගින් තවමත් භාවිතා වේ: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ si: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ si: numeric: 'සංඛ්යාත්මක (උදා: ''1'')' requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: මීට පෙර භාවිතා කර ඇත. කරුණාකර ඔබේ අන්තිම එකට වඩා වෙනස් එකක් තෝරන්න. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: 'විශේෂ (උදා: ''%'')' uppercase: 'ඉහළ (උදා: ''ඒ'')' @@ -976,6 +1032,8 @@ si: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: වෙනත් ව්යාපෘතියක සිටිය නොහැක. cannot_be_milestone: සන්ධිස්ථානයක් විය නොහැක. @@ -1003,6 +1061,8 @@ si: status_id: status_invalid_in_type: මෙම වර්ගයේ වර්තමාන තත්ත්වය නොපවතින බැවින් එය වලංගු නොවේ. status_transition_invalid: වර්තමාන පරිශීලකයාගේ භූමිකාවන් සඳහා පැරණි සිට නව තත්ත්වය දක්වා වලංගු සංක්රාන්තියක් නොපවතින බැවින් වලංගු නොවේ. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: මෙම වැඩ පැකේජයට දරුවන් සිටින බැවින් සන්ධිස්ථානයක් විය නොහැක. is_not_a_valid_target_for_time_entries: 'වැඩ පැකේජය #%{id} යනු කාල සටහන් නැවත පැවරීම සඳහා වලංගු ඉලක්කයක් නොවේ.' @@ -1011,8 +1071,8 @@ si: template: body: 'කරුණාකර පහත සඳහන් ක්ෂේත්ර පරීක්ෂා කරන්න:' header: - one: 1 දෝෂය මෙම %{model} ගැලවීම තහනම් කර ඇත - other: "%{count} දෝෂ මෙම %{model} ගැලවීම වීම තහනම්" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1050,6 +1110,9 @@ si: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ si: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ si: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ si: issue_priority: one: ප්රමුඛතාව other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ si: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ si: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: තේමාව වෙනස් කිරීම ඔබට අභිරුචි විලාසිතාව උඩින් ලියනු ඇත. එවිට සැලසුම අහිමි වනු ඇත. ඔබට දිගටම කරගෙන යාමට අවශ්ය බව ඔබට විශ්වාසද? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ si: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ si: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ si: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ si: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ si: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ si: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ si: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ si: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ si: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ si: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ si: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ si: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ si: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: දැනට ප්රදර්ශනය කර ඇත is_inactive: දැනට ප්රදර්ශනය කර නැත show_until: තෙක් පෙන්වන්න @@ -2075,7 +2256,7 @@ si: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ si: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: සපයා ඇති සන්දර්භය සම්පතකට සබැඳියක් නොවේ. - context_object_not_found: සන්දර්භය ලෙස ලබා දී ඇති සම්පත සොයාගත නොහැක. - unsupported_context: ලබා දී ඇති සම්පත සන්දර්භය ලෙස සහාය නොදක්වයි. unable_to_create_attachment: ඇමුණුමක් නිර්මාණය කළ නොහැකි විය unable_to_create_attachment_permissions: ගොනු පද්ධති අවසර නොමැති නිසා ඇමුණුම සුරැකිය නොහැකි විය user: @@ -2203,6 +2380,7 @@ si: groups: කණ්ඩායම් hexcode: Hex කේතය id: හැඳු. + inexistent: Inexistent is_default: පෙරනිමි අගය is_for_all: සියලුම ව්යාපෘති සඳහා issue: වැඩ පැකේජය @@ -2253,6 +2431,7 @@ si: updated_at: යාවත්කාලීන කරන ලදි updated_on: යාවත්කාලීන කරන ලදි uploader: උඩුගත කරන්නා + url: URL user: පරිශීලක username: පරිශීලක නාමය value: අගය @@ -2267,6 +2446,29 @@ si: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ si: button_set_reminder: Set reminder button_show: පෙන්වන්න button_sort: වර්ග + button_stop_timer: Stop timer button_submit: ඉදිරිපත් කරන්න button_test: ටෙස්ට් button_unarchive: අක්රීය කරන්න @@ -2461,9 +2664,9 @@ si: text: failed: ව්යාපෘතිය "%{source_project_name}" ව්යාපෘතිය "%{target_project_name}" දක්වා පිටපත් කල නොහැක. succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ si: plural: අභිරුචි ක්‍රියාමාර්ග custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: සියලුම ව්යාපෘති සඳහා hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ si: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ si: is_enabled_globally: ගෝලීයව සබල කර ඇත multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: නව අභිරුචි ක්ෂේත්‍රයක් සාදන්න - no_results_title_text: දැනට අභිරුචි ක්ෂේත්ර නොමැත. text_add_new_custom_field: 'ව්යාපෘතියකට නව අභිරුචි ක්ෂේත්ර එකතු කිරීම සඳහා ඔබ මුලින්ම මෙම ව්යාපෘතියට එකතු කිරීමට පෙර ඒවා නිර්මාණය කළ යුතුය. ' @@ -2666,56 +2866,56 @@ si: datetime: distance_in_words: about_x_hours: - one: පැය 1 ක් පමණ - other: පැය %{count} ක් පමණ + one: about %{count} hour + other: about %{count} hours about_x_months: - one: මාස 1 ක් පමණ - other: මාස %{count} ක් පමණ + one: about %{count} month + other: about %{count} months about_x_years: - one: වසර 1 ක් පමණ - other: වසර %{count} ක් පමණ + one: about %{count} year + other: about %{count} years almost_x_years: - one: වසර 1 කට ආසන්න - other: වසර %{count} කට ආසන්න කාලයක් + one: almost %{count} year + other: almost %{count} years half_a_minute: විනාඩි භාගයක් less_than_x_minutes: one: විනාඩියකට වඩා අඩුය other: විනාඩි %{count} ට වඩා අඩුය less_than_x_seconds: - one: දෙවන 1 ට වඩා අඩු - other: තත්පර %{count} ට වඩා අඩුය + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: වසර 1 කට වැඩි - other: වසර %{count} කට වැඩි + one: over %{count} year + other: over %{count} years x_days: - one: දින 1 - other: "%{count} දින" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: විනාඩි 1 - other: විනාඩි%{count} + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: මාස 1 - other: මාස%{count} + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 දෙවන - other: තත්පර%{count} + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ si: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ si: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: සංසදය සඳහා දැනට තනතුරු නොමැත. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: යූටීඑෆ්-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ si: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ si: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ si: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ si: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: මෙම මතය ප්රකාශයට පත් කරන්න, වෙනත් පරිශීලකයින්ට ඔබගේ දැක්ම වෙත ප්රවේශ වීමට ඉඩ සලසයි. 'මහජන අදහස් කළමනාකරණය කරන්න' අවසරය ඇති පරිශීලකයින්ට මහජන විමසුම වෙනස් කිරීමට හෝ ඉවත් කිරීමට හැකිය. එම දර්ශනයේ වැඩ පැකේජ ප්රති results ල දෘශ්යතාවයට මෙය බලපාන්නේ නැති අතර ඔවුන්ගේ අවසර මත පදනම්ව පරිශීලකයින්ට විවිධ ප්රති results ල දැකිය හැකිය. homescreen: @@ -3305,6 +3652,31 @@ si: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: නව විශේෂාංග සහ නිෂ්පාදන යාවත්කාලීන කිරීම් ගැන කියවන්න. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ si: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ si: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ si: label_copy_target: ඉලක්කය label_copy_workflow_from: සිට කාර්ය ප්රවාහ පිටපත් label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: ප්රධාන අනුවාදය label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: වත්මන් තත්ත්වය label_current_version: වත්මන් අනුවාදය label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ si: label_custom_field_default_type: හිස් වර්ගය label_custom_field_new: නව අභිරුචි ක්ෂේත්රයේ label_custom_field_plural: අභිරුචි ක්ෂේත්ර - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: නිර්මාණ label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ si: label_database_version: PostgreSQL version label_date: දිනය label_date_and_time: දිනය සහ වේලාව - label_date_format: දිනය ආකෘතිය + label_date_and_time_formats: Date and time formats label_date_from: සිට label_date_from_to: "%{start} සිට %{end}දක්වා" label_date_to: කිරීමට label_dates: දිනයන් + label_day: දවස label_day_plural: දින label_default: පෙරනිමි label_defaults: Defaults @@ -3596,6 +3970,7 @@ si: label_deleted_custom_field: "(මකා දමන ලද අභිරුචි ක්ෂේත්රය)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ si: label_float: පාවෙන label_folder: ෆෝල්ඩරය label_follows: පහත සඳහන් + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: නව සංසදය label_forum_plural: සංසද @@ -3684,6 +4060,7 @@ si: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: කණ්ඩායම + label_group_attributes_plural: Group attributes label_group_by: කණ්ඩායම විසින් label_group_named: සමූහය %{name} label_group_new: නව කණ්ඩායම @@ -3735,8 +4112,8 @@ si: label_journal_diff: විස්තරය සංසන්දනය label_jump_to_a_project: ව්යාපෘතියකට පනින්න... label_keyword_plural: මූල පද + label_label_plural: Labels label_language: " " - label_language_based: පරිශීලකයාගේ භාෂාව මත පදනම්ව label_languages: Languages label_last_activity: අවසාන ක්රියාකාරකම් label_last_change_on: අවසන් වෙනස @@ -3758,6 +4135,7 @@ si: label_list: ලැයිස්තුව label_loading: පැටවීම... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: පරිශීලක අගුළු label_locked: අගුළු දමා ඇත label_logged_as: ලෙස ලොගින් වී @@ -3769,6 +4147,7 @@ si: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: කළමනාකරණය %{vendor} ගබඩාවලදී label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: උපරිම ප්රමාණය label_me: මට label_member_all_admin: "(පරිපාලක තත්ත්වය නිසා සියලුම භූමිකාවන්)" @@ -3787,7 +4166,6 @@ si: label_menu_item_name: මෙනු අයිතමයේ නම label_message: පණිවුඩය label_message_last: අවසාන පණිවිඩය - label_message_new: නව පණිවිඩයක් label_message_plural: පණිවිඩ label_message_posted: පණිවුඩය එකතු කරන ලදි label_minute_plural: විනාඩි @@ -3799,6 +4177,7 @@ si: label_module_plural: මොඩියුල label_modules: මොඩියුල label_modules_and_plugins: මොඩියුල සහ ප්ලගින + label_month: මාසය label_months_from: මාස සිට label_more: තවත් label_more_information: වැඩි විස්තර @@ -3812,6 +4191,7 @@ si: label_my_avatar: My avatar label_my_queries: මගේ අභිරුචි විමසුම් label_my_security: Security + label_my_time: My time label_name: නම label_never: කිසි විටෙකත් label_new: නව @@ -3826,7 +4206,10 @@ si: label_news_singular: පුවත් label_news_view_all: සියලු පුවත් බලන්න label_next: ඊළඟ + label_next_day: Next day + label_next_month: Next month label_next_week: ලබන සතියේ + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(වෙනසක් නැත)" label_no_data: ප්රදර්ශනය කිරීමට දත්ත නොමැත @@ -3834,6 +4217,7 @@ si: label_no_parent_group: "(No parent group)" label_no_parent_page: මව් පිටුවක් නැත label_no_start_date: ආරම්භක දිනයක් නැත + label_no_time: No time tracked label_nobody: කිසිවෙක් නැත label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ si: label_preview: පෙරදසුන label_preview_not_available: Preview not available label_previous: පසුගිය + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: පසුගිය සතියේ + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " හෝ විද්යුත් තැපෑල හරහා නව පරිශීලකයින්ට ආරාධනා කරන්න" label_principal_search: දැනට පවතින පරිශීලකයින් හෝ කණ්ඩායම් එකතු කරන්න @@ -4019,6 +4406,7 @@ si: label_sort_lowest: පහළට ගෙනයන්න label_sorted_by: "%{value}විසින් වර්ග කර ඇත" label_spent_time: වැය කළ කාලය + label_stack: Stack label_start_to_end: අවසානය දක්වා ආරම්භ කරන්න label_start_to_start: ආරම්භ කිරීමට පටන් ගන්න label_starts_with: starts with @@ -4038,6 +4426,7 @@ si: label_subtask_plural: උප කාර්යයන් label_summary: සාරාංශය label_system: පද්ධතිය + label_system_or_language_default: Use system or language based default label_system_settings: පද්ධති සැකසුම් label_system_storage: ගබඩා තොරතුරු label_table_of_contents: අන්තර්ගත වගුව @@ -4052,6 +4441,7 @@ si: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: වැය කළ කාලය + label_timer_since: Started at %{time} label_title: මාතෘකාව label_today: අද label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ si: label_user_search: පරිශීලකයා සඳහා සොයන්න label_user_settings: පරිශීලක සැකසුම් label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: අනුවාදය සංස්කරණය label_version_new: නව අනුවාදය label_version_plural: අනුවාද @@ -4100,6 +4492,7 @@ si: label_videos: වීඩියෝ දර්ශන label_view_all_revisions: සියලු සංශෝධන බලන්න label_view_diff: වෙනස්කම් බලන්න + label_view_mode_switcher: Change view label_view_revisions: සංශෝධන බලන්න label_view_x: 'View: %{x}' label_watched_work_packages: වැඩ පැකේජ නැරඹූ @@ -4123,6 +4516,8 @@ si: label_wiki_start: ආරම්භක පිටුව label_wiki_toc: පටුන වගුව label_wiki_toc_empty: කිසිදු ශීර්ෂයක් නොමැති බැවින් පටුන වගුව හිස් වේ. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: වැඩ පැකේජය label_work_package_attachments: වැඩ පැකේජ ඇමුණුම් @@ -4145,45 +4540,46 @@ si: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 වසා + one: "%{count} closed" other: "%{count} වසා" zero: 0 වසා label_x_comments: - one: 1 අදහස් + one: "%{count} comment" other: "%{count} අදහස්" zero: අදහස් නැත label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 විවෘත + one: "%{count} open" other: "%{count} විවෘත" zero: 0 විවෘත label_x_projects: - one: 1 ව්යාපෘතිය + one: "%{count} project" other: "%{count} ව්යාපෘති" zero: ව්යාපෘති නොමැත label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: ඊයේ label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ si: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ si: you_have: ඔබට තිබේ logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ si: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ si: create_button: සාදන්න dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'ප්රවේශ ටෝකනය නැවත සකස් කිරීමට අපොහොසත් විය: %{error}' @@ -4543,10 +4948,26 @@ si: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: ක්රියාව expiration: කල් ඉකුත් @@ -4748,7 +5169,6 @@ si: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "සොයාගෙන ඇත %{number} ප්රතිඵල. \n පළමු ප්රතිඵලය අවධානය යොමු කිරීමට ටැබ්." notice_principals_found_single: "එක් ප්රති result ලයක් තිබේ. \n එය අවධානය යොමු කිරීමට ටැබ්." - notice_project_cannot_update_custom_fields: 'ඔබට ව්යාපෘතියේ පවතින අභිරුචි ක්ෂේත්ර යාවත්කාලීන කළ නොහැක. ව්යාපෘතිය අවලංගුයි: %{errors}' notice_project_not_deleted: ව්යාපෘතිය මකා දැමුවේ නැත. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ si: notice_successful_create: සාර්ථක නිර්මාණය. notice_successful_delete: සාර්ථක මකාදැමීම. notice_successful_update: සාර්ථක යාවත්කාලීන කිරීම. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- බොහෝ ප්රතිඵල ඇත. නව සාමාජිකයාගේ (හෝ කණ්ඩායමේ) නමින් ටයිප් කිරීමෙන් සෙවුම අඩු කරන්න. @@ -4862,7 +5279,7 @@ si: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ si: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ si: or: හෝ rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ si: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ si: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: අදහස් ප්රවෘත්ති permission_commit_access: කියවීමට/ගබඩාවට ප්රවේශ වීම (කැප කිරීම) - permission_copy_projects: ව්යාපෘති පිටපත් කරන්න + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ si: permission_export_projects: Export projects permission_export_work_packages: අපනයන වැඩ පැකේජ permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ si: permission_manage_dashboards: Manage dashboards permission_manage_forums: සංසද කළමනාකරණය කරන්න permission_manage_members: සාමාජිකයින් කළමනාකරණය කරන්න + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: පුවත් කළමනාකරණය permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ si: permission_save_bcf_queries: Save BCF queries permission_save_queries: අදහස් සුරකින්න permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: ව්යාපෘති මොඩියුල තෝරන්න permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ si: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: අදාළ ව්යාපෘතියේ මෙම කාර්යභාරය සතුව ඇති පරිශීලකයින්ට සහ කණ්ඩායම්වලට වැඩ පැකේජ පැවරිය හැකිය placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ si: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ si: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ si: වගුවේ වැඩ පැකේජ අවධාරණය කිරීම සඳහා එය භාවිතා කළ හැකිය. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ si: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 ව්යාපෘතිය + one: "%{count} project" other: "%{count} ව්යාපෘති" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ si: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ si: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: දැනට පවතින අභිරුචි ක්ෂේත්ර නොමැත. forums: no_results_content_text: නව සංසදයක් සාදන්න @@ -5451,14 +5884,14 @@ si: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ si: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: නව අනුවාදයක් සාදන්න - no_results_title_text: ව්යාපෘතිය සඳහා දැනට අනුවාදයක් නොමැත. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ si: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: පෙර සැකසූ පෙරහන යොදන්න configure_view: @@ -5515,7 +5960,7 @@ si: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ si: warnings: cannot_annotate: මෙම ගොනුව විනීත කළ නොහැක. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ si: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ si: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: ප්රදර්ශනය diff රේඛා උපරිම සංඛ්යාව setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: පෙරනිමියෙන් ප්රධාන ව්යාපෘතිවල උප ව්යාපෘති වැඩ පැකේජ ප්රදර්ශනය කරන්න + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ si: setting_start_of_week: සතිය ආරම්භ වේ setting_sys_api_description: ගබඩා කළමනාකරණ වෙබ් සේවාව මඟින් ගබඩාවට ප්රවේශ වීම සඳහා ඒකාබද්ධ කිරීම සහ පරිශීලක අවසරය ලබා දේ. setting_sys_api_enabled: නිධි කළමනාකරණ වෙබ් සේවාව සක්රීය කරන්න + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ si: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ si: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ si: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ si: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ si: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ si: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ si: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ si:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: වසා - is_default: පෙරනිමි is_readonly: කියවීමට-පමණි + no_filter_results_title_text: No status matches the current filter. no_results_content_text: නව තත්වයක් එකතුකරන්න no_results_title_text: දැනට වැඩ පැකේජ තත්වයන් නොමැත. + status_actions: Status actions support: array: sentence_connector: සහ skip_last_comma: අසත්ය text_access_token_hint: ප්රවේශ ටෝකන ඔබට OpenProject හි සම්පත් සඳහා බාහිර යෙදුම් ප්රවේශය ලබා දීමට ඉඩ සලසයි. - text_accessibility_hint: ප්රවේශ ප්රකාරය නිර්මාණය කර ඇත්තේ අන්ධ, මෝටර් රථ ආබාධිත හෝ නරක ඇස් පෙනීම ඇති පරිශීලකයින් සඳහා ය. අවසාන වශයෙන් අවධානය යොමු කරන ලද අංග සඳහා විශේෂයෙන් ඉස්මතු කර ඇත. කරුණාකර සැලකිල්ලට ගන්න, Backlogs මොඩියුලය මෙම ප්රකාරයේදී ලබා ගත නොහැකි බව. text_analyze: 'තවදුරටත් විශ්ලේෂණය: %{subject}' text_are_you_sure: ඔබට විශ්වාසද? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ si: ' text_custom_field_possible_values_info: එක් එක් අගය සඳහා එක් පේළියක් - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ si: text_length_between: "%{min} සහ %{max} අක්ෂර අතර දිග." text_line_separated: බහු අගයන් අවසර දී ඇත (එක් එක් අගය සඳහා එක් රේඛාවක්). text_load_default_configuration: පෙරනිමි වින්යාසය පටවන්න + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: වින්යාසගත කළ හැකි ප්රවේශ ටෝකන නොමැත. text_no_configuration_data: |- භූමිකාවන්, වර්ග, වැඩ පැකේජ තත්වයන් සහ කාර්ය ප්රවාහය තවමත් වින්යාස කර නොමැත. @@ -6439,6 +6916,68 @@ si: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ si: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ si: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ si: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ si: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ si: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ si: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ si: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ si: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: ව්‍යාපෘති + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ si: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ si: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ si: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ si: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ si: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: නව වර්ගයක් සාදන්න no_results_title_text: දැනට වර්ග නොමැත. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: මෙම අනතුරු ඇඟවීම නොසලකා. message: ඔබ මෙම පිටුවේ වැරදි හා පිරිහුණු අත්දැකීම් බවට පත් විය හැක. @@ -6741,8 +7345,8 @@ si: authorization_rejected: ඔබට පුරනය වීමට අවසර නැත. blocked: තාවකාලිකව අගුළු දමා ඇත blocked_num_failed_logins: - one: තාවකාලිකව අගුළු දමා ඇත (එක් අසාර්ථක පිවිසුම් උත්සාහයක්) - other: තාවකාලිකව අගුළු දමා ඇත (%{count} අසාර්ථක පිවිසුම් උත්සාහයන්) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: ඔබ '%{name}' හි තත්වය වෙනස් කිරීමට ආසන්නව සිටී. ඔබට දිගටම කරගෙන යාමට අවශ්ය බව ඔබට විශ්වාසද? deleted: මකාදැමූ පරිශීලක department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6842,7 +7446,7 @@ si: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: කල් ඉකුත් - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ si: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: වසා version_status_locked: අගුළු දමා ඇත version_status_open: විවෘත versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: මෙම අනුවාදයට පවරා ඇති වැඩ පැකේජ දැනට නොමැත. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ si: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'පහත සඳහන් වැඩ පැකේජ සුරැකිය නොහැකි විය:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ si: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ si: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ si: version: no_results_title_text: දැනට කිසිදු අනුවාදයක් නොමැත. x_descendants: - one: එක් පරම්පරාවක වැඩ පැකේජයක් - other: "%{count} වැඩ පැකේජය පැවත" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ si: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/sk.seeders.yml b/config/locales/crowdin/sk.seeders.yml index 381f9d6178b1..c2b4dba53274 100644 --- a/config/locales/crowdin/sk.seeders.yml +++ b/config/locales/crowdin/sk.seeders.yml @@ -250,70 +250,26 @@ sk: V tomto module môžete členom svojho tímu oznamovať novinky o projekte. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategória 1 (treba zmeniť v nastaveniach projektu) queries: item_0: name: Plán projektu item_1: - name: Nevyriešený produkt + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Úlohy boards: @@ -345,12 +301,13 @@ sk: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml index 494e81982c53..dc2219aa8fc4 100644 --- a/config/locales/crowdin/sk.yml +++ b/config/locales/crowdin/sk.yml @@ -40,7 +40,9 @@ sk: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Vymazať účet delete_confirmation: Ste si istý, že chcete vymazať daný účet? deletion_info: @@ -65,7 +67,9 @@ sk: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: alebo sa prihláste so svojím existujúcim účtom + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Prihláste sa aby ste aktivovali svoj účet. @@ -118,6 +122,8 @@ sk: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ sk: repository: Repozitár comment: commented: Komentované - custom_action: - actions: Akcie custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ sk: uid: ID klienta emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ sk: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Počet stĺpcov page: Stránka row_count: Počet riadkov widgets: Miniaplikácie group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ sk: title: Title member: blocked: Blocked + principal_type: Member type roles: Roly notification: read_ian: Read in-app @@ -235,6 +265,7 @@ sk: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ sk: ongoing: Ongoing spent_on: Dátum type: Typ + token/base: + expires_on: Expiration date token/ical: calendar: Kalendár ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ sk: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Správca auth_source: Authentication source + avatar_type: Avatar type consented_at: Povolené na current_password: Aktuálne heslo department: Department @@ -410,7 +441,7 @@ sk: last_name: Priezvisko ldap_auth_source: LDAP connection new_password: Nové heslo - password_confirmation: Potvrdenie + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ sk: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ sk: header_look_and_feel: Look and feel impaired: Režim zjednodušeného ovládania increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Časové pásmo warn_on_leaving_unsaved: Upozorbiť ma, pri opustení pracovného balíčka s neuloženými zmenami workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ sk: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Nadradený balíček @@ -519,6 +565,10 @@ sk: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: musí byť akceptovaný. @@ -590,6 +640,8 @@ sk: regex_invalid: nebolo možné overiť s príslušným regulárnym výrazom. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: musí byť menšie alebo rovné ako maximálne dĺžka. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ sk: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: má chybnú dĺžku (správne má byť %{count} znakov). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -674,6 +730,16 @@ sk: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: koncová hodnota musí byť väčšia ako počiatočná hodnota. outside: je mimo mriežku. @@ -691,6 +757,13 @@ sk: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ sk: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'stále používané týmito pracovnými balíkmi: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -859,42 +931,26 @@ sk: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -908,10 +964,10 @@ sk: numeric: Čísla (napríklad 1) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: už bol použitý predtým. Prosím, vyberte odlišnú voľbu ako tú, ktorá bola zvolená naposledy. - few: už bolo použité. Vyberte heslo, ktoré sa líši od posledných %{count}. - many: už bolo použité. Vyberte heslo, ktoré sa líši od posledných %{count}. - other: už bolo použité. Vyberte heslo, ktoré sa líši od posledných %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: Špeciálne znaky (napríklad "%") uppercase: veľké písmená (napríklad "A") password_confirmation: @@ -980,6 +1036,8 @@ sk: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: nemôže byť previazaný na pracovný balíček nachádzajúci sa v inom projekte (musí byť povolené správcom systému). cannot_be_milestone: nemôže byť previazaný na pracovný balíček typu "míľnik". @@ -1007,6 +1065,8 @@ sk: status_id: status_invalid_in_type: je neplatná, pretože súčasný stav neexistuje v tomto type. status_transition_invalid: je neplatný, pretože neexistuje žiadny platný prechod zo starého na nový stav v prípade aktuálne pridelených rolí používateľa. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: nemôže byť míľnikom, pretože tento pracovný balíček má podradené položky. is_not_a_valid_target_for_time_entries: 'Pracovný balík #%{id} nepredstavuje platný cieľ pre pridelené položky času.' @@ -1015,10 +1075,10 @@ sk: template: body: 'Skontrolujte nasledujúce polia:' header: - one: 1 chyba zabránila uloženiu tohto %{model} - few: "%{count} chýb zabránilo uloženiu tohto %{model}" - many: "%{count} chýb zabránilo uloženiu tohto %{model}" - other: "%{count} chýb zabránilo uloženiu tohto %{model}" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1080,6 +1140,11 @@ sk: few: Authentication providers many: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Backup few: Backups @@ -1115,11 +1180,6 @@ sk: few: Comments many: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - many: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1195,6 +1255,11 @@ sk: few: Export settings many: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Forum few: Forums @@ -1225,6 +1290,11 @@ sk: few: Priorities many: Priorities other: Priorities + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1617,7 +1687,28 @@ sk: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1650,7 +1741,11 @@ sk: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1683,7 +1778,7 @@ sk: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1691,12 +1786,15 @@ sk: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1729,16 +1827,30 @@ sk: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1842,37 +1954,37 @@ sk: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" many: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" many: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" many: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" few: "%{count} statuses" many: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" many: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" many: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" @@ -1940,7 +2052,7 @@ sk: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" many: "%{count} projects selected as scope" other: "%{count} projects selected as scope" @@ -2007,23 +2119,55 @@ sk: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2054,6 +2198,18 @@ sk: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -2067,7 +2223,7 @@ sk: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2198,7 +2354,7 @@ sk: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" many: "... %{count} more projects" other: "... %{count} more projects" @@ -2241,7 +2397,7 @@ sk: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2276,15 +2432,22 @@ sk: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" many: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2294,7 +2457,7 @@ sk: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? few: Remove %{count} statuses? many: Remove %{count} statuses? other: Remove %{count} statuses? @@ -2309,7 +2472,31 @@ sk: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: aktuálne zobrazené is_inactive: v súčasnosti nie je zobrazené show_until: Zobraziť do @@ -2317,7 +2504,7 @@ sk: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2371,10 +2558,6 @@ sk: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Zadaný kontext nie je odkazom na prostriedok. - context_object_not_found: Pre vložené vstupné podmienky neboli nájdené žiadne prostriedky. - unsupported_context: Zadaný prostriedok nie je podporovaný ako kontext. unable_to_create_attachment: Prílohu sa nepodarilo vytvoriť unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2445,6 +2628,7 @@ sk: groups: Skupiny hexcode: Hex kód id: ID + inexistent: Inexistent is_default: Predvolená hodnota is_for_all: Pre všetky projekty issue: Pracovný balíček @@ -2495,6 +2679,7 @@ sk: updated_at: Aktualizované updated_on: Aktualizované uploader: Uploader + url: URL user: Užívateľ(ka) username: Používateľské meno value: Hodnota @@ -2509,6 +2694,29 @@ sk: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2637,6 +2845,7 @@ sk: button_set_reminder: Set reminder button_show: Ukázať button_sort: Zoradiť + button_stop_timer: Stop timer button_submit: Odoslať button_test: Test button_unarchive: Odarchivovať @@ -2703,9 +2912,9 @@ sk: text: failed: Nepodarilo sa skopírovať projekt "%{source_project_name}" do projektu "%{target_project_name}". succeeded: Skopírovanie projektu "%{source_project_name}" do projektu "%{target_project_name}" bolo úspešne dokončené. - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2743,13 +2952,9 @@ sk: plural: Vlastné akcie custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Pre všetky projekty hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2770,7 +2975,7 @@ sk: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2835,16 +3040,17 @@ sk: is_enabled_globally: Je povolené globálne multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Vytvoriť nové vlastné pole - no_results_title_text: Momentálne nie sú k dispozícií žiadne vlastné polia. text_add_new_custom_field: 'Ak chcete priradiť nové vlastné pole do projektu, je potrebné ich vytvoriť ako prvé. Následne je ich možné pridať v tomto projekte. ' @@ -2908,25 +3114,25 @@ sk: datetime: distance_in_words: about_x_hours: - one: okolo 1 hodiny - few: približne %{count} hodín - many: približne %{count} hodín - other: približne %{count} hodín + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: približne 1 mesiac - few: približne %{count} mesiace - many: približne %{count} mesiace - other: približne %{count} mesiace + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: okolo 1 roka - few: približne %{count} roky - many: približne %{count} roky - other: približne %{count} roky + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: skoro 1 rok - few: viac ako %{count} rokov - many: viac ako %{count} rokov - other: viac ako %{count} rokov + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: pol minúty less_than_x_minutes: one: menej než 1 minúta @@ -2934,62 +3140,62 @@ sk: many: menej než %{count} minút other: menej než %{count} minút less_than_x_seconds: - one: menej než 1 sekunda - few: menej než %{count} sekúnd - many: menej než %{count} sekúnd - other: menej než %{count} sekúnd + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: viac ako 1 rok - few: viac ako %{count} rokov - many: viac ako %{count} rokov - other: viac ako %{count} rokov + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: 1 deň - few: "%{count} dní" - many: "%{count} dní" - other: "%{count} dní" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 hodina - few: "%{count} hodiny" - many: "%{count} hodiny" - other: "%{count} hodiny" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" few: "%{count} hrs" many: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: 1 minúta - few: "%{count} minút" - many: "%{count} minút" - other: "%{count} minút" + one: "%{count} minute" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" few: "%{count} mins" many: "%{count} mins" other: "%{count} mins" x_months: - one: 1 mesiac - few: "%{count} mesiacov" - many: "%{count} mesiacov" - other: "%{count} mesiacov" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekunda - few: "%{count} sekúnd" - many: "%{count} sekúnd" - other: "%{count} sekúnd" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" many: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" few: "%{count} weeks" many: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" few: "%{count} years" many: "%{count} years" other: "%{count} years" @@ -3148,7 +3354,7 @@ sk: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" many: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" @@ -3492,9 +3698,166 @@ sk: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3519,6 +3882,8 @@ sk: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3544,6 +3909,10 @@ sk: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3561,7 +3930,7 @@ sk: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3570,7 +3939,7 @@ sk: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3595,6 +3964,31 @@ sk: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3631,8 +4025,10 @@ sk: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3682,6 +4078,7 @@ sk: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3834,10 +4231,10 @@ sk: label_copy_target: Cieľ label_copy_workflow_from: Kopírovať pracovný postup z label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Základná verzia label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Aktuálny stav label_current_version: Aktuálna verzia label_custom_comment: "%{name} comment" @@ -3861,8 +4258,6 @@ sk: label_custom_field_default_type: Prázdny typ label_custom_field_new: Nové vlastné pole label_custom_field_plural: Vlastné polia - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Návrh label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3871,11 +4266,12 @@ sk: label_database_version: PostgreSQL version label_date: Dátum label_date_and_time: Dátum a čas - label_date_format: Formát dátumu + label_date_and_time_formats: Date and time formats label_date_from: Od label_date_from_to: Od %{start} do %{end} label_date_to: Do label_dates: Dátumy + label_day: Deň label_day_plural: dní label_default: Predvolený label_defaults: Defaults @@ -3886,6 +4282,7 @@ sk: label_deleted_custom_field: "(odstrániť vlastné pole)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3956,6 +4353,7 @@ sk: label_float: Plávajúce (float) label_folder: Priečinok label_follows: nasleduje + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nová diskusia label_forum_plural: Diskusie @@ -3974,6 +4372,7 @@ sk: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Skupina + label_group_attributes_plural: Group attributes label_group_by: Zoskupiť podľa label_group_named: Skupina %{name} label_group_new: Nová skupina @@ -4025,8 +4424,8 @@ sk: label_journal_diff: Porovnanie popisu label_jump_to_a_project: Skok do projektu... label_keyword_plural: Kľúčové slová + label_label_plural: Labels label_language: Jazyk - label_language_based: Založené na jazyku používateľa label_languages: Languages label_last_activity: Posledná aktivita label_last_change_on: Posledná zmena @@ -4048,6 +4447,7 @@ sk: label_list: Zoznam label_loading: Načítava sa... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Zamknúť užívateľa label_locked: zamknuté label_logged_as: Prihlásený ako @@ -4059,6 +4459,7 @@ sk: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Úložiská spravované %{vendor} label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximálna veľkosť label_me: mňa label_member_all_admin: "(All roles due to admin status)" @@ -4077,7 +4478,6 @@ sk: label_menu_item_name: Názov položky ponuky label_message: Správa label_message_last: Posledná správa - label_message_new: Nová správa label_message_plural: Správy label_message_posted: Správu pridal label_minute_plural: minúty @@ -4089,6 +4489,7 @@ sk: label_module_plural: Moduly label_modules: Moduly label_modules_and_plugins: Moduly a Pluginy + label_month: Mesiac label_months_from: mesiacov od label_more: Viac label_more_information: Viac informácií @@ -4102,6 +4503,7 @@ sk: label_my_avatar: My avatar label_my_queries: Moje vlastné dopyty label_my_security: Security + label_my_time: My time label_name: Názov label_never: Nikdy label_new: Nový @@ -4116,7 +4518,10 @@ sk: label_news_singular: Novinky label_news_view_all: Zobraziť všetky novinky label_next: Ďalšie + label_next_day: Next day + label_next_month: Next month label_next_week: Budúci týždeň + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Bez zmeny)" label_no_data: Žiadne dáta na zobrazenie @@ -4124,6 +4529,7 @@ sk: label_no_parent_group: "(No parent group)" label_no_parent_page: Žiadna nadradená stránka label_no_start_date: žiadny dátum začatia + label_no_time: No time tracked label_nobody: nikto label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4190,7 +4596,10 @@ sk: label_preview: Náhľad label_preview_not_available: Preview not available label_previous: Predošlý + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Predchádzajúci týždeň + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " alebo pozvať nových užívateľov prostredníctvom e-mailu" label_principal_search: Pridanie existujúcich užívateľov alebo skupín @@ -4309,6 +4718,7 @@ sk: label_sort_lowest: Preunúť naspodok label_sorted_by: zoradené podľa %{value} label_spent_time: Strávený čas + label_stack: Stack label_start_to_end: od začiatku do konca label_start_to_start: od začiatku do začiatku label_starts_with: starts with @@ -4328,6 +4738,7 @@ sk: label_subtask_plural: Podúlohy label_summary: Zhrnutie label_system: Systém + label_system_or_language_default: Use system or language based default label_system_settings: Nastavenia systému label_system_storage: Informácie o úložišti label_table_of_contents: Obsah @@ -4342,6 +4753,7 @@ sk: label_time: Čas label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Strávený čas + label_timer_since: Started at %{time} label_title: Nadpis label_today: dnes label_today_as_date: Select today as date. @@ -4377,7 +4789,9 @@ sk: label_user_search: Hľadať používateľa label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: Nová verzia label_version_plural: Verzie @@ -4390,6 +4804,7 @@ sk: label_videos: Videá label_view_all_revisions: Zobraziť všetky revízie label_view_diff: Zobraziť rozdiely + label_view_mode_switcher: Change view label_view_revisions: Zobraziť revízie label_view_x: 'View: %{x}' label_watched_work_packages: Pozorované pracovné balíčky @@ -4413,6 +4828,8 @@ sk: label_wiki_start: Úvodná stránka label_wiki_toc: Obsah label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Pracovný balíček label_work_package_attachments: Prílohy pracovného balíčka @@ -4435,51 +4852,52 @@ sk: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 uzatvorený + one: "%{count} closed" other: "%{count} uzatvorených" zero: 0 closed label_x_comments: - one: 1 komentár + one: "%{count} comment" other: "%{count} komentárov" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" many: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" many: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 otvorený + one: "%{count} open" other: "%{count} otvorených" zero: 0 open label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projektov" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' many: 'Time off: %{count} working days' other: 'Time off: %{count} working days' @@ -4536,7 +4954,7 @@ sk: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4593,6 +5011,8 @@ sk: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4649,7 +5069,7 @@ sk: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. few: There are %{count} more work packages with notifications. many: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. @@ -4842,6 +5262,15 @@ sk: create_button: Vytvoriť dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Nepodarilo sa obnoviť prístupový token: %{error}' @@ -4855,10 +5284,26 @@ sk: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Akcia expiration: Expiruje @@ -5062,7 +5507,6 @@ sk: notice_principals_found_single: |- Bol nájdený jeden výsledok. Stlačením tlačidla TAB zobraziť. - notice_project_cannot_update_custom_fields: 'Dostupné vlastné polia projektu sa nedajú aktualizovať. Projekt je neplatný: %{errors}' notice_project_not_deleted: Projekt nebol odstránený. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5072,9 +5516,6 @@ sk: notice_successful_create: Úspešne vytvorené. notice_successful_delete: Úspešne zmazané. notice_successful_update: Úspešne aktualizované. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Existuje príliš veľa výsledkov. Upresnite vyhľadávanie zadaním názvu nového člena (alebo skupiny). @@ -5178,7 +5619,7 @@ sk: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. many: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5271,8 +5712,6 @@ sk: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5292,7 +5731,6 @@ sk: or: alebo rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5364,8 +5802,8 @@ sk: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5390,7 +5828,7 @@ sk: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentovanie noviniek permission_commit_access: Prístup do úložiska čítanie/zápis (commit) - permission_copy_projects: Kopírovať projekty + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5423,6 +5861,7 @@ sk: permission_export_projects: Export projects permission_export_work_packages: Export pracovných balíčkov permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5433,6 +5872,9 @@ sk: permission_manage_dashboards: Manage dashboards permission_manage_forums: Spravovať diskusie permission_manage_members: Spravovať členov + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Spravovať novinky permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5461,7 +5903,6 @@ sk: permission_save_bcf_queries: Save BCF queries permission_save_queries: Uložiť zobrazenia permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Vyberte moduly projektu permission_select_project_phases: Select project phases @@ -5495,6 +5936,16 @@ sk: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Pracovné balíčky môžu byť pridelené užívateľom a skupinám, ktoré majú v príslušnom projekte túto úlohu placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5516,7 +5967,7 @@ sk: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5527,7 +5978,7 @@ sk: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" few: "%{count} sub-items" many: "%{count} sub-items" other: "%{count} sub-items" @@ -5544,7 +5995,7 @@ sk: Je možné použiť na zvýraznenie pracovných balíčkov v tabuľke. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5556,7 +6007,7 @@ sk: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekt + one: "%{count} project" other: "%{count} projektov" zero: 0 projects destroy: @@ -5661,11 +6112,11 @@ sk: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5675,6 +6126,12 @@ sk: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Momentálne nie sú k dispozícii žiadne vlastné polia. forums: no_results_content_text: Vytvoriť nové fórum @@ -5771,18 +6228,18 @@ sk: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" many: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" many: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" many: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" @@ -5796,7 +6253,7 @@ sk: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Vytvoriť novú verziu - no_results_title_text: V súčasnosti neexistujú žiadne verzie projektu. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5804,15 +6261,27 @@ sk: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Aplikovať predkonfigurovaný filter configure_view: @@ -5841,7 +6310,7 @@ sk: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other few: and %{count} others many: and %{count} others other: and %{count} others @@ -5965,6 +6434,41 @@ sk: warnings: cannot_annotate: Tento súbor nie je možné komentovať. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + many: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5976,6 +6480,17 @@ sk: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -6080,7 +6595,7 @@ sk: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maximálny počet rozdielových riadkov na zobrazenie setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Automaticky zobraziť úlohy podprojektu v hlavnom projekte + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6195,6 +6710,7 @@ sk: setting_start_of_week: Týždeň začína dňom setting_sys_api_description: Webová služba pre správu úložiska umožňuje integráciu a autorizáciu používateľa na prístup k repozitárom. setting_sys_api_enabled: Povoliť webovú službu pre správu úložiska + setting_sys_api_key: API key setting_time_format: Čas setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6247,7 +6763,7 @@ sk: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6258,6 +6774,7 @@ sk: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6349,12 +6866,12 @@ sk: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6374,8 +6891,8 @@ sk: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6383,7 +6900,7 @@ sk: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6403,6 +6920,7 @@ sk: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6459,7 +6977,7 @@ sk: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6552,19 +7070,19 @@ sk:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Zatvorený - is_default: Predvolený is_readonly: Iba na čítanie + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Pridať nový stav no_results_title_text: Momentálne nie sú žiadne stavy pracovného balíka. + status_actions: Status actions support: array: sentence_connector: a skip_last_comma: nesprávny text_access_token_hint: Prístupové tokeny umožňujú udeliť externých aplikácií prístup k zdrojom v OpenProject. - text_accessibility_hint: Režim prístupnosti je určený pre používateľov, ktorí sú slepí, s pohyblivým postihnutím alebo majú zlý zrak. Na to sú zamerané špeciálne prvky. Upozorňujeme, že v tomto režime nie je modul Backlogs dostupný. text_analyze: 'Ďalej analyzovať: %{subject}' text_are_you_sure: Ste si istí? text_are_you_sure_continue: Are you sure you want to continue? @@ -6607,12 +7125,6 @@ sk: ' text_custom_field_possible_values_info: Každá hodnota na samostatný riadok - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6662,6 +7174,7 @@ sk: text_length_between: Dĺžka medzi %{min} až %{max} znakov. text_line_separated: Je povolené zadať viaceré hodnoty (každú hodnotu na samostatný riadok). text_load_default_configuration: Nahrať predvolenú konfiguráciu + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Neexistujú žiadne Prístupové Tokeny, ktoré môžu byť konfigurované. text_no_configuration_data: Roly, typy, pracovný balík stavy a pracovný postup zatiaľ neboli nakonfigurované. Doporučujeme načítať predvolenú konfiguráciu. Po je jnačítaní ju budete mať možnosť zmeniť podľa Vašich potrieb. text_no_notes: Neexistujú žiadne komentáre pre tento pracovný balíček. @@ -6763,6 +7276,70 @@ sk: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6772,14 +7349,40 @@ sk: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6788,8 +7391,10 @@ sk: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6818,21 +7423,21 @@ sk: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6849,6 +7454,8 @@ sk: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6870,6 +7477,14 @@ sk: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6879,12 +7494,14 @@ sk: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6898,12 +7515,12 @@ sk: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6916,10 +7533,12 @@ sk: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projekty + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6934,47 +7553,17 @@ sk: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - many: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - many: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6982,6 +7571,9 @@ sk: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6990,13 +7582,14 @@ sk: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7010,12 +7603,16 @@ sk: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7024,27 +7621,58 @@ sk: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Vytvoriť nový typ no_results_title_text: Momentálne neexistujú žiadne typy. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" many: "%{count} project-specific variants" other: "%{count} project-specific variants" @@ -7052,7 +7680,21 @@ sk: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignorovať toto upozornenie. message: Na tejto stránke môžete naraziť na chyby a neúplné/znehodnotené skúseností. @@ -7071,10 +7713,10 @@ sk: authorization_rejected: Nemôžete sa prihlásiť. blocked: dočasne zablokovať blocked_num_failed_logins: - one: dočasne zamknuté (jeden neúspešný pokus o prihlásenie) - few: dočasne zamknuté (%{count} neúspešných pokusov o prihlásenie) - many: dočasne zamknuté (%{count} neúspešných pokusov o prihlásenie) - other: dočasne zamknuté (%{count} neúspešných pokusov o prihlásenie) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Chystáte sa zmeniť stav "%{name}". Naozaj chcete pokračovať? deleted: Odstránený používateľ department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7174,7 +7816,7 @@ sk: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expiruje - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Posledné prihlásenie may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7234,7 +7876,7 @@ sk: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" many: "%{count} working days" other: "%{count} working days" @@ -7243,6 +7885,12 @@ sk: version_status_locked: zamknuté version_status_open: otvorené versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Momentálne nie sú priradené žiadne pracovné balíky k tejto verzii. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7412,12 +8060,14 @@ sk: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Nasledujúce pracovné balíčky sa nepodarilo uložiť:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. many: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. @@ -7444,23 +8094,23 @@ sk: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7520,26 +8170,172 @@ sk: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7571,26 +8367,27 @@ sk: version: no_results_title_text: V súčasnosti nie sú k dispozícii žiadne verzie. x_descendants: - one: Podradený pracovný balíček - few: "%{count} podradené pracovné balíčky" - many: "%{count} podradené pracovné balíčky" - other: "%{count} podradené pracovné balíčky" + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7598,16 +8395,31 @@ sk: few: Successfully copied workflow to %{count} roles. many: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - many: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7616,12 +8428,100 @@ sk: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/sl.seeders.yml b/config/locales/crowdin/sl.seeders.yml index d82f2ac946ef..adc0c3371ba0 100644 --- a/config/locales/crowdin/sl.seeders.yml +++ b/config/locales/crowdin/sl.seeders.yml @@ -250,70 +250,26 @@ sl: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Zaostanki produkta + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ sl: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 80f5f44490ae..c5b83eadc955 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -40,7 +40,9 @@ sl: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Izbriši račun delete_confirmation: Ali ste prepričani da želite izbrisati ia račun ? deletion_info: @@ -65,7 +67,9 @@ sl: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: ali se pa prijavite z obstoječim računom. + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Prosim aktivirajte svoj račun @@ -118,6 +122,8 @@ sl: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ sl: repository: Repozitorij comment: commented: Komentar - custom_action: - actions: Akcije custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ sl: uid: ID odjemalca emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Token podpore za podjetja @@ -179,20 +184,44 @@ sl: company: Podjetje favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Število stolpcev page: Stran row_count: Število vrstic widgets: Gradniki group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ sl: title: Title member: blocked: Blocked + principal_type: Member type roles: Vloge notification: read_ian: Read in-app @@ -235,6 +265,7 @@ sl: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ sl: ongoing: Ongoing spent_on: Datum type: Vrsta + token/base: + expires_on: Expiration date token/ical: calendar: Koledar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ sl: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Aministrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Soglasje ob current_password: Trenutno geslo department: Department @@ -410,7 +441,7 @@ sl: last_name: Priimek ldap_auth_source: LDAP povezava new_password: Novo geslo - password_confirmation: Potrditev + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ sl: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ sl: header_look_and_feel: Look and feel impaired: Dostopnost increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Časovni pas warn_on_leaving_unsaved: Opozori me, kadar zapuščam stran z neshranjenim besedilom workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ sl: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Nadrejeni @@ -519,6 +565,10 @@ sl: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: mora biti sprejeto. @@ -590,6 +640,8 @@ sl: regex_invalid: ni bilo mogoče potrditi s pripadajočim stalnim izrazom. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: mora biti manjše ali enako največji dolžini. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ sl: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: 'je napačna dolžina (mora biti %{count} znakov). ' models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -674,6 +730,16 @@ sl: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: končna vrednost mora biti večja od začetne vrednosti. outside: je zunaj omrežja. @@ -691,6 +757,13 @@ sl: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -746,7 +819,6 @@ sl: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'delovni paketi še vedno uporabljajo: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -861,42 +933,26 @@ sl: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -910,12 +966,10 @@ sl: numeric: številke (npr. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: 'je biol uporabljeno že prej. Izberite tistega, ki je drugačen od vašega zadnjega. - - ' - two: je bilo uporabljeno že prej. Izberite tiste, ki so drugačni od vašega zadnjega %{count}. - few: je bilo uporabljeno že prej. Izberite tiste, ki so drugačni od vašega zadnjega %{count}. - other: je bilo uporabljeno že prej. Izberite tiste, ki so drugačni od vašega zadnjega %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + two: has been used before. Please choose one that is different from your last %{count}. + few: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: posebno (npr. '%') uppercase: velika črka (npr. "A") password_confirmation: @@ -984,6 +1038,8 @@ sl: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: 'ne more biti v drugem projektu. @@ -1013,6 +1069,8 @@ sl: status_id: status_invalid_in_type: je neveljavne, ker trenuten status ne obstaja v tem tipu. status_transition_invalid: je neveljaven, ker ne obstaja veljavna transakcija iz starega v nov status za trenutne uporabnikove vloge. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: ne more biti mejnik, ker ima ta delovni paket otroke. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1021,10 +1079,10 @@ sl: template: body: 'Preverite naslednja polja:' header: - one: 1 napaka je preprečila shranjevanje %{model} - two: "%{count} napak je preprečilo shranjevanje %{model}" - few: "%{count} napak je preprečilo shranjevanje %{model}" - other: "%{count} napak je preprečilo shranjevanje %{model}" + one: "%{count} error prohibited this %{model} from being saved" + two: "%{count} errors prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1086,6 +1144,11 @@ sl: two: Authentication providers few: Authentication providers other: Authentication providers + automation: + one: Automation + two: Automations + few: Automations + other: Automations backup: one: Backup two: Backups @@ -1121,11 +1184,6 @@ sl: two: Comments few: Comments other: Comments - custom_action: - one: Custom action - two: Custom actions - few: Custom actions - other: Custom actions custom_field: one: Custom field two: Custom fields @@ -1201,6 +1259,11 @@ sl: two: Export settings few: Export settings other: Export settings + form_configuration: + one: Form + two: Forms + few: Forms + other: Forms forum: one: Forum two: Forums @@ -1231,6 +1294,11 @@ sl: two: Priorities few: Priorities other: Priorities + label: + one: Label + two: Labels + few: Labels + other: Labels ldap_auth_source: one: LDAP connection two: LDAP connections @@ -1623,7 +1691,28 @@ sl: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1656,9 +1745,11 @@ sl: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: 'Sprememba teme bo nadomestilo vaš slog po meri. Oblikovanje bo tako izgubljeno. Ali ste prepričani, da bi radi nadaljevali? - - ' + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Rezerviraj @@ -1691,7 +1782,7 @@ sl: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1699,12 +1790,15 @@ sl: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1737,16 +1831,30 @@ sl: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1850,37 +1958,37 @@ sl: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" two: "%{count} issues" few: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" two: "%{count} jobs" few: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" two: "%{count} projects" few: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" two: "%{count} statuses" few: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" two: "%{count} types" few: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" two: "%{count} users" few: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" few: "%{count} work packages" other: "%{count} work packages" @@ -1948,7 +2056,7 @@ sl: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" two: "%{count} projects selected as scope" few: "%{count} projects selected as scope" other: "%{count} projects selected as scope" @@ -2015,23 +2123,55 @@ sl: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + two: "%{count} work packages" + few: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -2062,6 +2202,18 @@ sl: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -2075,7 +2227,7 @@ sl: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. two: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. @@ -2206,7 +2358,7 @@ sl: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" two: "... %{count} more projects" few: "... %{count} more projects" other: "... %{count} more projects" @@ -2249,7 +2401,7 @@ sl: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2284,15 +2436,22 @@ sl: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" two: "%{count} roles selected" few: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2302,7 +2461,7 @@ sl: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? two: Remove %{count} statuses? few: Remove %{count} statuses? other: Remove %{count} statuses? @@ -2317,7 +2476,31 @@ sl: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: trenutno prikazano is_inactive: trenutno ni prikazano show_until: Prikaži dokler @@ -2325,7 +2508,7 @@ sl: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2383,10 +2566,6 @@ sl: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: Navedeni kontekst ni povezava do vira. - context_object_not_found: Ni mogoče najti vira kot konteksta. - unsupported_context: Navedeni vir ni podprt kot kontekst. unable_to_create_attachment: Priloge ni bilo mogoče ustvariti unable_to_create_attachment_permissions: Priloge ni bilo mogoče shraniti zaradi pomanjkanja dovoljenj datotečnega sistema user: @@ -2457,6 +2636,7 @@ sl: groups: Skupine hexcode: Šestnajstiška koda id: ID + inexistent: Inexistent is_default: Privzeta vrednost is_for_all: Za vse projekte issue: Delovni paket @@ -2507,6 +2687,7 @@ sl: updated_at: Posodobljeno updated_on: Posodobljeno uploader: Posodobitelj + url: URL user: Uporabnik username: Uporabniško ime value: vrednost @@ -2521,6 +2702,29 @@ sl: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Opravilo je bilo prekinjeno zaradi napake: %{message}' @@ -2649,6 +2853,7 @@ sl: button_set_reminder: Set reminder button_show: Pokaži button_sort: Razvrsti + button_stop_timer: Stop timer button_submit: Potrdi button_test: Preizkus button_unarchive: Odarhiviraj @@ -2715,9 +2920,9 @@ sl: text: failed: Projekta "%{source_project_name}" ni mogoče kopirati v projekt "%{target_project_name}". succeeded: Kopiran projekt "%{source_project_name}" v "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: En objekt tega tipa + one: "%{count} object of this type" other: "%{count} objekte tega tipa" zero: Ni objektov tega tipa create_portfolio: @@ -2755,13 +2960,9 @@ sl: plural: Dejanja po meri custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: Za vse projekte hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2782,7 +2983,7 @@ sl: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2847,16 +3048,17 @@ sl: is_enabled_globally: Omogočeno po vsem svetu multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Ustvarite novo uporabniško lastnost - no_results_title_text: Trenutno ni poslovnih procesov text_add_new_custom_field: 'Če želite projektu dodati nova polja po meri, jih morate najprej ustvariti, preden jih lahko dodate v ta projekt. ' @@ -2911,8 +3113,8 @@ sl: - avgust - september - oktober - - november - - december + - November + - December order: - :leto - :mesec @@ -2920,25 +3122,25 @@ sl: datetime: distance_in_words: about_x_hours: - one: približno 1 uro - two: približno %{count} ur - few: približno %{count} ur - other: približno %{count} ur + one: about %{count} hour + two: about %{count} hours + few: about %{count} hours + other: about %{count} hours about_x_months: - one: približno 1 mesec - two: približno %{count} mesecev - few: približno %{count} mesecev - other: približno %{count} mesecev + one: about %{count} month + two: about %{count} months + few: about %{count} months + other: about %{count} months about_x_years: - one: približno 1 leto - two: približno %{count} let - few: približno %{count} let - other: približno %{count} let + one: about %{count} year + two: about %{count} years + few: about %{count} years + other: about %{count} years almost_x_years: - one: 'skoraj 1 leto ' - two: skoraj %{count} let - few: skoraj %{count} let - other: skoraj %{count} let + one: almost %{count} year + two: almost %{count} years + few: almost %{count} years + other: almost %{count} years half_a_minute: pol minute less_than_x_minutes: one: " manj kot minuto" @@ -2946,62 +3148,62 @@ sl: few: manj kot %{count} minut other: manj kot %{count} minut less_than_x_seconds: - one: manj kot 1 sekunda - two: manj kot %{count} sekund - few: manj kot %{count} sekund - other: manj kot %{count} sekund + one: less than %{count} second + two: less than %{count} seconds + few: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: več kot 1 leto - two: več kot %{count} let - few: več kot %{count} let - other: več kot %{count} let + one: over %{count} year + two: over %{count} years + few: over %{count} years + other: over %{count} years x_days: - one: 1 dan - two: "%{count} dni" - few: "%{count} dni" - other: "%{count} dni" + one: "%{count} day" + two: "%{count} days" + few: "%{count} days" + other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" two: "%{count} hours" few: "%{count} hours" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" two: "%{count} hrs" few: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: 1 minuta - two: "%{count} minut" - few: "%{count} minut" - other: "%{count} minut" + one: "%{count} minute" + two: "%{count} minutes" + few: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" two: "%{count} mins" few: "%{count} mins" other: "%{count} mins" x_months: - one: 1 mesec - two: "%{count} mesecov" - few: "%{count} mesecov" - other: "%{count} mesecov" + one: "%{count} month" + two: "%{count} months" + few: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 sekunda - two: "%{count} sekund" - few: "%{count} sekund" - other: "%{count} sekund" + one: "%{count} second" + two: "%{count} seconds" + few: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" two: "%{count} s" few: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" two: "%{count} weeks" few: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" two: "%{count} years" few: "%{count} years" other: "%{count} years" @@ -3162,7 +3364,7 @@ sl: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" two: "%{count} days left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" @@ -3510,9 +3712,166 @@ sl: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + two: "%{count} types" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + two: "%{count} variants" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + two: This form is used by %{count} types. Changes apply to all of them. + few: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + two: This form is used by %{count} types and variants. Changes apply to all of them. + few: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Trenutno ni nobenih objav za forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + two: 'Accepted solutions:' + few: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + two: Load previous %{count} replies + few: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + two: "%{count} participants" + few: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3537,6 +3896,8 @@ sl: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3562,6 +3923,10 @@ sl: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3579,7 +3944,7 @@ sl: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3588,7 +3953,7 @@ sl: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Objavite ta pogled in drugim uporabnikom omogočite dostop do vašega pogleda. Uporabniki z dovoljenjem »Upravljanje javnih pogledov« lahko spremenijo ali odstranijo javno poizvedbo. To v tem pogledu ne vpliva na vidnost rezultatov delovnega paketa in uporabniki lahko glede na svoja dovoljenja vidijo različne rezultate. homescreen: @@ -3613,6 +3978,31 @@ sl: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Preberite o novih funkcijah in posodobitvah izdelka. learn_about: Learn more about all new features @@ -3649,8 +4039,10 @@ sl: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3700,6 +4092,7 @@ sl: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3852,10 +4245,10 @@ sl: label_copy_target: Cilj label_copy_workflow_from: Kopiraj potek dela iz label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Osnovna različica label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Trenutno stanje label_current_version: Trenutna različica label_custom_comment: "%{name} comment" @@ -3879,8 +4272,6 @@ sl: label_custom_field_default_type: Prazen tip label_custom_field_new: Novo polje po meri label_custom_field_plural: Polja po meri - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Oblika label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3889,11 +4280,12 @@ sl: label_database_version: PostgreSQL verzija label_date: Datum label_date_and_time: Datum in ura - label_date_format: Format datuma + label_date_and_time_formats: Date and time formats label_date_from: Od label_date_from_to: Od %{start} do %{end} label_date_to: Do/za label_dates: Datumi + label_day: Dan label_day_plural: dnevi label_default: Privzeto label_defaults: Defaults @@ -3904,6 +4296,7 @@ sl: label_deleted_custom_field: "(izbrisano polje po meri)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(izbrisana možnost)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3974,6 +4367,7 @@ sl: label_float: Lebdeti label_folder: Mapa label_follows: Sledi + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: Nov forum label_forum_plural: Forumi @@ -3992,6 +4386,7 @@ sl: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Skupina + label_group_attributes_plural: Group attributes label_group_by: Razvrsti po label_group_named: Skupina %{name} label_group_new: Nova skupina @@ -4043,8 +4438,8 @@ sl: label_journal_diff: Opisna Primerjava label_jump_to_a_project: Skoči na projekt... label_keyword_plural: Ključne besede + label_label_plural: Labels label_language: Jezik - label_language_based: Glede na uporabnikov jezik label_languages: Languages label_last_activity: Zadnja aktivnost label_last_change_on: Zadnje spremembe @@ -4066,6 +4461,7 @@ sl: label_list: Seznam label_loading: Nalaganje... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Zakleni uporabnika label_locked: zaklenjeno label_logged_as: Prijavljen(a) kot @@ -4077,6 +4473,7 @@ sl: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Upravljana %{vendor} skladišča label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Največja velikost label_me: jaz label_member_all_admin: "(Vse vloge zaradi statusa skrbnika)" @@ -4095,7 +4492,6 @@ sl: label_menu_item_name: Ime postavke menija label_message: Sporočilo label_message_last: Zadnje sporočilo - label_message_new: Novo sporočilo label_message_plural: Sporočila label_message_posted: Sporočilo izbrisano label_minute_plural: minute @@ -4107,6 +4503,7 @@ sl: label_module_plural: Moduli label_modules: Moduli label_modules_and_plugins: Moduli in vtičniki + label_month: Mesec label_months_from: mesecev od label_more: več label_more_information: Več informacij @@ -4120,6 +4517,7 @@ sl: label_my_avatar: My avatar label_my_queries: Moje poizvedbe po meri label_my_security: Security + label_my_time: My time label_name: Ime label_never: Nikoli label_new: Novo @@ -4134,7 +4532,10 @@ sl: label_news_singular: Novice label_news_view_all: Poglej vse novice label_next: Naprej + label_next_day: Next day + label_next_month: Next month label_next_week: Naslednji teden + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(Ni spremembe)" label_no_data: Ni podatkov za prikaz @@ -4142,6 +4543,7 @@ sl: label_no_parent_group: "(No parent group)" label_no_parent_page: Brez matične strani label_no_start_date: Brez začetnega datuma + label_no_time: No time tracked label_nobody: nihče label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4208,7 +4610,10 @@ sl: label_preview: Predogled label_preview_not_available: Preview not available label_previous: Predhodnji + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Prejšnji teden + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: ali povabite nove uporabnike po e-pošti label_principal_search: Dodajte obstoječe uporabnike ali skupine @@ -4329,6 +4734,7 @@ sl: label_sort_lowest: Premakni na dno label_sorted_by: Razporejeno po %{value} label_spent_time: Porabljen čas + label_stack: Stack label_start_to_end: od začetka do konca label_start_to_start: od začetka do začetka label_starts_with: starts with @@ -4348,6 +4754,7 @@ sl: label_subtask_plural: Podnaloge label_summary: Povzetek label_system: Sistem + label_system_or_language_default: Use system or language based default label_system_settings: Sistemske nastavitve label_system_storage: Podatki o shranjevanju label_table_of_contents: Kazalo vsebine @@ -4362,6 +4769,7 @@ sl: label_time: Čas label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Porabljen čas + label_timer_since: Started at %{time} label_title: Naslov label_today: Danes label_today_as_date: Select today as date. @@ -4397,7 +4805,9 @@ sl: label_user_search: Išči uporabnika label_user_settings: Uporabniške nastavitve label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Uredi verzijo label_version_new: Nova različica label_version_plural: Različice @@ -4410,6 +4820,7 @@ sl: label_videos: Videi label_view_all_revisions: Poglej vse revizije label_view_diff: Preglej razlike + label_view_mode_switcher: Change view label_view_revisions: Poglej revizije label_view_x: 'View: %{x}' label_watched_work_packages: Ogledani delovni paket @@ -4433,6 +4844,8 @@ sl: label_wiki_start: Začetna stran label_wiki_toc: Kazalo vsebine label_wiki_toc_empty: 'Kazalo je prazno, ni naslovov. ' + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Delovni paket label_work_package_attachments: Priloge delovnega paketa @@ -4455,51 +4868,52 @@ sl: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 zaprt + one: "%{count} closed" other: "%{count} zaprtih" zero: 0 zaprtih label_x_comments: - one: 1 komentar + one: "%{count} comment" other: "%{count} komentarjev" zero: Ni komentarjev label_x_days: - one: 1 day + one: "%{count} day" two: "%{count} days" few: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" two: "%{count} items selected" few: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 odprt + one: "%{count} open" other: "%{count} odprtih" zero: 0 odprtih label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projektov" zero: Brez projektov label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" two: "%{count} working days" few: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' two: 'Time off: %{count} working days' few: 'Time off: %{count} working days' other: 'Time off: %{count} working days' @@ -4555,7 +4969,7 @@ sl: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4614,6 +5028,8 @@ sl: you_have: You have logo_alt_text: Logotip mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: V središče za obvestila @@ -4670,7 +5086,7 @@ sl: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. two: There are %{count} more work packages with notifications. few: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. @@ -4863,6 +5279,15 @@ sl: create_button: Ustvari dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + two: "%{count} days (%{date})" + few: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Neuspešna poenostavitev "dostopnega simbola": %{error}' @@ -4876,10 +5301,26 @@ sl: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Dejanje expiration: Poteče @@ -5085,7 +5526,6 @@ sl: notice_principals_found_single: |- Najden je en rezultat. Pritisnite tab, da ga prikaže. - notice_project_cannot_update_custom_fields: 'Projektnih dostopnih polj po meri ne morete posodobiti. Projekt je neveljaven: %{errors}' notice_project_not_deleted: Projekt ni bil izbrisan. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -5095,9 +5535,6 @@ sl: notice_successful_create: Ustvarjanje uspelo. notice_successful_delete: Uspešen izbris. notice_successful_update: Posodobitev uspela. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- Preveč je rezultatov. Zmanjšajte iskanje tako, da vtipkate ime novega člana (ali skupine). @@ -5207,7 +5644,7 @@ sl: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. two: Do you really want to remove this application? This will revoke %{count} tokens active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. @@ -5300,8 +5737,6 @@ sl: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5321,7 +5756,6 @@ sl: or: ali rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5393,8 +5827,8 @@ sl: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5419,7 +5853,7 @@ sl: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Komentiraj novice permission_commit_access: Beri/piši dostop do skladišča (storiti) - permission_copy_projects: Kopiraj projekte + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5452,6 +5886,7 @@ sl: permission_export_projects: Export projects permission_export_work_packages: Izvozi delovne pakete permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5462,6 +5897,9 @@ sl: permission_manage_dashboards: Manage dashboards permission_manage_forums: Uredi forume permission_manage_members: Urejanje članov + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Uredi novice permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5490,7 +5928,6 @@ sl: permission_save_bcf_queries: Save BCF queries permission_save_queries: Shrani poglede … permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Izberi module projekta permission_select_project_phases: Select project phases @@ -5524,6 +5961,16 @@ sl: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Delovni paketi se lahko dodelijo uporabnikom in skupinam, ki imajo to vlogo v posameznem projektu placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'Vsi pojavi nadomestnega uporabnika (npr., kot nosilec naloge, odgovorni ali druge vrednosti) bodo preneseni na račun imenovan "Izbrisan uporabnik". Podatki iz vsakega izbrisanega računa so preneseni na ta račun, zato ne bo možno razlikovati med podatki, ki jih je uporabnik ustvaril in podatki iz drugega izbirsanega računa. @@ -5545,7 +5992,7 @@ sl: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5556,7 +6003,7 @@ sl: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" two: "%{count} sub-items" few: "%{count} sub-items" other: "%{count} sub-items" @@ -5573,7 +6020,7 @@ sl: Lahko se uporablja za označevanje delovnih paketov v tabeli. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5585,7 +6032,7 @@ sl: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 projekt + one: "%{count} project" other: "%{count} projektov" zero: 0 projects destroy: @@ -5690,11 +6137,11 @@ sl: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5704,6 +6151,12 @@ sl: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Nobeno polje po meri trenutno ni na voljo. forums: no_results_content_text: Ustvari nov forum @@ -5800,18 +6253,18 @@ sl: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" two: "%{count} work packages" few: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" two: "%{count} work packages have a value" few: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" two: "%{count} work packages will use the new configuration" few: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" @@ -5825,7 +6278,7 @@ sl: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Ustvari novo različico - no_results_title_text: Trenutno ni nobene različice za projekt. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Graf delovnih paketov work_package_priorities: @@ -5833,15 +6286,27 @@ sl: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Uporabite predhodno konfiguriran filter configure_view: @@ -5870,7 +6335,7 @@ sl: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other two: and %{count} others few: and %{count} others other: and %{count} others @@ -5994,6 +6459,41 @@ sl: warnings: cannot_annotate: Te datoteke ni mogoče opomniti. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + two: "(Projects: %{projects})" + few: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + two: "(Projects: %{projects} and %{count} others)" + few: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + two: 'This role is still attributed to %{count} members:' + few: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + two: "%{count} users" + few: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -6005,6 +6505,17 @@ sl: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + two: "%{count} permissions" + few: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -6109,7 +6620,7 @@ sl: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Maksimalno število prikazanih vrstic različnosti setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Privzeto prikazuj delovne pakete podprojektov na glavnem projektu + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6228,6 +6739,7 @@ sl: setting_start_of_week: Teden se začne na (Automatic Translation) setting_sys_api_description: Spletna storitev za upravljanje skladišča nudi integracijo in pooblastilo uporabnika za dostop do repozitorija. setting_sys_api_enabled: Omogoči spletno storitev upravljanja repozitorija + setting_sys_api_key: API key setting_time_format: Čas setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6282,7 +6794,7 @@ sl: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6293,6 +6805,7 @@ sl: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6384,12 +6897,12 @@ sl: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6409,8 +6922,8 @@ sl: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6418,7 +6931,7 @@ sl: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6438,6 +6951,7 @@ sl: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6494,7 +7008,7 @@ sl: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6587,19 +7101,19 @@ sl:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Zaprto - is_default: Privzeto is_readonly: Samo za branje + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Dodaj nov status no_results_title_text: Trenutno ni statusov delovnega paketa. + status_actions: Status actions support: array: sentence_connector: in skip_last_comma: Napačno text_access_token_hint: Žetoni dostopa vam omogočajo, da zunanjim aplikacijam omogočite dostop do virov v OpenProjectu. - text_accessibility_hint: Način dostopnosti je zasnovan za uporabnike, ki so slepi, gibalno ovirani ali imajo slab vid. Pri slednjih so posebej poudarjeni osredotočeni elementi. Upoštevajte da Backlogs modul ni na voljo v tem načinu. text_analyze: 'Nadaljnja analiza: %{subject}' text_are_you_sure: Ste prepričani? text_are_you_sure_continue: Are you sure you want to continue? @@ -6642,12 +7156,6 @@ sl: ' text_custom_field_possible_values_info: Ena vrstica za vsako vrednost - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6697,6 +7205,7 @@ sl: text_length_between: Dolžina med %{min} in %{max} znakov. text_line_separated: Dovoljenih več vrednosti (ena vrstica za vsako vrednost). text_load_default_configuration: Naloži privzeto konfiguracijo + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Dostopnih žetonov ni mogoče konfigurirati. text_no_configuration_data: |- Vloge, vrste, statusi delovnega paketa in potek dela še niso konfigurirani. @@ -6804,6 +7313,70 @@ sl: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + two: "%{names} and %{count} more" + few: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6813,14 +7386,40 @@ sl: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6829,8 +7428,10 @@ sl: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6859,21 +7460,21 @@ sl: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6890,6 +7491,8 @@ sl: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6911,6 +7514,14 @@ sl: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6920,12 +7531,14 @@ sl: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6939,12 +7552,12 @@ sl: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6957,10 +7570,12 @@ sl: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projekti + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6975,47 +7590,17 @@ sl: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - two: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - two: "%{count} dependent types" - few: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -7023,6 +7608,9 @@ sl: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -7031,13 +7619,14 @@ sl: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -7051,12 +7640,16 @@ sl: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -7065,27 +7658,58 @@ sl: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + two: 'The type will be removed from %{count} projects:' + few: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Ustvarite novo vrsto no_results_title_text: Trenutno ni vrst. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" two: "%{count} project-specific variants" few: "%{count} project-specific variants" other: "%{count} project-specific variants" @@ -7093,7 +7717,21 @@ sl: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + two: "%{type} without %{fields} and %{count} more fields" + few: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: 'Ignorirajte to opozorilo. @@ -7118,10 +7756,10 @@ sl: authorization_rejected: Nimate dovoljenja za prijavo. blocked: začasno zaklenjeno blocked_num_failed_logins: - one: začasno zaklenjen (en neuspeli poskus prijave) - two: začasno zaklenjen (%{count} neuspelih poskusov prijave) - few: začasno zaklenjen (%{count} neuspelih poskusov prijave) - other: začasno zaklenjen (%{count} neuspelih poskusov prijave) + one: locked temporarily (%{count} failed login attempt) + two: locked temporarily (%{count} failed login attempts) + few: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Izbrisani uporabnik department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -7221,7 +7859,7 @@ sl: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Poteče - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7281,7 +7919,7 @@ sl: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" two: "%{count} working days" few: "%{count} working days" other: "%{count} working days" @@ -7290,6 +7928,12 @@ sl: version_status_locked: zaklenjeno version_status_open: odpri versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Za to različico trenutno ni opravil work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7459,12 +8103,14 @@ sl: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: Naslednjih delovnih paketov ni bilo mogoče shraniti deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. two: Successfully deleted %{count} work packages. few: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. @@ -7491,23 +8137,23 @@ sl: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. two: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. @@ -7567,26 +8213,172 @@ sl: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. two: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. two: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + two: "%{count} lines checked, no problems found" + few: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + two: View the %{count} imported work packages + few: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + two: "%{count} problems, all shown." + few: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + two: "%{count} lines" + few: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + two: "%{count} problems" + few: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7618,26 +8410,27 @@ sl: version: no_results_title_text: Trenutno ni na voljo nobene različice. x_descendants: - one: En padajoči delovni paket - two: "%{count} padajočih delovnega paketa" - few: "%{count} padajočih delovnega paketa" - other: "%{count} padajočih delovnega paketa" + one: "%{count} descendant work package" + two: "%{count} work package descendants" + few: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: @@ -7645,16 +8438,31 @@ sl: two: Successfully copied workflow to %{count} roles. few: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - two: Successfully copied workflow to %{count} types. - few: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + two: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7663,12 +8471,100 @@ sl: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + two: "%{count} projects" + few: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + two: "%{count} roles" + few: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + two: "%{count} types" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + two: "%{count} variants" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + two: This workflow is used by %{count} types. Changes apply to all of them. + few: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + two: This workflow is used by %{count} types and variants. Changes apply to all of them. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/sr.seeders.yml b/config/locales/crowdin/sr.seeders.yml index 8e3a36316970..412d20de46dc 100644 --- a/config/locales/crowdin/sr.seeders.yml +++ b/config/locales/crowdin/sr.seeders.yml @@ -250,70 +250,26 @@ sr: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Backlog proizvoda + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ sr: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/sr.yml b/config/locales/crowdin/sr.yml index 3c636bb59840..35bfb4c3f880 100644 --- a/config/locales/crowdin/sr.yml +++ b/config/locales/crowdin/sr.yml @@ -40,7 +40,9 @@ sr: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ sr: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ sr: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ sr: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ sr: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ sr: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ sr: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ sr: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ sr: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ sr: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ sr: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ sr: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ sr: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ sr: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ sr: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ sr: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ sr: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -673,6 +729,16 @@ sr: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -690,6 +756,13 @@ sr: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -745,7 +818,6 @@ sr: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -858,42 +930,26 @@ sr: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -907,7 +963,7 @@ sr: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. few: has been used before. Please choose one that is different from your last %{count}. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') @@ -978,6 +1034,8 @@ sr: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1005,6 +1063,8 @@ sr: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1013,7 +1073,7 @@ sr: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" few: "%{count} errors prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: @@ -1065,6 +1125,10 @@ sr: one: Authentication provider few: Authentication providers other: Authentication providers + automation: + one: Automation + few: Automations + other: Automations backup: one: Backup few: Backups @@ -1093,10 +1157,6 @@ sr: one: Comment few: Comments other: Comments - custom_action: - one: Custom action - few: Custom actions - other: Custom actions custom_field: one: Custom field few: Custom fields @@ -1157,6 +1217,10 @@ sr: one: Export setting few: Export settings other: Export settings + form_configuration: + one: Form + few: Forms + other: Forms forum: one: Forum few: Forums @@ -1181,6 +1245,10 @@ sr: one: Priority few: Priorities other: Priorities + label: + one: Label + few: Labels + other: Labels ldap_auth_source: one: LDAP connection few: LDAP connections @@ -1509,7 +1577,28 @@ sr: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1542,7 +1631,11 @@ sr: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1575,7 +1668,7 @@ sr: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1583,12 +1676,15 @@ sr: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1621,16 +1717,30 @@ sr: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1734,31 +1844,31 @@ sr: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" few: "%{count} issues" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" few: "%{count} jobs" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" few: "%{count} projects" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" few: "%{count} statuses" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" few: "%{count} types" other: "%{count} types" users: - one: 1 user + one: "%{count} user" few: "%{count} users" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" revert_dialog: @@ -1825,7 +1935,7 @@ sr: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" few: "%{count} projects selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. @@ -1891,23 +2001,54 @@ sr: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + few: "%{count} work packages" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1938,6 +2079,18 @@ sr: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1951,7 +2104,7 @@ sr: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? @@ -2081,7 +2234,7 @@ sr: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" few: "... %{count} more projects" other: "... %{count} more projects" banner: @@ -2123,7 +2276,7 @@ sr: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2157,14 +2310,21 @@ sr: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" few: "%{count} roles selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2174,7 +2334,7 @@ sr: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? few: Remove %{count} statuses? other: Remove %{count} statuses? title: Remove statuses @@ -2188,7 +2348,31 @@ sr: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2196,7 +2380,7 @@ sr: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2250,10 +2434,6 @@ sr: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2324,6 +2504,7 @@ sr: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2374,6 +2555,7 @@ sr: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2388,6 +2570,29 @@ sr: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2516,6 +2721,7 @@ sr: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2582,9 +2788,9 @@ sr: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2622,13 +2828,9 @@ sr: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2649,7 +2851,7 @@ sr: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2714,16 +2916,17 @@ sr: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2787,19 +2990,19 @@ sr: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour few: about %{count} hours other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month few: about %{count} months other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year few: about %{count} years other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year few: almost %{count} years other: almost %{count} years half_a_minute: half a minute @@ -2808,51 +3011,51 @@ sr: few: less than %{count} minutes other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second few: less than %{count} seconds other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year few: over %{count} years other: over %{count} years x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" few: "%{count} hours" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" few: "%{count} hrs" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" few: "%{count} minutes" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" few: "%{count} mins" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" few: "%{count} months" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" few: "%{count} seconds" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" few: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" few: "%{count} weeks" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" few: "%{count} years" other: "%{count} years" units: @@ -3007,7 +3210,7 @@ sr: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" few: "%{count} days left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: @@ -3350,9 +3553,158 @@ sr: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3377,6 +3729,8 @@ sr: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3402,6 +3756,10 @@ sr: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3417,7 +3775,7 @@ sr: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3426,7 +3784,7 @@ sr: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3451,6 +3809,31 @@ sr: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3487,8 +3870,10 @@ sr: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3538,6 +3923,7 @@ sr: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3690,10 +4076,10 @@ sr: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3717,8 +4103,6 @@ sr: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3727,11 +4111,12 @@ sr: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Dan label_day_plural: days label_default: Default label_defaults: Defaults @@ -3742,6 +4127,7 @@ sr: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3812,6 +4198,7 @@ sr: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3830,6 +4217,7 @@ sr: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3881,8 +4269,8 @@ sr: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3904,6 +4292,7 @@ sr: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3915,6 +4304,7 @@ sr: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3933,7 +4323,6 @@ sr: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3945,6 +4334,7 @@ sr: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3958,6 +4348,7 @@ sr: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3972,7 +4363,10 @@ sr: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3980,6 +4374,7 @@ sr: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -4046,7 +4441,10 @@ sr: label_preview: Prikaži label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4165,6 +4563,7 @@ sr: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4184,6 +4583,7 @@ sr: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4198,6 +4598,7 @@ sr: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4233,7 +4634,9 @@ sr: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Uredi verziju label_version_new: New version label_version_plural: Versions @@ -4246,6 +4649,7 @@ sr: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4269,6 +4673,8 @@ sr: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4291,48 +4697,49 @@ sr: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" few: "%{count} days" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" few: "%{count} items selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' few: 'Time off: %{count} working days' other: 'Time off: %{count} working days' label_yesterday: yesterday @@ -4388,7 +4795,7 @@ sr: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4445,6 +4852,8 @@ sr: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4501,7 +4910,7 @@ sr: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. few: There are %{count} more work packages with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser @@ -4687,6 +5096,14 @@ sr: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4700,10 +5117,26 @@ sr: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4905,7 +5338,6 @@ sr: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4915,9 +5347,6 @@ sr: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -5020,7 +5449,7 @@ sr: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. few: Do you really want to remove this application? This will revoke %{count} tokens active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. @@ -5112,8 +5541,6 @@ sr: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -5133,7 +5560,6 @@ sr: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5205,8 +5631,8 @@ sr: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5231,7 +5657,7 @@ sr: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5264,6 +5690,7 @@ sr: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5274,6 +5701,9 @@ sr: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5302,7 +5732,6 @@ sr: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5336,6 +5765,16 @@ sr: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5357,7 +5796,7 @@ sr: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5368,7 +5807,7 @@ sr: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" few: "%{count} sub-items" other: "%{count} sub-items" lists: @@ -5384,7 +5823,7 @@ sr: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5396,7 +5835,7 @@ sr: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5501,11 +5940,11 @@ sr: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5515,6 +5954,12 @@ sr: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5611,16 +6056,16 @@ sr: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" few: "%{count} work packages" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" few: "%{count} work packages have a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" few: "%{count} work packages will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. @@ -5633,7 +6078,7 @@ sr: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5641,15 +6086,27 @@ sr: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5678,7 +6135,7 @@ sr: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other few: and %{count} others other: and %{count} others and_user: and %{user} @@ -5801,6 +6258,36 @@ sr: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + few: "(Projects: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5812,6 +6299,16 @@ sr: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5916,7 +6413,7 @@ sr: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -6031,6 +6528,7 @@ sr: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -6083,7 +6581,7 @@ sr: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -6094,6 +6592,7 @@ sr: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6185,12 +6684,12 @@ sr: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6210,8 +6709,8 @@ sr: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6219,7 +6718,7 @@ sr: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6239,6 +6738,7 @@ sr: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6295,7 +6795,7 @@ sr: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6388,19 +6888,19 @@ sr:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Zatvoreno - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6443,12 +6943,6 @@ sr: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6498,6 +6992,7 @@ sr: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6603,6 +7098,69 @@ sr: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6612,14 +7170,40 @@ sr: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6628,8 +7212,10 @@ sr: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6658,21 +7244,21 @@ sr: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6689,6 +7275,8 @@ sr: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6710,6 +7298,14 @@ sr: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6719,12 +7315,14 @@ sr: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6738,12 +7336,12 @@ sr: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6756,10 +7354,12 @@ sr: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6774,45 +7374,17 @@ sr: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - few: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - few: "%{count} dependent types" - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6820,6 +7392,9 @@ sr: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6828,13 +7403,14 @@ sr: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6848,12 +7424,16 @@ sr: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6862,34 +7442,77 @@ sr: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" few: "%{count} project-specific variants" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6908,7 +7531,7 @@ sr: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) few: locked temporarily (%{count} failed login attempts) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? @@ -7010,7 +7633,7 @@ sr: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -7070,7 +7693,7 @@ sr: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" few: "%{count} working days" other: "%{count} working days" work_hours: Work hours @@ -7078,6 +7701,12 @@ sr: version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7247,12 +7876,14 @@ sr: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. few: Successfully deleted %{count} work packages. other: Successfully deleted %{count} work packages. descendant: descendant of selected @@ -7278,20 +7909,20 @@ sr: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: @@ -7350,22 +7981,163 @@ sr: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7397,40 +8169,56 @@ sr: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" few: "%{count} work package descendants" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. few: Successfully copied workflow to %{count} roles. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - few: Successfully copied workflow to %{count} types. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7439,12 +8227,94 @@ sr: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/sv.seeders.yml b/config/locales/crowdin/sv.seeders.yml index a4177041c6f2..60c171555b2b 100644 --- a/config/locales/crowdin/sv.seeders.yml +++ b/config/locales/crowdin/sv.seeders.yml @@ -250,70 +250,26 @@ sv: I den här modulen kan du kommunicera projektnyheter till dina teammedlemmar. versions: item_0: - name: Buggbacklogg - item_1: - name: Produktbacklogg - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Utgåva 1.0 content: | - ### Sprintplaneringsmöte - - _Dokumentera ämnen för sprintplaneringsmötet här_ - - * Tidsbegränsat (8 tim) - * Indata: Produktbacklogg - * Utdata: Sprintbacklogg - - * Uppdelat i ytterligare två tidsblock om 4 tim: - - * Produktägaren presenterar [Produktbackloggen]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) och prioriteringarna för teamet och förklarar sprintmålet, som teamet måste enas om. Tillsammans prioriterar de ämnen från produktbackloggen som teamet ska arbeta med under nästa sprint. Teamet förbinder sig till den diskuterade leveransen. - * Teamet planerar självständigt (utan produktägaren) i detalj och bryter ned uppgifterna från de diskuterade kraven för att sammanställa en [Sprintbacklogg]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Dagligt Scrum-möte - - _Dokumentera ämnen för det dagliga Scrum-mötet här_ - - * Kort, dagligt statusmöte för teamet. - * Tidsbegränsat (högst 15 min). - * Ståmöte för att diskutera följande ämnen från [uppgiftstavlan](##sprint:scrum_project__version__sprint_1). - * Vad planerar jag att göra till nästa Daily Scrum? - * Vad har hindrat mitt arbete (hinder)? - * Scrum Mastern modererar och antecknar [sprinthinder](##sprint:scrum_project__version__sprint_1). - * Produktägaren kan delta för att hålla sig informerad. + ### Utgåva 1.0 - ### Sprintgranskningsmöte + _Dokumentera här vad den här utgåvan innehåller._ - _Dokumentera ämnen för sprintgranskningsmötet här_ - - * Tidsbegränsat (4 tim). - * Högst en timmes förberedelsetid per person. - * Teamet visar produktägaren och andra intresserade vad som har uppnåtts under sprinten. - * Viktigt: inga attrapper och ingen PowerPoint! Endast färdig produktfunktionalitet (inkrement) ska demonstreras. - * Feedback från produktägaren, intressenter och andra är önskvärd och tas med i det fortsatta arbetet. - * Utifrån de demonstrerade funktionerna beslutar produktägaren om inkrementet ska tas i drift eller utvecklas vidare. Denna möjlighet ger tidig avkastning på investeringen. - - - ### Sprintretrospektiv - - _Dokumentera ämnen för sprintretrospektivet här_ - - * Tidsbegränsat (3 tim). - * Efter sprintgranskningen och modererat av Scrum Mastern. - * Teamet diskuterar sprinten: vad gick bra, vad behöver förbättras för att vara mer produktiva under nästa sprint eller till och med ha roligare. - item_3: - name: Sprint 2 + * Arbetspaketen i den här utgåvan är de som har målversion 1.0. + * Utgivningsdatumet är datumet för milstolpen *Utgåva v1.0*. + * Öppna [Färdplan]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) för att följa utvecklingen för alla versioner. + * Öppna [Projektinställningar → Versioner]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) för att koppla en annan wikisida till en version. categories: item_0: Kategori 1 (ändras i Projektinställningar) queries: item_0: name: Projektplan item_1: - name: Produktbacklog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Uppgifter boards: @@ -339,20 +295,21 @@ sv: options: name: Komma igång text: | - Vi är glada att du är med! Vi föreslår att du provar några saker för att komma igång med OpenProject. + Vad roligt att du är med! Vi föreslår att du provar några saker för att komma i gång med OpenProject. _Prova följande steg:_ 1. *Bjud in nya medlemmar till projektet*: → Gå till [Medlemmar]({{opSetting:base_url}}/projects/your-scrum-project/members) i projektnavigeringen. 2. *Visa produktbackloggen och sprintbackloggarna*: → Gå till [Backloggar]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) i projektnavigeringen. - 3. *Visa uppgiftstavlan*: → Gå till [Backloggar]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Klicka på högerpilen på sprinten → Välj [Uppgiftstavla](##sprint:scrum_project__version__sprint_1). - 4. *Skapa ett nytt arbetspaket*: → Gå till [Arbetspaket → Skapa]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Skapa och uppdatera en projektplan*: → Gå till [Projektplan](##query:scrum_project__query__project_plan) i projektnavigeringen. - 6. *Skapa en sprint-Wiki*: → Gå till [Backloggar]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) och öppna sprintens Wiki från rullgardinsmenyn till höger i sprinten. Du kan redigera [Wiki-mallen]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) efter behov. + 3. *Skapa en sprint*: → Gå till [Backloggar]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) och klicka på ”+ Sprint” för att skapa en ny sprint. Flytta arbetspaket från backloggen till sprinten för att planera arbetet. Klicka på ”Starta sprint” när du är redo. + 4. *Visa sprinttavlan*: → Gå till [Tavlor]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Öppna sprintens tavla genom att klicka på sprintens namn. + 5. *Skapa ett nytt arbetspaket*: → Gå till [Arbetspaket → Skapa]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Skapa och uppdatera en projektplan*: → Gå till [Projektplan](##query:scrum_project__query__project_plan) i projektnavigeringen. 7. *Aktivera fler moduler*: → Gå till [Projektinställningar → Moduler]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Här hittar du våra [användarguider](https://www.openproject.org/docs/user-guide/). - Kontakta oss om du har frågor eller behöver support: [support[at]openproject.com](mailto:support@openproject.com). + Hör av dig om du har frågor eller behöver hjälp. Kontakta oss: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Arbetspaket diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 397379575aa4..223d1b70aa3a 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -40,7 +40,9 @@ sv: view: En dynamisk länk till en vy som infogats med ett makro. work_package: En dynamisk länk till ett arbetspaket som infogats med ett makro. account: + already_have_an_account: You already have an account? auth_source_login_html: Logga in som %{login} för att aktivera ditt konto. + continue_with_provider: Continue with %{name} delete: Ta bort konto delete_confirmation: Är du säker du vill ta bort kontot? deletion_info: @@ -65,7 +67,9 @@ sv: error_self_registration_limited_provider: 'Användarregistreringen är begränsad för leverantören för enkel inloggning ”%{name}”. Be en administratör att aktivera kontot åt dig eller ändra begränsningen för självregistrering för den här leverantören. ' - login_with_auth_provider: eller logga in med ditt befintliga konto + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Fortsätt till inloggningen omniauth_direct_login_redirecting: Omdirigerar dig till din identitetsleverantör… omniauth_login: Vänligen logga in för att aktivera ditt konto. @@ -118,6 +122,8 @@ sv: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM-klienter + automation: + actions: Actions calculated_value_error: customized_id: Anpassat ID customized_type: Anpassad typ @@ -128,8 +134,6 @@ sv: repository: Versionsarkiv comment: commented: Kommenterade - custom_action: - actions: Åtgärder custom_field: admin_only: Endast för administratörer allow_non_open_versions: Tillåt versioner som inte är öppna @@ -168,6 +172,7 @@ sv: uid: Client ID emoji_reaction: reactable: Reagerade den + reaction: Reaction enterprise_token: active_user_count_restriction: Aktiva användare encoded_token: Enterprise support-nyckel @@ -179,20 +184,44 @@ sv: company: Företag favorite: favorited: Objekt + form_configuration: + attribute_groups: Formulär + description: Beskrivning + name: Namn + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Antal kolumner page: Sida row_count: Antal rader widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Gruppera användare identity_url: Identitets-URL organizational_unit: Organisationsenhet parent: Överordnad grupp group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organisationsenhet parent: Överordnad grupp import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Namn på Jira-instans personal_access_token: Personlig åtkomsttoken url: URL till Jira-instans @@ -223,6 +252,7 @@ sv: title: Titel member: blocked: Blockerad + principal_type: Medlemstyp roles: Roll notification: read_ian: Läst i appen @@ -235,6 +265,7 @@ sv: position: Position persisted_query: filters: Filter + group_bys: Gruppera resultat efter name: Namn orders: Sorteringar selects: Val @@ -367,6 +398,8 @@ sv: ongoing: Pågående spent_on: Datum type: Typ + token/base: + expires_on: Expiration date token/ical: calendar: Kalender ical_token_query_assignment: Tilldelning av fråga @@ -384,19 +417,17 @@ sv: type_variant: attribute_groups: Formulär default_work_package_description: Standardtext för beskrivning - defaults_source: Källa för standardvärden enabled_in_new_projects: Aktiv i nya projekt - form_configuration_source: Källa för formulär + linked_aspects: Ärvd konfiguration patterns: Mönster - pdf_export_source: Källa för PDF-export - project_attributes_source: Källa för projektattribut project_types: Projekt som använder den här varianten variant: Variant variant_name: Namn - workflows_source: Källa för arbetsflöden + workflow: Arbetsflöde user: admin: Administratör auth_source: Källa för autentisering + avatar_type: Avatar type consented_at: Samtyckte den current_password: Nuvarande lösenord department: Avdelning @@ -410,7 +441,7 @@ sv: last_name: Efternamn ldap_auth_source: LDAP-anslutning new_password: Nytt lösenord - password_confirmation: Bekräftelse + password_confirmation: Password confirmation user_custom_field: custom_field_section: Sektion user_non_working_time: @@ -419,11 +450,15 @@ sv: user_preference: auto_hide_popups: Dölj automatiskt framgångsbanners auto_hide_popups_caption: När detta är aktiverat försvinner de gröna framgångsbanderollerna automatiskt efter 5 sekunder. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Uppdatera varningar button_update_look_and_feel: Uppdatera utseende button_update_user_information: Uppdatera profil comments_sorting: Visa arbetspaketsaktivitet sorterad efter daily_reminders: Dagliga påminnelser + date_format: Date format disable_keyboard_shortcuts: Inaktivera kortkommandon dismissed_enterprise_banners: Dolda Enterprise-banderoller force_dark_theme_contrast: Tvinga hög kontrast i mörkt läge @@ -434,13 +469,23 @@ sv: header_look_and_feel: Utseende impaired: Tillgänglighetsläge increase_contrast: Öka kontrasten - increase_contrast_caption: Aktiverar högkontrastläge för det valda färgläget. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Öka temats kontrast mode_guideline: I vissa lägen skrivs anpassade temafärger över av tillgänglighets- och läsbarhetsskäl. Välj Light-läge för fullt stöd för anpassade teman. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Färgläge + time_format: Time format time_zone: Tidszon warn_on_leaving_unsaved: Varna mig när jag lämnar ett arbetspaket med osparade ändringar workdays: Arbetsdagar + user_resource: + description: Beskrivning + name: Namn + user_filter: Användarfilter + user_resource_detail: + description: Beskrivning + user_filter: Användarfilter user_working_hours: availability_factor: Tillgänglighetsfaktor days: Arbetsdagar @@ -491,6 +536,7 @@ sv: title: Arbetsdagar true: inkludera arbetsfria dagar journal_internal: Intern journal + labels: Etiketter notify: Avisera observed_in_versions: Observerad i versioner parent: Överordnad @@ -519,6 +565,10 @@ sv: work_package: Arbetspaket work_package_version: kind: Typ + workflow: + description: Beskrivning + name: Namn + type_variants: Typer och varianter som använder det här arbetsflödet errors: messages: accepted: måste accepteras. @@ -590,6 +640,8 @@ sv: regex_invalid: kunde inte valideras med det associerade reguljära uttrycket. regex_list_invalid: Raderna %{invalid_lines} kunde inte tolkas som reguljära uttryck. regex_match_failed: matchar inte det reguljära uttrycket %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: måste vara mindre än eller lika med maximal längd. smaller_than_or_equal_to_max_value: måste vara mindre än eller lika med det högsta värdet. ssrf_filtered: bryter mot SSRF-policyn för den här OpenProject-instansen. @@ -612,6 +664,10 @@ sv: user_in_ldap_managed_department: Den här användaren tillhör en avdelning som hanteras av LDAP-synkronisering och kan inte flyttas. wrong_length: har fel längd (måste vara %{count} tecken). models: + ai/text_transform_run: + attributes: + base: + not_available: Den här åtgärden är inte tillgänglig. attachment: attributes: content_type: @@ -672,6 +728,16 @@ sv: general_consent: Godkänn villkoren. favorite: already_favorited: har redan lagts till som favorit. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: slutvärdet måste vara större än startvärdet. outside: är utanför nätet. @@ -689,6 +755,13 @@ sv: not_unique: används redan. Välj ett annat namn. jira: invalid_protocol: Ange ett giltigt protokoll (http eller https) + label: + attributes: + name: + blank: Namnet får inte vara tomt. + format: "%{message}" + taken: En etikett med det här namnet finns redan. Välj ett annat namn. + too_long: Namnet är för långt (högst %{count} tecken). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ sv: types: cannot_assign_multiple_variants_of_parent: Endast en variant av en typ kan aktiveras i projektet cannot_assign_variant_and_parent: Det går inte att tilldela både en variant och dess överordnade variant - cannot_assign_variants_yet: Varianter kan ännu inte aktiveras i ett projekt. Aktivera funktionsflaggan för att prova varianter in_use_by_work_packages: 'används fortfarande av arbetspaket: %{types}' switch_target_blank: Välj varianten att byta till switch_target_identical: Måltypen måste skilja sig från den typ som projektet använder nu @@ -857,42 +929,26 @@ sv: blank: Ange ett tokennamn format: "%{message}" in_use: Tokennamnet används redan. Välj ett annat + type: + attributes: + base: + in_use_by_work_packages: Den här typen kan inte tas bort så länge arbetspaket använder den. type_variant: attributes: - attribute_groups: - attribute_unknown: Ogiltig attribut för arbetspaket används. - attribute_unknown_name: 'Ogiltigt attributet för arbetspaket används: %{attribute}' - duplicate_group: Namnet %{group} används redan. Gruppnamn måste vara unika. - group_without_name: Gruppnamnet får inte vara tomt. - query_invalid: 'Den inbäddade frågan ''%{group}'' är ogiltigt: %{details}' base: - borrowed_by_variants: Kan inte tas bort medan dess konfiguration återanvänds av %{names}. is_default_variant: Standardkonfigurationen för en typ kan inte tas bort. project_variants_not_allowed: Den här typen tillåter inte att varianter skapas i projekt. restrict_dependent_destroy: has_many: Kan inte tas bort medan projekt fortfarande använder den. - defaults_source_id: - must_be_available_to_the_variant: måste vara en konfiguration som det här projektet kan använda. - would_create_cycle: skulle länka dessa konfigurationer i en slinga. enabled_in_new_projects: not_available_to_project_owned_variant: kan inte anges för en variant som ägs av ett projekt. taken: är redan angivet för en annan konfiguration av den här typen. - form_configuration_source_id: - must_be_available_to_the_variant: måste vara en konfiguration som det här projektet kan använda. - would_create_cycle: skulle länka dessa konfigurationer i en slinga. patterns: invalid_tokens: Ett eller flera attribut i fältet är ogiltiga. Korrigera attributen innan du sparar. - pdf_export_source_id: - must_be_available_to_the_variant: måste vara en konfiguration som det här projektet kan använda. - would_create_cycle: skulle länka dessa konfigurationer i en slinga. - project_attributes_source_id: - must_be_available_to_the_variant: måste vara en konfiguration som det här projektet kan använda. - would_create_cycle: skulle länka dessa konfigurationer i en slinga. variant: must_belong_to_the_type: måste vara en variant av den här typen. - workflows_source_id: - must_be_available_to_the_variant: måste vara en konfiguration som det här projektet kan använda. - would_create_cycle: skulle länka dessa konfigurationer i en slinga. + workflow: + not_available_to_this_variant: måste vara ett arbetsflöde som det här projektet får använda. user: attributes: base: @@ -906,8 +962,8 @@ sv: numeric: numeriska (t.ex. ' 1') requirements_not_met: 'Måste innehålla tecken av följande typer: %{rules}' reused: - one: har använts förut. Var god välj en som är annorlunda jämfört med din senaste. - other: har använts förut. Var god välj en som är annorlunda jämfört med dina senaste %{count} stycken. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: specialtecken (t.ex. ' %') uppercase: versal (t.ex. "A") password_confirmation: @@ -976,6 +1032,8 @@ sv: identifier: must_not_be_changed: 'får inte ändras manuellt. Identifierare för arbetspaket tilldelas automatiskt och matchas via aliastabellen, så manuella ändringar bryter länkar och identifierarhistorik. Om ändringen är avsiktlig sparar du med `save(context: :%{context})` och ser till att tabellen work_package_semantic_aliases förblir konsekvent.' semantic_identifier_incomplete: och sequence_number måste båda anges samtidigt. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: kan inte vara i ett annat projekt. cannot_be_milestone: kan inte vara en milstolpe. @@ -1003,6 +1061,8 @@ sv: status_id: status_invalid_in_type: är ogiltig eftersom aktuell status inte existerar i den här typen. status_transition_invalid: är ogiltig eftersom det finns någon giltig övergång ifrån den gamla till nya statusen för den aktuella användarens roller. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: kan inte vara en milstolpe eftersom detta arbetspaket har barn. is_not_a_valid_target_for_time_entries: 'Arbetspaket #%{id} är inte ett giltigt mål för omfördelning av tidrapporterna.' @@ -1011,8 +1071,8 @@ sv: template: body: 'Kontrollera följande fält:' header: - one: 1 fel förhindrade denna %{model} från att sparas - other: "%{count} fel förhindrade denna %{model} från att sparas" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Åtgärd @@ -1050,6 +1110,9 @@ sv: auth_provider: one: Autentiseringsleverantör other: Autentiseringsleverantörer + automation: + one: Automation + other: Automations backup: one: Säkerhetskopia other: Säkerhetskopior @@ -1071,9 +1134,6 @@ sv: comment: one: Kommentar other: Kommentarer - custom_action: - one: Anpassad åtgärd - other: Anpassade åtgärder custom_field: one: Anpassat fält other: Anpassade fält @@ -1119,6 +1179,9 @@ sv: export_setting: one: Exportinställning other: Exportinställningar + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forum @@ -1137,6 +1200,9 @@ sv: issue_priority: one: Prioritet other: Prioriteter + label: + one: Label + other: Labels ldap_auth_source: one: LDAP-anslutning other: LDAP-anslutningar @@ -1401,7 +1467,28 @@ sv: admin: banners: environment_configured_readonly: Dessa värden är konfigurerade via miljövariabler och kan inte redigeras här. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Basfärger main_menu: Huvudmeny i sidofältet @@ -1434,7 +1521,11 @@ sv: tab_interface: Gränssnitt tab_pdf_export_font: Typsnitt för PDF-export tab_pdf_export_styles: Formatmallar för PDF-export - theme_warning: Ändra temat kommer att skriva över din egen stil. Designen kommer då att gå förlorad. Är du säker på att du vill fortsätta? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Ladda upp en supporttoken för Enterprise-utgåvan book_now: Boka nu @@ -1467,7 +1558,7 @@ sv: import: title: Importera info: - database_deprecation_html: 'Från och med OpenProject 16.0 krävs PostgreSQL 16 för att använda OpenProject. Installationen fortsätter att fungera med din nuvarande databas, men räkna med inkompatibilitet i framtida versioner.
Vi har tagit fram [uppgraderingsguider för alla installationsmetoder](upgrade_guide). Du kan när som helst uppgradera före nästa version genom att följa guiderna. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Minnesallokeraren Jemalloc @@ -1475,12 +1566,15 @@ sv: actions: button_edit: Redigera konfiguration button_open: Öppna körningar + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Hjälp oss att förbättra Jira Migrator med din feedback och privata datadonationer. Du kan [gå med i utvecklingscommunityn](link) för Jira Migrator. ' description: Jira Migrator är för närvarande i betaversion. Vi stöder för närvarande endast Jira Server/Data Center version 10.x och 11.x. Molninstanser stöds inte just nu. title: Beta – Prova! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Konfigurera en Jira-värd för att börja importera objekt från Jira till den här OpenProject-instansen. title: Inga Jira-värdar har konfigurerats ännu @@ -1513,16 +1607,30 @@ sv: description: Jira använder ärendeidentifierare som består av en projektnyckel och ett sekvensnummer (PRJ-123). OpenProject stöder också detta, men funktionen måste aktiveras [här](link). title: Projektbaserade semantiska identifierare måste vara aktiverade. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Lägg till konfiguration - button_delete_token: Ta bort token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Spara konfiguration - delete_token_confirm: Är du säker på att du vill ta bort token? Detta inaktiverar Jira-anslutningen. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Namn - personal_access_token: Personlig åtkomsttoken + personal_access_token: Personal access token (PAT) url: URL till Jira Server/Data Center label_testing: Testar konfigurationen... - test_configuration_caption: Du kan testa den här konfigurationen genom att [klicka här](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Redigera körning @@ -1626,26 +1734,26 @@ sv: title: Se till att du har en säkerhetskopia! parts: issues: - one: 1 ärende - other: "%{count} ärenden" + one: "%{count} issue" + other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 projekt - other: "%{count} projekt" + one: "%{count} project" + other: "%{count} projects" statuses: - one: 1 status - other: "%{count} statusar" + one: "%{count} status" + other: "%{count} statuses" types: - one: 1 typ - other: "%{count} typer" + one: "%{count} type" + other: "%{count} types" users: - one: 1 användare - other: "%{count} användare" + one: "%{count} user" + other: "%{count} users" work_packages: - one: 1 arbetspaket - other: "%{count} arbetspaket" + one: "%{count} work package" + other: "%{count} work packages" revert_dialog: confirm: Jag förstår att den här återställningen raderar data permanent description: Detta tar bort alla importerade objekt (inklusive hela projekt). @@ -1710,8 +1818,8 @@ sv: caption: Välj vad du vill importera till OpenProject caption_done: Slutförd caption_done_description: - one: 1 projekt valt som omfattning - other: "%{count} projekt valda som omfattning" + one: "%{count} project selected as scope" + other: "%{count} projects selected as scope" description: Välj vilka data du vill importera från de tillgängliga data som hämtats från Jira-värdinstansen. elements: custom_fields: En delmängd av anpassade fält @@ -1775,23 +1883,53 @@ sv: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira-API:t returnerade felstatus %{status}. Kontrollera URL:en till Jira-instansen och API-token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Anslutningsfel: %{message}' error: Ett oväntat fel inträffade när anslutningen testades failed: 'Anslutningen misslyckades: Det gick inte att hämta serverinformation' invalid_url: Ange en giltig URL - missing_credentials: Ange både URL och personlig åtkomsttoken för att testa anslutningen parse_error: Det gick inte att tolka svaret från servern. Servern kanske inte är en giltig Jira-instans. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Anslutningen till %{server} lyckades (version %{version}) - token_error: Ogiltig API-token. Kontrollera autentiseringsuppgifterna i konfigurationen. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira-migrerare - token_deleted: Token togs bort. user: unknown_name: Okänd journal_aggregation: caption_with_maximum: 'Användaråtgärder på ett arbetspaket (ändringar av beskrivning, status eller värden samt kommentarer) grupperas om de utförs inom den här perioden. Den styr även fördröjningar för aviseringar och [webhooks](webhook_link). Högsta värdet är %{max} minuter. ' + labels: + delete_dialog_component: + confirmation: Jag förstår att den här åtgärden inte kan ångras + description_html: Detta tar bort etiketten %{name} från alla arbetspaket i alla projekt. + heading: Ta bort den här etiketten? + title: Ta bort den här etiketten? + dialog_component: + create_title: Skapa etikett + rename_title: Byt namn på ”%{name}” + index: + description: Alla användare som kan redigera arbetspaket kan fritt märka dem med befintliga etiketter eller skapa nya direkt. Detta omfattar alla etiketter som användare har skapat i samtliga projekt. + row_component: + used_in_work_packages: + one: "%{count} arbetspaket" + other: "%{count} arbetspaket" + sub_header_component: + button_add: Etikett + label_add: Lägg till etikett + search_placeholder: Skriv här för att söka + table_component: + blank_slate: + description: Etiketter som användare skapar på arbetspaket visas här. + title: Inga etiketter ännu + headers: + name: Etikett + usage: Används i + no_matches: + description: Prova ett annat sökord. + title: Inga etiketter matchar sökningen mcp_configurations: index: description: Model Context Protocol gör det möjligt för AI-agenter att ge sina användare verktyg och resurser som exponeras av den här OpenProject-instansen. Funktionen är fortfarande i betaversion. @@ -1822,6 +1960,18 @@ sv: update: failure: MCP-konfigurationen kunde inte uppdateras. success: MCP-konfigurationen uppdaterades. + members: + index: + blank_description: Inget medlemskap matchar det aktuella filtret. + blank_title: Inga medlemskap + filter_label: Sök användare + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Medlemsskap + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Mer information finns på vår sida för integrationer och insticksmoduler. no_results_title_text: Det finns för närvarande inga installerade insticksmoduler. @@ -1835,8 +1985,8 @@ sv: confirm_button: Frigör identifierare description: Att frigöra den här projektidentifieraren kan inte ångras. Externa länkar och integrationer som använder den slutar fungera, och namnet blir tillgängligt för nya projekt. description_with_work_packages: - one: Att frigöra den här projektidentifieraren (och dess 1 arbetspaketsidentifierare) kan inte ångras. Externa länkar och integrationer som använder den slutar fungera, och namnet blir tillgängligt för nya projekt. - other: Att frigöra den här projektidentifieraren (och dess %{count} arbetspaketsidentifierare) kan inte ångras. Externa länkar och integrationer som använder den slutar fungera, och namnet blir tillgängligt för nya projekt. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Frigöra ”%{identifier}”? title: Frigör identifierare empty_body: När ett projekts identifierare ändras visas den föregående här så att du kan frigöra den när det är säkert att göra det. @@ -1964,8 +2114,8 @@ sv: error_unknown: Behöver granskas manuellt error_used_in_past: Reserverad i ett annat projekts identifierarhistorik remaining_projects: - one: "... 1 projekt till" - other: "... %{count} projekt till" + one: "... %{count} more project" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Befintliga identifierare för %{project_count} projekt uppfyller inte kraven för projektbaserade semantiska identifierare. OpenProject kan automatiskt uppdatera dem så att de blir giltiga, som i exemplen nedan. Klicka på ”Konvertera identifierare” för att uppdatera identifierarna för alla projekt på detta sätt och aktivera projektbaserade semantiska identifierare. @@ -2005,7 +2155,7 @@ sv: types_caption: Lägg till de arbetspaketstyper som åtgärden ska vara tillgänglig för. Alla tillgängliga varianter inkluderas automatiskt. usage_scope_caption: 'Du kan begränsa var åtgärden är synlig: överallt (inklusive kommentarer, wikier och anpassade fält), för alla arbetspaketstyper eller för vissa arbetspaketstyper.' index: - description: Åtgärder för textomvandling ger användarna LLM-drivna funktioner för att skriva, ordna och granska text överallt där rich text-redigeraren används, till exempel i arbetspaketsbeskrivningar, kommentarer och wikisidor. Du skapar nya åtgärder med egna promptar och instruktioner. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Åtgärd label_aria_add_action: Lägg till åtgärd för textomvandling index_component: @@ -2038,13 +2188,20 @@ sv: ignore: Ignorera ändringar save: Spara ändringar och fortsätt title: Spara ändringarna innan du fortsätter? + read_only: + edit_action: Redigera arbetsflöde + text_html: 'Du använder ett befintligt arbetsflöde. För att göra ändringar kan du antingen redigera det ursprungliga arbetsflödet eller klicka på + %{action} ovan för att skapa ett nytt. + + ' role_selector: label: 'Roll: %{role}' no_role: Välj roll roles: - one: En roll vald - other: "%{count} roller valda" + one: "%{count} role selected" + other: "%{count} roles selected" title: Välj roller + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Lägg till eller ta bort statusar som du vill koppla till den här typen. Om en status tas bort raderas även det arbetsflöde som är kopplat till den. @@ -2054,8 +2211,8 @@ sv: confirm: Ta bort description: Om dessa statusar tas bort blir de otillgängliga för den här typen och befintliga arbetsflöden raderas. Är du säker på att du vill fortsätta? heading: - one: Ta bort 1 status? - other: Ta bort %{count} statusar? + one: Remove %{count} status? + other: Remove %{count} statuses? title: Ta bort statusar tabs: always: Standardövergångar @@ -2067,7 +2224,31 @@ sv: assignee: Ytterligare övergångar som är tillgängliga för den som tilldelats arbetspaketet. author: Ytterligare övergångar som är tillgängliga för arbetspaketets författare. menu_label: Visade övergångar + workflow_button: Arbetsflöde + ai: + text_transform: + errors: + connection_failed: Det gick inte att nå AI-tjänsten. + not_available: AI-assistenten är inte tillgänglig. + timeout: AI-tjänsten svarade inte i tid. + upstream_error: AI-tjänsten returnerade ett fel. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: visas för tillfället is_inactive: visas ej för tillfället show_until: Visa fram till @@ -2075,7 +2256,7 @@ sv: deleted_by_admin: Filen ”%{filename}” i karantän har tagits bort av en administratör. deleted_message: Ett virus upptäcktes i filen ”%{filename}”. Filen har tagits bort. not_processed_yet_message: Nedladdning är blockerad eftersom filen ännu inte har virusskannats. Försök igen senare. - overridden_by_admin: Karantänen för filen ”%{filename}” har hävts av %{user}. Filen kan nu öppnas. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Behållare delete: Ta bort filen i karantän @@ -2129,10 +2310,6 @@ sv: not_found: reminder: Påminnelsen du söker kunde inte hittas eller har tagits bort. work_package: Arbetspaketet du söker kunde inte hittas eller har tagits bort. - render: - context_not_parsable: Kontexten som angavs är inte en länk till en resurs. - context_object_not_found: Kan inte hitta den angivna resursen som kontext. - unsupported_context: Resursen som angavs stöds inte som kontext. unable_to_create_attachment: Bilagan kunde inte skapas unable_to_create_attachment_permissions: Bilagan kunde inte sparas på grund av brist på filsystemsrättigheter user: @@ -2203,6 +2380,7 @@ sv: groups: Grupper hexcode: Hex-kod id: ID + inexistent: Inexistent is_default: Standardvärde is_for_all: För alla projekt issue: Arbetspaket @@ -2253,6 +2431,7 @@ sv: updated_at: Uppdaterat den updated_on: Uppdaterat den uploader: Uppladdare + url: URL user: Användare username: Användarnamn value: Värde @@ -2267,6 +2446,29 @@ sv: ' login_and_registration: Inloggning och registrering + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Jobbet avbröts på grund av fel: %{message}' @@ -2393,6 +2595,7 @@ sv: button_set_reminder: Ange påminnelse button_show: Visa button_sort: Sortera + button_stop_timer: Stoppa timer button_submit: Skicka button_test: Test button_unarchive: Hämta från Arkiv @@ -2459,9 +2662,9 @@ sv: text: failed: Kunde inte kopiera projekt "%{source_project_name}" till projektet "%{target_project_name}". succeeded: Kopierade projektet "%{source_project_name}" till "%{target_project_name}". - title: Kopiera projektet ”%{source_project_name}” + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Ett objekt av den här typen + one: "%{count} object of this type" other: "%{count} objekt av den här typen" zero: Inga objekt av den här typen create_portfolio: @@ -2499,13 +2702,9 @@ sv: plural: Anpassade åtgärder custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Det här anpassade fältet är aktiverat i alla projekt eftersom alternativet ”För alla projekt” är markerat. Det kan inte inaktiveras för enskilda projekt. - heading: För alla projekt hierarchy: subitems: - one: 1 underpost + one: "%{count} sub-item" other: "%{count} underposter" zero: inga underposter items: @@ -2526,7 +2725,7 @@ sv: short: Kort namn weight: Vikt notice: - remember_items_and_projects: Kom ihåg att ange poster och projekt på respektive flik för det här anpassade fältet. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Du kan automatiskt tilldela en viss projektroll till varje användare som tilldelas det här projektattributet, oavsett användarens ursprungliga roll i projektet. dialog: @@ -2591,16 +2790,17 @@ sv: is_enabled_globally: Är aktiverad globalt multi_value_more: other: och %{count} till + no_results_title_text: There are currently no custom fields. no_role_assigment: Ingen rolltilldelning + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Ett arbetspaket eller projekt måste väljas först reorder_alphabetical: Sortera om värden alfabetiskt reorder_confirmation: 'Varning: Den aktuella ordningen för tillgängliga värden och alla osparade värden går förlorade. Är du säker på att du vill fortsätta?' semantic_keys: job_title: Befattning none: Ingen - tab: - no_results_content_text: Skapa ett nytt anpassat fält - no_results_title_text: Det finns för närvarande inga anpassade fält. text_add_new_custom_field: 'Innan du kan lägga till nya anpassade fält till ett projekt måste du skapa dessa. ' @@ -2664,57 +2864,57 @@ sv: datetime: distance_in_words: about_x_hours: - one: ca 1 timme - other: ca %{count} timmar + one: about %{count} hour + other: about %{count} hours about_x_months: - one: ca 1 månad - other: ca %{count} månader + one: about %{count} month + other: about %{count} months about_x_years: - one: ca 1 år - other: ca %{count} år + one: about %{count} year + other: about %{count} years almost_x_years: - one: nästan ett år - other: nästan %{count} år + one: almost %{count} year + other: almost %{count} years half_a_minute: en halv minut less_than_x_minutes: one: mindre än 1 minut other: mindre än %{count} minuter less_than_x_seconds: - one: mindre än en sekund - other: mindre än %{count} sekunder + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: över ett år - other: över %{count} år + one: over %{count} year + other: over %{count} years x_days: - one: 1 dag - other: "%{count} dagar" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 timme - other: "%{count} timmar" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 tim - other: "%{count} tim" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: v minut - other: "%{count} minuter" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min - other: "%{count} min" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 månad - other: "%{count} månader" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: En sekund - other: "%{count} sekunder" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 vecka - other: "%{count} veckor" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 år - other: "%{count} år" + one: "%{count} year" + other: "%{count} years" units: day: one: dag @@ -2864,8 +3064,8 @@ sv: teaser: description_html: Du har tillgång till alla funktioner i %{trial_plan}. title: - one: En dag återstår av provperioden för %{trial_plan} - other: "%{count} dagar återstår av provperioden för %{trial_plan}" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Din Enterprise-provtoken har redan hämtats. Kontrollera din e-post efter meddelandet där token finns bifogad. Kontakta vårt supportteam om du behöver en ny. @@ -3204,9 +3404,150 @@ sv: selected: Vald include_sub_items: Inkludera underposter no_results_text: Inga resultat + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Det finns för närvarande inga inlägg i forumet. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "," general_csv_encoding: UTF-8 general_csv_separator: ";" @@ -3231,6 +3572,8 @@ sv: groups: edit: synchronized_groups: Synkroniserade grupper + form: + group_attributes: Group attributes index: description: Genom att gruppera användare kan du lägga till dem som medlemmar i samma projekt eller tilldela dem samma globala roller. memberships: @@ -3256,6 +3599,10 @@ sv: leave_project: Lämna projektet no_favorite_projects: Du har inga favoritprojekt. title: Projekt + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3269,7 +3616,7 @@ sv: summary: failure: Vissa kontroller misslyckades och systemet fungerar inte som förväntat. success: Alla anslutningar och system fungerar som förväntat. - warning: Vissa kontroller gav en varning. Det kan leda till oväntat beteende. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Misslyckades @@ -3278,7 +3625,7 @@ sv: warning: Varning help_texts: views: - favoured: Markera den här vyn som favorit och lägg till den i sidofältet med sparade vyer till vänster. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} är alltid kopplade till ett projekt. Här kan du bara välja projekt där modulen %{plural} är aktiv. När du har skapat en %{singular} kan du lägga till arbetspaket från andra projekt i den.\n" public: Publicera den här vyn så att andra användare kan komma åt den. Användare med behörigheten 'Hantera offentliga vyer' kan ändra eller ta bort offentliga frågor. Detta påverkar inte synligheten för arbetspaketsresultaten i vyn; beroende på sina behörigheter kan användare se olika resultat. homescreen: @@ -3303,6 +3650,31 @@ sv: line_6: Använd datumaviseringar i Community Edition. new_features_title: 'Versionen innehåller flera nya funktioner och förbättringar, bland annat: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Läs om nya funktioner och produktuppdateringar. learn_about: Läs mer om alla nya funktioner @@ -3339,8 +3711,10 @@ sv: journals: cause_descriptions: budget_deleted: Budgeten har tagits bort + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} ändrades (%{link})" + csv: from CSV deleted_with_diff: "%{field} togs bort (%{link})" field_changed: "%{field} ändrades från %{old_value} till %{new_value}" field_removed: "%{field} togs bort" @@ -3390,6 +3764,7 @@ sv: budget_deleted: Budgeten har tagits bort dates_changed: Datum ändrade default_attribute_written: Skrivskyddade attribut skrevs + forum_message_html: "Created from forum message %{message_information}" import: Importerad meeting_agenda_item_added_html: "Tillagd i möte %{meeting_title_information}" meeting_agenda_item_added_template_html: "Tillagd i %{meeting_title_information}" @@ -3542,10 +3917,10 @@ sv: label_copy_target: Mål label_copy_workflow_from: Kopiera arbetsflöde från label_copy_workflow_from_role: Kopiera till andra roller - label_copy_workflow_from_type: Kopiera till en annan typ label_core_build: Kärnbygge label_core_version: Kärnversion label_created_by: Skapad av %{user} + label_criteria: Kriterier label_current_status: Nuvarande status label_current_version: Aktuell version label_custom_comment: "%{name}-kommentar" @@ -3569,8 +3944,6 @@ sv: label_custom_field_default_type: Tom typ label_custom_field_new: Nytt anpassat fält label_custom_field_plural: Anpassade fält - label_custom_logo: Anpassad logotyp för dator - label_custom_logo_mobile: Anpassad logotyp för mobil label_custom_pdf_export_settings: Anpassade inställningar för PDF-export label_custom_style: Design label_custom_style_description: Välj hur OpenProject ska se ut för dig med teman, vilka standardfärger som ska användas i programmet och hur exporter ska se ut. @@ -3579,11 +3952,12 @@ sv: label_database_version: PostgreSQL-version label_date: Datum label_date_and_time: Datum och tid - label_date_format: Datumformat + label_date_and_time_formats: Date and time formats label_date_from: Från label_date_from_to: Från %{start} till %{end} label_date_to: Till label_dates: Datum + label_day: Dag label_day_plural: dagar label_default: Standard label_defaults: Standardvärden @@ -3594,6 +3968,7 @@ sv: label_deleted_custom_field: "(raderat anpassat fält)" label_deleted_custom_item: "(borttagen post)" label_deleted_custom_option: "(borttaget alternativ)" + label_deleted_label: "(deleted label)" label_deleted_version: "(borttagen version)" label_departments: Organisation label_departments_description_html: 'Definiera företagets struktur genom att skapa avdelningar och underavdelningar hierarkiskt. Det gör att du kan återspegla rapporteringsvägar och behålla en tydlig, strukturerad översikt över organisationen i OpenProject. Du kan också importera en befintlig organisationsstruktur via [LDAP-synkronisering av avdelningar](ldap_docs_article). @@ -3664,6 +4039,7 @@ sv: label_float: Flyttal label_folder: Mapp label_follows: följer + label_form_configuration_plural: Forms label_formula: Formel label_forum_new: Nytt forum label_forum_plural: Forum @@ -3682,6 +4058,7 @@ sv: label_go_forward: Öppna undermenyn %{module} label_greater_or_equal: ">=" label_group: Grupp + label_group_attributes_plural: Group attributes label_group_by: Gruppera efter label_group_named: Grupp %{name} label_group_new: Ny grupp @@ -3733,8 +4110,8 @@ sv: label_journal_diff: Jämför beskrivning label_jump_to_a_project: Hoppa till projekt... label_keyword_plural: Nyckelord + label_label_plural: Etiketter label_language: Språk - label_language_based: Baserat på användarens språk label_languages: Språk label_last_activity: Senaste aktivitet label_last_change_on: Senast ändrad @@ -3756,6 +4133,7 @@ sv: label_list: Lista label_loading: Laddar... label_locale: Språk och region + label_locale_based: Use default for user locale label_lock_user: Lås användare label_locked: låst label_logged_as: Inloggad som @@ -3767,6 +4145,7 @@ sv: label_managed_by_ldap: Hanteras av LDAP-synkronisering label_managed_repositories_vendor: Hanterade %{vendor} databaser label_mapping_for: 'Mappning för: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximal storlek label_me: mig label_member_all_admin: "(Alla roller på grund av admin status)" @@ -3785,7 +4164,6 @@ sv: label_menu_item_name: Namn på menyalternativ label_message: Meddelande label_message_last: Senaste meddelandet - label_message_new: Nytt meddelande label_message_plural: Meddelanden label_message_posted: Meddelande tillaggt label_minute_plural: minuter @@ -3797,6 +4175,7 @@ sv: label_module_plural: Moduler label_modules: Moduler label_modules_and_plugins: Moduler och plugins + label_month: Månad label_months_from: månader från label_more: Mer label_more_information: Mer information @@ -3810,6 +4189,7 @@ sv: label_my_avatar: Min avatar label_my_queries: Min anpassade frågor label_my_security: Säkerhet + label_my_time: My time label_name: Namn label_never: Aldrig label_new: Ny @@ -3824,7 +4204,10 @@ sv: label_news_singular: Nyheter label_news_view_all: Visa alla nyheter label_next: Nästa + label_next_day: Nästa dag + label_next_month: Nästa månad label_next_week: Nästa vecka + label_next_workweek: Nästa arbetsvecka label_next_year: Nästa år label_no_change_option: "(Ingen ändring)" label_no_data: Ingen data att visa @@ -3832,6 +4215,7 @@ sv: label_no_parent_group: "(Ingen överordnad grupp)" label_no_parent_page: Ingen överordnad sida label_no_start_date: inget startdatum + label_no_time: Ingen tid spårad label_nobody: ingen label_non_working_days: Tillgänglighetskalender label_non_working_days_summary: Sammanfattning @@ -3898,7 +4282,10 @@ sv: label_preview: Förhandsgranska label_preview_not_available: Förhandsgranskning är inte tillgänglig label_previous: Föregående + label_previous_day: Föregående dag + label_previous_month: Föregående månad label_previous_week: Föregående vecka + label_previous_workweek: Föregående arbetsvecka label_previous_year: Föregående år label_principal_invite_via_email: " eller bjud in nya användare via e-post" label_principal_search: Lägga till befintliga användare eller grupper @@ -4017,6 +4404,7 @@ sv: label_sort_lowest: Flytta längst ned label_sorted_by: sorterade efter %{value} label_spent_time: Förbrukad tid + label_stack: Stapla label_start_to_end: början till slut label_start_to_start: början till början label_starts_with: börjar med @@ -4036,6 +4424,7 @@ sv: label_subtask_plural: Underaktiviteter label_summary: Sammanfattning label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: Systeminställningar label_system_storage: Lagringsinformation label_table_of_contents: Innehållsförteckning @@ -4050,6 +4439,7 @@ sv: label_time: Tid label_time_entry_activity_plural: Aktiviteter för använd tid label_time_entry_plural: Förbrukad tid + label_timer_since: Startade på %{time} label_title: Titel label_today: idag label_today_as_date: Välj dagens datum. @@ -4085,7 +4475,9 @@ sv: label_user_search: Sök efter användare label_user_settings: Användarinställningar label_users_settings: Användarinställningar + label_value: Value label_value_x: 'Värde: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Redigera version label_version_new: Ny version label_version_plural: Versioner @@ -4098,6 +4490,7 @@ sv: label_videos: Videor label_view_all_revisions: Visa alla revisioner label_view_diff: Visa skillnader + label_view_mode_switcher: Ändra vy label_view_revisions: Visa revisioner label_view_x: 'Vy: %{x}' label_watched_work_packages: Bevakade arbetspaket @@ -4121,6 +4514,8 @@ sv: label_wiki_start: Startsida label_wiki_toc: Innehållsförteckning label_wiki_toc_empty: Innehållsförteckningen är tom eftersom det inte finns några rubriker. + label_with_criteria: Med kriterier + label_without_criteria: Utan kriterier label_work: Arbete label_work_package: Arbetspaket label_work_package_attachments: Bilagor till arbetspaket @@ -4143,46 +4538,47 @@ sv: label_working_days: Arbetsdagar label_working_days_and_hours: Arbetsdagar och arbetstider label_working_hours: Arbetsschema + label_workweek: Arbetsvecka label_x_closed_work_packages_abbr: - one: 1 stängd + one: "%{count} closed" other: "%{count} stängda" zero: 0 stängda label_x_comments: - one: En kommentar + one: "%{count} comment" other: "%{count} kommentarer" zero: inga kommentarer label_x_days: - one: 1 dag - other: "%{count} dagar" + one: "%{count} day" + other: "%{count} days" label_x_files: - one: 1 fil + one: "%{count} file" other: "%{count} filer" zero: inga filer label_x_items: - one: 1 post + one: "%{count} item" other: "%{count} poster" zero: inga poster label_x_items_selected: - one: En post vald - other: "%{count} poster valda" + one: "%{count} item selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: en öppen + one: "%{count} open" other: "%{count} öppna" zero: 0 öppna label_x_projects: - one: 1 projekt + one: "%{count} project" other: "%{count} projekt" zero: inga projekt label_x_work_packages: - one: 1 arbetspaket + one: "%{count} work package" other: "%{count} arbetspaket" zero: Inga arbetspaket label_x_working_days: - one: 1 arbetsdag - other: "%{count} arbetsdagar" + one: "%{count} working day" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Ledighet: 1 arbetsdag' - other: 'Ledighet: %{count} arbetsdagar' + one: 'Time off: %{count} working day' + other: 'Time off: %{count} working days' label_yesterday: igår label_zen_mode: Zen-läge ldap_auth_sources: @@ -4236,7 +4632,7 @@ sv: start_tls: STARTTLS start_tls_description: Skickar ett STARTTLS-kommando efter anslutning till standard LDAP-port. Rekommenderas för krypterade anslutningar. tls_options: - tls_certificate_description: Om LDAP-servercertifikatet inte finns i de betrodda källorna till detta system, kan du lägga till det manuellt här. Ange en PEM X509-certifierad sträng. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verifiera SSL-certifikat verify_peer_description_html: 'Aktiverar strikt SSL-verifiering av den betrodda certifikatkedjan.
Varning: Om du avmarkerar detta alternativ inaktiveras SSL-verifiering av LDAP-serverns certifikat. Det utsätter anslutningen för man-in-the-middle-attacker. @@ -4293,6 +4689,8 @@ sv: you_have: Du har logo_alt_text: Logotyp mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} nämnde dig i %{id} – %{subject}" notification: center: Till aviseringscentret @@ -4349,8 +4747,8 @@ sv: mentioned: Du har blivit nämnd i en kommentar mentioned_by: "%{user} nämnde dig i en kommentar" more_to_see: - one: Det finns ytterligare 1 arbetspaket med aviseringar. - other: Det finns ytterligare %{count} arbetspaket med aviseringar. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Öppna i webbläsare reason: assigned: Tilldelad @@ -4526,6 +4924,13 @@ sv: create_button: Skapa dialog_body: Denna token gör det möjligt för tredjepartsprogram att kommunicera med din instans. Ge den nya API-token ett namn så att du kan skilja den från andra. dialog_title: Skapa ny API-token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Namn på token failed_to_create_token: 'Det gick inte att skapa åtkomsttoken: %{error}' failed_to_reset_token: 'Misslyckades med att återställa åtkomst-token: %{error}' @@ -4539,10 +4944,26 @@ sv: password_confirmation_dialog: confirmation_required: Du måste ange lösenordet till ditt konto för att bekräfta ändringen. title: Bekräfta ditt lösenord för att fortsätta + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Åtkomstnycklar description: Leverantörstoken utfärdas av OpenProject och låter andra program komma åt OpenProject. Klienttoken utfärdas av andra program och låter OpenProject komma åt dem. + expired_on: Expired on %{date} headers: action: Åtgärd expiration: Upphör @@ -4744,7 +5165,6 @@ sv: notice_password_confirmation_failed: Det angivna lösenordet är inte korrekt. notice_principals_found_multiple: "%{number} resultat hittades. Använd TAB för att fokusera på det första." notice_principals_found_single: Ett resultat. Använd TAB för att fokusera på det. - notice_project_cannot_update_custom_fields: 'Du kan inte uppdatera projektets anpassade fält. Projektet är ogiltig: %{errors}' notice_project_not_deleted: Projektet raderades ej. notice_project_not_found: Projektet hittas inte. notice_requires_enterprise_token: Enterprise-token saknas eller ger inte åtkomst till den här sidan. @@ -4754,9 +5174,6 @@ sv: notice_successful_create: Skapades utan problem. notice_successful_delete: Raderades utan problem. notice_successful_update: Uppdaterades utan problem. - notice_successful_update_custom_fields_added_to_project: | - Uppdateringen lyckades. De anpassade fälten för de aktiverade typerna aktiveras automatiskt - i arbetspaketsformuläret. Läs mer. notice_to_many_principals_to_display: "Det finns för många resultat. \nBegränsa sökningen genom att skriva namnet på den nya medlemmen (eller gruppen)." notice_unsuccessful_create: Det gick inte att skapa. notice_unsuccessful_create_with_reason: 'Det gick inte att skapa: %{reason}' @@ -4856,8 +5273,8 @@ sv: ' confirm_revoke_my_application: - one: Vill du verkligen ta bort det här programmet? Det återkallar en aktiv token för programmet. - other: Vill du verkligen ta bort det här programmet? Det återkallar %{count} aktiva token för programmet. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Inga OAuth-program har registrerats. flows: authorization_code: Flöde för auktoriseringskod @@ -4947,8 +5364,6 @@ sv: not_found: hittades inte. respond_to?: implementerar inte den obligatoriska metoden. rules: - copy_workflow_from: - workflow_missing: har inget eget arbetsflöde. custom_field: format_not_supported: formatet "%{field_format}" stöds inte. item: @@ -4968,7 +5383,6 @@ sv: or: eller rules: blueprint: Mönsterritning - copy_workflow_from: Typ för kopiering av arbetsflöde depth: Djup enabled: Aktiverad item: Objekt @@ -5040,8 +5454,8 @@ sv: label: Innehållsförteckning page_nr_footer: Sida %{page} av %{total} template_artefact: - caption: Arbetspaketsinformation återgiven som en PMflex-artefakt. - label: PMflex-artefakt + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Alla attribut som finns i det aktuella formuläret med standardmallen. label: Attribut och beskrivning @@ -5066,7 +5480,7 @@ sv: permission_change_work_package_status_explanation: Tillåter att status ändras utan behörigheten Redigera arbetspaket permission_comment_news: Kommentera nyhet permission_commit_access: Läs- och skrivbehörighet till databasen (incheckning) - permission_copy_projects: Kopiera projekt + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 'I mallprojekt har denna behörighet en sekundär funktion: den tillåter att nya projekt skapas från mallen.' permission_copy_work_packages: Duplicera arbetspaket permission_create_backup: Skapa säkerhetskopior @@ -5099,6 +5513,7 @@ sv: permission_export_projects: Exportera projekt permission_export_work_packages: Exportera arbetspaket permission_header_for_project_module_work_package_tracking: Arbetspaket och Gantt-diagram + permission_import_work_packages: Import work packages permission_invite_members_by_email: Bjud in medlemmar via e-post permission_invite_members_by_email_explanation: 'Tillåter användare att bjuda in nya medlemmar via e-post. Inbjudna användare får ett e-postmeddelande med en länk där de kan ange sitt lösenord och aktivera kontot. Kräver behörighet att hantera medlemmar @@ -5109,6 +5524,9 @@ sv: permission_manage_dashboards: Hantera översikter permission_manage_forums: Hantera forum permission_manage_members: Hantera medlemmar + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Hantera nyheter permission_manage_own_reminders: Skapa egna påminnelser permission_manage_own_working_times: Hantera egna arbetstider @@ -5137,7 +5555,6 @@ sv: permission_save_bcf_queries: Spara BCF-frågor permission_save_queries: Spara vyer permission_search_project: Sök projekt - permission_select_custom_fields: Välj anpassade fält permission_select_project_custom_fields: Välj projektattribut permission_select_project_modules: Välj projektmoduler permission_select_project_phases: Välj projektfaser @@ -5171,6 +5588,16 @@ sv: permission_work_package_assigned: Bli tilldelad/ansvarig permission_work_package_assigned_explanation: Arbetspaket kan tilldelas användare och grupper som har denna roll i respektive projektet placeholder_users: + criteria: + activate: Aktivera filterkriterier + activate_caption: 'Gör det möjligt att lägga till filter för den här platshållaranvändaren för att ange vilka användare som uppfyller de önskade kriterierna. + + ' + enable: Matcha användare efter kriterier + enable_caption: Beskriv vilken sorts användare den här platshållaren representerar, så att matchande användare kan föreslås. + matching_users: Användare som uppfyller filterkriterierna + no_matching_users: Ingen användare uppfyller kriterierna. + show_all_matching_users: Visa alla %{count} matchande användare delete_tooltip: Ta bort platshållaranvändare deletion_info: data_consequences: 'Alla förekomster av platshållaranvändaren (t.ex. som tilldelad, ansvarig eller andra användarvärden) tilldelas på nytt till ett konto som heter "Borttagen användare". Eftersom data från varje borttaget konto tilldelas detta konto går det inte att skilja data som användaren skapade från data som skapats av ett annat borttaget konto. @@ -5192,7 +5619,7 @@ sv: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfölj + one: "%{count} portfolio" other: "%{count} portföljer" zero: 0 portföljer filters: @@ -5203,8 +5630,8 @@ sv: label: Filter för portföljnamn placeholder: Sök portföljer sub_items_html: - one: "1 underpost" - other: "%{count} underposter" + one: "%{count} sub-item" + other: "%{count} sub-items" lists: active: Aktiva portföljer archived: Arkiverade portföljer @@ -5218,7 +5645,7 @@ sv: Den kan användas för att markera arbetspaket i tabellen. program: count: - one: 1 program + one: "%{count} program" other: "%{count} program" zero: 0 program filters: @@ -5230,7 +5657,7 @@ sv: confirmation_message: Om projektet arkiveras blir det och alla dess underordnade projekt otillgängliga för alla användare av den här instansen. Arkiverade projekt kan återställas. title: Arkivera projekt count: - one: 1 projekt + one: "%{count} project" other: "%{count} projekt" zero: 0 projekt destroy: @@ -5335,11 +5762,11 @@ sv: no_status_when_submitted: Det gick inte att aktivera begäran om projektinitiering eftersom arbetspaketstypen %{type} kräver minst en associerad status. Aktivera minst ett statusarbetsflöde för denna arbetspaketstyp. no_work_package_type: Det gick inte att aktivera begäran om projektinitiering eftersom den kräver minst en aktiv arbetspaketstyp och projektet saknar sådana. Lägg till minst en arbetspaketstyp i projektet. export: - description_attachment_export: Den genererade artefakten sparas som en PDF-bilaga till artefaktens arbetspaket. - description_file_link_export: Artefaktens arbetspaket får en fillänk till en PDF som lagras i en extern fillagring. Kräver en fungerande fillagring med automatiskt hanterade projektmappar för det här projektet. För närvarande stöds endast Nextcloud-fillagring. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Välj vilken av de konfigurerade externa fillagringarna som ska användas. external_file_storage: Extern fillagring - label_artifact_export: Artefaktexport + label_artifact_export: Artifact export label_attachment_export: Spara som filbilaga till arbetspaket label_file_link_export: Ladda upp fil till extern fillagring och lägg till fillänk i arbetspaket pdf_file_storage: PDF-fillagring @@ -5349,6 +5776,12 @@ sv: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Det finns för närvarande inga anpassade fält tillgängliga. forums: no_results_content_text: Skapa ett nytt forum @@ -5445,15 +5878,15 @@ sv: new_heading: Fält som blir tillgängliga nothing_affected: Inga fält eller statusar påverkas. status_count: - one: 1 arbetspaket - other: "%{count} arbetspaket" + one: "%{count} work package" + other: "%{count} work packages" table_suffix: "(tabell)" value_count: - one: 1 arbetspaket har ett värde - other: "%{count} arbetspaket har ett värde" + one: "%{count} work package has a value" + other: "%{count} work packages have a value" work_packages: - one: 1 arbetspaket kommer att använda den nya konfigurationen - other: "%{count} arbetspaket kommer att använda den nya konfigurationen" + one: "%{count} work package will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Projektet använder nu %{type}. target_label: Variant title: "%{type}: Byt variant" @@ -5464,7 +5897,7 @@ sv: variants_not_allowed: Den här typen tillåter inte att varianter skapas i projekt. versions: no_results_content_text: Skapa en ny version - no_results_title_text: Det finns för närvarande inga versioner av projektet. + no_results_title_text: Inga versioner som matchar filterkriterierna hittades för det här projektet. show_work_packages: Visa arbetspaket work_packages_graph: Graf för arbetspaket work_package_priorities: @@ -5472,15 +5905,27 @@ sv: status: button_edit: Redigera status wizard: - create_artifact_storage_error: Det gick inte att lagra artefakten i fillagringen - create_artifact_work_package_error: Det gick inte att skapa artefaktens arbetspaket + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Det här projektet har inga projektattribut aktiverade för guiden. Aktivera minst ett i projektinställningarna. no_help_text: Det finns ingen hjälptext definierad för det här attributet. progress_label: "%{current} av %{total}" sections: Avsnitt sidebar_content_title: Innehåll - success: Projektattributen har sparats och artefaktens arbetspaket har skapats. + success: Project attributes saved and artifact work package created successfully. title: Begäran om projektinitiering + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Använd förkonfigurerade filter configure_view: @@ -5509,8 +5954,8 @@ sv: action_title: React add_reaction: Lägg till reaktion and_others: - one: och 1 annan - other: och %{count} andra + one: and %{count} other + other: and %{count} others and_user: och %{user} react_with: Reagera med %{reaction} reaction_by: "%{reaction} av" @@ -5621,6 +6066,31 @@ sv: warnings: cannot_annotate: Den här filen kan inte kommenteras. roles: + delete_dialog: + confirm: Vill du verkligen ta bort den här rollen? + entry_projects: + one: "(Projekt: %{projects})" + other: "(Projekt: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Vill du verkligen ta bort rollen ”%{name}”? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Av dessa användare förlorar %{count} åtkomsten till projekt där detta var deras enda roll. Vill du verkligen ta bort rollen? + zero: Ingen av dessa användare förlorar åtkomsten till något av sina projekt. Vill du verkligen ta bort rollen? + show_memberships: Visa alla medlemskap med den här rollen + summary: "%{users} i %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Ta bort roll edit: default_for_new_projects_warning: 'Den här rollen är konfigurerad som standardroll för icke-administratörer som skapar ett projekt. Ta inte bort följande behörigheter, annars kan projektskapare inte slutföra konfigurationen av sina nyskapade projekt:' index: @@ -5632,6 +6102,15 @@ sv: permissions: section_check_all_label: Tilldela alla behörigheter för %{module} section_uncheck_all_label: Ta bort alla behörigheter för %{module} + permissions_dialog: + edit_permissions: Redigera rollbehörigheter + no_permissions: Den här rollen ger inga behörigheter. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: Visa behörigheter + preview_aria_label: Visa behörigheterna för %{role} + title: Behörigheter för ”%{name}” report: matrix_caption: Behörighetsmatris för modulen %{module} matrix_check_all_label: Tilldela alla %{module}-behörigheter till alla roller @@ -5736,7 +6215,7 @@ sv: setting_default_projects_wiki: Aktivera Wiki-funktionalitet för nya projekt som standard setting_diff_max_lines_displayed: Max antal diff rader som visas setting_disable_password_login: Inaktivera lösenordsautentisering - setting_display_subprojects_work_packages: Visa arbetspaket för delprojekt på huvudprojekt som standard + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Varaktighetsformat setting_duration_format_days_and_hours: Dagar och timmar setting_duration_format_hours_only: Endast timmar @@ -5851,6 +6330,7 @@ sv: setting_start_of_week: Veckan börjar med setting_sys_api_description: Webtjänsten arkivhantering ger integrering och användarautentisering för att åtkomst av arkiv. setting_sys_api_enabled: Aktivera webbtjänsten arkivhantering + setting_sys_api_key: API key setting_time_format: Tid setting_total_percent_complete_mode: Beräkning av hierarkins totalsumma för % klart setting_total_percent_complete_mode_simple_average: Enkelt medelvärde @@ -5903,7 +6383,7 @@ sv: description_html: 'Välj vilket läge antivirusskanningsintegrationen ska använda.
  • %{disabled_option}: Uppladdade filer skannas inte efter virus.
  • %{socket_option}: Du har konfigurerat ClamAV på samma server som OpenProject och skanningsdemonen clamd körs i bakgrunden
  • %{host_option}: Du strömmar filer till en extern värd för virusskanning.
' - remaining_quarantined_files_html: 'Virusskanning har inaktiverats. %{file_count} finns kvar i karantän. Besök den här länken för att granska filer i karantän: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virusskanning har aktiverats. Det finns %{file_count} filer som laddades upp tidigare och fortfarande behöver skannas. Processen har schemalagts i bakgrunden. Filerna förblir tillgängliga under skanningen. @@ -5914,6 +6394,7 @@ sv: ' title: Virusskanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Om du inaktiverar detta alternativ döljs listan över bilagor på arbetspaketens filflik för nya projekt. Filer som bifogas i beskrivningen av ett arbetspaket laddas fortfarande upp till den interna bilagelagringen. ' @@ -6005,12 +6486,12 @@ sv: confirmation_message: Guiden för projektinitieringsbegäran kommer inte längre att vara tillgänglig för nya projekt som baseras på denna mall. Projektledare och projektägare måste konfigurera och fylla i relevant information manuellt i projektöversikten. heading: Inaktivera denna begäran om projektinitiering? title: Inaktivera begäran om projektinitiering - header_description: 'OpenProject kan skapa en steg-för-steg-guide som hjälper projektledare att fylla i en begäran om projektinitiering. Du kan välja vilka projektattribut som ska ingå och skapa en PDF-artefakt som resultat. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefaktnamn - artifact_name_caption: Välj det namn för artefakten som rekommenderas av ert ramverk för projektledning. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Guide för projektskapande project_initiation_request: Begäran om projektinitiering @@ -6030,8 +6511,8 @@ sv: Du skickade in en begäran om projektinitiering för **%{project_name}**. Den väntar nu på granskning. Klicka på länken nedan för att komma åt arbetspaketet med din begäran. confirmation_email_text: Text i bekräftelsemeddelande - description: När en användare skickar in en begäran om projektinitiering skapas ett nytt arbetspaket där begärans artefakt bifogas som PDF-fil. Inställningarna nedan definierar typ, status och tilldelad för detta nya arbetspaket. - description_template: "**Det här arbetspaketet skapades automatiskt när arbetsflödet %{wizard_name} slutfördes.** En PDF-artefakt som innehåller all inskickad information har skapats och bifogats detta arbetspaket som referens och för revisionsändamål. Om du behöver uppdatera eller köra initieringsstegen igen kan du när som helst öppna guiden på nytt med länken nedan:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Skicka ett bekräftelsemeddelande till användaren som skickade in begäran om projektinitiering status_when_submitted: Status vid inskickning status_when_submitted_caption: Den status som det genererade arbetspaketet övergår till när begäran skickas in. @@ -6039,7 +6520,7 @@ sv: work_package_comment_caption: Den tilldelade som väljs ovan @omnämns automatiskt i kommentaren. work_package_comment_default: En begäran om projektinitiering för **%{project_name}** har skickats in och väntar på granskning. work_package_type: Arbetspaketstyp - work_package_type_caption: Den arbetspaketstyp som ska användas för att lagra den slutförda artefakten. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Öppna guiden för projektskapande project_initiation_request: Öppna begäran om projektinitiering @@ -6059,6 +6540,7 @@ sv: heading: Ny fas no_gate: Ingen grind non_defined: Inga faser är definierade för närvarande. + order_changed: Order successfully changed. phase_gates: Fasgrindar section_header: Faser start_gate: Startgrind @@ -6115,7 +6597,7 @@ sv: section_work_week: Arbetsvecka sharing: count: - one: 1 användare + one: "%{count} user" other: "%{count} användare" zero: 0 användare denied: Du har inte behörighet att dela %{entities}. @@ -6208,19 +6690,19 @@ sv:
Obs! Ärvda värden (t.ex. från underordnade objekt eller relationer) tillämpas fortfarande. index: + could_not_be_moved: Det gick inte att flytta statusen. headers: - excluded_from_totals: Undantagen från totalsummor is_closed: Stängt - is_default: Standard is_readonly: Skrivskyddad + no_filter_results_title_text: Ingen status matchar det aktuella filtret. no_results_content_text: Lägg till ny status no_results_title_text: Det finns för närvarande inga statusar för arbetspaket. + status_actions: Statusåtgärder support: array: sentence_connector: och skip_last_comma: falsk text_access_token_hint: Åtkomstnycklar gör det möjligt för externa applikationer att komma åt OpenProject-resurser. - text_accessibility_hint: Hjälpmedelsläget är utformat för användare som är blinda, motoriskt handikappade eller har nedsatt syn. För den senare gruppen syns element i fokus extra tydligt. Vänligen notera att Backlogs-modulen inte är tillgänglig i det här läget. text_analyze: 'Vidare analys: %{subject}' text_are_you_sure: Är du säker? text_are_you_sure_continue: Är du säker på att du vill fortsätta? @@ -6263,12 +6745,6 @@ sv: ' text_custom_field_possible_values_info: En rad för varje värde - text_custom_logo_instructions: 'Logotypen skalas automatiskt så att den passar i sidhuvudet. För bästa resultat laddar du upp en vit logotyp på en transparent bild på 130 × 47 px. Du kan lägga till så mycket mellanrum i bilden som du vill. - - ' - text_custom_logo_mobile_instructions: 'Logotypen skalas automatiskt så att den passar i sidhuvudet. För bästa resultat laddar du upp en vit logotyp på en transparent bild på 130 × 33 px. Du kan lägga till så mycket mellanrum i bilden som du vill. - - ' text_custom_touch_icon_instructions: 'Det här är ikonen som visas på din mobil eller surfplatta när du lägger till ett bokmärke på startskärmen. Den måste vara en kvadratisk PNG-bild på 180 × 180 pixlar. Se till att bildens bakgrund inte är transparent, annars kan den se dålig ut i iOS. ' @@ -6318,6 +6794,7 @@ sv: text_length_between: Längd mellan %{min} och %{max} tecken. text_line_separated: Flera värden tillåtna (en rad för varje värde). text_load_default_configuration: Ladda standardkonfigurationen + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Det finns inga åtkomstnycklar som kan konfigureras. text_no_configuration_data: Roller, typer, status för arbetspaket och arbetsflöden har inte konfigurerats ännu. Det rekommenderas starkt att läsa in standardkonfigurationen. Du kommer att kunna ändra dem när de är initialiserade. text_no_notes: Det finns inga kommentarer för detta arbetspaket. @@ -6417,6 +6894,68 @@ sv: tree_view: label_empty_sub_tree: Inga objekt types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Jämför varianter + blankslate: + description: Lägg till en andra variant av den här typen för att se vad som skiljer dem åt. + title: Det finns inget att jämföra ännu + description: Jämför varianterna av den här typen med den överordnade typen. + labels: + duplicate: Möjlig dubblett + duplicate_of: Konfigurerad exakt som %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Överordnad typ + same_as_type: Samma som överordnad typ + rows: + form: + fields: Fält + groups: Avsnitt + required: Varav obligatoriska + same_as_base: Samma som överordnad typ + scope: + availability: Tillgänglig för + enabled_in_new_projects: Aktiv i nya projekt + projects: Projekt + workflows: + roles: Berörda roller + same_as_base: Samma som överordnad typ + statuses: Statusar + transitions: Övergångar + sections: + configuration: Konfigurationsöversikt + form: Formulär + scope: Omfattning + workflows: Arbetsflöden + title: Jämför varianter + title_for_type: Jämför varianter av %{name} + values: + global: Alla projekt + inheriting_from: Ärver från + project_specific: Projektspecifik ([%{project}](project_url)) + same_as_base: Identisk med den överordnade typen creation_wizard: add_variant: Lägg till en variant till %{name} create_type: Skapa typ @@ -6426,14 +6965,40 @@ sv: finish: Slutför placeholder_description: Det här steget blir tillgängligt snart. progress_label: Steg %{number} av %{total} + start: + next_heading: What happens next? + submit: Starta + type: + heading: Skapa ny typ + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Skapa en ny variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Standardvärden details: Detaljer form_configuration: Formulär - pdf: PDF-generering + pdf: Generate PDF project_attributes: Projektattribut projects: Projekt - workflows: Arbetsflöden + start: Starta + workflows: Workflow success: Skapades. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6442,8 +7007,10 @@ sv: caption: Definiera ett mönster med refererade attribut och text för att automatiskt generera arbetspaketsrubriker. Användare kan inte redigera rubrikerna manuellt. label: Automatiskt genererade rubriker description: - caption: Lägg till den text som ska läggas till i beskrivningsfältet för alla nya arbetspaket av den här typen. - label: Standardtext för beskrivning + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Användare kan ange och redigera arbetspaketsrubriker manuellt utan begränsningar. label: Manuellt redigerbara rubriker @@ -6472,21 +7039,21 @@ sv: file_link: caption: Den genererade PDF-filen laddas upp till projektets automatiskt hanterade Nextcloud-lagring och länkas från arbetspaketet. Arbetspaket i projekt utan sådan lagring hoppas över. label: Ladda upp fil till extern fillagring och lägg till fillänk i arbetspaket - intro: Generera automatiskt en PDF-artefakt av ett arbetspaket av den här typen varje gång dess status ändras. - invalid_mode: Ogiltigt exportläge för artefakt. - label: Automatisk artefaktexport + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Ingen PDF genereras automatiskt. label: Av - section_title: Automatisk artefaktexport + section_title: Automatic artifact export unavailable: inte tillgänglig, ingen automatiskt hanterad Nextcloud-lagring är konfigurerad - intro: Välj vilka av de tillgängliga mallarna du vill aktivera för den här typen. Mallen bestämmer utformningen och vilka attribut som visas i den exporterade PDF-filen för ett arbetspaket av denna typ. Den första mallen i listan väljs som standard. pdf_export_templates: actions: label_disable_all: Inaktivera alla label_enable_all: Aktivera alla label_toggle_template: Växla %{template} label: Mallar för PDF-export + order_changed: Order successfully changed. tab: Generera PDF templates: readonly_error: Kan inte ändras när den är länkad till en källtyp. @@ -6503,6 +7070,8 @@ sv: confirm_delete_group: Är du säker på att du vill ta bort det här avsnittet? Åtgärden kan inte ångras automatiskt. confirm_reset: Är du säker på att du vill återställa formuläret? custom_field: Anpassat fält + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Ta bort avsnitt drag_to_activate: Dra fält härifrån för att aktivera dem drag_to_reorder: Dra för att ändra ordning @@ -6524,6 +7093,14 @@ sv: query_group_label: Tabell med relaterade arbetspaket remove_attribute: Ta bort från avsnitt rename_group: Döp om sektion + required: + already_required_globally: Det här anpassade fältet är obligatoriskt för alla typer. + for_variant: Obligatoriskt för den här typen + globally: Krävs + globally_hint: Ändra detta i det anpassade fältet + mark: Gör obligatoriskt för den här typen + not_a_custom_field: Endast anpassade fält kan göras obligatoriska för en enskild typ. + unmark: Gör valfritt för den här typen reset_description: 'Detta återställer attributen till deras standardgrupp och inaktiverar ALLA anpassade fält. ' @@ -6533,12 +7110,14 @@ sv: tab: Formulär untitled_group: Namnlös grupp overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Konfigurationsläge - dependents: Beroende typer och varianter mode: always_manual: Alltid manuellt - inheriting_from_html: Ärver från %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manuellt konfigurerad + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Inställningar tab: Översikt project_attributes: @@ -6552,12 +7131,12 @@ sv: manual: description: När du har [skapat projektattribut](administration_url) visas de här och kan läggas till i en typ. title: Inga projektattribut tillgängliga - description: Välj de projektattribut som du vill aktivera för den här arbetspaketstypen. Aktiverade projektattribut visas på en separat flik i arbetspaket av den här typen. Användare med nödvändiga behörigheter kan visa och redigera attributen där. disabled: Inaktiverad exclusions: attribute_label: Ärv %{attribute} filter: Sök efter avsnitt eller namn tab: Projektattribut + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Ta bort typen %{type} från %{project}? @@ -6570,10 +7149,12 @@ sv: empty_state: description: Lägg till ett projekt för att använda den här konfigurationen där. no_results: Inga matchande projekt. + title: Not used in any project yet enable_all: Aktivera för alla projekt select_projects: Välj projekt select_projects_description: Välj de projekt där du vill använda den här typen. tab: Projekt + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6588,43 +7169,17 @@ sv: title: Kopiera konfiguration invalid_source: Konfigurationen kan inte kopieras från den valda typen. Välj en annan källtyp. success: Konfigurationen har kopierats. - dependents: - blank: - description: Ingen annan typ eller variant ärver från den här konfigurationen - title: Inga beroende typer - description: - one: Följande konfiguration ärvs av 1 annan typ eller variant. Alla ändringar du gör här påverkar även den beroende typen eller varianten. - other: Följande konfiguration ärvs av %{count} andra typer eller varianter. Alla ändringar du gör här påverkar även de beroende typerna och varianterna. - dialog: - description: Dessa typer och varianter ärver konfigurationen för det här avsnittet. En ändring du gör här tillämpas på dem alla. - direct_heading: Direkta beroenden - indirect_heading: Beroenden via andra typer - title: Beroende typer - variant_of_html: Variant av %{type_name} - variant_of_via_html: Variant av %{type_name}, ärver via %{source_name} - via_html: Ärver via %{source_name} - title: - one: 1 beroende typ - other: "%{count} beroende typer" - view: Visa beroende typer exclusions: not_inherited: Den här konfigurationen ärvs inte, så det finns inget att undanta. Redigera konfigurationen direkt i stället. unknown_aspect: Okänt konfigurationsavsnitt "%{aspect}". inherited: - change_source: Byt källtyp configure_manually: Konfigurera manuellt confirm_dialog: - change_source: - description_html: Genom att byta källtyp till %{source_name} skriver du över de aktuella inställningarna och kan påverka befintlig information i arbetspaket av den här typen. - heading: Byta källtyp? - title: Byt källtyp check_box: Jag förstår att detta åsidosätter de aktuella inställningarna from_manual: description: Alla aktuella valda inställningar åsidosätts och kan påverka befintlig information i arbetspaket av den här typen. heading: Byta konfigurationsläge? title: Byt konfigurationsläge - description: Den här konfigurationen ärvs från källtypen [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Den här konfigurationen ärvs från källtypen %{source_name}%{source_suffix}. dialog: description: Ärv denna konfiguration från en källtyp. All ny konfiguration som läggs till i källan tillämpas även här. source_label: Källtyp @@ -6632,6 +7187,9 @@ sv: submit: Byt title: Ärv från en annan typ invalid_source: Konfigurationen kan inte ärvas från den valda typen. Välj en annan källtyp. + mode_description: Den här varianten använder samma inställningar som typen ([%{source_name}](source_url)). Alla ändringar där återspeglas automatiskt här. + mode_description_unlinked: Den här varianten använder samma inställningar som typen. Alla ändringar där återspeglas automatiskt här. + mode_label: Använd samma inställningar som typen success: Konfigurationsläget har bytts. title: Ärvd konfiguration manual: @@ -6640,13 +7198,14 @@ sv: description: Alla aktuella valda inställningar åsidosätts och kan påverka befintlig information i arbetspaket av den här typen. heading: Byta konfigurationsläge? title: Byt konfigurationsläge - copy_from_type: Kopiera från en annan typ description: Inga inställningar ärvs. Du kan fortfarande kopiera inställningarna från en annan typ en gång. dialog: submit: Byt title: Konfigurera manuellt - inherit_from_type: Ärv från en annan typ + inherit_from_type: Ärv från överordnad typ invalid_mode: Det valda läget är inte tillgängligt för den här konfigurationen. Välj ett annat läge. + mode_description: Konfigurera den här sidan manuellt. Ändringar i den överordnade typen påverkar den inte längre. + mode_label: Konfigurera den här sidan manuellt modes: copy: caption: Börja med en engångskopia av de inställningar som den här konfigurationen ärver nu. @@ -6660,12 +7219,16 @@ sv: success: Konfigurationsläget har bytts. title: Manuell konfiguration parent_suffix: "(överordnad)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Du kan skapa varianter för att erbjuda olika versioner av den här typen till olika projekt.
Varje variant kan ärva, kopiera eller ha en egen anpassad konfiguration för standardmall, anpassade fält, arbetsflöden och inställningar. ' title: Det finns inga varianter för den här typen + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Skapad i %{project} delete: description: De projekt som använder den här varianten byts till den variant du väljer nedan innan den här varianten tas bort. @@ -6674,33 +7237,74 @@ sv: filter_no_results: Inga varianter matchar filtret global_section: description: Dessa varianter är tillgängliga i alla projekt. - title: Varianter + title: Globala varianter project_specific_section: description: Dessa varianter är endast tillgängliga i de projekt där de skapades. title: Projektspecifika varianter workflow: - tab: Arbetsflöden + tab: Workflow index: add_variant: Lägg till en variant till %{name} add_variant_action: Lägg till variant + convert_to_global: Omvandla till global variant + convert_to_global_dialog: + confirm: Omvandla + text: 'Detta gör den projektspecifika varianten global och tillgänglig för alla projekt. Projektadministratören kan då inte längre redigera den. + + ' + workflow_text: 'Dess arbetsflöde ”%{name}” tillhör det här projektet och blir också globalt. + + ' + convert_to_global_notice: "%{name} är nu en global variant." + convert_to_global_rename: + confirm: Omvandla + text: En global variant med det här namnet finns redan. Välj ett annat namn. + title: Välj ett annat namn för den här varianten + created_by_migration: Migrated + delete: + description: Typen tas bort permanent. Åtgärden kan inte ångras. + description_with_variants: Typen och alla dess varianter tas bort permanent. Åtgärden kan inte ångras. + heading: Ta bort typen ”%{name}”? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Ta bort typ description: 'Varje konfigurationsområde i typer och varianter kan konfigureras separat, begränsas från en annan typ eller kopplas helt till en källa. ' duplicate_name: Kopia av %{name} duplicate_notice: "%{name} duplicerades." enabled_in_new_projects: Aktiv i nya projekt + filter: Filter by name + filter_no_results: No types match this filter make_default: Aktivera i nya projekt make_default_notice: "%{name} aktiveras nu i nya projekt." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Skapa ny typ no_results_title_text: Det finns för närvarande inga typer. project_variants_count: - one: 1 projektspecifik variant - other: "%{count} projektspecifika varianter" + one: "%{count} project-specific variant" + other: "%{count} project-specific variants" remove_default: Aktivera inte i nya projekt remove_default_notice: "%{name} aktiveras inte längre i nya projekt." type_label: Typ variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milstolpe + patterns: + formats: + hierarchy_default: Standard (etikett och kortnamn) + hierarchy_label: Endast etikett + hierarchy_short: Endast kortnamn + weighted_item_list_default: Standard (etikett och vikt) + weighted_item_list_weight: Endast vikt unsupported_browser: close_warning: Bortse från denna varning. message: Du kan stöta på fel och få försämrad upplevelse på denna sida. @@ -6719,8 +7323,8 @@ sv: authorization_rejected: Du är inte tillåten att logga in. blocked: tillfälligt låst blocked_num_failed_logins: - one: tillfälligt låst (ett misslyckat inloggningsförsök) - other: tillfälligt låst (%{count} misslyckade inloggningsförsök) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Du håller på att ändra statusen för '%{name}'. Är du säker på att du vill fortsätta? deleted: Raderad användare department_ldap_managed_caption: Den här avdelningen hanteras av LDAP-synkronisering och kan inte ändras här. @@ -6820,7 +7424,7 @@ sv: deletion_warning: Är du säker på att du vill återkalla denna session? Du kommer att loggas ut på den här enheten. device: Enhet / OS expires: Upphör - instructions: Du är inloggad på ditt konto via följande enheter. Återkalla sessioner som du inte känner igen eller som kommer från enheter du inte kontrollerar. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Senaste inloggning may_not_delete_current: Du kan inte ta bort din nuvarande session. session_name: "%{browser_name} %{browser_version} på %{os_name}" @@ -6880,13 +7484,19 @@ sv: start_date: Startdatum work_days: Arbetsdagar work_days_count: - one: 1 arbetsdag - other: "%{count} arbetsdagar" + one: "%{count} working day" + other: "%{count} working days" work_hours: Arbetstimmar version_status_closed: stängd version_status_locked: låst version_status_open: öppen versions: + filter_status_labels: + closed: Stängd + locked: Låst + open: Öppna + index: + filter_label: Sök versioner overview: no_results_title_text: Det finns för närvarande inga arbetspaket tilldelade till denna version. work_packages_in_archived_projects: Versionen delas med arkiverade projekt som fortfarande har arbetspaket tilldelade till den här versionen. De räknas med men visas inte i de länkade vyerna. @@ -7056,13 +7666,15 @@ sv: required_description: Markerar detta arbetspaket som ett krav för det relaterade arbetspaketet requires_description: Markerar det relaterade arbetspaketet som ett krav för detta work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Arbetspaketen kunde inte kopieras. could_not_be_deleted: 'Följande arbetspaket kunde inte tas bort:' could_not_be_saved: 'Följande arbetspaket kunde inte sparas:' deletion_successful: - one: 1 arbetspaket har tagits bort. - other: "%{count} arbetspaket har tagits bort." + one: Successfully deleted %{count} work package. + other: Successfully deleted %{count} work packages. descendant: underordnad till vald move_failed: Arbetspaketen kunde inte flyttas. none_could_be_saved: Inget av de %{total} arbetspaketen kunde uppdateras. @@ -7086,18 +7698,18 @@ sv: description_with_visible_descendants: Är du säker på att du vill ta bort de valda arbetspaketen och alla synliga underordnade objekt? heading: Ta bort dessa %{count} arbetspaket permanent? hidden_descendants_only_warning: - one: Det finns ett underordnat objekt som du inte kan se. Det tas inte bort, men relationen tas bort. - other: Det finns %{count} underordnade objekt som du inte kan se. De tas inte bort, men alla hierarkiska relationer tas bort. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Alla synliga underordnade objekt tas bort. Det finns dock ett underordnat objekt som du inte kan se. Det tas inte bort, men relationen tas bort. - other: Alla synliga underordnade objekt tas bort. Det finns dock %{count} underordnade objekt som du inte kan se. De tas inte bort, men alla hierarkiska relationer tas bort. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Ta bort %{count} arbetspaket undeletable_descendants_warning: - one: Du kan inte ta bort ett underordnat objekt eftersom du saknar nödvändiga behörigheter. Det bevaras, men den hierarkiska relationen tas bort. - other: Du kan inte ta bort %{count} underordnade objekt eftersom du saknar nödvändiga behörigheter. De bevaras, men alla hierarkiska relationer tas bort. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Du kan inte ta bort ett underordnat objekt eftersom du saknar nödvändiga behörigheter i %{projects}. Det bevaras, men den hierarkiska relationen tas bort. - other: Du kan inte ta bort %{count} underordnade objekt eftersom du saknar nödvändiga behörigheter i %{projects}. De bevaras, men alla hierarkiska relationer tas bort. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7154,18 +7766,154 @@ sv: description: Är du säker på att du vill ta bort "%{name}"? heading: Ta bort det här arbetspaketet permanent? hidden_descendants_only_warning: - one: Det här arbetspaketet har ett underordnat objekt som du inte kan se. Det tas inte bort, men den hierarkiska relationen tas bort. - other: Det här arbetspaketet har %{count} underordnade objekt som du inte kan se. De tas inte bort, men alla hierarkiska relationer tas bort. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Alla synliga underordnade objekt tas bort. Det här arbetspaketet har dock ett underordnat objekt som du inte kan se. Det tas inte bort, men den hierarkiska relationen tas bort. - other: Alla synliga underordnade objekt tas bort. Det här arbetspaketet har dock %{count} underordnade objekt som du inte kan se. De tas inte bort, men alla hierarkiska relationer tas bort. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Ta bort arbetspaket undeletable_descendants_warning: - one: Du kan inte ta bort ett underordnat objekt eftersom du saknar nödvändiga behörigheter. Det bevaras, men den hierarkiska relationen tas bort. - other: Du kan inte ta bort %{count} underordnade objekt eftersom du saknar nödvändiga behörigheter. De bevaras, men alla hierarkiska relationer tas bort. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Du kan inte ta bort ett underordnat objekt eftersom du saknar nödvändiga behörigheter i %{projects}. Det bevaras, men den hierarkiska relationen tas bort. - other: Du kan inte ta bort %{count} underordnade objekt eftersom du saknar nödvändiga behörigheter i %{projects}. De bevaras, men alla hierarkiska relationer tas bort. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Typerna för arbetspaketen eller deras underordnade objekt är inte aktiverade i målprojektet. Aktivera de saknade typerna i målprojektet om du vill att de ska förbli oförändrade. Annars väljer du en tillgänglig typ i målprojektet från listan. @@ -7197,37 +7945,53 @@ sv: version: no_results_title_text: Det finns för närvarande inga tillgängliga versioner. x_descendants: - one: Ett underliggande arbetspaket - other: "%{count} underliggande arbetspaket" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Byt arbetsflöde copies: form: - mode: - from_role: - caption: Kopiera det aktuella arbetsflödet till en eller flera roller inom samma arbetspaketstyp. Om den valda rollen redan har ett arbetsflöde skrivs det aktuella över. - label: Kopiera till andra roller - from_type: - caption: Kopiera det aktuella arbetsflödet till en annan arbetspaketstyp. Om den valda typen redan har ett arbetsflöde skrivs det aktuella över. Detta påverkar alla roller. - label: Kopiera till en annan typ - source_role_id: - label: Källroll target_role_ids: label: Målroller - target_variant_ids: - label: Måltyper from_roles: create: notice: one: Arbetsflödet kopierades till rollen "%{role_name}". other: Arbetsflödet kopierades till %{count} roller. - from_variants: - create: - notice: - one: Arbetsflödet har kopierats till ”%{type_name}”. - other: Arbetsflödet har kopierats till %{count} typer. new: - title: Kopiera arbetsflödet för "%{source_type}" + dialog_title: Kopiera arbetsflödet för ”%{source}” + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: Det nya arbetsflödet börjar som en kopia av det valda arbetsflödets statusövergångar. + label: Kopiera från + placeholder: Välj ett arbetsflöde… + description: + caption: Lägg till en kort beskrivning av var och hur arbetsflödet ska användas. + label: Beskrivning + edit_title: Redigera arbetsflöde matrix_caption: Arbetsflödesmatris matrix_caption_assignee: Arbetsflödesmatris för tilldelad matrix_caption_author: Arbetsflödesmatris för upphovsperson @@ -7236,12 +8000,88 @@ sv: matrix_check_uncheck_all_in_row_label_html: Växla övergångar från %{old_status} till alla nya statusar matrix_checkbox_label: Tillåt övergång från %{old_status} till %{new_status} matrix_uncheck_all_label: Tillåt inga övergångar + name: + caption: Välj ett namn som gör det lätt att känna igen arbetsflödet på andra ställen senare. + label: Arbetsflödets namn + new_title: Skapa arbetsflöde index: + actions: + create: Arbetsflöde + edit: Redigera övergångar + menu: Åtgärder för %{name} + rename: Redigera namn och beskrivning + blank_slate: + description: Skapa ett arbetsflöde för att ange vilka statusövergångar en typ eller variant får använda. + filtered_description: Inget arbetsflöde matchar de aktuella filtren. + filtered_title: Inga matchande arbetsflöden + title: Inga arbetsflöden + columns: + name: Arbetsflödets namn + projects: Projekt + roles: Roll + types_and_variants: Typer och varianter + description: Alla namngivna uppsättningar statusövergångar i den här instansen och de typer och varianter som använder dem. + filters: + name: Arbetsflöde + name_placeholder: Filtrera efter arbetsflödets namn eller beskrivning… + projects_placeholder: Filtrera projekt… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filtrera efter typnamn… + types_and_variants_count: "%{types} (inklusive %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Arbetsflöde + implicit: Arbetsflödet %{name} page_headers: index_component: description: Konfigurera statusövergångar för varje arbetspaketstyp. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Utgå från ett befintligt arbetsflöde, ändra det efter behov och spara det som ett nytt arbetsflöde. + label: Börja med en kopia av ett befintligt arbetsflöde + missing: Välj det arbetsflöde som ska kopieras eller börja från grunden i stället. + label: Utgångspunkt + scratch: + caption: Börja med ett tomt arbetsflöde och bygg upp det manuellt. + label: Börja från grunden + title: New workflow + usage: + dialog: + button: Visa beroende typer + caption_html: Arbetsflödet %{name} används av följande typer och varianter. + title: Arbetsflöde som används av typer + variant_of: Variant av %{type} + variants: Varianter + unused: Ingen typ eller variant använder det här arbetsflödet ännu. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Använd ett befintligt arbetsflöde för den här typen med fördefinierade statusövergångar för en uppsättning roller. + label: Använd ett befintligt arbetsflöde + new: + caption: Definiera ett nytt arbetsflöde för den här typen manuellt genom att välja vilka statusövergångar som är tillåtna för vilka roller. + label: Konfigurera ett nytt arbetsflöde working_days: change_button: Ändra arbetsdagar dialog: diff --git a/config/locales/crowdin/th.seeders.yml b/config/locales/crowdin/th.seeders.yml index 7b4b14aedb9c..c76a2cf5a6a1 100644 --- a/config/locales/crowdin/th.seeders.yml +++ b/config/locales/crowdin/th.seeders.yml @@ -250,70 +250,26 @@ th: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ th: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml index 65815f30ab26..3bd646e4cc9d 100644 --- a/config/locales/crowdin/th.yml +++ b/config/locales/crowdin/th.yml @@ -40,7 +40,9 @@ th: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: ลบบัญชีผู้ใช้ delete_confirmation: คุณแน่ใจหรือไม่ว่าจะลบบัญชีผู้ใช้ ? deletion_info: @@ -65,7 +67,9 @@ th: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: หรือเข้าสู่ระบบ ด้วยบัญชีผู้ใช้ที่คุณมีอยู่แล้ว + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ th: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ th: repository: ที่เก็บข้อมูล comment: commented: แสดงความเห็น - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ th: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ th: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ th: title: Title member: blocked: Blocked + principal_type: Member type roles: บทบาท notification: read_ian: Read in-app @@ -235,6 +265,7 @@ th: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ th: ongoing: Ongoing spent_on: วันที่ type: ประเภท + token/base: + expires_on: Expiration date token/ical: calendar: ปฏิทิน ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ th: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: ผู้ดูแลระบบ auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: รหัสผ่านเดิม department: Department @@ -410,7 +441,7 @@ th: last_name: นามสกุล ldap_auth_source: LDAP connection new_password: รหัสผ่านใหม่ - password_confirmation: ยืนยันรหัสผ่าน + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ th: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ th: header_look_and_feel: Look and feel impaired: โหมดสำหรับผู้พิการ increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: โซนเวลา warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ th: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: หัวข้อหลัก @@ -519,6 +565,10 @@ th: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ th: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ th: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ th: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -688,6 +754,13 @@ th: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ th: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -856,42 +928,26 @@ th: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -905,7 +961,7 @@ th: numeric: ตัวเลข (เช่น ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - other: รหัสผ่านนี้ถูกใช้ไปแล้ว โปรดเลือกรหัสผ่านใหม่ที่แตกต่างจากรหัสเมื่อ %{count} ครั้งที่ผ่านมา. + other: has been used before. Please choose one that is different from your last %{count}. special: อักขระพิเศษ (เช่น '%') uppercase: ตัวพิมพ์ใหญ่ (เช่น ' A') password_confirmation: @@ -974,6 +1030,8 @@ th: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1001,6 +1059,8 @@ th: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'ชุดภารกิจ #%{id} ไม่ใช่เป้าหมายที่ถูกต้องสำหรับการกำหนดรายการเวลา' @@ -1009,7 +1069,7 @@ th: template: body: 'กรุณาตรวจสอบฟิลด์ต่อไปนี้:' header: - other: ข้อผิดพลาด %{count} %{model} นี้ห้ามมิให้มีการบันทึก + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1035,6 +1095,8 @@ th: other: Work package attribute help texts auth_provider: other: Authentication providers + automation: + other: Automations backup: other: Backups capability: @@ -1049,8 +1111,6 @@ th: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ th: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1093,6 +1155,8 @@ th: other: Health reports issue_priority: other: Priorities + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1293,7 +1357,28 @@ th: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1326,7 +1411,11 @@ th: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1359,7 +1448,7 @@ th: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1367,12 +1456,15 @@ th: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1405,16 +1497,30 @@ th: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1659,23 +1765,52 @@ th: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1706,6 +1841,18 @@ th: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1887,7 +2034,7 @@ th: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1919,12 +2066,19 @@ th: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1946,7 +2100,31 @@ th: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: ที่แสดงอยู่ is_inactive: ที่ไม่ได้แสดง show_until: แสดงจนถึง @@ -1954,7 +2132,7 @@ th: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2008,10 +2186,6 @@ th: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2082,6 +2256,7 @@ th: groups: กลุ่ม hexcode: Hex code id: ID + inexistent: Inexistent is_default: ค่าเริ่มต้น is_for_all: สำหรับทุกโครงการ issue: ชุดภารกิจ @@ -2132,6 +2307,7 @@ th: updated_at: แก้ไขเมื่อ updated_on: แก้ไขเมื่อ uploader: Uploader + url: URL user: ผู้ใช้ username: Username value: ค่า @@ -2146,6 +2322,29 @@ th: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2274,6 +2473,7 @@ th: button_set_reminder: Set reminder button_show: แสดง button_sort: เรียงลำดับ + button_stop_timer: หยุดตัวจับเวลา button_submit: ส่งข้อมูล button_test: ทดสอบ button_unarchive: เอาออกจากอาร์ไคฟ์ @@ -2340,9 +2540,9 @@ th: text: failed: ไม่สามารถดำเนินการคัดลอก "%{source_project_name}" ไปยังโครงการ "%{target_project_name}" ได้ succeeded: ระบบได้คัดลอกโครงการ "%{source_project_name}" ไปที่โครงการ "%{target_project_name}" แล้ว - title: คัดลอกโครงการ "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: วัตถุหนึ่งของประเภทนี้ + one: "%{count} object of this type" other: "%{count} วัตถุประเภทนี้" zero: ไม่มีวัตถุประเภทนี้ create_portfolio: @@ -2380,13 +2580,9 @@ th: plural: การกระทำ กำหนดเอง custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: สำหรับทุกโครงการ hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2407,7 +2603,7 @@ th: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2472,16 +2668,17 @@ th: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2545,34 +2742,34 @@ th: datetime: distance_in_words: about_x_hours: - other: ประมาณ %{count} ชั่วโมง + other: about %{count} hours about_x_months: - other: เกี่ยวกับ %{count} เดือน + other: about %{count} months about_x_years: - other: เกี่ยวกับปี %{count} + other: about %{count} years almost_x_years: - other: เกือบ %{count} ปี + other: almost %{count} years half_a_minute: ครึ่งนาที less_than_x_minutes: other: น้อยกว่า %{count} นาที less_than_x_seconds: - other: น้อยกว่า %{count} วินาที + other: less than %{count} seconds over_x_years: - other: เกิน %{count} ปี + other: over %{count} years x_days: - other: "%{count} วัน" + other: "%{count} days" x_hours: - other: "%{count} ชั่วโมง" + other: "%{count} hours" x_hours_abbreviated: other: "%{count} hrs" x_minutes: - other: "%{count} นาที" + other: "%{count} minutes" x_minutes_abbreviated: other: "%{count} mins" x_months: - other: "%{count} เดือน" + other: "%{count} months" x_seconds: - other: "%{count} วินาที" + other: "%{count} seconds" x_seconds_abbreviated: other: "%{count} s" x_weeks: @@ -3062,9 +3259,142 @@ th: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: ขณะนี้ยังไม่มีกระทู้ใดๆ + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3089,6 +3419,8 @@ th: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3114,6 +3446,10 @@ th: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3125,7 +3461,7 @@ th: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3134,7 +3470,7 @@ th: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3159,6 +3495,31 @@ th: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3195,8 +3556,10 @@ th: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3246,6 +3609,7 @@ th: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3398,10 +3762,10 @@ th: label_copy_target: เป้าหมาย label_copy_workflow_from: คัดลอกกระบวนการทำงานจาก label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: เวอร์ชั่นหลัก label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: สถานะปัจจุบัน label_current_version: เวอร์ชันปัจจุบัน label_custom_comment: "%{name} comment" @@ -3425,8 +3789,6 @@ th: label_custom_field_default_type: ชนิดว่าง label_custom_field_new: ฟิลด์ที่กำหนดเองใหม่ label_custom_field_plural: ฟิลด์ที่กำหนดเอง - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: การออกแบบ label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3435,11 +3797,12 @@ th: label_database_version: PostgreSQL version label_date: วันที่ label_date_and_time: Date and time - label_date_format: รูปแบบวันที่ + label_date_and_time_formats: Date and time formats label_date_from: จาก label_date_from_to: ตั้งแต่ %{start} จนถึง %{end} label_date_to: ถึงวันที่ label_dates: วันที่ + label_day: วันที่ label_day_plural: วัน label_default: ค่าเริ่มต้น label_defaults: Defaults @@ -3450,6 +3813,7 @@ th: label_deleted_custom_field: "(ฟิลด์ที่กำหนดเองที่ถูกลบ)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3520,6 +3884,7 @@ th: label_float: ลอย label_folder: Folder label_follows: ดังต่อไปนี้ + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: กระทู้ใหม่ label_forum_plural: กระทู้ @@ -3538,6 +3903,7 @@ th: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: กลุ่ม + label_group_attributes_plural: Group attributes label_group_by: จัดกลุ่มโดย label_group_named: Group %{name} label_group_new: กลุ่มใหม่ @@ -3589,8 +3955,8 @@ th: label_journal_diff: เปรียบเทียบคำอธิบาย label_jump_to_a_project: ไปยังโครงการ... label_keyword_plural: Keywords + label_label_plural: Labels label_language: ภาษา - label_language_based: ตามภาษาของผู้ใช้ label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3612,6 +3978,7 @@ th: label_list: รายการ label_loading: กำลังโหลด... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: ล็อก label_logged_as: เข้าสู่ระบบในนาม @@ -3623,6 +3990,7 @@ th: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: ความยาวสูงสุด label_me: ฉัน label_member_all_admin: "(All roles due to admin status)" @@ -3641,7 +4009,6 @@ th: label_menu_item_name: ชื่อของรายการเมนู label_message: ข้อความ label_message_last: ข้อความล่าสุด - label_message_new: ข้อความใหม่ label_message_plural: ข้อความ label_message_posted: เพิ่มข้อความแล้ว label_minute_plural: minutes @@ -3653,6 +4020,7 @@ th: label_module_plural: โมดูล label_modules: โมดูล label_modules_and_plugins: Modules and Plugins + label_month: เดือน label_months_from: เดือนจาก label_more: เพิ่มเติม label_more_information: More information @@ -3666,6 +4034,7 @@ th: label_my_avatar: My avatar label_my_queries: แบบสอบถามแบบกำหนดเองของฉัน label_my_security: Security + label_my_time: My time label_name: ชื่อ label_never: Never label_new: ใหม่ @@ -3680,7 +4049,10 @@ th: label_news_singular: ข่าวสาร label_news_view_all: ดูข่าวทั้งหมด label_next: ถัดไป + label_next_day: Next day + label_next_month: Next month label_next_week: อาทิตย์ถัดไป + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(ไม่เปลี่ยนแปลง)" label_no_data: ไม่มีข้อมูลให้แสดง @@ -3688,6 +4060,7 @@ th: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: ไม่มีวันเริ่มต้น + label_no_time: No time tracked label_nobody: ไม่มีใคร label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3754,7 +4127,10 @@ th: label_preview: แสดงตัวอย่าง label_preview_not_available: Preview not available label_previous: ก่อนหน้านี้ + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: สัปดาห์ก่อนหน้านี้ + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -3873,6 +4249,7 @@ th: label_sort_lowest: เลื่อนไปล่างสุด label_sorted_by: เรียงตาม %{value} label_spent_time: เวลาที่ใช้ + label_stack: Stack label_start_to_end: ตั้งแต่เริ่มถึงสิ้นสุด label_start_to_start: จุดเริ่มต้นไปยังจุดเริ่มต้น label_starts_with: starts with @@ -3892,6 +4269,7 @@ th: label_subtask_plural: งานย่อย label_summary: สรุป label_system: ระบบ + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -3906,6 +4284,7 @@ th: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: เวลาที่ใช้ + label_timer_since: Started at %{time} label_title: ชื่อเรื่อง label_today: วันนี้ label_today_as_date: Select today as date. @@ -3941,7 +4320,9 @@ th: label_user_search: ค้นหาผู้ใช้ label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: เวอร์ชั่นใหม่ label_version_plural: เวอร์ชั่น @@ -3954,6 +4335,7 @@ th: label_videos: Videos label_view_all_revisions: ดูการปรับปรุงทั้งหมด label_view_diff: ดูผลต่าง + label_view_mode_switcher: Change view label_view_revisions: ดูการปรับปรุง label_view_x: 'View: %{x}' label_watched_work_packages: เฝ้าดูชุดภารกิจ @@ -3977,6 +4359,8 @@ th: label_wiki_start: เพจเริ่มต้น label_wiki_toc: สารบัญ label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: ชุดภารกิจ label_work_package_attachments: Work package attachments @@ -3999,36 +4383,37 @@ th: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: ปิดแล้ว %{count} zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: มี %{count} ความคิดเห็น zero: no comments label_x_days: other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: มี %{count} เปิดอยู่ zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} โครงการ" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: @@ -4088,7 +4473,7 @@ th: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4145,6 +4530,8 @@ th: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4373,6 +4760,12 @@ th: create_button: สร้าง dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4386,10 +4779,26 @@ th: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4591,7 +5000,6 @@ th: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: ไม่ได้ลบโครงการ notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4601,9 +5009,6 @@ th: notice_successful_create: สร้างเรียบร้อยแล้ว notice_successful_delete: ลบเรียบร้อยแล้ว notice_successful_update: ปรับปรุงข้อมูลเรียบร้อยแล้ว - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4794,8 +5199,6 @@ th: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4815,7 +5218,6 @@ th: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -4887,8 +5289,8 @@ th: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -4913,7 +5315,7 @@ th: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: แสดงความคิดเห็นเกี่ยวกับข่าว permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: คัดลอกโครงการ + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -4946,6 +5348,7 @@ th: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -4956,6 +5359,9 @@ th: permission_manage_dashboards: Manage dashboards permission_manage_forums: จัดการกระทู้ permission_manage_members: จัดการสมาชิก + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: จัดการข่าวสาร permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -4984,7 +5390,6 @@ th: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: เลือกโมดูลของโครงการ permission_select_project_phases: Select project phases @@ -5018,6 +5423,16 @@ th: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: ลบผู้ใช้ ตัวยึดตำแหน่ง deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5039,7 +5454,7 @@ th: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5064,7 +5479,7 @@ th: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5076,7 +5491,7 @@ th: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} โครงการ" zero: 0 projects destroy: @@ -5181,11 +5596,11 @@ th: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5195,6 +5610,12 @@ th: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: สร้างกระทู้ใหม่ @@ -5307,7 +5728,7 @@ th: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: สร้างรุ่นใหม่ - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5315,15 +5736,27 @@ th: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: ใช้ตัวกรองที่กำหนดไว้ล่วงหน้า configure_view: @@ -5473,6 +5906,26 @@ th: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5484,6 +5937,14 @@ th: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5588,7 +6049,7 @@ th: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: จำนวนบรรทัดที่แตกต่างที่แสดงได้สูงสุด setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: ค่าเริ่มต้น จะแสดงชุดภารกิจของโครงการย่อย ในโครงการหลัก + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5703,6 +6164,7 @@ th: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5755,7 +6217,7 @@ th: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5766,6 +6228,7 @@ th: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -5857,12 +6320,12 @@ th: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -5882,8 +6345,8 @@ th: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -5891,7 +6354,7 @@ th: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -5911,6 +6374,7 @@ th: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -5967,7 +6431,7 @@ th: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6060,19 +6524,19 @@ th:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: ปิดไปแล้ว - is_default: ค่าเริ่มต้น is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: เพิ่มสถานะใหม่ no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: และ skip_last_comma: เป็นเท็จ text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'การวิเคราะห์เพิ่มเติม: %{subject}' text_are_you_sure: คุณแน่ใจหรือไม่ ? text_are_you_sure_continue: Are you sure you want to continue? @@ -6115,12 +6579,6 @@ th: ' text_custom_field_possible_values_info: หนึ่งค่าต่อหนึ่งบรรทัด - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6170,6 +6628,7 @@ th: text_length_between: ความยาวระหว่าง %{min} จนถึง %{max} ตัวอักษร text_line_separated: อนุญาตให้มีหลายค่าได้ (หนึ่งค่าต่อหนึ่งบรรทัด) text_load_default_configuration: โหลดการกำหนดค่าเริ่มต้น + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6275,6 +6734,67 @@ th: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6284,14 +6804,40 @@ th: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6300,8 +6846,10 @@ th: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6330,21 +6878,21 @@ th: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6361,6 +6909,8 @@ th: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6382,6 +6932,14 @@ th: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6391,12 +6949,14 @@ th: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6410,12 +6970,12 @@ th: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6428,10 +6988,12 @@ th: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: โครงการ + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6446,41 +7008,17 @@ th: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6488,6 +7026,9 @@ th: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6496,13 +7037,14 @@ th: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6516,12 +7058,16 @@ th: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6530,23 +7076,51 @@ th: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: @@ -6555,7 +7129,18 @@ th: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: ไม่สนใจคำเตือนนี้ message: You may run into errors and degraded experience on this page. @@ -6574,7 +7159,7 @@ th: authorization_rejected: You are not allowed to sign in. blocked: ล็อคชั่วคราว blocked_num_failed_logins: - other: ถูกล็อคชั่วคราว (เนื่องจากผิดพลาด %{count} ครั้งในการพยายามล็อคอิน) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: ผู้ใช้ที่ถูกลบ department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6674,7 +7259,7 @@ th: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: ครั้งสุดท้ายที่เข้าระบบ may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6740,6 +7325,12 @@ th: version_status_locked: ล็อก version_status_open: เปิด versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -6909,6 +7500,8 @@ th: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' @@ -7010,6 +7603,137 @@ th: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7043,32 +7767,48 @@ th: x_descendants: other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7077,12 +7817,82 @@ th: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/tr.seeders.yml b/config/locales/crowdin/tr.seeders.yml index d366449ad631..72037cad6a6e 100644 --- a/config/locales/crowdin/tr.seeders.yml +++ b/config/locales/crowdin/tr.seeders.yml @@ -250,70 +250,26 @@ tr: Bu modülde proje haberlerini ekip üyelerinize iletebilirsiniz. versions: item_0: - name: Hata İş Listesi - item_1: - name: Ürün İş Listesi - item_2: - name: Koşu 1 wiki: - title: Koşu 1 + title: Release 1.0 content: | - ### Sprint planlama toplantısı - - _Lütfen Sprint planlama toplantısının konularını burada belgeleyin_ - - * Zaman kutulu (8 saat) - * Girdi: Ürün İş Listesi - * Çıktı: Sprint Backlog - - * 4 saatlik iki ek zaman kutusuna bölünmüştür: - - * Ürün Sahibi [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) ve öncelikleri ekibe sunar ve ekibin kabul etmesi gereken Sprint Hedefini açıklar. Birlikte, ekibin bir sonraki sprintte ilgileneceği Ürün İş Listesindeki konuları önceliklendirirler. Ekip, tartışılan teslimatı taahhüt eder. - * Ekip otonom olarak (Ürün Sahibi olmadan) ayrıntılı bir şekilde planlar ve bir [Sprint Backlog] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs) oluşturmak için tartışılan gereksinimlerden görevleri ayırır. - - - ### Günlük Scrum toplantısı - - _Lütfen burada Günlük Scrum toplantısının konularını belgeleyin_ - - * Ekibin kısa, günlük durum toplantısı. - * Zaman kutulu (maks. 15 dakika). - * Görev panosundaki](##sprint:scrum_project__version__sprint_1) aşağıdaki konuları tartışmak için ayakta toplantı. - * Bir sonraki Günlük Scrum'a kadar ne yapmayı planlıyorum? - * İşimi ne engelledi (Engeller)? - * Scrum Master moderatörlük yapar ve [Sprint Impediments](##sprint:scrum_project__version__sprint_1) not alır. - * Ürün Sahibi haberdar olmak için katılabilir. + ### Release 1.0 - ### Sprint Gözden Geçirme toplantısı + _Please document here what this release contains._ - _Lütfen Sprint Gözden Geçirme toplantısının konularını burada belgeleyin_ - - * Zaman kutulu (4 saat). - * Kişi başına en fazla bir saatlik hazırlık süresi. - * Ekip, ürün sahibine ve diğer ilgili kişilere bu sprintte nelerin başarıldığını gösterir. - * Önemli: aptallar ve PowerPoint yok! Sadece bitmiş ürün işlevselliği (Artımlar) gösterilmelidir. - * Ürün sahibinden, paydaşlardan ve diğerlerinden geri bildirim istenir ve daha sonraki çalışmalara dahil edilir. - * Gösterilen işlevselliklere dayanarak, Ürün Sahibi bu artışla canlı yayına geçmeye veya daha da geliştirmeye karar verir. Bu olasılık erken bir ROI sağlar. - - - ### Sprint Retrospektifi - - _Lütfen Sprint Retrospektifi toplantısına ilişkin konuları burada belgeleyin_ - - * Zaman kutulu (3 saat). - * Sprint İncelemesinden sonra, Scrum Master tarafından yönetilecektir. - * Ekip sprinti tartışır: neler iyi gitti, bir sonraki sprint için daha üretken olmak ve hatta daha fazla eğlenmek için nelerin iyileştirilmesi gerekiyor. - item_3: - name: Koşu 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Kategori 1 (Proje ayarlarında değiştirilecektir) queries: item_0: name: Proje planı item_1: - name: Ürün iş listesi + name: Version 1.1 item_2: - name: Koşu 1 + name: Version 1.0 item_3: name: Görevler boards: @@ -339,20 +295,21 @@ tr: options: name: Başlarken text: | - Katıldığınız için çok mutluyuz! OpenProject'e başlamak için birkaç şey denemenizi öneririz. + We are glad you joined! We suggest to try a few things to get started in OpenProject. - Aşağıdaki adımları deneyin:_ + _Try the following steps:_ - 1. *Projenize yeni üyeler davet edin*: → Proje gezintisinde [Üyeler]({{opSetting:base_url}}/projects/your-scrum-project/members) bölümüne gidin. - 2. *Ürün birikiminizi ve Sprint birikimlerinizi görüntüleyin*: → Proje navigasyonunda [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) bölümüne gidin. - 3. *Görev panonuzu görüntüleyin*: → Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → adresine gidin Sprint → üzerinde sağ oka tıklayın [Task Board](##sprint:scrum_project__version__sprint_1) öğesini seçin. - 4. *Yeni bir iş paketi oluşturun*: → İş paketleri → Oluştur]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new) bölümüne gidin. - 5. *Bir proje planı oluşturun ve güncelleyin*: → Proje navigasyonunda [Proje planı](##query:scrum_project__query__project_plan) bölümüne gidin. - 6. *Bir Sprint wiki* oluşturun: → Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) adresine gidin ve bir sprintte sağ açılır menüden sprint wikisini açın. Wiki şablonunu]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) ihtiyaçlarınıza göre düzenleyebilirsiniz. - 7. *Diğer modülleri etkinleştirin*: → Proje ayarları → Modüller]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules) bölümüne gidin. + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Burada [Kullanıcı Kılavuzlarımızı] (https://www.openproject.org/docs/user-guide/) bulacaksınız. - Herhangi bir sorunuz varsa veya desteğe ihtiyacınız varsa lütfen bize bildirin. Bize ulaşın: [support[at]openproject.com](mailto:support@openproject.com). + + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: İş paketleri diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index 26f587562397..41d2b62337cc 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -40,7 +40,9 @@ tr: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Hesabınızı aktifleştirmek için lütfen %{login} olarak giriş yapın. + continue_with_provider: Continue with %{name} delete: Hesabı sil delete_confirmation: Hesabını silmek istediğinden emin misin? deletion_info: @@ -65,7 +67,9 @@ tr: error_self_registration_limited_provider: 'Tek noktadan oturum açma sağlayıcısı ''%{name}'' için kullanıcı kaydı sınırlıdır. Lütfen yöneticiden hesabınızı sizin için etkinleştirmesini veya bu sağlayıcı için kendi kendine kayıt sınırını değiştirmesini isteyin. ' - login_with_auth_provider: veya varolan hesabınızı kullanarak oturum açın + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Hesabınızı aktifleştirmek için lütfen giriş yapın. @@ -118,6 +122,8 @@ tr: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM istemcileri + automation: + actions: Actions calculated_value_error: customized_id: Özelleştirilmiş Kimlik customized_type: Özelleştirilmiş tür @@ -128,8 +134,6 @@ tr: repository: Depo comment: commented: Yorumlananlar - custom_action: - actions: Eylemler custom_field: admin_only: Yalnızca yönetici allow_non_open_versions: Açık olmayan sürümlere izin ver @@ -168,6 +172,7 @@ tr: uid: Müşteri Kimliği emoji_reaction: reactable: Tepki gösterilme tarihi + reaction: Reaction enterprise_token: active_user_count_restriction: Aktif üyeler encoded_token: Kurumsal Destek anahtarı @@ -179,20 +184,44 @@ tr: company: Şirket favorite: favorited: Öğe + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Sütun sayısı page: Sayfa row_count: Satır sayısı widgets: Araçlar group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Grup kullanıcıları identity_url: Kimlik URL'si organizational_unit: Organizasyonel birim parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizasyonel birim parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ tr: title: Başlık member: blocked: Blocked + principal_type: Member type roles: Yetkiler notification: read_ian: Uygulama içi okuyun @@ -235,6 +265,7 @@ tr: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ tr: ongoing: Devam eden spent_on: Tarih type: Tür + token/base: + expires_on: Expiration date token/ical: calendar: Takvim ical_token_query_assignment: Sorgu ataması @@ -384,19 +417,17 @@ tr: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Yönetici auth_source: Kimlik doğrulama kaynağı + avatar_type: Avatar type consented_at: Rızanın alınması current_password: Mevcut parola department: Department @@ -410,7 +441,7 @@ tr: last_name: Soy isim ldap_auth_source: LDAP bağlantısı new_password: Yeni parola - password_confirmation: Onay + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ tr: user_preference: auto_hide_popups: Başarı uyarılarını otomatik olarak gizle auto_hide_popups_caption: Etkinleştirildiğinde, yeşil başarı uyarıları 5 saniye sonra otomatik olarak kaybolacaktır. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Uyarıları güncelle button_update_look_and_feel: Görünümü ve hissi güncelle button_update_user_information: Profili güncelle comments_sorting: İş paketi faaliyetini aşağıdakilere göre sıralanmış olarak görüntüle daily_reminders: Günlük hatırlatmalar + date_format: Date format disable_keyboard_shortcuts: Klavye kısayollarını devre dışı bırak dismissed_enterprise_banners: Gizli kurumsal afişler force_dark_theme_contrast: Karanlık moddayken yüksek kontrastı zorla @@ -434,13 +469,23 @@ tr: header_look_and_feel: Görünüm ve his impaired: Erişilebilirlik modu increase_contrast: Kontrastı artır - increase_contrast_caption: Seçilen renk modu için yüksek kontrast modunu etkinleştirir. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Tema kontrastını artırın mode_guideline: Bazı modlar, erişilebilirlik ve okunabilirlik için özel tema renklerinin üzerine yazacaktır. Tam özel tema desteği için lütfen Aydınlık modunu seçin. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Renk modu + time_format: Time format time_zone: Zaman dilimi warn_on_leaving_unsaved: İş paketlerinden ayrılırken kaydedilmemiş değişiklik olduğunda beni uyar workdays: İş Günleri + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Kullanılabilirlik faktörü days: Çalışma Günleri @@ -491,6 +536,7 @@ tr: title: İş günleri true: çalışılmayan günleri dahil et journal_internal: İç Dergi + labels: Labels notify: Bildirim observed_in_versions: Observed in versions parent: Üst @@ -519,6 +565,10 @@ tr: work_package: İş paketi work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: kabul edilmelidir. @@ -594,6 +644,8 @@ tr: regex_invalid: atanmış düzenli ifadeler ile doğrulanamadı. regex_list_invalid: "%{invalid_lines} satırları düzenli ifade olarak ayrıştırılamadı." regex_match_failed: "%{expression} düzenli ifadesiyle eşleşmiyor." + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: en fazla uzunluğa eşit veya daha küçük olmalıdır. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -616,6 +668,10 @@ tr: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: uzunluğu yanlıştır (%{count} karakter olmalıdır). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -676,6 +732,16 @@ tr: general_consent: Lütfen hüküm ve koşulları kabul edin. favorite: already_favorited: zaten favorilere eklenmiş. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: son değerin başlangıç değerinden daha büyük olması gerekir. outside: Grup dışında görünmektedir. @@ -693,6 +759,13 @@ tr: not_unique: zaten kullanılıyor. Lütfen başka bir isim seçiniz. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -748,7 +821,6 @@ tr: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: hala iş paketleri tarafından kullanılmaktadır:%{types} switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -861,42 +933,26 @@ tr: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -910,8 +966,8 @@ tr: numeric: rakam (örneğin '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: daha önce kullanılmıştır. Son parolanızdan farklı birini seçiniz. - other: daha önce kullanılmıştır. Son %{count} parolanızdan farklı birini seçiniz. + one: has been used before. Please choose one that is different from your last %{count} password. + other: has been used before. Please choose one that is different from your last %{count}. special: özel (örneğin '%') uppercase: büyük harf (örneğin 'A') password_confirmation: @@ -980,6 +1036,8 @@ tr: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: başka bir projede olamaz. cannot_be_milestone: kilometre taşı olamaz. @@ -1007,6 +1065,8 @@ tr: status_id: status_invalid_in_type: Geçerli durum bu türde bulunmadığından geçersiz. status_transition_invalid: geçerli kullanıcının rolleri için eski durumdan yeni duruma geçerli bir geçiş mevcut olmadığından geçersiz. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: kilometre taşı olmaz çünkü alt iş paketlerine sahip. is_not_a_valid_target_for_time_entries: 'İş paketi #%{id} zaman girdilerini yeniden atama için geçerli bir hedef değil.' @@ -1015,8 +1075,8 @@ tr: template: body: 'Lütfen aşağıdaki alanları kontrol edin:' header: - one: "%{model} kaydı 1 hatadan dolayı engellendi" - other: "%{model} kaydı %{count} hatadan dolayı engellendi" + one: "%{count} error prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Action @@ -1054,6 +1114,9 @@ tr: auth_provider: one: Kimlik doğrulama sağlayıcısı other: Kimlik doğrulama sağlayıcıları + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1075,9 +1138,6 @@ tr: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1123,6 +1183,9 @@ tr: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1141,6 +1204,9 @@ tr: issue_priority: one: Öncelik other: Öncelik + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1405,7 +1471,28 @@ tr: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1438,7 +1525,11 @@ tr: tab_interface: Arayüz tab_pdf_export_font: PDF dışa aktarma yazı tipi tab_pdf_export_styles: PDF dışa aktarma biçimi - theme_warning: Temayı değiştirmek size özel stilin üzerine yazacaktır. Tasarım daha sonra kaybolacak. Devam etmek istediğine emin misin? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Bir Enterprise sürümü destek belirteci yükleyin book_now: Şimdi rezervasyon yaptırın @@ -1471,7 +1562,7 @@ tr: import: title: İçeri Aktar info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc bellek ayırıcı @@ -1479,12 +1570,15 @@ tr: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: Henüz yapılandırılmış Jira ana bilgisayarı yok @@ -1517,16 +1611,30 @@ tr: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Yapılandırma ekle - button_delete_token: Anahtarı sil + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Yapılandırmayı kaydet - delete_token_confirm: Anahtarı silmek istediğinizden emin misiniz? Bu, Jira bağlantısını devre dışı bırakacaktır. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: İsim - personal_access_token: Kişisel Erişim Anahtarı + personal_access_token: Personal access token (PAT) url: Jira Sunucusu/Veri Merkezi URL'si label_testing: Yapılandırma test ediliyor... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1630,25 +1738,25 @@ tr: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: Bu geri dönüşün verileri kalıcı olarak sileceğini anlıyorum @@ -1714,7 +1822,7 @@ tr: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1779,23 +1887,53 @@ tr: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Bağlantı hatası: %{message}' error: Bağlantı test edilirken beklenmeyen bir hata oluştu failed: 'Bağlantı başarısız oldu: Sunucu bilgileri alınamıyor' invalid_url: Lütfen geçerli bir URL giriniz - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: "%{server} adresine başarıyla bağlandı (sürüm %{version})" - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Anahtar başarıyla silindi. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1826,6 +1964,18 @@ tr: update: failure: MCP yapılandırması güncellenemedi. success: MCP yapılandırması başarıyla güncellendi. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Daha fazla bilgi için entegrasyonlar ve eklentiler sayfamıza bakın. no_results_title_text: Şu anda yüklü bir eklenti yok. @@ -1839,7 +1989,7 @@ tr: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1968,7 +2118,7 @@ tr: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2009,7 +2159,7 @@ tr: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2042,13 +2192,20 @@ tr: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2058,7 +2215,7 @@ tr: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2071,7 +2228,31 @@ tr: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: şu an görüntüleniyor is_inactive: şu an görüntülenmiyor show_until: Son görüntülenme tarihi @@ -2079,7 +2260,7 @@ tr: deleted_by_admin: Karantinaya alınan '%{filename}' dosyası bir yönetici tarafından silindi. deleted_message: "'%{filename}' dosyasında bir virüs tespit edildi. Dosya silinmiştir." not_processed_yet_message: Dosya henüz virüs taramasından geçmediği için indirme işlemi engellendi. Lütfen daha sonra tekrar deneyin. - overridden_by_admin: "'%{filename}' dosyası için karantina %{user} tarafından kaldırıldı. Dosyaya artık erişilebilir." + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Depo delete: Karantinaya alınan dosyayı sil @@ -2133,10 +2314,6 @@ tr: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: Aradığınız çalışma paketi bulunamadı veya silinmiş. - render: - context_not_parsable: Sağlanan bağlam, bir kaynağa bağ değildir. - context_object_not_found: Bağlam olarak verilen kaynağı bulamıyor. - unsupported_context: Verilen kaynak bağlam olarak desteklenmiyor. unable_to_create_attachment: Ek oluşturulamadı unable_to_create_attachment_permissions: 'Dosya sistemi izinlerinin eksik olması nedeniyle ek kaydedilemedi @@ -2209,6 +2386,7 @@ tr: groups: Gruplar hexcode: Hex kodu id: ID + inexistent: Inexistent is_default: Varsayılan değer is_for_all: Tüm projeler için issue: İş paketi @@ -2259,6 +2437,7 @@ tr: updated_at: Güncelleme tarihi updated_on: Güncelleme tarihi uploader: Yükleyici + url: URL user: Kullanıcı username: Kullanıcı adı value: Değer @@ -2273,6 +2452,29 @@ tr: ' login_and_registration: Giriş ve kayıt + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'İş, hata nedeniyle iptal edildi: %{message}' @@ -2401,6 +2603,7 @@ tr: button_set_reminder: Hatırlatma ayarla button_show: Göster button_sort: Sırala + button_stop_timer: Zamanlayıcıyı durdur button_submit: Gönder button_test: Test et button_unarchive: Arşivden çıkar @@ -2467,9 +2670,9 @@ tr: text: failed: '"%{source_project_name}" project "%{target_project_name}" projesine kopyalanamadı.' succeeded: '"%{source_project_name}" projesini "%{target_project_name}" dosyasına kopyaladı.' - title: "%{source_project_name} projesini kopyala" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Bu türden bir nesne + one: "%{count} object of this type" other: "%{count} bu tür nesneler" zero: Bu türden nesne yok create_portfolio: @@ -2507,13 +2710,9 @@ tr: plural: Özel eylemler custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: '"Tüm projeler için" seçeneği işaretli olduğu için bu proje niteliği tüm projelerde etkindir. Projeler için bağımsız olarak devre dışı bırakılamaz.' - heading: Tüm projeler için hierarchy: subitems: - one: 1 alt öğe + one: "%{count} sub-item" other: "%{count} alt öğe" zero: alt öğe yok items: @@ -2534,7 +2733,7 @@ tr: short: Kısa adı weight: Weight notice: - remember_items_and_projects: Bu özel alan için ilgili sekmelerde öğeleri ve projeleri ayarlamayı unutmayın. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2599,16 +2798,17 @@ tr: is_enabled_globally: Genel için etkinleştirildi multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: Rol ataması yok + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Öncelikle iş paketi veya proje seçimi gereklidir reorder_alphabetical: Değerleri alfabetik olarak yeniden sıralayın reorder_confirmation: 'Uyarı: Mevcut değerlerin mevcut sırası ve kaydedilmemiş tüm değerler kaybolacaktır. Devam etmek istediğinizden emin misiniz?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Yeni bir özel alan oluştur - no_results_title_text: Şu anda özel bir alan bulunmamakta. text_add_new_custom_field: 'Bir projeye yeni özel alanlar eklemeden önce onları oluşturmalısınız. ' @@ -2672,57 +2872,57 @@ tr: datetime: distance_in_words: about_x_hours: - one: yaklaşık 1 saat - other: yaklaşık %{count} saat + one: about %{count} hour + other: about %{count} hours about_x_months: - one: yaklaşık 1 ay - other: yaklaşık %{count} ay + one: about %{count} month + other: about %{count} months about_x_years: - one: yaklaşık 1 yıl - other: yaklaşık %{count} yıl + one: about %{count} year + other: about %{count} years almost_x_years: - one: neredeyse 1 yıl - other: neredeyse %{count} yıl + one: almost %{count} year + other: almost %{count} years half_a_minute: yarım dakika less_than_x_minutes: one: bir dakikadan az other: "%{count} dakikadan az" less_than_x_seconds: - one: 1 saniyeden az - other: "%{count} saniyeden az" + one: less than %{count} second + other: less than %{count} seconds over_x_years: - one: 1 yıldan uzun süre - other: "%{count} yıldan uzun süre" + one: over %{count} year + other: over %{count} years x_days: - one: 1 gün - other: "%{count} gün" + one: "%{count} day" + other: "%{count} days" x_hours: - one: 1 saat - other: "%{count} saat" + one: "%{count} hour" + other: "%{count} hours" x_hours_abbreviated: - one: 1 sa - other: "%{count} sa" + one: "%{count} hr" + other: "%{count} hrs" x_minutes: - one: 1 dakika - other: "%{count} dakika" + one: "%{count} minute" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 dk - other: "%{count} dk" + one: "%{count} min" + other: "%{count} mins" x_months: - one: 1 ay - other: "%{count} ay" + one: "%{count} month" + other: "%{count} months" x_seconds: - one: 1 saniye - other: "%{count} saniye" + one: "%{count} second" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 hafta - other: "%{count} hafta" + one: "%{count} week" + other: "%{count} weeks" x_years: - one: 1 yıl - other: "%{count} yıl" + one: "%{count} year" + other: "%{count} years" units: day: one: gün @@ -2872,8 +3072,8 @@ tr: teaser: description_html: You have access to all %{trial_plan} features. title: - one: "%{trial_plan} deneme anahtarının son bir günü kaldı" - other: "%{trial_plan} deneme anahtarının son %{count} günü kaldı" + one: "%{count} day left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3212,9 +3412,150 @@ tr: selected: Seçilen include_sub_items: Alt öğeleri dahil et no_results_text: Sonuç yok + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Forumda şu anda yayın yok. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3239,6 +3580,8 @@ tr: groups: edit: synchronized_groups: Senkronize gruplar + form: + group_attributes: Group attributes index: description: Kullanıcıları birlikte gruplandırarak, onları aynı projelere üye olarak ekleyebilir veya onlara aynı genel rolleri atayabilirsiniz. memberships: @@ -3264,6 +3607,10 @@ tr: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3277,7 +3624,7 @@ tr: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3286,7 +3633,7 @@ tr: warning: Warning help_texts: views: - favoured: Bu görünümü favori olarak işaretleyin ve soldaki kaydedilmiş görünümler kenar çubuğuna ekleyin. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: Diğer kullanıcıların görünümünüze erişmesine izin vererek bu görünümü yayınlayın. 'Genel görünümleri yönet' iznine sahip kullanıcılar genel sorguyu değiştirebilir veya kaldırabilir. Bu, iş paketi sonuçlarının görünürlüğünü bu görünümde etkilemez ve izinlerine bağlı olarak, kullanıcılar farklı sonuçlar görebilir. homescreen: @@ -3311,6 +3658,31 @@ tr: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Yeni özellikler ve ürün güncellemeleri hakkında bilgi edinin. learn_about: Tüm yeni özellikler hakkında daha fazla bilgi edinin @@ -3347,8 +3719,10 @@ tr: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3398,6 +3772,7 @@ tr: budget_deleted: Budget has been deleted dates_changed: Tarihler değişti default_attribute_written: Salt okunur öznitelikler yazıldı + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3550,10 +3925,10 @@ tr: label_copy_target: Hedef label_copy_workflow_from: İş akışı kopyala label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Çekirdek yapı label_core_version: Çekirdek sürümü label_created_by: "%{user} tarafından oluşturuldu" + label_criteria: Criteria label_current_status: Mevcut durum label_current_version: Mevcut sürüm label_custom_comment: "%{name} comment" @@ -3577,8 +3952,6 @@ tr: label_custom_field_default_type: Boş tür label_custom_field_new: Yeni özel alan label_custom_field_plural: Özel alanlar - label_custom_logo: Özel logo masaüstü - label_custom_logo_mobile: Özel logo mobil label_custom_pdf_export_settings: Özel PDF dışa aktarma ayarları label_custom_style: Tasarım label_custom_style_description: Temalarla OpenProject görünümünü belirleyin, uygulamada kullanmak için varsayılan renklerinizi ve dışa aktarımların nasıl görüneceğini seçin. @@ -3587,11 +3960,12 @@ tr: label_database_version: PostgreSQL sürümü label_date: Tarih label_date_and_time: Tarih ve zaman - label_date_format: Tarih formatı + label_date_and_time_formats: Date and time formats label_date_from: Başlangıç label_date_from_to: "%{start} tarihinden %{end} tarihine" label_date_to: Bitiş label_dates: Tarih + label_day: Gün label_day_plural: gün label_default: Varsayılan label_defaults: Varsayılanlar @@ -3602,6 +3976,7 @@ tr: label_deleted_custom_field: "(özel alan silindi)" label_deleted_custom_item: "(silinmiş öğe)" label_deleted_custom_option: "(silinen seçenek)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3672,6 +4047,7 @@ tr: label_float: Ondalık label_folder: Klasör label_follows: takip eder + label_form_configuration_plural: Forms label_formula: Formül label_forum_new: Yeni forum label_forum_plural: Forumlar @@ -3690,6 +4066,7 @@ tr: label_go_forward: "%{module} alt menüsünü açın" label_greater_or_equal: ">=" label_group: Grup + label_group_attributes_plural: Group attributes label_group_by: Grupla label_group_named: "%{name} Grubu" label_group_new: Yeni grup @@ -3741,8 +4118,8 @@ tr: label_journal_diff: Açıklama Karşılaştırması label_jump_to_a_project: Projeye git... label_keyword_plural: Anahtar kelimeler + label_label_plural: Labels label_language: Dil - label_language_based: Kullanıcının dili tabanlı label_languages: Diller label_last_activity: Son Aktivite label_last_change_on: Son değişiklik @@ -3764,6 +4141,7 @@ tr: label_list: Liste label_loading: Yükleniyor... label_locale: Dil ve bölge + label_locale_based: Use default for user locale label_lock_user: Kullanıcıyı kilitle label_locked: kilitli label_logged_as: Giriş yapılan kullanıcı @@ -3775,6 +4153,7 @@ tr: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Yönetilen% {satıcı} depoları %{vendor} label_mapping_for: "%{attribute} için eşleme" + label_markdown_version: Markdown version label_max_size: Maksimum boyut label_me: ben label_member_all_admin: "(Yönetici durumuna bağlı olarak tüm roller)" @@ -3793,7 +4172,6 @@ tr: label_menu_item_name: Menü öğesinin ismi label_message: İleti label_message_last: Son mesaj - label_message_new: Yeni mesaj label_message_plural: Mesajlar label_message_posted: Mesaj eklendi label_minute_plural: dakika @@ -3805,6 +4183,7 @@ tr: label_module_plural: Modüller label_modules: Modüller label_modules_and_plugins: Modüller ve Eklentiler + label_month: Ay label_months_from: aydan itibaren label_more: Diğer label_more_information: Daha fazla bilgi @@ -3818,6 +4197,7 @@ tr: label_my_avatar: Avatarım label_my_queries: Özel sorgularım label_my_security: Security + label_my_time: My time label_name: İsim label_never: Hiçbir zaman label_new: Yeni @@ -3832,7 +4212,10 @@ tr: label_news_singular: Haberler label_news_view_all: Tüm haberleri gör label_next: Sonraki + label_next_day: Sonraki gün + label_next_month: Sonraki ay label_next_week: Gelecek hafta + label_next_workweek: Sonraki çalışma haftası label_next_year: Next year label_no_change_option: "(Değişiklik yok)" label_no_data: Görüntülenecek veri yok @@ -3840,6 +4223,7 @@ tr: label_no_parent_group: "(No parent group)" label_no_parent_page: Üst sayfa yok label_no_start_date: başlangıç tarihi yok + label_no_time: Zaman takibi yok label_nobody: hiçkimse label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3906,7 +4290,10 @@ tr: label_preview: Ön İzleme label_preview_not_available: Önizleme mevcut değil label_previous: Önceki + label_previous_day: Önceki gün + label_previous_month: Önceki ay label_previous_week: Geçen Hafta + label_previous_workweek: Önceki çalışma haftası label_previous_year: Previous year label_principal_invite_via_email: " veya yeni kullanıcılar e-posta ile davet et" label_principal_search: Mevcut kullanıcıları veya grupları ekle @@ -4025,6 +4412,7 @@ tr: label_sort_lowest: En alta taşı label_sorted_by: "%{value} göre sıralandı" label_spent_time: Harcanan zaman + label_stack: Stack label_start_to_end: baştan sona label_start_to_start: baştan başa label_starts_with: starts with @@ -4044,6 +4432,7 @@ tr: label_subtask_plural: Alt görevler label_summary: Özet label_system: Sistem + label_system_or_language_default: Use system or language based default label_system_settings: Sistem ayarları label_system_storage: Depolama bilgisi label_table_of_contents: İçindekiler @@ -4058,6 +4447,7 @@ tr: label_time: Zaman label_time_entry_activity_plural: Harcanan zaman etkinlikleri label_time_entry_plural: Harcanan zaman + label_timer_since: "%{time} zamanında başladı" label_title: Başlık label_today: bugün label_today_as_date: Tarih olarak bugünü seçin. @@ -4093,7 +4483,9 @@ tr: label_user_search: Kullanıcı ara label_user_settings: Kullanıcı ayarları label_users_settings: Kullanıcı ayarları + label_value: Value label_value_x: 'Değer: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Sürümü düzenle label_version_new: Yeni sürüm label_version_plural: Sürümler @@ -4106,6 +4498,7 @@ tr: label_videos: Videolar label_view_all_revisions: Tüm revizyonları görüntüle label_view_diff: Farklılıkları gör + label_view_mode_switcher: Görünümü değiştir label_view_revisions: Düzeltmeleri izle label_view_x: 'View: %{x}' label_watched_work_packages: Takip edilen iş paketleri @@ -4129,6 +4522,8 @@ tr: label_wiki_start: Başlangıç sayfası label_wiki_toc: İçindekiler Tablosu label_wiki_toc_empty: Başlık mevcut olmadığı için İçindekiler boştur. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Çalışma label_work_package: İş paketi label_work_package_attachments: İş paketi ekleri @@ -4151,45 +4546,46 @@ tr: label_working_days: Working days label_working_days_and_hours: Çalışma günleri ve saatleri label_working_hours: Work schedule + label_workweek: Çalışma haftası label_x_closed_work_packages_abbr: - one: 1 kapalı + one: "%{count} closed" other: "%{count} kapalı" zero: 0 kapalı label_x_comments: - one: 1 yorum + one: "%{count} comment" other: "%{count} yorumlar" zero: yorum yok label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 dosya + one: "%{count} file" other: "%{count} dosya" zero: dosya yok label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 açık + one: "%{count} open" other: "%{count} açık" zero: 0 açık label_x_projects: - one: 1 proje + one: "%{count} project" other: "%{count} proje" zero: proje yok label_x_work_packages: - one: 1 iş paketi + one: "%{count} work package" other: "%{count} iş paketi" zero: İş paketi yok label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: dün label_zen_mode: Zen modu @@ -4245,7 +4641,7 @@ tr: start_tls: STARTTLS start_tls_description: Standart LDAP bağlantı noktasına bağlandıktan sonra bir STARTTLS komutu gönderir. Şifreli bağlantılar için önerilir. tls_options: - tls_certificate_description: LDAP sunucusu sertifikası bu sistemin güvenilir kaynaklarında yoksa buradan manuel olarak ekleyebilirsiniz. Bir PEM X509 sertifika dizisi girin. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: SSL sertifikasını doğrula verify_peer_description_html: 'Sertifika güvenilir zincirinin katı SSL doğrulamasını etkinleştirir.
Uyarı: Bu seçeneğin işaretini kaldırmak, LDAP sunucu sertifikasının SSL doğrulamasını devre dışı bırakır. Bu, Man in the Middle saldırılarıyla bağlantınızı ortaya çıkarır. @@ -4302,6 +4698,8 @@ tr: you_have: Var logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Bildirim Merkezi @@ -4358,8 +4756,8 @@ tr: mentioned: Sizden bir yorumda bahsedildi mentioned_by: "%{user} bir yorumda sizden bahsetti" more_to_see: - one: Bildirimli 1 iş paketi daha var. - other: Bildirimleri olan %{count} iş paketi daha var. + one: There is %{count} more work package with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Tarayıcıda aç reason: assigned: Atanmış @@ -4536,6 +4934,13 @@ tr: create_button: Oluştur dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Yeni bir API anahtarı oluştur + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Anahtar adı failed_to_create_token: 'Erişim anahtarı oluşturması başarısız oldu: %{error}' failed_to_reset_token: 'Erişim anahtarı sıfırlaması başarısız oldu: %{error}' @@ -4549,10 +4954,26 @@ tr: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Erişim anahtarları description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Eylem expiration: Bitiş tarihi @@ -4756,7 +5177,6 @@ tr: %{number} sonuç bulundu. İlk sonuç için TABa basın. notice_principals_found_single: "Bir sonuç bulundu. \n Ona gitmek için TABa basın." - notice_project_cannot_update_custom_fields: 'Projenin kullanılabilir özel alanları güncelleştirilemiyor. Proje geçersiz: %{errors}' notice_project_not_deleted: Proje silinemedi. notice_project_not_found: Proje bulunamadı. notice_requires_enterprise_token: Kurumsal belirteç eksik veya bu sayfaya erişime izin vermiyor. @@ -4766,9 +5186,6 @@ tr: notice_successful_create: Oluşturma başarılı. notice_successful_delete: Silme başarılı. notice_successful_update: Güncelleme başarılı. - notice_successful_update_custom_fields_added_to_project: 'Başarılı güncelleme. Etkinleştirilen türlerin özel alanları, iş paketi formunda otomatik olarak etkinleştirilir. Daha fazlasını görün. - - ' notice_to_many_principals_to_display: Çok fazla sonuç var. Yeni üyenin (veya grubun) adını yazarak aramayı daraltın. notice_unsuccessful_create: Oluşturulamadı. notice_unsuccessful_create_with_reason: 'Oluşturma başarısız oldu: %{reason}' @@ -4868,7 +5285,7 @@ tr: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Hiçbir OAuth uygulaması kaydedilmemiştir. flows: @@ -4959,8 +5376,6 @@ tr: not_found: bulunamadı. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: kendi iş akışına sahip değildir. custom_field: format_not_supported: "'%{field_format}' biçimi desteklenmiyor." item: @@ -4980,7 +5395,6 @@ tr: or: ya da rules: blueprint: Kalıp planı - copy_workflow_from: İş akışı kopyası için tür depth: Derinlik enabled: Etkin item: Öğe @@ -5052,8 +5466,8 @@ tr: label: Table of contents page_nr_footer: Sayfa %{page} / %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Nitelikler ve açıklama @@ -5078,7 +5492,7 @@ tr: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Haberlere yorum yazmak permission_commit_access: Depoya okuma / yazma erişimi (tamamlama) - permission_copy_projects: Proje kopyalamak + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: İş paketlerini çoğalt permission_create_backup: Yedek oluşturma @@ -5111,6 +5525,7 @@ tr: permission_export_projects: Export projects permission_export_work_packages: İş paketlerini dışarı aktar permission_header_for_project_module_work_package_tracking: İş paketleri ve Gantt şemaları + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5121,6 +5536,9 @@ tr: permission_manage_dashboards: Gösterge panellerini yönetme permission_manage_forums: Forumları yönetmek permission_manage_members: Üyeleri yönetmek + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Haberleri yönet permission_manage_own_reminders: Kendi hatırlatıcısını oluşturma permission_manage_own_working_times: Manage own working times @@ -5149,7 +5567,6 @@ tr: permission_save_bcf_queries: BCF sorgularını kaydetme permission_save_queries: Görünüm kaydetmek permission_search_project: Projeyi ara - permission_select_custom_fields: Özel alanları seçin permission_select_project_custom_fields: Proje özniteliklerini seçme permission_select_project_modules: Proje modülleri seçmek permission_select_project_phases: Proje aşamalarını seçin @@ -5183,6 +5600,16 @@ tr: permission_work_package_assigned: Atanan/sorumlu olun permission_work_package_assigned_explanation: İşpaketleri bağlı projedeki rollere göre kullanıcı ve gruplara atanabilir placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Yer tutucu kullanıcısını silin. deletion_info: data_consequences: 'Yer tutucu kullanıcının adının geçtiği her şey (örn. devralan, sorumlu veya diğer kullanıcı değerleri) "Silinmiş Kullanıcı" olarak anılan bir hesaba atanacaktır. Silinmiş tüm hesapların bilgileri bu hesaba atandığından bu kullanıcının oluşturduğu veriler başka bir silinmiş hesap tarafından oluşturulmuş verilerden ayrılamaz. @@ -5204,7 +5631,7 @@ tr: name: OmniAuth SAML / Tek Oturum Açma portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5215,7 +5642,7 @@ tr: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Aktif portföyler @@ -5230,7 +5657,7 @@ tr: Tablodaki iş paketlerini vurgulamak için kullanılabilir. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5242,7 +5669,7 @@ tr: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 proje + one: "%{count} project" other: "%{count} proje" zero: Proje yok destroy: @@ -5347,11 +5774,11 @@ tr: no_status_when_submitted: "%{type} iş paketi türü kendisiyle ilişkilendirilmiş en az bir durum gerektirdiğinden proje başlatma talebi etkinleştirilemedi. Lütfen bu iş paketi türü için en az bir durum iş akışını etkinleştirin." no_work_package_type: Proje başlatma isteği etkinleştirilemedi, en az bir iş paketi türü gerekiyor. Lütfen bu projeye en az bir iş paketi türü ekleyin. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Yapılandırılmış harici dosya depolarından hangisinin kullanılacağını seçin. external_file_storage: Harici dosya depolama - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: İş paketi dosyası eki olarak kaydet label_file_link_export: Dosyayı harici dosya depolama alanına yükleyin ve dosya bağlantısını iş paketine ekleyin pdf_file_storage: PDF dosya depolama @@ -5361,6 +5788,12 @@ tr: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Şu anda kullanılabilir özel alan bulunmamakta. forums: no_results_content_text: Yeni bir forum oluştur @@ -5457,14 +5890,14 @@ tr: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5476,7 +5909,7 @@ tr: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Yeni bir sürüm oluştur - no_results_title_text: Şu anda proje için sürüm mevcut değil. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: İş paketlerini göster work_packages_graph: İş paketleri grafiği work_package_priorities: @@ -5484,15 +5917,27 @@ tr: status: button_edit: Durumu düzenle wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: Bu özniteliğin tanımlanmış bir yardım metni yoktur. progress_label: "%{current} / %{total}" sections: Bölümler sidebar_content_title: İçerik - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Proje başlatma talebi + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Önceden yapılandırılmış filtre uygula configure_view: @@ -5521,8 +5966,8 @@ tr: action_title: Tepki add_reaction: Tepki ekle and_others: - one: ve 1 diğer - other: ve %{count} diğer + one: and %{count} other + other: and %{count} others and_user: ve %{user} ile react_with: "%{reaction} ile tepki ver" reaction_by: tarafından %{reaction} @@ -5643,6 +6088,31 @@ tr: warnings: cannot_annotate: Bu dosyaya açıklama yapılamaz. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5654,6 +6124,15 @@ tr: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5758,7 +6237,7 @@ tr: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Görüntülenen fark satırlarının maksimum sayısı setting_disable_password_login: Parola kimlik doğrulamasını devre dışı bırak - setting_display_subprojects_work_packages: Varsayılan olarak ana projenin iş listesinde alt proje iş paketlerini göster + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Süre biçimi setting_duration_format_days_and_hours: Gün ve saat setting_duration_format_hours_only: Sadece saat @@ -5873,6 +6352,7 @@ tr: setting_start_of_week: Hafta Başlangıcı setting_sys_api_description: Depo yönetimi web servisi depolara erişmek için entegrasyon ve kullanıcı yetkilendirmesi sağlar. setting_sys_api_enabled: Depo yönetimi web hizmetini etkinleştir + setting_sys_api_key: API key setting_time_format: Zaman setting_total_percent_complete_mode: Tamamlanma yüzdesinin hesabı hiyerarşi toplamları ile yapılır setting_total_percent_complete_mode_simple_average: Basit ortalama @@ -5923,7 +6403,7 @@ tr: description_html: 'Antivirüs tarayıcı entegrasyonunun çalışması gereken modu seçin.
  • %{disabled_option}: Yüklenen dosyalar virüslere karşı taranmaz.
  • %{socket_option}: ClamAV''ı OpenProject ile aynı sunucuya kurdunuz ve tarama servisi clamd arka planda çalışıyor
  • %{host_option}: Dosyaları harici bir virüs tarama servisine aktarıyorsunuz.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virüs taraması başarıyla etkinleştirildi. Daha önce yüklenen ve hala taranması gereken %{file_count} var. Bu işlem arka planda zamanlandı. Dosyalar tarama sırasında erişilebilir kalacaktır. @@ -5934,6 +6414,7 @@ tr: ' title: Virüs taraması attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Bu seçeneğin devre dışı bırakılması, yeni projeler için iş paketleri dosyaları sekmesindeki ekler listesini gizleyecektir. Bir iş paketinin açıklamasına eklenen dosyalar dahili ekler deposuna yüklenmeye devam edecektir. ' @@ -6025,12 +6506,12 @@ tr: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Proje oluşturma sihirbazı project_initiation_request: Proje başlatma talebi @@ -6050,8 +6531,8 @@ tr: **%{project_name}** için bir proje başlatma talebi gönderdiniz. Şu anda incelenmeyi bekliyor. Talebinizi içeren iş paketine erişmek için aşağıdaki bağlantıya tıklayın. confirmation_email_text: Onay e-posta metni - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Teslim edildiğinde durum status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6059,7 +6540,7 @@ tr: work_package_comment_caption: Yukarıda seçilen atanan kişi yorumda otomatik olarak @bahsedilecektir. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6079,6 +6560,7 @@ tr: heading: Yeni aşama no_gate: Kapı yok non_defined: Şu anda herhangi bir faz tanımlanmamıştır. + order_changed: Order successfully changed. phase_gates: Aşama kapıları section_header: Fazlar start_gate: Başlangıç kapısı @@ -6135,7 +6617,7 @@ tr: section_work_week: Çalışma haftası sharing: count: - one: 1 kullanıcı + one: "%{count} user" other: "%{count} kullanıcı" zero: Kullanıcı yok denied: "%{entities} paylaşımı için yetkiniz bulunmuyor." @@ -6228,19 +6710,19 @@ tr:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Toplamlardan hariç tutulanlar is_closed: Kapalı - is_default: Varsayılan is_readonly: Salt okunur + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Yeni durum ekle no_results_title_text: Şu anda çalışma paketi durumu yok. + status_actions: Status actions support: array: sentence_connector: ve skip_last_comma: yanlış text_access_token_hint: Erişim belirteçleri, OpenProject içindeki kaynaklara harici uygulamalar erişimi vermenizi sağlar. - text_accessibility_hint: Erişilebilirlik modu, kör, engelli ve ya ciddi görme güçlüğü çeken kullanıcılar için tasarlandı. Bu modda yazı odaklı bileşenler özellikle vurgulanır. Backlogs modülünde bu özelliği henüz kullanamayacağınızı da belirtelim. text_analyze: 'Daha fazla analiz: %{subject}' text_are_you_sure: Emin misiniz? text_are_you_sure_continue: Devam etmek istediğinize emin misiniz? @@ -6283,12 +6765,6 @@ tr: ' text_custom_field_possible_values_info: Her değer için bir satır - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'Bu, ana ekranınıza bir yer imi yerleştirdiğinizde cep telefonunuzda veya tabletinizde görünen simgedir. Kare şeklinde 180 x 180 piksel boyutunda bir PNG görüntü dosyası olması gerekir. Lütfen resmin arka planının şeffaf olmadığından emin olun, aksi takdirde iOS''ta kötü görünecektir. ' @@ -6338,6 +6814,7 @@ tr: text_length_between: "%{min} ve %{max} karakter arası uzunluk." text_line_separated: Birden fazla değer kullanılabilir (her değer için bir satır). text_load_default_configuration: Varsayılan yapılandırmayı yükle + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Yapılandırılacak erişim belirteçleri yok. text_no_configuration_data: Roller, türleri, çalışma paketi durumu ve iş akışı henüz yapılandırılmadı. Varsayılan yapılandırmayı yüklemeniz kesinlikle önerilir. Yüklendikten sonra onu değiştirebileceksiniz. text_no_notes: Bu çalışma paketi için bir yorum bulunmuyor. @@ -6437,6 +6914,68 @@ tr: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6446,14 +6985,40 @@ tr: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6462,8 +7027,10 @@ tr: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6492,21 +7059,21 @@ tr: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Tümünü devre dışı bırak label_enable_all: Tümünü etkinleştir label_toggle_template: Toggle %{template} label: PDF Dışa Aktarma şablonları + order_changed: Order successfully changed. tab: PDF oluşturma templates: readonly_error: Cannot be changed while linked to a source type. @@ -6523,6 +7090,8 @@ tr: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6544,6 +7113,14 @@ tr: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6553,12 +7130,14 @@ tr: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6572,12 +7151,12 @@ tr: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6590,10 +7169,12 @@ tr: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Tüm projeler için etkinleştir select_projects: Projeleri seçin select_projects_description: Bu türü kullanmak istediğiniz projeleri seçin. tab: Projeler + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6608,43 +7189,17 @@ tr: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6652,6 +7207,9 @@ tr: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6660,13 +7218,14 @@ tr: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6680,12 +7239,16 @@ tr: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6694,33 +7257,74 @@ tr: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Yeni tip oluştur no_results_title_text: Şu anda hiç tip yok. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Bu uyarıyı yoksay. message: Bu sayfada hatalara ve bozulmuş deneyime maruz kalabilirsiniz. @@ -6739,8 +7343,8 @@ tr: authorization_rejected: Oturum açma izniniz yok. blocked: geçici olarak kilitlendi blocked_num_failed_logins: - one: geçici olarak kilitlenmiştir (bir başarısız giriş denemesi) - other: geçici olarak kilitlenmiştir (%{count} başarısız giriş denemeleri) + one: locked temporarily (%{count} failed login attempt) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: "'%{name}' durumunu değiştirmek üzeresiniz. Devam etmek istediğinizden emin misiniz?" deleted: Kullanıcı silindi department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6840,7 +7444,7 @@ tr: deletion_warning: Bu oturumu iptal etmek istediğinizden emin misiniz? Bu cihazda oturumunuz kapatılacaktır. device: Cihaz / İşletim Sistemi expires: Bitiş tarihi - instructions: Hesabınıza aşağıdaki cihazlar üzerinden giriş yaptınız. Tanımadığınız veya kontrol etmediğiniz cihazlardan yapılan oturumları iptal edin. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Son bağlantı may_not_delete_current: Şuanki oturumunuzu silemezsiniz. session_name: "%{os_name} üzerinde %{browser_name} %{browser_version}" @@ -6900,13 +7504,19 @@ tr: start_date: Başlangıç tarihi work_days: Çalışma günleri work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: kapalı version_status_locked: kilitli version_status_open: açık versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Bu sürüme atanan iş paketi bulunmuyor. work_packages_in_archived_projects: Sürüm, hala bu sürüme atanmış iş paketleri olan arşivlenmiş projelerle paylaşılmakta. Bunlar sayılır, ancak bağlantılı görünümlerde gösterilmez. @@ -7076,12 +7686,14 @@ tr: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: İş paketleri kopyalanamadı. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'Aşağıdaki iş paketleri kaydedilemedi:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: seçilmiş nesil move_failed: İş paketleri taşınamadı. @@ -7106,17 +7718,17 @@ tr: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7174,18 +7786,154 @@ tr: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7217,37 +7965,53 @@ tr: version: no_results_title_text: Şu anda sürüm bulunmuyor. x_descendants: - one: Bir soydan iş paketi - other: "%{count} Bir soydan iş paketi" + one: "%{count} descendant work package" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7256,12 +8020,88 @@ tr: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: İş günlerini değiştir dialog: diff --git a/config/locales/crowdin/uk.seeders.yml b/config/locales/crowdin/uk.seeders.yml index c47da4ecde40..cb8f4af95a35 100644 --- a/config/locales/crowdin/uk.seeders.yml +++ b/config/locales/crowdin/uk.seeders.yml @@ -250,70 +250,26 @@ uk: У цьому модулі ви можете повідомляти новини проєкту учасникам своєї команди. versions: item_0: - name: Невиправлені помилки - item_1: - name: Невиконані завдання для продукту - item_2: - name: Спринт 1 wiki: - title: Спринт 1 + title: Випуск 1.0 content: | - ### Зустріч із планування спринту - - _Запишіть тут теми зустрічі з планування спринту_ - - * Відведений час (8 год) - * Вхідні дані: невиконані завдання для продукту - * Вихідні дані: невиконані завдання для спринту - - * Складається з двох додаткових вікон тривалістю 4 год кожне: - - * Власник продукту представляє команді [Невиконані завдання для продукту]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) і пріоритети та пояснює ціль спринту, з якою команда має погодитися. Разом вони визначають пріоритетні невиконані завдання для продукту, які команда має виконати в наступному спринті. Команда зобов’язується забезпечити потрібні результати. - * Команда автономно (без власника продукту) розробляє детальний план і розбиває його на обговорені завдання, які потрібно включити в [Невиконані завдання для продукту]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Щоденна зустріч щодо спринту + ### Випуск 1.0 - _Запишіть тут теми щоденної зустрічі щодо Scrum_ + _Вкажіть тут деталі цього випуску._ - * Коротке щоденне обговорення роботи команди. - * Відведений час (макс. 15 хв). - * Коротка зустріч для обговорення тем із [Дошки завдань](##sprint:scrum_project__version__sprint_1). - * Що я планую зробити до наступної щоденної зустрічі щодо Scrum? - * Що завадило мені виконати завдання (перешкоди)? - * Scrum-майстер модерує і фіксує [Перешкоди спринту](##sprint:scrum_project__version__sprint_1). - * Власник продукту може приєднатися до зустрічі, щоб бути в курсі справ. - - ### Зустріч з огляду принту - - _Запишіть тут теми зустрічі з огляду спринту_ - - * Відведений час (4 год). - * Щонайбільше 1 год підготовки на особу. - * Команда представляє власнику продукту й іншим зацікавленим особам свої результати цього спринту. - * Важливо: без зайвих слів і презентацій PowerPoint! Потрібно демонструвати лише функції готового продукту (досягнення). - * Вітаються відгуки від власника продукту, зацікавлених осіб та інших. Їх буде враховано під час подальшої роботи. - * На основі продемонстрованих функцій власник продукту вирішує втілити це досягнення або продовжити роботу над ним. Така можливість швидко забезпечує рентабельність інвестицій. - - - ### Висновки спринту - - _Запишіть тут теми зустрічі для підбиття висновків спринту_ - - * Відведений час (3 год). - * Після зустрічі з огляду спринту Scrum-майстер починає модерацію процесу. - * Команда обговорює спринт: що вдалося, а де потрібно підвищити продуктивність, щоб отримати кращі результати або навіть більше задоволення від роботи. - item_3: - name: Спринт 2 + * Пакети робіт цього випуску — це ті, що мають цільову версію 1.0. + * Дата випуску — це дата досягнення рубежу *Випуск 1.0*. + * Відкрийте [Дорожню карту]({{opSetting:base_url}}/projects/your-scrum-project/roadmap), щоб переглянути прогрес усіх версій. + * Відкрийте [Налаштування проєкту → Версії]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions), щоб прив’язати іншу вікі-сторінку до версії. categories: item_0: Категорія 1 (змінити в налаштуваннях проєкту) queries: item_0: name: План проєкту item_1: - name: Черга продукту + name: Версія 1.1 item_2: - name: Спринт 1 + name: Версія 1.0 item_3: name: Завдання boards: @@ -345,10 +301,10 @@ uk: 1. *Запросіть учасників у свій проєкт*: → виберіть [Учасники]({{opSetting:base_url}}/projects/your-scrum-project/members) на панелі навігації проєктом. 2. *Перегляньте список невиконаних завдань для свого продукту й спринту*: → виберіть [Невиконані завдання]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) на панелі навігації проєктом. - 3. *Перегляньте дошку завдань*: → виберіть [Невиконані завдання]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → натисніть стрілку вправо для спринту → виберіть [Дошка завдань](##sprint:scrum_project__version__sprint_1). - 4. *Створіть новий пакет робіт*: → виберіть [Пакети робіт → Створити]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Створіть і оновіть план проєкту*: → виберіть [План проєкту](##query:scrum_project__query__project_plan) на панелі навігації проєктом. - 6. *Створіть вікі-сторінку спринту*: → виберіть [Невиконані завдання]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) і відкрийте вікі-сторінку спринту з розкривного меню праворуч у вікні спринту. Ви можете відредагувати [шаблон вікі-сторінки]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) залежно від своїх потреб. + 3. *Створіть спринт*: → виберіть [Невиконані завдання]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) і натисніть «+ Спринт», шоб створити новий спринт. Перемістіть пакети робіт зі списку невиконаних завдань до спринту та заплануйте роботу, після чого натисніть «Почати спринт». + 4. *Перегляньте дошку спринту*: → виберіть [Дошки]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → відкрийте дошку спринту, натиснувши на назву спринту. + 5. *Створіть новий пакет робіт*: → виберіть [Пакети робіт → Створити]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Створіть і оновіть план проєкту*: → виберіть [План проєкту](##query:scrum_project__query__project_plan) на панелі навігації проєктом. 7. *Активуйте додаткові модулі*: → виберіть [Налаштування проєкту → Модулі]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). Тут ви знайдете наші [Посібники користувача](https://www.openproject.org/docs/user-guide/). Якщо маєте запитання або потребуєте допомоги, зв’яжіться з нами: [support[at]openproject.com](mailto:support@openproject.com). diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index a8c78e0a25af..4cfb1f1e56b7 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -40,7 +40,9 @@ uk: view: Динамічне посилання на подання, розміщене за допомогою макроса. work_package: Динамічне посилання на пакет робіт, розміщене за допомогою макроса. account: + already_have_an_account: You already have an account? auth_source_login_html: Увійдіть, як %{login} для активації облікового запису. + continue_with_provider: Continue with %{name} delete: Видалити обліковий запис delete_confirmation: Ви дійсно бажаєте видалити цей обліковий запис? deletion_info: @@ -65,7 +67,9 @@ uk: error_self_registration_limited_provider: 'Реєстрація користувачів через постачальника єдиного входу %{name} обмежена. Зверніться до адміністратора, щоб активувати обліковий запис або змінити ліміт самостійних реєстрацій для цього постачальника. ' - login_with_auth_provider: або ввійдіть у свій існуючий обліковий запис + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Продовжити вхід omniauth_direct_login_redirecting: Перенаправляємо вас до вашого постачальника послуг ідентифікації… omniauth_login: Увійдіть, щоб активувати свій обліковий запис. @@ -118,6 +122,8 @@ uk: auth_provider: additional_form_action_urls: Додаткові дозволені URL-адреси для перенаправлення після входу в систему scim_clients: Клієнти SCIM + automation: + actions: Actions calculated_value_error: customized_id: Користувацький ідентифікатор customized_type: Користувацький тип @@ -128,8 +134,6 @@ uk: repository: Репозиторій comment: commented: Прокоментовано - custom_action: - actions: Дії custom_field: admin_only: Тільки для адміністраторів allow_non_open_versions: Дозволити невідкриті версії @@ -168,6 +172,7 @@ uk: uid: Ідентифікатор клієнта emoji_reaction: reactable: Реакція на + reaction: Reaction enterprise_token: active_user_count_restriction: Активні користувачі encoded_token: Маркер підтримки підприємства @@ -179,20 +184,44 @@ uk: company: Компанія favorite: favorited: Об’єкт + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Кількість стовпців page: Сторінка row_count: Кількість рядків widgets: Віджети group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Користувачі групи identity_url: URL-адреса ідентичності organizational_unit: Організаційний підрозділ parent: Батьківська група group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Організаційний підрозділ parent: Батьківська група import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Назва екземпляра Jira personal_access_token: Персональний маркер доступу url: URL-адреса екземпляра Jira @@ -223,6 +252,7 @@ uk: title: Заголовок member: blocked: Заблоковано + principal_type: Тип учасника roles: Роль notification: read_ian: Читайте в додатку @@ -235,6 +265,7 @@ uk: position: Позиція persisted_query: filters: Фільтри + group_bys: 'Групування результатів:' name: Назва orders: Порядок selects: Вибране @@ -367,6 +398,8 @@ uk: ongoing: Триває spent_on: Дата type: Тип + token/base: + expires_on: Expiration date token/ical: calendar: Календар ical_token_query_assignment: Призначення запиту @@ -384,19 +417,17 @@ uk: type_variant: attribute_groups: Форма default_work_package_description: Стандартний текст опису - defaults_source: Джерело стандартних значень enabled_in_new_projects: Активовано в нових проєктах - form_configuration_source: Джерело форми + linked_aspects: Успадкована конфігурація patterns: Шаблони - pdf_export_source: Джерело експорту в PDF - project_attributes_source: Джерело атрибутів проєкту project_types: Проєкти, у яких використовується цей варіант variant: Варіант variant_name: Назва - workflows_source: Джерело робочих процесів + workflow: Робочий процес user: admin: Адміністратор auth_source: Джерело автентифікації + avatar_type: Avatar type consented_at: Згоден на current_password: Поточний пароль department: Відділ @@ -410,7 +441,7 @@ uk: last_name: Прізвище ldap_auth_source: LDAP-підключення new_password: Новий пароль - password_confirmation: Підтвердження + password_confirmation: Password confirmation user_custom_field: custom_field_section: Розділ user_non_working_time: @@ -419,11 +450,15 @@ uk: user_preference: auto_hide_popups: Автоматично приховувати банери про успішне виконання auto_hide_popups_caption: Якщо ввімкнено, зелені банери про успішне виконання автоматично зникатимуть через 5 секунд. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Сповіщення про оновлення button_update_look_and_feel: Оновити оформлення button_update_user_information: Оновити профіль comments_sorting: Відображати дії з пакетів робіт, відсортовані за daily_reminders: Щоденні нагадування + date_format: Date format disable_keyboard_shortcuts: Вимкнути комбінації клавіш dismissed_enterprise_banners: Приховані банери Enterprise force_dark_theme_contrast: Примусово вмикати високу контрастність у темному режимі @@ -434,13 +469,23 @@ uk: header_look_and_feel: Оформлення impaired: Режим спеціальних можливостей increase_contrast: Збільшити контрастність - increase_contrast_caption: Вмикає високу контрастність для вибраного колірного режиму. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Збільшити контрастність теми mode_guideline: Деякі режими перезаписують користувацькі кольори теми, щоб поліпшити доступність і читабельність. Виберіть світлий режим, якщо потрібна повна підтримка користувацької теми. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Колірний режим + time_format: Time format time_zone: Часовий пояс warn_on_leaving_unsaved: Попереджати мене, коли залишив робочий пакет із незбереженими змінами workdays: Робочі дні + user_resource: + description: Опис + name: Назва + user_filter: Фільтр користувача + user_resource_detail: + description: Опис + user_filter: Фільтр користувача user_working_hours: availability_factor: Коефіцієнт доступності days: Робочі дні @@ -491,6 +536,7 @@ uk: title: Робочі дні true: включати неробочі дні journal_internal: Внутрішній журнал + labels: Labels notify: Сповіщати observed_in_versions: Спостерігається у версіях parent: Джерело @@ -519,6 +565,10 @@ uk: work_package: Робочий пакет work_package_version: kind: Вид + workflow: + description: Опис + name: Назва + type_variants: Типи та варіанти, що використовують цей робочий процес errors: messages: accepted: повинні бути прийняті. @@ -590,6 +640,8 @@ uk: regex_invalid: неможливо перевірити з відповідним регулярним виразом. regex_list_invalid: Неможливо проаналізувати рядки %{invalid_lines} як регулярний вираз. regex_match_failed: не збігається з регулярним виразом %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: має бути меншою або дорівнює максимальній довжині. smaller_than_or_equal_to_max_value: має бути менше або дорівнювати максимальному значенню. ssrf_filtered: порушує політику SSRF цього екземпляра OpenProject. @@ -614,6 +666,10 @@ uk: user_in_ldap_managed_department: Цей користувач належить до відділу, що синхронізується з LDAP, тому його не можна перемістити. wrong_length: неправильна довжина (повинна бути %{count} символів). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -678,6 +734,16 @@ uk: general_consent: Будь ласка, прийміть правила й умови використання. favorite: already_favorited: уже додано у вибране. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: кінцеве значення має бути більше початкового значення. outside: знаходиться за межами сітки. @@ -695,6 +761,13 @@ uk: not_unique: уже використовується. Виберіть інше ім’я. jira: invalid_protocol: Укажіть дійсний протокол (http або https) + label: + attributes: + name: + blank: Поле назви не може бути порожнім. + format: "%{message}" + taken: Мітка з цією назвою вже існує. Виберіть іншу назву. + too_long: 'Назва занадто довга (макс. кількість символів: %{count}).' ldap_auth_source: attributes: tls_certificate_string: @@ -750,7 +823,6 @@ uk: types: cannot_assign_multiple_variants_of_parent: На рівні проєкту можна ввімкнути лише один варіант типу cannot_assign_variant_and_parent: 'Неможливо призначити варіант і його батьківський об’єкт ' - cannot_assign_variants_yet: Зараз на рівні проєкту не можна вмикати варіанти. Активуйте прапорець функції, щоб випробувати варіанти. in_use_by_work_packages: 'як і раніше використовуються робочі пакети: %{types}' switch_target_blank: Виберіть варіант, на який потрібно перемкнутися switch_target_identical: Цільовий тип має відрізнятися від типу, що використовується в проєкті зараз @@ -863,42 +935,26 @@ uk: blank: Укажіть ім’я маркера format: "%{message}" in_use: Це ім’я маркера вже використовується; виберіть інше + type: + attributes: + base: + in_use_by_work_packages: Цей тип не можна видалити, доки його використовують пакети робіт. type_variant: attributes: - attribute_groups: - attribute_unknown: Використовується недійсний атрибут пакета робіт. - attribute_unknown_name: 'Використовується недійсний атрибут пакета робіт: %{attribute}' - duplicate_group: Назва групи «%{group}» використовується більше ніж раз. Назви груп мають бути унікальними. - group_without_name: Ім’я групи не може бути порожнім. - query_invalid: 'Вбудований запит «%{group}» недійсний: %{details}' base: - borrowed_by_variants: Не можна видалити, оскільки відповідну конфігурацію повторно використовують %{names}. is_default_variant: Стандартну конфігурацію типу не можна видалити. project_variants_not_allowed: Цей тип не дозволяє створювати варіанти всередині проєктів. restrict_dependent_destroy: has_many: Не можна видалити, поки використовується в проєктах. - defaults_source_id: - must_be_available_to_the_variant: має бути конфігурацією, яку може використовувати цей проєкт. - would_create_cycle: зв’яже ці конфігурації в цикл. enabled_in_new_projects: not_available_to_project_owned_variant: не можна встановити для варіанта, що належить проєкту. taken: уже налаштовано для іншої конфігурації такого типу. - form_configuration_source_id: - must_be_available_to_the_variant: має бути конфігурацією, яку може використовувати цей проєкт. - would_create_cycle: зв’яже ці конфігурації в цикл. patterns: invalid_tokens: Один або кілька атрибутів усередині поля недійсні. Виправте їх, перш ніж зберігати. - pdf_export_source_id: - must_be_available_to_the_variant: має бути конфігурацією, яку може використовувати цей проєкт. - would_create_cycle: зв’яже ці конфігурації в цикл. - project_attributes_source_id: - must_be_available_to_the_variant: має бути конфігурацією, яку може використовувати цей проєкт. - would_create_cycle: зв’яже ці конфігурації в цикл. variant: must_belong_to_the_type: має бути варіантом цього типу. - workflows_source_id: - must_be_available_to_the_variant: має бути конфігурацією, яку може використовувати цей проєкт. - would_create_cycle: зв’яже ці конфігурації в цикл. + workflow: + not_available_to_this_variant: має бути робочим процесом, який може використовувати цей проєкт. user: attributes: base: @@ -912,10 +968,10 @@ uk: numeric: числовий (наприклад, '1') requirements_not_met: 'Має містити такі типи символів: %{rules}' reused: - one: раніше використовувався. Виберіть один, який відрізняється від вашого останнього. - few: раніше використовувався. Виберіть той, який відрізняється від вашого останнього %{count}. - many: раніше використовувався. Виберіть той, який відрізняється від вашого останнього %{count}. - other: раніше використовувався. Виберіть той, який відрізняється від вашого останнього %{count}. + one: has been used before. Please choose one that is different from your last %{count} password. + few: has been used before. Please choose one that is different from your last %{count}. + many: has been used before. Please choose one that is different from your last %{count}. + other: has been used before. Please choose one that is different from your last %{count}. special: спеціальний (наприклад, '%') uppercase: верхній реєстр шрифту (наприклад, 'А') password_confirmation: @@ -984,6 +1040,8 @@ uk: identifier: must_not_be_changed: 'не можна змінити вручну. Ідентифікатори пакетів робіт призначаються автоматично й зіставляються через таблицю псевдонімів, тому їх ручне змінення порушує зв’язки й історію ідентифікаторів. Якщо ви навмисно вносите цю зміну, збережіть запис за допомогою `save(context: :%{context})` і забезпечте узгодженість таблиці work_package_semantic_aliases.' semantic_identifier_incomplete: і sequence_number мають бути вказані одночасно. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: не може бути в іншому проекті. cannot_be_milestone: не може бути важливою подією. @@ -1011,6 +1069,8 @@ uk: status_id: status_invalid_in_type: недійсний, оскільки поточного стану не існує в цьому типі. status_transition_invalid: є недійсним оскільки немає дійсного переходу від старого до нового статусу ролей поточного користувача. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: не може бути важливою межой, оскільки цей робочий пакет має похідні. is_not_a_valid_target_for_time_entries: 'Робочий пакет #%{id} не є дійсною ціллю для перепризначення записів часу.' @@ -1019,10 +1079,10 @@ uk: template: body: 'Перевірте наступні поля:' header: - one: 1 помилка заборонила це %{model} від збереження - few: "%{count} помилка заборонила це %{model} від збереження" - many: "%{count} помилка заборонила це %{model} від збереження" - other: "%{count} помилка заборонила це %{model} від збереження" + one: "%{count} error prohibited this %{model} from being saved" + few: "%{count} errors prohibited this %{model} from being saved" + many: "%{count} errors prohibited this %{model} from being saved" + other: "%{count} errors prohibited this %{model} from being saved" models: action: one: Дія @@ -1084,6 +1144,11 @@ uk: few: Постачальники послуг автентифікації many: Постачальники послуг автентифікації other: Постачальники послуг автентифікації + automation: + one: Automation + few: Automations + many: Automations + other: Automations backup: one: Резервна копія few: Резервні копії @@ -1119,11 +1184,6 @@ uk: few: Коментарі many: Коментарі other: Коментарі - custom_action: - one: Користувацька дія - few: Користувацькі дії - many: Користувацькі дії - other: Користувацькі дії custom_field: one: Користувацьке поле few: Користувацькі поля @@ -1199,6 +1259,11 @@ uk: few: Налаштування експорту many: Налаштування експорту other: Налаштування експорту + form_configuration: + one: Form + few: Forms + many: Forms + other: Forms forum: one: Форум few: Форуми @@ -1229,6 +1294,11 @@ uk: few: Пріоритети many: Пріоритети other: Пріоритети + label: + one: Label + few: Labels + many: Labels + other: Labels ldap_auth_source: one: LDAP-підключення few: LDAP-підключення @@ -1621,7 +1691,28 @@ uk: admin: banners: environment_configured_readonly: Ці значення налаштовуються за допомогою змінних середовища, і їх не можна змінити тут. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Основні кольори main_menu: Головне бічне меню @@ -1654,7 +1745,11 @@ uk: tab_interface: Інтерфейс tab_pdf_export_font: Шрифт для експорту в PDF tab_pdf_export_styles: Стилі експорту PDF - theme_warning: Змінення теми перезапише ваш власний стиль. У такому разі дизайн буде втрачено. Справді продовжити? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Додати маркер підтримки версії Enterprise book_now: Забронювати зараз @@ -1687,7 +1782,7 @@ uk: import: title: Iмпорт info: - database_deprecation_html: 'Починаючи з OpenProject 16.0, для використання OpenProject потрібна версія PostgreSQL 16. Ваша конфігурація працюватиме з поточною базою даних, але передбачається несумісність із майбутніми випусками.
Ми підготували [посібники з оновлення для всіх методів встановлення](upgrade_guide). Дотримуючись цих інструкцій, ви можете виконати оновлення до наступного випуску в будь-який час. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Розподіл пам'яті Jemalloc @@ -1695,12 +1790,15 @@ uk: actions: button_edit: Змінити конфігурацію button_open: Відкрити список циклів + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Допоможіть нам покращити Jira Migrator, надіславши відгук і пожертвувавши приватні дані. Ви можете [приєднатися до спільноти розробників](link) Jira Migrator. ' description: Інструмент Jira Migrator зараз доступний тільки як бета-версія. Зараз ми підтримуємо лише версії Jira Server / Data Center 10.x і 11.x. Хмарні екземпляри поки що не підтримуються. title: Спробуйте бета-версію! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Налаштуйте хост Jira, щоб почати імпорт елементів із Jira в цей екземпляр OpenProject. title: Ще немає налаштованих хостів Jira @@ -1733,16 +1831,30 @@ uk: description: Jira використовує ідентифікатори задач, що складаються з ключа проєкту й порядкового номера (наприклад, PRJ-123). OpenProject також підтримує цю функцію, але її потрібно ввімкнути [тут](link). title: Необхідно ввімкнути семантичні ідентифікатори із зазначенням проєктів. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Додати конфігурацію - button_delete_token: Видалити маркер + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Зберегти конфігурацію - delete_token_confirm: Справді видалити маркер? З’єднання з Jira буде розірвано. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Назва - personal_access_token: Персональний маркер доступу + personal_access_token: Personal access token (PAT) url: URL-адреса Jira Server / Data Center label_testing: Перевірка конфігурації… - test_configuration_caption: Ви можете перевірити цю конфігурацію, [натиснувши тут](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Змінити цикл @@ -1846,40 +1958,40 @@ uk: title: Переконайтеся, що у вас є резервна копія! parts: issues: - one: 1 задача - few: "%{count} задачі" - many: "%{count} задач" - other: "%{count} задачі" + one: "%{count} issue" + few: "%{count} issues" + many: "%{count} issues" + other: "%{count} issues" jobs: - one: 1 завдання - few: "%{count} завдань" - many: "%{count} завдань" - other: "%{count} завдань" + one: "%{count} job" + few: "%{count} jobs" + many: "%{count} jobs" + other: "%{count} jobs" projects: - one: 1 проєкт - few: "%{count} проєкти" - many: "%{count} проєктів" - other: "%{count} проєкту" + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" statuses: - one: 1 статус - few: "%{count} статуси" - many: "%{count} статусів" - other: "%{count} статусу" + one: "%{count} status" + few: "%{count} statuses" + many: "%{count} statuses" + other: "%{count} statuses" types: - one: 1 тип - few: "%{count} типи" - many: "%{count} типів" - other: "%{count} типу" + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" users: - one: 1 користувач - few: "%{count} користувачі" - many: "%{count} користувачів" - other: "%{count} користувача" + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" work_packages: - one: 1 пакет робіт - few: "%{count} пакети робіт" - many: "%{count} пакетів робіт" - other: "%{count} пакета робіт" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" revert_dialog: confirm: Я розумію, що скасування внесених змін призведе до остаточного видалення даних description: Це призведе до видалення всіх імпортованих об’єктів (зокрема цілих проєктів). @@ -1944,10 +2056,10 @@ uk: caption: Виберіть вміст, який потрібно імпортувати в OpenProject caption_done: Завершено caption_done_description: - one: "%{count} проєкт включено в обсяг" - few: "%{count} проєкти включено в обсяг" - many: "%{count} проєктів включено в обсяг" - other: "%{count} проєкту включено в обсяг" + one: "%{count} project selected as scope" + few: "%{count} projects selected as scope" + many: "%{count} projects selected as scope" + other: "%{count} projects selected as scope" description: Виберіть дані, які потрібно імпортувати з доступного вмісту, отриманого з хост-екземпляра Jira. elements: custom_fields: Підмножина користувацьких полів @@ -2011,23 +2123,55 @@ uk: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Інтерфейс Jira API повернув статус помилки «%{status}». Перевірте URL-адресу свого екземпляра Jira й маркер API. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Помилка з’єднання: %{message}' error: Під час перевірки з’єднання сталася неочікувана помилка failed: 'З’єднання не встановлено: не вдалось отримати інформацію про сервер' invalid_url: Укажіть дійсну URL-адресу - missing_credentials: Укажіть URL-адресу й персональний маркер доступу для перевірки з’єднання parse_error: Не вдалося проаналізувати відповідь сервера. Можливо, він не є дійсним екземпляром Jira. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Встановлено з’єднання із сервером %{server} (версії %{version}) - token_error: Недійсний маркер API. Перевірте облікові дані, що використовуються в конфігурації. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Маркер успішно видалено. user: unknown_name: Невідомо journal_aggregation: caption_with_maximum: 'Дії користувача над пакетом робіт (зміни опису, статусу чи значень або написання коментарів) групуються, якщо їх було виконано протягом цього періоду. Це налаштування також керує сповіщеннями й затримками [вебхука](webhook_link). Максимальне значення — %{max} хв. ' + labels: + delete_dialog_component: + confirmation: Я розумію, що цю дію не можна буде скасувати + description_html: Це призведе до видалення мітки %{name} зі всіх пакетів робіт у всіх проєктах. + heading: Видалити цю мітку? + title: Видалити цю мітку? + dialog_component: + create_title: Створити мітку + rename_title: Перейменувати «%{name}» + index: + description: Усі користувачі, які мають право редагувати пакети робіт, можуть вільно додавати до них наявні теги або миттєво створювати нові. Це стосується всіх тегів, створених користувачами в усіх проєктах. + row_component: + used_in_work_packages: + one: "%{count} пакет робіт" + few: "%{count} пакети робіт" + many: "%{count} пакетів робіт" + other: "%{count} пакета робіт" + sub_header_component: + button_add: Мітка + label_add: Додати мітку + search_placeholder: Введіть текст для пошуку + table_component: + blank_slate: + description: Тут показуватимуться мітки, створені користувачами для пакетів робіт. + title: Міток ще немає + headers: + name: Мітка + usage: Де використовується + no_matches: + description: Спробуйте інший пошуковий запит. + title: За цим запитом не знайдено жодної мітки mcp_configurations: index: description: Протокол контексту моделі дає змогу агентам ШІ надавати користувачам інструменти й ресурси, доступні в цьому екземплярі OpenProject. Ця функція досі доступна лише в бета-версії. @@ -2058,6 +2202,18 @@ uk: update: failure: Не вдалось оновити конфігурацію MCP. success: Конфігурацію MCP оновлено. + members: + index: + blank_description: За поточним фільтром не знайдено жодного членства. + blank_title: Немає членств + filter_label: Пошук користувачів + inheritance_source: "%{type} %{name}" + inherited_via: "(джерело: %{source})" + title: Членства + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Щоб дізнатися більше, ознайомтеся з нашою сторінкою інтеграцій і планів. no_results_title_text: Зараз немає встановлених плагінів. @@ -2071,10 +2227,10 @@ uk: confirm_button: Скасувати резервування ідентифікатора description: Скасування резервування цього ідентифікатора проєкту неможливо відмінити. Зовнішні посилання й інтеграції, що його використовують, перестануть працювати, а ім’я стане доступним для будь-якого нового проєкту. description_with_work_packages: - one: Скасування резервування цього ідентифікатора проєкту (і його 1 ідентифікатора пакета робіт) неможливо відмінити. Зовнішні посилання й інтеграції, що його використовують, перестануть працювати, а ім’я стане доступним для будь-якого нового проєкту. - few: Скасування резервування цього ідентифікатора проєкту (і його %{count} ідентифікаторів пакетів робіт) неможливо відмінити. Зовнішні посилання й інтеграції, що його використовують, перестануть працювати, а ім’я стане доступним для будь-якого нового проєкту. - many: Скасування резервування цього ідентифікатора проєкту (і його %{count} ідентифікаторів пакетів робіт) неможливо відмінити. Зовнішні посилання й інтеграції, що його використовують, перестануть працювати, а ім’я стане доступним для будь-якого нового проєкту. - other: Скасування резервування цього ідентифікатора проєкту (і його %{count} ідентифікатора пакета робіт) неможливо відмінити. Зовнішні посилання й інтеграції, що його використовують, перестануть працювати, а ім’я стане доступним для будь-якого нового проєкту. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + few: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + many: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Скасувати резервування ідентифікатора %{identifier}? title: Скасувати резервування ідентифікатора empty_body: Коли ідентифікатор проєкту змінюється, тут з’являється попередній ідентифікатор, щоб ви могли скасувати його резервування, щойно переконаєтеся, що це безпечно. @@ -2202,10 +2358,10 @@ uk: error_unknown: Потребує ручної перевірки error_used_in_past: Зарезервовано в історії дескрипторів іншого проєкту remaining_projects: - one: "… ще 1 проєкт" - few: "… ще %{count} проєкти" - many: "… ще %{count} проєктів" - other: "… ще %{count} проєкту" + one: "... %{count} more project" + few: "... %{count} more projects" + many: "... %{count} more projects" + other: "... %{count} more projects" banner: existing_identifiers_notice: 'Наявні ідентифікатори для кількох проєктів (%{project_count}) не відповідають вимогам до семантичних ідентифікаторів із зазначенням проєктів. OpenProject може автоматично оновити їх, щоб вони стали дійсними, як показано в прикладах нижче. Натисніть кнопку «Конвертувати ідентифікатори», щоб оновити в такий спосіб ідентифікатори для всіх проєктів і ввімкнути семантичні ідентифікатори із зазначенням проєктів. @@ -2245,7 +2401,7 @@ uk: types_caption: Додайте типи пакетів робіт, для яких ця дія має бути доступною. Усі наявні варіанти будуть включені автоматично. usage_scope_caption: 'Ви можете вибрати, де буде доступна ця дія: усюди (зокрема в коментарях, вікі-сторінках і користувацьких полях), для всіх типів пакетів робіт або лише для певних типів.' index: - description: Дії з перетворення тексту дають користувачам змогу за допомогою LLM писати, упорядковувати та перевіряти текст скрізь, де використовується редактор форматованого тексту, зокрема в описах пакетів робіт, коментарях і вікі-сторінках. Ви можете створювати нові дії за допомогою власних промптів та інструкцій. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Дія label_aria_add_action: Додати дію з перетворення тексту index_component: @@ -2280,15 +2436,22 @@ uk: ignore: Ігнорувати зміни save: Зберегти зміни й продовжити title: Зберегти зміни перед продовженням? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Роль: %{role}' no_role: Виберіть роль roles: - one: Вибрано %{count} роль - few: Вибрано %{count} ролі - many: Вибрано %{count} ролей - other: Вибрано %{count} ролі + one: "%{count} role selected" + few: "%{count} roles selected" + many: "%{count} roles selected" + other: "%{count} roles selected" title: Виберіть ролі + with_transitions: With transitions + without_transitions: Without transitions status_button: Статус statuses_dialog: caption: Додайте або видаліть статуси, які ви хочете пов’язати із цим типом. Вилучення статусу також призведе до видалення пов’язаного з ним робочого процесу. @@ -2298,10 +2461,10 @@ uk: confirm: Вилучити description: Якщо ви вилучите ці статуси, вони стануть недоступні для цього типу, а наявні робочі процеси буде видалено. Справді продовжити? heading: - one: Видалити 1 статус? - few: Видалити %{count} статуси? - many: Видалити %{count} статусів? - other: Видалити %{count} статусу? + one: Remove %{count} status? + few: Remove %{count} statuses? + many: Remove %{count} statuses? + other: Remove %{count} statuses? title: Видалити статуси tabs: always: Стандартні переходи @@ -2313,7 +2476,31 @@ uk: assignee: Додаткові переходи, доступні для виконавця пакета робіт. author: Додаткові переходи, доступні для автора пакета робіт. menu_label: Показані переходи + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: Не вдалося встановити з’єднання зі службою ШІ. + not_available: ШІ-асистент недоступний. + timeout: Служба ШІ не відповіла вчасно. + upstream_error: Сервіс ШІ повернув помилку. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: наразі відображається is_inactive: наразі не відображається show_until: Показувати до @@ -2321,7 +2508,7 @@ uk: deleted_by_admin: Файл «%{filename}», перенесений у карантин, видалено адміністратором. deleted_message: У файлі «%{filename}» виявлено вірус. Файл видалено. not_processed_yet_message: Завантаження заблоковано, оскільки файл ще не перевірено на віруси. Повторіть спробу пізніше. - overridden_by_admin: Файл «%{filename}», перенесений у карантин, вилучено користувачем %{user}. Доступ до файлу відновлено. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Контейнер delete: Видалити файл на карантині @@ -2375,10 +2562,6 @@ uk: not_found: reminder: Нагадування, яке ви шукаєте, не вдалося знайти. Можливо, його видалено. work_package: Пакет робіт, який ви шукаєте, не можна знайти або його видалено. - render: - context_not_parsable: Контексті не посилання на ресурс. - context_object_not_found: Не можу знайти ресурс з урахуванням контексту. - unsupported_context: Даний ресурс не підтримується як контекст. unable_to_create_attachment: Не вдалося створити вкладення unable_to_create_attachment_permissions: Вкладення не вдалося зберегти через відсутність дозволів на файлову систему user: @@ -2449,6 +2632,7 @@ uk: groups: Групи hexcode: Двійковий код id: "№" + inexistent: Inexistent is_default: Значення за замовчуванням is_for_all: Для усіх проектів issue: Робочий пакет @@ -2499,6 +2683,7 @@ uk: updated_at: Оновлене updated_on: Оновлено uploader: Завантажувач + url: URL user: Користувач username: Ім’я користувача value: Значення @@ -2513,6 +2698,29 @@ uk: ' login_and_registration: Вхід і реєстрація + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Завдання скасовано через помилку: %{message}' @@ -2639,6 +2847,7 @@ uk: button_set_reminder: Установити нагадування button_show: Показати button_sort: Сортувати + button_stop_timer: Зупинити таймер button_submit: Підтвердити button_test: Тест button_unarchive: Розпакувати @@ -2705,9 +2914,9 @@ uk: text: failed: Не вдалося скопіювати проект "%{source_project_name}" до проекту "%{target_project_name}". succeeded: Скопіював проект "%{source_project_name}" до "%{target_project_name}". - title: Скопіювати проєкт «%{source_project_name}» + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Один об’єкт цього типу + one: "%{count} object of this type" other: 'Об’єктів цього типу: %{count}' zero: Немає об’єктів цього типу create_portfolio: @@ -2745,13 +2954,9 @@ uk: plural: Спеціальні дії custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Це користувацьке поле активовано в усіх проєктах, оскільки встановлено прапорець «Для всіх проєктів». Його не можна деактивувати для окремих проєктів. - heading: Для всіх проєктів hierarchy: subitems: - one: 1 піделемент + one: "%{count} sub-item" other: 'Піделементів: %{count}' zero: немає піделементів items: @@ -2774,7 +2979,7 @@ uk: short: Коротка назва weight: Вага notice: - remember_items_and_projects: Обов’язково задайте елементи й проєкти на відповідних вкладках для цього користувацького поля. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Ви можете автоматично надавати певну роль у проєкті будь-якому користувачу, якому призначено цей атрибут, незалежно від його початкової ролі у цьому проєкті. dialog: @@ -2839,16 +3044,17 @@ uk: is_enabled_globally: Увімкнено у всьому світі multi_value_more: other: і ще %{count} + no_results_title_text: There are currently no custom fields. no_role_assigment: Роль не призначено + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Спочатку потрібно вибрати пакет робіт або проєкт reorder_alphabetical: Перевпорядкувати значення за алфавітом reorder_confirmation: 'Попередження: поточний порядок доступних значень, а також усі незбережені значення буде втрачено. Справді продовжити?' semantic_keys: job_title: Назва посади none: Немає - tab: - no_results_content_text: Створіть нове спеціальне поле - no_results_title_text: Наразі немає спеціальних полів. text_add_new_custom_field: 'Щоб додати нові користувальницькі поля до проекту, спочатку потрібно створити їх, перш ніж ви зможете додати їх до цього проекту. ' @@ -2912,25 +3118,25 @@ uk: datetime: distance_in_words: about_x_hours: - one: близько 1 години - few: близько %{count} годин(и) - many: близько %{count} годин(и) - other: близько %{count} годин(и) + one: about %{count} hour + few: about %{count} hours + many: about %{count} hours + other: about %{count} hours about_x_months: - one: близько 1 місяця - few: близько %{count} місяців - many: близько %{count} місяців - other: близько %{count} місяців + one: about %{count} month + few: about %{count} months + many: about %{count} months + other: about %{count} months about_x_years: - one: близько 1 року - few: близько %{count} років - many: близько %{count} років - other: близько %{count} років + one: about %{count} year + few: about %{count} years + many: about %{count} years + other: about %{count} years almost_x_years: - one: майже 1 рік - few: майже %{count} років - many: майже %{count} років - other: майже %{count} років + one: almost %{count} year + few: almost %{count} years + many: almost %{count} years + other: almost %{count} years half_a_minute: пів хвилини less_than_x_minutes: one: менш, ніж за хвилину @@ -2938,65 +3144,65 @@ uk: many: менше %{count} хвилини other: менше %{count} хвилини less_than_x_seconds: - one: менше однієї секунди - few: менш ніж %{count} секунд - many: менш ніж %{count} секунд - other: менш ніж %{count} секунд + one: less than %{count} second + few: less than %{count} seconds + many: less than %{count} seconds + other: less than %{count} seconds over_x_years: - one: більше 1 року - few: більше %{count} років - many: більше %{count} років - other: більше %{count} років + one: over %{count} year + few: over %{count} years + many: over %{count} years + other: over %{count} years x_days: - one: 1 день - few: "%{count} днів" - many: "%{count} днів" - other: "%{count} днів" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" x_hours: - one: 1 година - few: "%{count} год" - many: "%{count} год" - other: "%{count} год" + one: "%{count} hour" + few: "%{count} hours" + many: "%{count} hours" + other: "%{count} hours" x_hours_abbreviated: - one: 1 год - few: "%{count} год" - many: "%{count} год" - other: "%{count} год" + one: "%{count} hr" + few: "%{count} hrs" + many: "%{count} hrs" + other: "%{count} hrs" x_minutes: - one: 1 хвилина - few: "%{count} хвилин" - many: "%{count} хвилин" - other: "%{count} хвилин" + one: "%{count} minute" + few: "%{count} minutes" + many: "%{count} minutes" + other: "%{count} minutes" x_minutes_abbreviated: - one: 1 хв - few: "%{count} хв" - many: "%{count} хв" - other: "%{count} хв" + one: "%{count} min" + few: "%{count} mins" + many: "%{count} mins" + other: "%{count} mins" x_months: - one: 1 місяць - few: "%{count} місяців" - many: "%{count} місяців" - other: "%{count} місяців" + one: "%{count} month" + few: "%{count} months" + many: "%{count} months" + other: "%{count} months" x_seconds: - one: 1 секунда - few: "%{count} секунд" - many: "%{count} секунд" - other: "%{count} секунд" + one: "%{count} second" + few: "%{count} seconds" + many: "%{count} seconds" + other: "%{count} seconds" x_seconds_abbreviated: - one: 1 с - few: "%{count} с" - many: "%{count} с" - other: "%{count} с" + one: "%{count} s" + few: "%{count} s" + many: "%{count} s" + other: "%{count} s" x_weeks: - one: 1 тиждень - few: "%{count} тижні" - many: "%{count} тижнів" - other: "%{count} тижня" + one: "%{count} week" + few: "%{count} weeks" + many: "%{count} weeks" + other: "%{count} weeks" x_years: - one: 1 рік - few: "%{count} роки" - many: "%{count} років" - other: "%{count} року" + one: "%{count} year" + few: "%{count} years" + many: "%{count} years" + other: "%{count} years" units: day: one: день @@ -3152,10 +3358,10 @@ uk: teaser: description_html: У вас є доступ до всіх функцій %{trial_plan}. title: - one: Один день до завершення строку дії пробного маркера %{trial_plan} - few: "%{count} дні до завершення строку дії пробного маркера %{trial_plan}" - many: "%{count} днів до завершення строку дії пробного маркера %{trial_plan}" - other: "%{count} дня до завершення строку дії пробного маркера %{trial_plan}" + one: "%{count} day left of %{trial_plan} trial token" + few: "%{count} days left of %{trial_plan} trial token" + many: "%{count} days left of %{trial_plan} trial token" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Маркер пробної версії Enterprise уже отримано. На вашу електронну пошту мав надійти лист із вкладеним маркером. Якщо вам потрібен новий маркер, зверніться до нашої служби підтримки. @@ -3498,9 +3704,166 @@ uk: selected: Вибрано include_sub_items: Включити піделементи no_results_text: Немає результатів + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + few: This form is used by %{count} types. Changes apply to all of them. + many: This form is used by %{count} types. Changes apply to all of them. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + few: This form is used by %{count} types and variants. Changes apply to all of them. + many: This form is used by %{count} types and variants. Changes apply to all of them. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: На даний момент на форумі немає публікацій. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + few: 'Accepted solutions:' + many: 'Accepted solutions:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + few: Load previous %{count} replies + many: Load previous %{count} replies + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + few: "%{count} participants" + many: "%{count} participants" + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3525,6 +3888,8 @@ uk: groups: edit: synchronized_groups: Синхронізовані групи + form: + group_attributes: Group attributes index: description: Згрупувавши користувачів, можна додавати їх як членів в одні й ті самі проєкти або призначати їм однакові глобальні ролі. memberships: @@ -3550,6 +3915,10 @@ uk: leave_project: Залишити проєкт no_favorite_projects: У вас немає вибраних проєктів. title: Проєкти + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3567,7 +3936,7 @@ uk: summary: failure: Деякі перевірки не пройдено, і система працює неналежним чином. success: Усі підключення й системи працюють належним чином. - warning: Деякі перевірки завершилися з попередженням. Це може призвести до неочікуваної поведінки. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Не пройдено @@ -3576,7 +3945,7 @@ uk: warning: Попередження help_texts: views: - favoured: Позначте це подання як улюблене й додайте на бічну панель збережених подань ліворуч. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} завжди вкладаються в проєкт. Тут можна вибрати лише проєкти з активним модулем %{plural}. Після створення проєкту %{singular} ви зможете додавати в нього пакети робіт з інших проєктів.\n" public: Опублікуйте це подання, надавши доступ до нього. Користувачі з дозволом «Керування загальнодоступними поданнями» можуть змінювати або вилучати загальнодоступні запити. Це не впливає на видимість результатів пакетів робіт у цьому поданні, і залежно від дозволів користувачі можуть бачити різні результати. homescreen: @@ -3601,6 +3970,31 @@ uk: line_6: Нагадування про дати у версії Community Edition. new_features_title: 'Цей випуск включає різноманітні нові функції і покращення, зокрема: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Читайте про нові функції і оновлення продуктів. learn_about: Дізнайтеся більше про всі нові функції @@ -3637,8 +4031,10 @@ uk: journals: cause_descriptions: budget_deleted: Бюджет видалено + forum_message_deleted: "(deleted)" import: changed_with_diff: Поле «%{field}» змінено (%{link}) + csv: from CSV deleted_with_diff: Поле «%{field}» видалено (%{link}) field_changed: Значення в полі «%{field}» змінено з «%{old_value}» на «%{new_value}» field_removed: Поле «%{field}» видалено @@ -3688,6 +4084,7 @@ uk: budget_deleted: Бюджет видалено dates_changed: Дати змінено default_attribute_written: Атрибути лише для читання записано + forum_message_html: "Created from forum message %{message_information}" import: Імпортовано meeting_agenda_item_added_html: "Додано в нараду %{meeting_title_information}" meeting_agenda_item_added_template_html: "Додано сюди: %{meeting_title_information}" @@ -3840,10 +4237,10 @@ uk: label_copy_target: Ціль label_copy_workflow_from: Копіювати робочий процес з label_copy_workflow_from_role: Копіювати в інші ролі - label_copy_workflow_from_type: Копіювати в інший тип label_core_build: Збірка ядра label_core_version: Версія ядра label_created_by: Створено %{user} + label_criteria: Критерій label_current_status: Поточний статус label_current_version: Поточна версія label_custom_comment: Коментар до атрибута «%{name}» @@ -3867,8 +4264,6 @@ uk: label_custom_field_default_type: Порожній тип label_custom_field_new: Нове спеціальне поле label_custom_field_plural: Індивідуальні поля - label_custom_logo: Користувацький логотип для ПК - label_custom_logo_mobile: Користувацький логотип для мобільного label_custom_pdf_export_settings: Налаштування експорту PDF label_custom_style: Дизайн label_custom_style_description: Виберіть, як OpenProject виглядає для вас із темами, виберіть ваші кольори за замовчуванням для використання в застосунку та як виглядатимуть експорти. @@ -3877,11 +4272,12 @@ uk: label_database_version: Версія PostgreSQL label_date: Дата label_date_and_time: Дата і час - label_date_format: 'Формат дати:' + label_date_and_time_formats: Date and time formats label_date_from: Від label_date_from_to: З %{start} по %{end} label_date_to: 'Кому:' label_dates: Дати + label_day: День label_day_plural: днів label_default: За замовчуванням label_defaults: Значення за замовчуванням @@ -3892,6 +4288,7 @@ uk: label_deleted_custom_field: "(видалено спеціальне поле)" label_deleted_custom_item: "(видалений елемент)" label_deleted_custom_option: "(параметр видалення)" + label_deleted_label: "(deleted label)" label_deleted_version: "(видалена версія)" label_departments: Організація label_departments_description_html: 'Визначте структуру своєї компанії, створюючи відділи й підвідділи в ієрархічному порядку. Це дасть змогу відобразити лінії підпорядкованості й підтримувати чіткий упорядкований огляд вашої організації в OpenProject. Ви також можете імпортувати наявну організаційну структуру за допомогою [синхронізації відділів з LDAP](ldap_docs_article). @@ -3962,6 +4359,7 @@ uk: label_float: З плаваючою крапкою label_folder: Папка label_follows: слідкувати + label_form_configuration_plural: Forms label_formula: Формула label_forum_new: Новий форум label_forum_plural: Форуми @@ -3980,6 +4378,7 @@ uk: label_go_forward: Відкрити підменю %{module} label_greater_or_equal: ">=" label_group: Група + label_group_attributes_plural: Group attributes label_group_by: Групувати за label_group_named: Група %{name} label_group_new: Нова група @@ -4014,7 +4413,7 @@ uk: label_index_by_title: Індекс за назвою label_information: Інформація label_information_plural: Інформація - label_installation_guides: Інструкції із встановлення + label_installation_guides: Інструкції зі встановлення label_integer: Ціле число label_integrations: Інтеграції label_interface: Інтерфейс @@ -4031,8 +4430,8 @@ uk: label_journal_diff: Опис Порівняння label_jump_to_a_project: Перейти до проекту... label_keyword_plural: Ключові слова + label_label_plural: Мітки label_language: Мова - label_language_based: На основі мови користувача label_languages: Мови label_last_activity: Остання активність label_last_change_on: Остання зміна @@ -4054,6 +4453,7 @@ uk: label_list: Список label_loading: Завантаження... label_locale: Мова й регіон + label_locale_based: Use default for user locale label_lock_user: Заблокувати користувача label_locked: заблоковано label_logged_as: Ви увійшли як @@ -4065,6 +4465,7 @@ uk: label_managed_by_ldap: Синхронізується з LDAP label_managed_repositories_vendor: Керований %{vendor} repositories label_mapping_for: 'Зіставлення для: %{attribute}' + label_markdown_version: Markdown version label_max_size: Максимальний розмір label_me: мені label_member_all_admin: "(Усі ролі через статус адміністратора)" @@ -4083,7 +4484,6 @@ uk: label_menu_item_name: Назва пункту меню label_message: Повідомлення label_message_last: Останнє повідомлення - label_message_new: Нове повідомлення label_message_plural: Повідомлення label_message_posted: Повідомлення додано label_minute_plural: хвилини @@ -4095,6 +4495,7 @@ uk: label_module_plural: Модулі label_modules: Модулі label_modules_and_plugins: Модулі та плагіни + label_month: Місяць label_months_from: місяців(ця) з label_more: Більше label_more_information: Додаткові відомості @@ -4108,6 +4509,7 @@ uk: label_my_avatar: Мій аватар label_my_queries: Мої збережені запити label_my_security: Безпека + label_my_time: My time label_name: Назва label_never: Ніколи label_new: Нові @@ -4122,7 +4524,10 @@ uk: label_news_singular: Новини label_news_view_all: Подивитися всі новини label_next: Далі + label_next_day: Наступний день + label_next_month: Наступний місяць label_next_week: Наступний тиждень + label_next_workweek: Наступний робочий тиждень label_next_year: Наступний рік label_no_change_option: "(Немає змін)" label_no_data: Немає даних для відображення @@ -4130,6 +4535,7 @@ uk: label_no_parent_group: "(Немає батьківської групи)" label_no_parent_page: Немає початкової сторінки label_no_start_date: немає дати початку + label_no_time: Час не зафіксовано label_nobody: жодні label_non_working_days: Календар доступності label_non_working_days_summary: Резюме @@ -4196,7 +4602,10 @@ uk: label_preview: Попередній перегляд label_preview_not_available: Попередній перегляд недоступний label_previous: Попередній + label_previous_day: Попередній день + label_previous_month: Попередній місяць label_previous_week: Попередній тиждень + label_previous_workweek: Попередній робочий тиждень label_previous_year: Попередній рік label_principal_invite_via_email: або запрошувати нових користувачів електронною поштою label_principal_search: Додати існуючих користувачів або групи @@ -4315,6 +4724,7 @@ uk: label_sort_lowest: Помістити в кінець label_sorted_by: відсортовані за %{value} label_spent_time: Витрачений час + label_stack: Стос label_start_to_end: закінчення label_start_to_start: початок label_starts_with: починається з @@ -4334,6 +4744,7 @@ uk: label_subtask_plural: Підзадачі label_summary: Резюме label_system: Система + label_system_or_language_default: Use system or language based default label_system_settings: Параметри системи label_system_storage: Інформація про зберігання label_table_of_contents: Зміст @@ -4348,6 +4759,7 @@ uk: label_time: Час label_time_entry_activity_plural: Завдання з обліком часу label_time_entry_plural: Витрачений час + label_timer_since: Почато о %{time} label_title: Назва label_today: сьогодні label_today_as_date: Виберіть сьогодні як дату. @@ -4383,7 +4795,9 @@ uk: label_user_search: 'Знайти користувача:' label_user_settings: Налаштування користувача label_users_settings: Налаштування користувачів + label_value: Value label_value_x: 'Значення: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Редагувати версію label_version_new: Нова версія label_version_plural: Версії @@ -4396,6 +4810,7 @@ uk: label_videos: Відео label_view_all_revisions: Переглянути всі зміни label_view_diff: Переглянути відмінності + label_view_mode_switcher: Змінити подання label_view_revisions: Переглянути зміни label_view_x: 'Переглянути: %{x}' label_watched_work_packages: Спостерігали робочі пакети @@ -4419,6 +4834,8 @@ uk: label_wiki_start: Початкова сторінка label_wiki_toc: Зміст label_wiki_toc_empty: Зміст пустий, оскільки немає заголовків. + label_with_criteria: З критеріями + label_without_criteria: Без критеріїв label_work: Робота label_work_package: Робочий пакет label_work_package_attachments: Додатки до робочого пакету @@ -4441,54 +4858,55 @@ uk: label_working_days: Робочі дні label_working_days_and_hours: Робочі дні й години label_working_hours: Розклад роботи + label_workweek: Робочий тиждень label_x_closed_work_packages_abbr: - one: 1 закрито + one: "%{count} closed" other: 'Закрито: %{count}' zero: 0 закрито label_x_comments: - one: 1 коментар + one: "%{count} comment" other: 'Коментарів: %{count}' zero: немає коментарів label_x_days: - one: 1 день - few: "%{count} дні" - many: "%{count} днів" - other: "%{count} дня" + one: "%{count} day" + few: "%{count} days" + many: "%{count} days" + other: "%{count} days" label_x_files: - one: 1 файл + one: "%{count} file" other: 'Файлів: %{count}' zero: немає файлів label_x_items: - one: 1 елемент + one: "%{count} item" other: "%{count} елементи(-ів)" zero: немає елементів label_x_items_selected: - one: Вибрано один елемент - few: Вибрано %{count} елементи - many: Вибрано %{count} елементів - other: Вибрано %{count} елемента + one: "%{count} item selected" + few: "%{count} items selected" + many: "%{count} items selected" + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 відкрито + one: "%{count} open" other: 'Відкрито: %{count}' zero: 0 відкрито label_x_projects: - one: 1 проєкт + one: "%{count} project" other: 'Проєктів: %{count}' zero: немає проєктів label_x_work_packages: - one: 1 пакет робіт + one: "%{count} work package" other: 'Пакетів робіт: %{count}' zero: Немає пакетів робіт label_x_working_days: - one: 1 робочий день - few: "%{count} робочих дні" - many: "%{count} робочих днів" - other: "%{count} робочого дня" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" label_x_working_days_time_off: - one: 'Вільний час: 1 робочий день' - few: 'Вільний час: %{count} робочих дні' - many: 'Вільний час: %{count} робочих днів' - other: 'Вільний час: %{count} робочого дня' + one: 'Time off: %{count} working day' + few: 'Time off: %{count} working days' + many: 'Time off: %{count} working days' + other: 'Time off: %{count} working days' label_yesterday: вчора label_zen_mode: Режим «Дзен» ldap_auth_sources: @@ -4540,7 +4958,7 @@ uk: start_tls: STARTTLS start_tls_description: Надсилає команду STARTTLS після підключення до стандартного порту LDAP. Рекомендовано для зашифрованого з’єднання. tls_options: - tls_certificate_description: Якщо сертифікат сервера LDAP не належить до надійних джерел цієї системи, ви можете додати його вручну тут. Введіть рядок сертифіката PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Перевірити сертифікат SSL verify_peer_description_html: 'Вмикає сувору перевірку SSL ланцюжка довірених сертифікатів.
Увага! Якщо зняти цей прапорець, буде вимкнено перевірку SSL сертифіката сервера LDAP. Через це ваше з’єднання може стати вразливим до MITM-атак. @@ -4597,6 +5015,8 @@ uk: you_have: У вас logo_alt_text: Логотип mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: Користувач %{user_name} згадав вас у %{id} (%{subject}) notification: center: Центр сповіщень @@ -4653,10 +5073,10 @@ uk: mentioned: Вас згадано в коментарі mentioned_by: Користувач %{user} згадав вас у коментарі more_to_see: - one: Є ще 1 пакет робіт зі сповіщеннями. - few: Є ще %{count} пакети робіт зі сповіщеннями. - many: Є ще %{count} пакетів робіт зі сповіщеннями. - other: Є ще %{count} пакета робіт зі сповіщеннями. + one: There is %{count} more work package with notifications. + few: There are %{count} more work packages with notifications. + many: There are %{count} more work packages with notifications. + other: There are %{count} more work packages with notifications. open_in_browser: Відкрити в браузері reason: assigned: Призначено @@ -4843,6 +5263,15 @@ uk: create_button: Створити dialog_body: За допомогою цього маркера сторонні додатки зможуть взаємодіяти з вашим екземпляром. Призначте новому інтерфейсу API ім’я, щоб ідентифікувати його. dialog_title: Створити новий маркер API + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + few: "%{count} days (%{date})" + many: "%{count} days (%{date})" + other: "%{count} days (%{date})" name_label: Ім’я маркера failed_to_create_token: 'Не вдалося створити маркер доступу: %{error}' failed_to_reset_token: 'Не вдалося відновити маркер доступу: %{error}' @@ -4856,10 +5285,26 @@ uk: password_confirmation_dialog: confirmation_required: Потрібно ввести пароль облікового запису, щоб підтвердити цю зміну. title: Підтвердьте свій пароль, щоб продовжити + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Маркери доступу description: Маркери постачальника послуг випускаються в OpenProject, що дає змогу іншим додаткам отримувати до них доступ. Клієнтські маркери випускаються іншими додатками, що дає змогу OpenProject отримати до них доступ. + expired_on: Expired on %{date} headers: action: Дія expiration: Закінчується @@ -5061,7 +5506,6 @@ uk: notice_password_confirmation_failed: Введений пароль неправильний. notice_principals_found_multiple: "There are %{number} знайдені результати. \nВкладка для фокусування першого результату." notice_principals_found_single: Знайдений один результат. Натисніть для переходу до нього. - notice_project_cannot_update_custom_fields: 'Неможливо оновити доступні користувальницькі поля проекту. Проект недійсний: %{errors}' notice_project_not_deleted: Проект не був видалений. notice_project_not_found: Проєкт не знайдено. notice_requires_enterprise_token: Токен Enterprise відсутній або не надає доступу до цієї сторінки. @@ -5071,9 +5515,6 @@ uk: notice_successful_create: Створення успішно завершене. notice_successful_delete: Видалення успішно завершене. notice_successful_update: Успішно оновлено. - notice_successful_update_custom_fields_added_to_project: 'Оновлення завершено. Користувацькі поля активованих типів автоматично активовано у формі пакета робіт. Докладніше. - - ' notice_to_many_principals_to_display: |- Є занадто багато результатів. Звузити пошук ввівши назву нового елемента (або групи). @@ -5177,10 +5618,10 @@ uk: ' confirm_revoke_my_application: - one: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування одного активного маркера. - few: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активних маркерів. - many: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активних маркерів. - other: Ви дійсно бажаєте видалити цей застосунок? Це призведе до скасування %{count} активного маркера. + one: Do you really want to remove this application? This will revoke %{count} token active for it. + few: Do you really want to remove this application? This will revoke %{count} tokens active for it. + many: Do you really want to remove this application? This will revoke %{count} tokens active for it. + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: Жодного застосунку OAuth не зареєстровано. flows: authorization_code: Потік авторизації коду @@ -5270,8 +5711,6 @@ uk: not_found: "— не знайдено." respond_to?: не реалізує потрібний метод. rules: - copy_workflow_from: - workflow_missing: не має власного робочого процесу. custom_field: format_not_supported: формат «%{field_format}» не підтримується. item: @@ -5291,7 +5730,6 @@ uk: or: або rules: blueprint: Структура шаблону - copy_workflow_from: Тип копії робочого процесу depth: Глибина enabled: Увімкнено item: Об’єкт @@ -5363,8 +5801,8 @@ uk: label: Зміст page_nr_footer: Сторінка %{page} з %{total} template_artefact: - caption: Деталі пакета робіт, представлені у вигляді артефакту PMflex. - label: Артефакт PMflex + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: Усі атрибути, наявні в поточній формі, що використовують шаблон за промовчанням. label: Атрибути й опис @@ -5389,7 +5827,7 @@ uk: permission_change_work_package_status_explanation: Дає змогу змінювати статус без дозволу «Редагування пакетів робіт» permission_comment_news: Коментування новин permission_commit_access: Доступ для читання/запису до сховища (фіксація) - permission_copy_projects: Копіювати проекти + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: У шаблонних проєктах цей дозвіл має другорядну функцію; він дає змогу створювати нові проєкти на основі шаблону. permission_copy_work_packages: Дублювати пакети робіт permission_create_backup: Створення резервних копій @@ -5422,6 +5860,7 @@ uk: permission_export_projects: Експорт проєктів permission_export_work_packages: Експорт робочих пакетів permission_header_for_project_module_work_package_tracking: Пакети робіт і діаграми Ґанта + permission_import_work_packages: Import work packages permission_invite_members_by_email: Запрошення учасників електронною поштою permission_invite_members_by_email_explanation: 'Дозвольте запрошувати нових користувачів електронною поштою. Запрошені користувачі отримають лист із посиланням для встановлення пароля й активації облікового запису. На це налаштування впливає дозвіл на керування користувачами. @@ -5432,6 +5871,9 @@ uk: permission_manage_dashboards: Керування інформаційними панелями permission_manage_forums: Управління форумами permission_manage_members: Управління учасниками + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Управління новинами permission_manage_own_reminders: Створюйте власні нагадування permission_manage_own_working_times: Керувати власним робочим часом @@ -5460,7 +5902,6 @@ uk: permission_save_bcf_queries: Зберігання запитів BCF permission_save_queries: Зберегти перегляди permission_search_project: Пошук проєктів - permission_select_custom_fields: Вибирати власні поля permission_select_project_custom_fields: Виберіть атрибути проєкту permission_select_project_modules: Вибір модулів проекту permission_select_project_phases: Вибір етапів проєкту @@ -5494,6 +5935,16 @@ uk: permission_work_package_assigned: Стати виконавцем / відповідальним permission_work_package_assigned_explanation: Робочі пакети можуть бути призначені користувачам і групам, які володіють цією роллю у відповідному проекті placeholder_users: + criteria: + activate: Активувати критерії фільтрації + activate_caption: 'Це дозволяє додати набір фільтрів до цього прототипа користувача для визначення можливих користувачів, що відповідають заданим критеріям. + + ' + enable: Фільтрувати користувачів за критеріями + enable_caption: Опишіть тип користувача, якого позначає цей заповнювач, для рекомендації відповідних користувачів. + matching_users: Користувачі, які відповідають критеріям фільтру + no_matching_users: Немає користувачів, що б відповідали цим критеріям. + show_all_matching_users: Показати всіх (%{count}) користувачів, що відповідають критеріям delete_tooltip: Видалити прототип користувача deletion_info: data_consequences: 'Усі екземпляри прототипу користувача (наприклад, виконавець, відповідальний тощо) буде перепризначено обліковому запису з назвою «Видалений користувач». Оскільки дані кожного видаленого облікового запису перепризначаються цьому обліковому запису, відрізнити дані, створені користувачем, від даних іншого видаленого облікового запису, може бути важко. @@ -5515,7 +5966,7 @@ uk: name: OmniAuth SAML / Служба єдиного входу portfolio: count: - one: 1 портфель + one: "%{count} portfolio" other: "%{count} портфелі(-ів)" zero: 0 портфелів filters: @@ -5526,10 +5977,10 @@ uk: label: Фільтр за назвою портфелів placeholder: Пошук портфелів sub_items_html: - one: "1 піделемент" - few: "%{count} піделементи" - many: "%{count} піделементів" - other: "%{count} піделемента" + one: "%{count} sub-item" + few: "%{count} sub-items" + many: "%{count} sub-items" + other: "%{count} sub-items" lists: active: Активні портфелі archived: Архівні портфелі @@ -5543,7 +5994,7 @@ uk: Його можна використовувати для виділення пакетів роботи в таблиці. program: count: - one: 1 програма + one: "%{count} program" other: "%{count} програм(-и)" zero: 0 програм filters: @@ -5555,7 +6006,7 @@ uk: confirmation_message: Якщо архівувати цей проєкт, він і всі його нащадки стануть недоступними для всіх користувачів цього екземпляра. Заархівовані проєкти можна відновити. title: Архівування проєкту count: - one: 1 проєкт + one: "%{count} project" other: 'Проєктів: %{count}' zero: 0 проєктів destroy: @@ -5660,11 +6111,11 @@ uk: no_status_when_submitted: Не вдалося ввімкнути запит на ініціювання проєкту, оскільки з типом пакета робіт «%{type}» має бути пов’язано принаймні один статус. Увімкніть для нього принаймні один робочий процес статусу. no_work_package_type: Не вдалося ввімкнути запит на ініціювання проєкту, оскільки для цього потрібен принаймні один активний тип пакета робіт, а в цьому проєкті немає жодного. Додайте в нього принаймні один тип пакета робіт. export: - description_attachment_export: Створений артефакт буде збережено як вкладення у форматі PDF у пакеті робіт артефакту. - description_file_link_export: Пакет робіт артефакту міститиме посилання на файл PDF, що зберігатиметься в зовнішньому сховищі. Знадобиться робоче файлове сховище з папками проєкту з автоматичним керуванням для цього проєкту. Зараз підтримуються лише файлові сховища Nextcloud. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Виберіть налаштоване зовнішнє файлове сховище, яке слід використовувати. external_file_storage: Зовнішнє файлове сховище - label_artifact_export: Експорт артефакту + label_artifact_export: Artifact export label_attachment_export: Зберегти як вкладення файлу в пакеті робіт label_file_link_export: Завантажити файл у зовнішнє файлове сховище й додати посилання на нього в пакет робіт pdf_file_storage: Сховище файлів PDF @@ -5674,6 +6125,12 @@ uk: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Наразі немає спеціальних полів. forums: no_results_content_text: Створити новий форум @@ -5770,21 +6227,21 @@ uk: new_heading: Поля, які стають доступними nothing_affected: Це не впливає на поля чи статуси. status_count: - one: "%{count} пакет робіт" - few: "%{count} пакети робіт" - many: "%{count} пакетів робіт" - other: "%{count} пакета робіт" + one: "%{count} work package" + few: "%{count} work packages" + many: "%{count} work packages" + other: "%{count} work packages" table_suffix: "(таблиця)" value_count: - one: "%{count} пакет робіт включає значення" - few: "%{count} пакети робіт включають значення" - many: "%{count} пакетів робіт включають значення" - other: "%{count} пакета робіт включають значення" + one: "%{count} work package has a value" + few: "%{count} work packages have a value" + many: "%{count} work packages have a value" + other: "%{count} work packages have a value" work_packages: - one: Для %{count} пакета робіт використовуватиметься нова конфігурація - few: Для %{count} пакетів робіт використовуватиметься нова конфігурація - many: Для %{count} пакетів робіт використовуватиметься нова конфігурація - other: Для %{count} пакета робіт використовуватиметься нова конфігурація + one: "%{count} work package will use the new configuration" + few: "%{count} work packages will use the new configuration" + many: "%{count} work packages will use the new configuration" + other: "%{count} work packages will use the new configuration" success: Тепер у проєкті використовується тип «%{type}». target_label: Варіант title: "%{type}: змінити варіант" @@ -5795,7 +6252,7 @@ uk: variants_not_allowed: Цей тип не дозволяє створювати варіанти всередині проєктів. versions: no_results_content_text: Створіть нову версію - no_results_title_text: Наразі не існує версій для проекту. + no_results_title_text: Для цього проєкту не знайдено версій, що відповідають критеріям фільтра. show_work_packages: Показати пакети робіт work_packages_graph: Графік робочих пакетів work_package_priorities: @@ -5803,15 +6260,27 @@ uk: status: button_edit: Редагувати статус wizard: - create_artifact_storage_error: Не вдалося зберегти артефакт у файловому сховищі - create_artifact_work_package_error: Не вдалося створити пакет робіт артефакту + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: Для цього проєкту не ввімкнено жодних атрибутів, що необхідні для роботи майстра. Увімкніть хоча б один атрибут у налаштуваннях проєкту. no_help_text: Для цього атрибута не визначено текст довідки. progress_label: "%{current} з %{total}" sections: Розділи sidebar_content_title: Зміст - success: Атрибути проєкту збережено, пакет робіт артефакту успішно створено. + success: Project attributes saved and artifact work package created successfully. title: Запит на ініціювання проєкту + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Застосувати попередньо налаштований фільтр configure_view: @@ -5840,10 +6309,10 @@ uk: action_title: Реакція add_reaction: Додати реакцію and_others: - one: і ще 1 - few: і ще %{count} - many: і ще %{count} - other: і ще %{count} + one: and %{count} other + few: and %{count} others + many: and %{count} others + other: and %{count} others and_user: і %{user} react_with: Відреагувати за допомогою %{reaction} reaction_by: "%{reaction} від" @@ -5964,6 +6433,41 @@ uk: warnings: cannot_annotate: Цей файл не може бути анотований. roles: + delete_dialog: + confirm: Ви справді хочете видалити цю роль? + entry_projects: + one: "(Проєкт: %{projects})" + few: "(Проєкти: %{projects})" + many: "(Проєкти: %{projects})" + other: "(Проєкти: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + few: "(Projects: %{projects} and %{count} others)" + many: "(Projects: %{projects} and %{count} others)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + few: 'This role is still attributed to %{count} members:' + many: 'This role is still attributed to %{count} members:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Ви справді хочете видалити роль «%{name}»? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: "%{count} із цих користувачів втратять доступ до проєктів, де ця роль була єдиною. Ви справді хочете видалити цю роль?" + zero: Жоден із цих користувачів не втратить доступ до своїх проєктів. Ви справді хочете видалити цю роль? + show_memberships: Показати всіх учасників із цією роллю + summary: "%{users} в %{projects}" + summary_projects: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + summary_users: + one: "%{count} user" + few: "%{count} users" + many: "%{count} users" + other: "%{count} users" + title: Видалити роль edit: default_for_new_projects_warning: 'Відповідно до налаштувань, ця роль за умовчанням надається користувачам, які створюють проєкт, але не є адміністраторами. Не вилучайте вказані далі права, інакше автори не зможуть завершити налаштування новостворених проєктів:' index: @@ -5975,6 +6479,17 @@ uk: permissions: section_check_all_label: Призначити всі дозволи модуля «%{module}» section_uncheck_all_label: Скасувати призначення всіх дозволів модуля «%{module}» + permissions_dialog: + edit_permissions: Редагувати дозволи ролі + no_permissions: Ця роль не надає жодних дозволів. + permission_count: + one: "%{count} permission" + few: "%{count} permissions" + many: "%{count} permissions" + other: "%{count} permissions" + preview_action: Переглянути дозволи + preview_aria_label: Переглянути дозволи для ролі %{role} + title: Дозволи для «%{name}» report: matrix_caption: Матриця дозволів для модуля «%{module}» matrix_check_all_label: Призначити всі дозволи модуля «%{module}» усім ролям @@ -6079,7 +6594,7 @@ uk: setting_default_projects_wiki: Вмикати функцію Wiki для нових проєктів за промовчанням setting_diff_max_lines_displayed: Відображається максимальна кількість рядків diff setting_disable_password_login: Вимкнути автентифікацію за допомогою пароля - setting_display_subprojects_work_packages: Дисплей підпроекти пакети робіт на основні проекти за замовчуванням + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Формат тривалості setting_duration_format_days_and_hours: Дні й години setting_duration_format_hours_only: Тільки години @@ -6194,6 +6709,7 @@ uk: setting_start_of_week: Тиждень починається setting_sys_api_description: Веб-сервіс управління сховищем забезпечує інтеграцію та авторизацію користувача для доступу до сховищ. setting_sys_api_enabled: Увімкнути веб-службу керування сховищем + setting_sys_api_key: API key setting_time_format: Час setting_total_percent_complete_mode: Обчислення підсумків ієрархів «% завершення» setting_total_percent_complete_mode_simple_average: Середнє арифметичне @@ -6246,7 +6762,7 @@ uk: description_html: 'Виберіть режим, у якому має працювати інтеграція з антивірусним сканером.
  • %{disabled_option}: вивантажені файли не перевіряються на віруси.
  • %{socket_option}: ви встановили ClamAV на тому ж сервері, що й OpenProject, і демон сканування clamd працює у фоновому режимі
  • %{host_option}: ви передаєте файли на зовнішній хост для перевірки на віруси.
' - remaining_quarantined_files_html: 'Перевірку на віруси вимкнено. Залишок файлів на карантині: %{file_count}. Переглянути файли на карантині можна за цим посиланням: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Перевірку на віруси ввімкнено. Потрібно ще перевірити деякі вивантажені раніше файли (%{file_count}). Цей процес заплановано у фоновому режимі. Файли будуть доступні під час перевірки. @@ -6257,6 +6773,7 @@ uk: ' title: Перевірка на віруси attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Якщо вимкнути цей параметр, список вкладень буде приховано на вкладці «Файли» пакетів робіт для нових проєктів. Файли, вкладені в опис пакета робіт, усе одно буде додано у внутрішнє сховище вкладень. ' @@ -6348,12 +6865,12 @@ uk: confirmation_message: Майстер запиту на ініціювання більше не буде доступний для нових проєктів, створених на основі цього шаблону. Менеджерам і власникам проєктів доведеться вручну вибирати налаштування й указувати відповідну інформацію на сторінці «Огляд проєкту». heading: Вимкнути цей запит на ініціювання проєкту? title: Вимкнути запит на ініціювання проєкту - header_description: 'OpenProject може створити покроковий майстер, який допомагатиме менеджерам проєктів заповнювати запити на ініціювання проєктів. Ви можете вибрати атрибути проєктів, які слід включити, і в результаті створити артефакт у форматі PDF. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Назва артефакту - artifact_name_caption: Виберіть для цього артефакту назву, яка відповідатиме вашому методу управління проєктами. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Майстер створення проєктів project_initiation_request: Запит на ініціювання проєкту @@ -6373,8 +6890,8 @@ uk: Ви подали запит на ініціювання проєкту **%{project_name}**. Зараз він очікує на розгляд. Перейдіть за посиланням нижче, щоб отримати доступ до пакета робіт із Вашим запитом. confirmation_email_text: Текст листа з підтвердженням - description: Коли користувач подає запит на ініціювання проєкту, створюється новий пакет робіт з артефактом запиту, долученим як файл PDF. Наведені нижче налаштування визначають тип, статус і виконавця нового пакета робіт. - description_template: "**Цей пакет робіт автоматично створено після завершення робочого процесу «%{wizard_name}».** Артефакт у форматі PDF, що містить усю подану інформацію, було створено й додано в цей пакет робіт для довідки й аудиту. Якщо знадобиться оновити дані або повторити кроки ініціювання, можна будь-коли знову відкрити майстер, скориставшись посиланням, наведеним нижче:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Надіслати лист із підтвердженням користувачу, що подав запит на ініціювання проєкту status_when_submitted: Статус на момент подання status_when_submitted_caption: Статус, який буде присвоєно створеному пакету робіт після подання запиту. @@ -6382,7 +6899,7 @@ uk: work_package_comment_caption: Виконавця, вибраного вище, буде автоматично @згадано в коментарі. work_package_comment_default: Запит на ініціювання проєкту **%{project_name}** подано, і він очікує на розгляд. work_package_type: Тип пакета робіт - work_package_type_caption: Тип пакета робіт, який слід використовувати для зберігання завершеного артефакту. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Відкрити майстер створення проєктів project_initiation_request: Відкрити запит на ініціювання проєкту @@ -6402,6 +6919,7 @@ uk: heading: Новий етап no_gate: Немає контрольної точки non_defined: Наразі не визначено жодних етапів. + order_changed: Order successfully changed. phase_gates: Контрольні точки етапів section_header: Етапи start_gate: Початкова контрольна точка @@ -6458,7 +6976,7 @@ uk: section_work_week: Робочий тиждень sharing: count: - one: 1 користувач + one: "%{count} user" other: 'Користувачів: %{count}' zero: 0 користувачів denied: У вас немає дозволу надавати спільний доступ до %{entities}. @@ -6548,19 +7066,19 @@ uk:
Примітка: успадковані значення (напр., значення дочірніх елементів або зв’язки) не зміняться. index: + could_not_be_moved: Не вдалося перемістити статус. headers: - excluded_from_totals: Виключено з підсумків is_closed: Закрито - is_default: За замовчуванням is_readonly: Лише для перегляду + no_filter_results_title_text: За поточним фільтром не знайдено жодного статусу. no_results_content_text: Додати новий статус no_results_title_text: Наразі немає статусів робочих пакетів. + status_actions: Дії зі статусом support: array: sentence_connector: і skip_last_comma: хибне значення text_access_token_hint: Маркери доступу дозволяють надавати зовнішнім програмам доступ до ресурсів у OpenProject. - text_accessibility_hint: Режим доступності призначений для користувачів, які є сліпими, з обмеженими можливостями або мають поганий зір. Для останніх спеціально виділені цілеспрямовані елементи. Зауважте, що модуль Backlogs недоступний у цьому режимі. text_analyze: 'Подальший аналіз: %{subject}' text_are_you_sure: Ви впевненені? text_are_you_sure_continue: Хочете продовжити? @@ -6603,12 +7121,6 @@ uk: ' text_custom_field_possible_values_info: По одному значенню в кожному рядку - text_custom_logo_instructions: 'Логотип автоматично масштабується відповідно до розміру заголовка. Щоб отримати найкращий результат, завантажте зображення з білим логотипом на прозорому фоні розміром 130×47 пікселів. Відступи на зображені можуть бути будь-які. - - ' - text_custom_logo_mobile_instructions: 'Логотип автоматично масштабується відповідно до розміру заголовка. Щоб отримати найкращий результат, завантажте зображення з білим логотипом на прозорому фоні розміром 130×33 пікселі. Відступи на зображені можуть бути будь-які. - - ' text_custom_touch_icon_instructions: 'Це значок, який відображається на вашому мобільному пристрої або планшеті, коли ви створюєте закладку на робочому столі. Це має бути квадратний файл зображення 180 на 180 пікселів у форматі PNG. Переконайтеся, що фон зображення не прозорий, інакше воно буде матиме поганий вигляд на iOS. ' @@ -6658,6 +7170,7 @@ uk: text_length_between: Довжина між %{min} і %{max} символів. text_line_separated: Дозволено кілька значень (по одному значенню в рядок). text_load_default_configuration: Завантажити Конфігурацію по замовчуванню + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Немає маркерів доступу, які можна налаштувати. text_no_configuration_data: |- Роль, типи, пакет робочі статуси і процес ще не налаштований. @@ -6763,6 +7276,70 @@ uk: tree_view: label_empty_sub_tree: Немає елементів types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Порівняти варіанти + blankslate: + description: Додайте другий варіант цього типу, щоб побачити, чим вони відрізняються. + title: Поки що немає чого порівнювати + description: Порівняйте варіанти цього типу з батьківським типом. + labels: + duplicate: Можливий дублікат + duplicate_of: Налаштовано точно так само, як %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + few: "%{names} and %{count} more" + many: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Батьківський тип + same_as_type: Як і в батьківському типі + rows: + form: + fields: Поля + groups: Розділи + required: З яких обов’язкові + same_as_base: Як і в батьківському типі + scope: + availability: Доступно для + enabled_in_new_projects: Активовано в нових проєктах + projects: Проєкти + workflows: + roles: Залучені ролі + same_as_base: Як і в батьківському типі + statuses: Статуси + transitions: Переходи + sections: + configuration: Огляд конфігурації + form: Форма + scope: Область + workflows: Робочі процеси + title: Порівняти варіанти + title_for_type: Порівняти варіанти для %{name} + values: + global: Усі проєкти + inheriting_from: Спадкування від + project_specific: Повʼязані з конкретними проєктами ([%{project}](project_url)) + same_as_base: Як і в батьківському типі creation_wizard: add_variant: Додати варіант для об’єкта «%{name}» create_type: Створити тип @@ -6772,14 +7349,40 @@ uk: finish: Завершити placeholder_description: Цей крок стане доступним незабаром. progress_label: Крок %{number} з %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Стандартні details: Деталі form_configuration: Форма - pdf: Генерування PDF-файлу + pdf: Generate PDF project_attributes: Атрибути проєкту projects: Проєкти - workflows: Робочі процеси + start: Start + workflows: Workflow success: Успішно створено. edit: breadcrumb_variant: 'Варіант: «%{name}»' @@ -6788,8 +7391,10 @@ uk: caption: Визначте шаблон, використовуючи атрибути й текст, щоб теми пакетів робіт генерувались автоматично. Користувачі не зможуть редагувати теми вручну. label: Автоматично згенеровані теми description: - caption: Введіть текст, який додаватиметься в поле опису всіх нових пакетів робіт цього типу. - label: Стандартний текст опису + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Користувачі можуть самостійно вводити й редагувати теми пакетів робіт без обмежень. label: Теми, які можна редагувати вручну @@ -6818,21 +7423,21 @@ uk: file_link: caption: Згенерований файл PDF завантажується в сховище Nextcloud з автоматичним керуванням, яке використовується для проєкту. Посилання на файл є в пакеті робіт. Якщо в проєкті немає такого сховища, відповідні пакети робіт пропускаються. label: Завантажити файл у зовнішнє файлове сховище й додати посилання на нього в пакет робіт - intro: Автоматично генеруйте артефакт PDF для пакета робіт цього типу щоразу, коли змінюється його статус. - invalid_mode: Недійсний режим експорту артефактів. - label: Автоматичний експорт артефактів + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: Файл PDF не генерується автоматично. label: Вимкнено - section_title: Автоматичний експорт артефактів + section_title: Automatic artifact export unavailable: недоступно, не налаштовано жодного сховища Nextcloud з автоматичним керуванням - intro: Виберіть, які шаблони з доступних вам ви хочете ввімкнути для цього типу. Шаблон визначає дизайн і атрибути, що відображаються в експортованому PDF-файлі пакета робіт за допомогою цього типу. Перший шаблон у списку вибирається за замовчуванням. pdf_export_templates: actions: label_disable_all: Вимкнути все label_enable_all: Увімкнути все label_toggle_template: Змінити %{template} label: Шаблони експорту PDF + order_changed: Order successfully changed. tab: Згенерувати PDF templates: readonly_error: Не можна змінити, поки пов'язано з типом джерела. @@ -6849,6 +7454,8 @@ uk: confirm_delete_group: Справді видалити цей розділ? Цю дію не можна буде скасувати автоматично. confirm_reset: Ви справді хочете скинути форму? custom_field: Користувацьке поле + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Видалити розділ drag_to_activate: Перетягніть поля звідси, щоб активувати їх drag_to_reorder: Перетягніть, щоб змінити порядок @@ -6870,6 +7477,14 @@ uk: query_group_label: Таблиця пов’язаних робочих пакетів remove_attribute: Вилучити з розділу rename_group: Перейменувати розділ + required: + already_required_globally: Це користувацьке поле є обов’язковим для всіх типів. + for_variant: Обов’язкове для цього типу + globally: Обов'язкове + globally_hint: Змініть це у користувацькому полі + mark: Обов’язкове для цього типу + not_a_custom_field: Обов’язковим для заповнення лише для одного типу може бути лише користувацьке поле. + unmark: Не є обовʼязковим для цього типу reset_description: 'Це призведе до скидання атрибутів до групи, що використовується за замовчуванням, і до вимкнення ВСІХ користувацьких полів. ' @@ -6879,12 +7494,14 @@ uk: tab: Форма untitled_group: Безіменна група overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Режим конфігурації - dependents: Залежні типи та варіанти mode: always_manual: Завжди вручну - inheriting_from_html: Успадкування від %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Налаштовано вручну + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Налаштування tab: Огляд project_attributes: @@ -6898,12 +7515,12 @@ uk: manual: description: Коли ви [створите атрибути проєкту](administration_url), вони з’являться тут і їх можна буде додати в тип. title: Немає доступних атрибутів проєкту - description: Виберіть атрибути проєктів, які потрібно ввімкнути для цього типу пакетів робіт. У пакетах робіт цього типу ввімкнені атрибути відображаються на окремій вкладці, де їх можуть переглядати й редагувати користувачі з відповідними дозволами. disabled: Вимкнено exclusions: attribute_label: Успадкувати %{attribute} filter: Пошук за розділом або назвою tab: Атрибути проєктів + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Вилучити тип «%{type}» з проєкту «%{project}»? @@ -6916,10 +7533,12 @@ uk: empty_state: description: Додайте проєкт для використання цієї конфігурації. no_results: Немає відповідних проєктів. + title: Not used in any project yet enable_all: Використовувати у всіх проєктах select_projects: Вибрати проєкти select_projects_description: Виберіть проєкти, у яких ви хочете використовувати цей тип. tab: Проєкти + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6934,47 +7553,17 @@ uk: title: Скопіювати конфігурацію invalid_source: Конфігурацію неможливо скопіювати з вибраного вихідного типу. Будь ласка, виберіть інший. success: Конфігурацію скопійовано. - dependents: - blank: - description: Цю конфігурацію не успадковують інші типи та варіанти - title: Немає залежних типів - description: - one: Ця конфігурація успадковується ще 1 типом або варіантом. Зміни, внесені тут, вплинуть на залежний об’єкт. - few: Ця конфігурація успадковується ще %{count} іншими типами або варіантами. Зміни, внесені тут, вплинуть на залежні об’єкти. - many: Ця конфігурація успадковується ще %{count} іншими типами або варіантами. Зміни, внесені тут, вплинуть на залежні об’єкти. - other: Ця конфігурація успадковується ще %{count} іншими типами або варіантами. Зміни, внесені тут, вплинуть на залежні об’єкти. - dialog: - description: Ці типи та варіанти успадковують конфігурацію цього розділу. Зміни, внесені тут, застосовуються до всіх них. - direct_heading: Прямі нащадки - indirect_heading: Нащадки зі спадкуванням через інші типи - title: Залежні типи - variant_of_html: Варіант %{type_name} - variant_of_via_html: Варіант типу %{type_name}, успадкований через %{source_name} - via_html: Успадкування через %{source_name} - title: - one: 1 залежний тип - few: "%{count} залежні типи" - many: "%{count} залежних типів" - other: "%{count} залежні типи" - view: Переглянути залежні типи exclusions: not_inherited: Ця конфігурація не спадкується, тому виключати нічого не потрібно. Натомість відредагуйте безпосередньо конфігурацію. unknown_aspect: Невідомий розділ конфігурації «%{aspect}». inherited: - change_source: Змінити вихідний тип configure_manually: Налаштувати вручну confirm_dialog: - change_source: - description_html: Змінивши вихідний тип на «%{source_name}», ви перезапишете поточні налаштування, що може вплинути на наявні дані пакетів робіт цього типу. - heading: Змінити вихідний тип? - title: Змінити вихідний тип check_box: Я розумію, що поточні налаштування буде перезаписано from_manual: description: Усі поточні налаштування буде перезаписано, що може вплинути на наявні дані пакетів робіт цього типу. heading: Змінити режим конфігурації? title: Змінити режим конфігурації - description: Ця конфігурація успадкована від типу [%{source_name}](source_url)%{source_suffix}. - description_unlinked: Ця конфігурація успадкована від типу %{source_name}%{source_suffix}. dialog: description: Успадкувати цю конфігурацію від вихідного типу. Будь-яка нова конфігурація, додана до джерела, застосовується також і тут. source_label: Вихідний тип @@ -6982,6 +7571,9 @@ uk: submit: Перемкнути title: Успадкувати з іншого типу invalid_source: Конфігурацію неможливо успадкувати з вибраного вихідного типу. Будь ласка, виберіть інший. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: Режим конфігурації змінено. title: Успадкована конфігурація manual: @@ -6990,13 +7582,14 @@ uk: description: Усі поточні налаштування буде перезаписано, що може вплинути на наявні дані пакетів робіт цього типу. heading: Змінити режим конфігурації? title: Змінити режим конфігурації - copy_from_type: Копіювати з іншого типу description: Налаштування не успадковуються. Ви все одно можете один раз скопіювати налаштування з іншого типу. dialog: submit: Перемкнути title: Налаштувати вручну - inherit_from_type: Успадкувати з іншого типу + inherit_from_type: Успадковувати invalid_mode: Вибраний режим недоступний для цієї конфігурації. Будь ласка, виберіть інший. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Почніть з одноразового копіювання налаштувань, які ця конфігурація зараз успадковує. @@ -7010,12 +7603,16 @@ uk: success: Режим конфігурації змінено. title: Ручна конфігурація parent_suffix: " (батьківський об’єкт)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'Ви можете створювати варіанти, щоб пропонувати версії цього типу для різних проєктів.
Кожен варіант може успадковувати, копіювати користувацьку конфігурацію або мати власну для стандартного шаблону, користувацьких полів, робочих процесів і налаштувань. ' title: Немає варіантів для цього типу + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Створено в проєкті «%{project}» delete: description: Проєкти, у яких використовується цей варіант, будуть переведені на варіант, який ви виберете нижче, до того, як цей варіант буде видалено. @@ -7024,35 +7621,80 @@ uk: filter_no_results: Немає варіантів, які відповідають фільтру global_section: description: Ці варіанти доступні у всіх проєктах. - title: Варіанти + title: Глобальні варіанти project_specific_section: description: Ці варіанти доступні лише в рамках тих проєктів, у яких вони були створені. title: Варіанти для проєкту workflow: - tab: Робочі процеси + tab: Workflow index: add_variant: Додати варіант для об’єкта «%{name}» add_variant_action: Додати варіант + convert_to_global: Перетворити на глобальний варіант + convert_to_global_dialog: + confirm: Перетворити + text: 'У результаті цей варіант, створений для конкретного проєкту, стане глобальним і буде доступним для всіх проєктів. Адміністратор проєкту більше не зможе його редагувати. + + ' + workflow_text: 'Робочий процес «%{name}» належить до цього проєкту і також набуває глобального статусу. + + ' + convert_to_global_notice: "%{name} тепер є глобальним." + convert_to_global_rename: + confirm: Перетворити + text: Глобальний варіант із цією назвою вже існує. Будь ласка, виберіть іншу назву. + title: Виберіть іншу назву для цього варіанту + created_by_migration: Migrated + delete: + description: Цей тип буде видалено назавжди. Цю дію неможливо скасувати. + description_with_variants: Цей тип і всі його варіанти буде видалено назавжди. Цю дію неможливо скасувати. + heading: Видалити тип «%{name}»? + projects: + one: 'The type will be removed from %{count} project:' + few: 'The type will be removed from %{count} projects:' + many: 'The type will be removed from %{count} projects:' + other: 'The type will be removed from %{count} projects:' + title: Видалити тип description: 'Кожну область конфігурації на рівні типів і варіантів можна налаштувати окремо, обмежити на основі іншого типу або повністю зв’язати з вихідним об’єктом. ' duplicate_name: Копія обʼєкта «%{name}» duplicate_notice: Створено дублікат обʼєкта «%{name}». enabled_in_new_projects: Активовано в нових проєктах + filter: Filter by name + filter_no_results: No types match this filter make_default: Активувати в нових проєктах make_default_notice: Обʼєкт «%{name}» тепер активується в нових проєктах. + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Створіть новий тип no_results_title_text: Наразі немає типів. project_variants_count: - one: 1 варіант для проєкту - few: "%{count} варіанти для проєкту" - many: "%{count} варіантів для проєкту" - other: "%{count} варіанти для проєкту" + one: "%{count} project-specific variant" + few: "%{count} project-specific variants" + many: "%{count} project-specific variants" + other: "%{count} project-specific variants" remove_default: Не активувати в нових проєктах remove_default_notice: Обʼєкт «%{name}» більше не активується в нових проєктах. type_label: Тип variant_label: Варіант + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + few: "%{type} without %{fields} and %{count} more fields" + many: "%{type} without %{fields} and %{count} more fields" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Віха + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ігнорувати це попередження. message: Ви можете зіткнутися з помилками та погіршити досвід роботи на цій сторінці. @@ -7071,10 +7713,10 @@ uk: authorization_rejected: Вам не дозволено входити. blocked: тимчасово заблоковано blocked_num_failed_logins: - one: тимчасово заблоковано (одна невдала спроба входу) - few: тимчасово заблоковано (%{count} спроби входу в систему) - many: тимчасово заблоковано (%{count} спроби входу в систему) - other: тимчасово заблоковано (%{count} спроби входу в систему) + one: locked temporarily (%{count} failed login attempt) + few: locked temporarily (%{count} failed login attempts) + many: locked temporarily (%{count} failed login attempts) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Ви збираєтеся змінити статус %{name} Ви дійсно бажаєте продовжити? deleted: Видалити користувача department_ldap_managed_caption: Цей відділ синхронізується з LDAP, і його не можна змінити тут. @@ -7174,7 +7816,7 @@ uk: deletion_warning: Ви справді хочете скасувати цей сеанс? Ви вийдете з облікового запису на цьому пристрої. device: Пристрій / ОС expires: Завершується - instructions: Ви ввійшли в обліковий запис на вказаних далі пристроях. Скасуйте сеанси, які вам не знайомі, чи сеанси на пристроях, якими ви не керуєте. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Останнє підключення may_not_delete_current: Ви не можете видалити поточний сеанс. session_name: "%{browser_name} %{browser_version} у %{os_name}" @@ -7234,15 +7876,21 @@ uk: start_date: Дата початку work_days: Робочі дні work_days_count: - one: 1 робочий день - few: "%{count} робочих дні" - many: "%{count} робочих днів" - other: "%{count} робочого дня" + one: "%{count} working day" + few: "%{count} working days" + many: "%{count} working days" + other: "%{count} working days" work_hours: Робочі години version_status_closed: закрито version_status_locked: Заблоковано version_status_open: відкрити versions: + filter_status_labels: + closed: Закрито + locked: Заблоковано + open: Відкрито + index: + filter_label: Пошук версій overview: no_results_title_text: Наразі для цієї версії не призначено робочих пакетів. work_packages_in_archived_projects: Доступ до цієї версії надано в архівних проєктах, які досі містять пакети робіт, призначені цій версії. Їх враховано, але вони не відображаються в пов’язаних поданнях. @@ -7410,15 +8058,17 @@ uk: required_description: Позначає цей робочий пакет як обовʼязковий для звʼязаного з ним requires_description: Позначає звʼязаний пакет робіт як обовʼязковий для цього work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Не вдалося скопіювати пакети робіт. could_not_be_deleted: 'Не вдалося видалити такі пакети робіт:' could_not_be_saved: 'Не вдалося зберегти такі робочі пакети:' deletion_successful: - one: Успішно видалено %{count} пакет робіт. - few: Успішно видалено %{count} пакети робіт. - many: Успішно видалено %{count} пакетів робіт. - other: Успішно видалено %{count} пакета робіт. + one: Successfully deleted %{count} work package. + few: Successfully deleted %{count} work packages. + many: Successfully deleted %{count} work packages. + other: Successfully deleted %{count} work packages. descendant: нащадок вибраного елемента move_failed: Не вдалося перемістити пакети робіт. none_could_be_saved: Жоден із пакетів робіт (%{total}) не можна оновити. @@ -7442,26 +8092,26 @@ uk: description_with_visible_descendants: Справді видалити вибрані пакети робіт разом зі всіма видимими нащадками? heading: Видалити ці пакети робіт (%{count}) остаточно? hidden_descendants_only_warning: - one: Є %{count} невидимий нащадок. Такі нащадки не видаляються, але відповідні зв’язки вилучаються. - few: Є %{count} невидимих нащадки. Їх не буде видалено, але всі відповідні ієрархічні зв’язки буде вилучено. - many: Є %{count} невидимих нащадків. Їх не буде видалено, але всі відповідні ієрархічні зв’язки буде вилучено. - other: Є %{count} невидимого нащадка. Їх не буде видалено, але всі відповідні ієрархічні зв’язки буде вилучено. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: Усі видимі нащадки видаляться. Є %{count} невидимий нащадок, який не видалиться, але відповідний зв’язок буде вилучено. - few: Усі видимі нащадки видаляться. Є %{count} невидимих нащадки, які не видаляться, але всі відповідні ієрархічні зв’язки буде вилучено. - many: Усі видимі нащадки видаляться. Є %{count} невидимих нащадків, які не видаляться, але всі відповідні ієрархічні зв’язки буде вилучено. - other: Усі видимі нащадки видаляться. Є %{count} невидимого нащадка, які не видаляться, але всі відповідні ієрархічні зв’язки буде вилучено. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. + few: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + many: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Видалити пакети робіт (%{count}) undeletable_descendants_warning: - one: Є %{count} нащадок, для видалення якого ви не маєте необхідних дозволів. Такі нащадки залишаються, але відповідні ієрархічні зв’язки вилучаються. - few: Є %{count} нащадки, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - many: Є %{count} нащадків, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - other: Є %{count} нащадка, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Є нащадок, для видалення якого ви не маєте необхідних дозволів у проєктах %{projects}. Такі нащадки залишаються, але відповідні ієрархічні зв’язки вилучаються. - few: Є %{count} нащадки, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - many: Є %{count} нащадків, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - other: Є %{count} нащадка, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -7518,26 +8168,172 @@ uk: description: Справді видалити обʼєкт «%{name}»? heading: Видалити цей пакет робіт остаточно? hidden_descendants_only_warning: - one: У цьому пакеті робіт є %{count} невидимий нащадок, який не видалиться, але відповідний ієрархічний зв’язок буде вилучено. - few: У цьому пакеті робіт є %{count} невидимих нащадки. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. - many: У цьому пакеті робіт є %{count} невидимих нащадків. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. - other: У цьому пакеті робіт є %{count} невидимого нащадка. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: Усі видимі нащадки видаляться. У цьому пакеті робіт є %{count} невидимий нащадок, який не видалиться, але відповідний ієрархічний зв’язок буде вилучено. - few: Усі видимі нащадки видаляться. У цьому пакеті робіт є %{count} невидимих нащадки. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. - many: Усі видимі нащадки видаляться. У цьому пакеті робіт є %{count} невидимих нащадків. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. - other: Усі видимі нащадки видаляться. У цьому пакеті робіт є %{count} невидимого нащадка. Вони не видаляться, але відповідний ієрархічний зв’язок буде вилучено. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + few: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + many: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Видалити пакет робіт undeletable_descendants_warning: - one: Є %{count} нащадок, для видалення якого ви не маєте необхідних дозволів. Такі нащадки залишаються, але відповідні ієрархічні зв’язки вилучаються. - few: Є %{count} нащадки, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - many: Є %{count} нащадків, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - other: Є %{count} нащадка, для видалення яких ви не маєте необхідних дозволів. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: Є нащадок, для видалення якого ви не маєте необхідних дозволів у проєктах %{projects}. Такі нащадки залишаються, але відповідні ієрархічні зв’язки вилучаються. - few: Є %{count} нащадки, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - many: Є %{count} нащадків, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. - other: Є %{count} нащадка, для видалення яких ви не маєте необхідних дозволів у проєктах %{projects}. Вони залишаться, але відповідні ієрархічні зв’язки буде вилучено. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + few: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + many: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + few: "%{count} lines checked, no problems found" + many: "%{count} lines checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + few: View the %{count} imported work packages + many: View the %{count} imported work packages + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + few: "%{count} problems, all shown." + many: "%{count} problems, all shown." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + few: "%{count} lines" + many: "%{count} lines" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + few: "%{count} problems" + many: "%{count} problems" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'Типи пакетів робіт або їх нащадків не ввімкнено в цільовому проєкті. Увімкніть типи, яких бракує, якщо не хочете, щоб вони зазнали змін. Інакше виберіть у цільовому проєкті доступний тип зі списку. @@ -7569,26 +8365,27 @@ uk: version: no_results_title_text: Наразі немає доступних версій. x_descendants: - one: Один робочий пакет нащадків - few: "%{count} нащадки робочого пакета" - many: "%{count} нащадки робочого пакета" - other: "%{count} нащадки робочого пакета" + one: "%{count} descendant work package" + few: "%{count} work package descendants" + many: "%{count} work package descendants" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Змінити робочий процес copies: form: - mode: - from_role: - caption: Скопіюйте поточний робочий процес в одну або кілька ролей у межах одного типу пакетів робіт. Якщо у вибраної ролі вже є робочий процес, поточний буде перезаписано. - label: Копіювати в інші ролі - from_type: - caption: Скопіюйте поточний робочий процес в інший тип пакетів робіт. Якщо вибраний тип уже має робочий процес, поточний буде перезаписано. Це впливає на всі ролі. - label: Копіювати в інший тип - source_role_id: - label: Вихідна роль target_role_ids: label: Цільові ролі - target_variant_ids: - label: Цільові типи from_roles: create: notice: @@ -7596,16 +8393,31 @@ uk: few: Робочий процес успішно скопійовано в %{count} ролі. many: Робочий процес успішно скопійовано в %{count} ролей. other: Робочий процес успішно скопійовано в %{count} ролі. - from_variants: - create: - notice: - one: Робочий процес успішно скопійовано в тип «%{type_name}». - few: Робочий процес успішно скопійовано в %{count} типи. - many: Робочий процес успішно скопійовано в %{count} типів. - other: Робочий процес успішно скопійовано в %{count} типу. new: - title: Скопіювати робочий процес типу «%{source_type}» + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + few: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + many: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: Новий робочий процес починається з копії переходів статусу цього робочого процесу. + label: Скопіювати із + placeholder: Виберіть робочий процес… + description: + caption: Додайте короткий опис того, де та як використовуватиметься цей робочий процес. + label: Опис + edit_title: Редагувати робочий процес matrix_caption: Матриця робочого процесу matrix_caption_assignee: Матриця робочого процесу для виконавця matrix_caption_author: Матриця робочого процесу для автора @@ -7614,12 +8426,100 @@ uk: matrix_check_uncheck_all_in_row_label_html: Перемикач зміни статусу %{old_status} на всі нові статуси matrix_checkbox_label: Дозволити зміну статусу «%{old_status}» на «%{new_status}» matrix_uncheck_all_label: Заборонити всі зміни + name: + caption: Виберіть назву, яка допоможе вам пізніше впізнати цей робочий процес в інших місцях. + label: Назва робочого процесу + new_title: Створити робочий процес index: + actions: + create: Робочий процес + edit: Редагувати переходи + menu: Дії для %{name} + rename: Редагувати назву й опис + blank_slate: + description: Створіть робочий процес, щоб визначити переходи між статусами, які може використовувати тип або варіант. + filtered_description: За поточними фільтрами не знайдено жодного робочого процесу. + filtered_title: Відповідних робочих процесів не знайдено + title: Немає робочих процесів + columns: + name: Назва робочого процесу + projects: Проєкти + roles: Ролі + types_and_variants: Типи та варіанти + description: Усі іменовані набори переходів між статусами у цьому екземплярі, а також типи та варіанти, що їх використовують. + filters: + name: Робочий процес + name_placeholder: Фільтрувати за назвою або описом робочого процесу… + projects_placeholder: Фільтрувати проєкти… + projects_count: + one: "%{count} project" + few: "%{count} projects" + many: "%{count} projects" + other: "%{count} projects" + roles_count: + one: "%{count} role" + few: "%{count} roles" + many: "%{count} roles" + other: "%{count} roles" type_filter: label: Фільтрувати за назвою типу… + types_and_variants_count: "%{types} (у т. ч. %{variants})" + types_count: + one: "%{count} type" + few: "%{count} types" + many: "%{count} types" + other: "%{count} types" + variants_count: + one: "%{count} variant" + few: "%{count} variants" + many: "%{count} variants" + other: "%{count} variants" + name: + fallback: Робочий процес + implicit: "%{name} workflow" page_headers: index_component: description: Налаштуйте переходи статусів для кожного типу пакета робіт. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: Наразі жоден тип чи варіант ще не використовує цей робочий процес. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + few: This workflow is used by %{count} types. Changes apply to all of them. + many: This workflow is used by %{count} types. Changes apply to all of them. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + few: This workflow is used by %{count} types and variants. Changes apply to all of them. + many: This workflow is used by %{count} types and variants. Changes apply to all of them. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Змінити робочі дні dialog: diff --git a/config/locales/crowdin/uz.seeders.yml b/config/locales/crowdin/uz.seeders.yml index 14a8e7cf00d4..68ec633e12b5 100644 --- a/config/locales/crowdin/uz.seeders.yml +++ b/config/locales/crowdin/uz.seeders.yml @@ -250,70 +250,26 @@ uz: In this module you can communicate project news to your team members. versions: item_0: - name: Bug Backlog - item_1: - name: Product Backlog - item_2: - name: Sprint 1 wiki: - title: Sprint 1 + title: Release 1.0 content: | - ### Sprint planning meeting - - _Please document here topics to the Sprint planning meeting_ - - * Time boxed (8 h) - * Input: Product Backlog - * Output: Sprint Backlog - - * Divided into two additional time boxes of 4 h: - - * The Product Owner presents the [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and the priorities to the team and explains the Sprint Goal, to which the team must agree. Together, they prioritize the topics from the Product Backlog which the team will take care of in the next sprint. The team commits to the discussed delivery. - * The team plans autonomously (without the Product Owner) in detail and breaks down the tasks from the discussed requirements to consolidate a [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Daily Scrum meeting - - _Please document here topics to the Daily Scrum meeting_ + ### Release 1.0 - * Short, daily status meeting of the team. - * Time boxed (max. 15 min). - * Stand-up meeting to discuss the following topics from the [Task board](##sprint:scrum_project__version__sprint_1). - * What do I plan to do until the next Daily Scrum? - * What has blocked my work (Impediments)? - * Scrum Master moderates and notes down [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Product Owner may participate may participate in order to stay informed. + _Please document here what this release contains._ - ### Sprint Review meeting - - _Please document here topics to the Sprint Review meeting_ - - * Time boxed (4 h). - * A maximum of one hour of preparation time per person. - * The team shows the product owner and other interested persons what has been achieved in this sprint. - * Important: no dummies and no PowerPoint! Just finished product functionality (Increments) should be demonstrated. - * Feedback from Product Owner, stakeholders and others is desired and will be included in further work. - * Based on the demonstrated functionalities, the Product Owner decides to go live with this increment or to develop it further. This possibility allows an early ROI. - - - ### Sprint Retrospective - - _Please document here topics to the Sprint Retrospective meeting_ - - * Time boxed (3 h). - * After Sprint Review, will be moderated by Scrum Master. - * The team discusses the sprint: what went well, what needs to be improved to be more productive for the next sprint or even have more fun. - item_3: - name: Sprint 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Category 1 (to be changed in Project settings) queries: item_0: name: Project plan item_1: - name: Product backlog + name: Version 1.1 item_2: - name: Sprint 1 + name: Version 1.0 item_3: name: Tasks boards: @@ -345,12 +301,13 @@ uz: 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. - 3. *View your Task board*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Click on right arrow on Sprint → Select [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. - 6. *Create a Sprint wiki*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and open the sprint wiki from the right drop down menu in a sprint. You can edit the [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) based on your needs. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: diff --git a/config/locales/crowdin/uz.yml b/config/locales/crowdin/uz.yml index bfd4368fbb56..0dbe55111cbe 100644 --- a/config/locales/crowdin/uz.yml +++ b/config/locales/crowdin/uz.yml @@ -40,7 +40,9 @@ uz: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Delete account delete_confirmation: Are you sure you want to delete the account? deletion_info: @@ -65,7 +67,9 @@ uz: error_self_registration_limited_provider: 'User registration is limited for the Single sign-on provider ''%{name}''. Please ask an administrator to activate the account for you or change the self registration limit for this provider. ' - login_with_auth_provider: or sign in with your existing account + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Please login to activate your account. @@ -118,6 +122,8 @@ uz: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM clients + automation: + actions: Actions calculated_value_error: customized_id: Customized ID customized_type: Customized type @@ -128,8 +134,6 @@ uz: repository: Repository comment: commented: Commented - custom_action: - actions: Actions custom_field: admin_only: Admin-only allow_non_open_versions: Allow non-open versions @@ -168,6 +172,7 @@ uz: uid: Client ID emoji_reaction: reactable: Reacted on + reaction: Reaction enterprise_token: active_user_count_restriction: Active users encoded_token: Enterprise support token @@ -179,20 +184,44 @@ uz: company: Company favorite: favorited: Item + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Number of columns page: Page row_count: Number of rows widgets: Widgets group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: Identity URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ uz: title: Title member: blocked: Blocked + principal_type: Member type roles: Roles notification: read_ian: Read in-app @@ -235,6 +265,7 @@ uz: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ uz: ongoing: Ongoing spent_on: Date type: Type + token/base: + expires_on: Expiration date token/ical: calendar: Calendar ical_token_query_assignment: Query assignment @@ -384,19 +417,17 @@ uz: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Administrator auth_source: Authentication source + avatar_type: Avatar type consented_at: Consented at current_password: Current password department: Department @@ -410,7 +441,7 @@ uz: last_name: Last name ldap_auth_source: LDAP connection new_password: New password - password_confirmation: Confirmation + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ uz: user_preference: auto_hide_popups: Automatically hide success banners auto_hide_popups_caption: When enabled, the green success banners will automatically disappear after 5 seconds. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Update alerts button_update_look_and_feel: Update look and feel button_update_user_information: Update profile comments_sorting: Display work package activity sorted by daily_reminders: Daily reminders + date_format: Date format disable_keyboard_shortcuts: Disable keyboard shortcuts dismissed_enterprise_banners: Hidden enterprise banners force_dark_theme_contrast: Force high-contrast when in Dark mode @@ -434,13 +469,23 @@ uz: header_look_and_feel: Look and feel impaired: Accessibility mode increase_contrast: Increase contrast - increase_contrast_caption: Enables high-contrast mode for the chosen colour mode. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Increase theme contrast mode_guideline: Some modes will overwrite custom theme colors for accessibility and legibility. Please select Light mode for full custom theme support. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Color mode + time_format: Time format time_zone: Time zone warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved changes workdays: Working days + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ uz: title: Working days true: include non-working days journal_internal: Internal Journal + labels: Labels notify: Notify observed_in_versions: Observed in versions parent: Parent @@ -519,6 +565,10 @@ uz: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: must be accepted. @@ -590,6 +640,8 @@ uz: regex_invalid: could not be validated with the associated regular expression. regex_list_invalid: Lines %{invalid_lines} could not be parsed as regular expression. regex_match_failed: does not match the regular expression %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum length. smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ uz: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: is the wrong length (should be %{count} characters). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -672,6 +728,16 @@ uz: general_consent: Please accept the terms and conditions. favorite: already_favorited: has already been favorited. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: end value needs to be larger than the start value. outside: is outside of the grid. @@ -689,6 +755,13 @@ uz: not_unique: is already in use. Please select another name. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -744,7 +817,6 @@ uz: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'still in use by work packages: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -857,42 +929,26 @@ uz: blank: Please provide a token name format: "%{message}" in_use: This token name is already in use, please select a different one + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -906,7 +962,7 @@ uz: numeric: numeric (e.g. '1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - one: has been used before. Please choose one that is different from your last one. + one: has been used before. Please choose one that is different from your last %{count} password. other: has been used before. Please choose one that is different from your last %{count}. special: special (e.g. '%') uppercase: uppercase (e.g. 'A') @@ -976,6 +1032,8 @@ uz: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: cannot be in another project. cannot_be_milestone: cannot be a milestone. @@ -1003,6 +1061,8 @@ uz: status_id: status_invalid_in_type: is invalid because the current status does not exist in this type. status_transition_invalid: is invalid because no valid transition exists from old to new status for the current user's roles. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: cannot be a milestone because this work package has children. is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid target for reassigning the time entries.' @@ -1011,7 +1071,7 @@ uz: template: body: 'Please check the following fields:' header: - one: 1 error prohibited this %{model} from being saved + one: "%{count} error prohibited this %{model} from being saved" other: "%{count} errors prohibited this %{model} from being saved" models: action: @@ -1050,6 +1110,9 @@ uz: auth_provider: one: Authentication provider other: Authentication providers + automation: + one: Automation + other: Automations backup: one: Backup other: Backups @@ -1071,9 +1134,6 @@ uz: comment: one: Comment other: Comments - custom_action: - one: Custom action - other: Custom actions custom_field: one: Custom field other: Custom fields @@ -1119,6 +1179,9 @@ uz: export_setting: one: Export setting other: Export settings + form_configuration: + one: Form + other: Forms forum: one: Forum other: Forums @@ -1137,6 +1200,9 @@ uz: issue_priority: one: Priority other: Priorities + label: + one: Label + other: Labels ldap_auth_source: one: LDAP connection other: LDAP connections @@ -1401,7 +1467,28 @@ uz: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1434,7 +1521,11 @@ uz: tab_interface: Interface tab_pdf_export_font: PDF export font tab_pdf_export_styles: PDF export styles - theme_warning: Changing the theme will overwrite you custom style. The design will then be lost. Are you sure you want to continue? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Upload an Enterprise edition support token book_now: Book now @@ -1467,7 +1558,7 @@ uz: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc memory allocator @@ -1475,12 +1566,15 @@ uz: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1513,16 +1607,30 @@ uz: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1626,25 +1734,25 @@ uz: title: Please make sure you have a backup! parts: issues: - one: 1 issue + one: "%{count} issue" other: "%{count} issues" jobs: - one: 1 job + one: "%{count} job" other: "%{count} jobs" projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" statuses: - one: 1 status + one: "%{count} status" other: "%{count} statuses" types: - one: 1 type + one: "%{count} type" other: "%{count} types" users: - one: 1 user + one: "%{count} user" other: "%{count} users" work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently @@ -1710,7 +1818,7 @@ uz: caption: Choose what you want to import into OpenProject caption_done: Completed caption_done_description: - one: 1 project selected as scope + one: "%{count} project selected as scope" other: "%{count} projects selected as scope" description: Select what data you want to import from the available data fetched from the host Jira instance. elements: @@ -1775,23 +1883,53 @@ uz: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + one: "%{count} work package" + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1822,6 +1960,18 @@ uz: update: failure: MCP configuration could not be updated. success: MCP configuration was updated successfully. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: See our integrations and plugins page for more information. no_results_title_text: There are currently no plugins installed. @@ -1835,7 +1985,7 @@ uz: confirm_button: Unreserve identifier description: Unreserving this project identifier cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. description_with_work_packages: - one: Unreserving this project identifier (and its 1 work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. + one: Unreserving this project identifier (and its %{count} work package identifier) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: Unreserve "%{identifier}"? title: Unreserve identifier @@ -1964,7 +2114,7 @@ uz: error_unknown: Needs manual review error_used_in_past: Reserved by another project's handle history remaining_projects: - one: "... 1 more project" + one: "... %{count} more project" other: "... %{count} more projects" banner: existing_identifiers_notice: 'Existing identifiers for %{project_count} projects don''t meet requirements for project-based semantic identifiers. OpenProject can automatically update these so that they are valid as in the examples below. Click on ''Convert identifiers'' to update identifiers for all projects in this manner and enable project-based semantic identifiers. @@ -2005,7 +2155,7 @@ uz: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -2038,13 +2188,20 @@ uz: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: - one: One role selected + one: "%{count} role selected" other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -2054,7 +2211,7 @@ uz: confirm: Remove description: Removing these statuses will make them unavailable to this type and delete existing workflows. Are you sure you want to proceed? heading: - one: Remove 1 status? + one: Remove %{count} status? other: Remove %{count} statuses? title: Remove statuses tabs: @@ -2067,7 +2224,31 @@ uz: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: currently displayed is_inactive: currently not displayed show_until: Show until @@ -2075,7 +2256,7 @@ uz: deleted_by_admin: The quarantined file '%{filename}' has been deleted by an administrator. deleted_message: A virus was detected in file '%{filename}'. The file has been deleted. not_processed_yet_message: Downloading is blocked, as file was not scanned for viruses yet. Please try again later. - overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: Container delete: Delete the quarantined file @@ -2129,10 +2310,6 @@ uz: not_found: reminder: The reminder you are looking for cannot be found or has been deleted. work_package: The work package you are looking for cannot be found or has been deleted. - render: - context_not_parsable: The context provided is not a link to a resource. - context_object_not_found: Cannot find the resource given as the context. - unsupported_context: The resource given is not supported as context. unable_to_create_attachment: The attachment could not be created unable_to_create_attachment_permissions: The attachment could not be saved due to lacking file system permissions user: @@ -2203,6 +2380,7 @@ uz: groups: Groups hexcode: Hex code id: ID + inexistent: Inexistent is_default: Default value is_for_all: For all projects issue: Work package @@ -2253,6 +2431,7 @@ uz: updated_at: Updated on updated_on: Updated on uploader: Uploader + url: URL user: User username: Username value: Value @@ -2267,6 +2446,29 @@ uz: ' login_and_registration: Login and registration + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Job was cancelled due to error: %{message}' @@ -2395,6 +2597,7 @@ uz: button_set_reminder: Set reminder button_show: Show button_sort: Sort + button_stop_timer: Stop timer button_submit: Submit button_test: Test button_unarchive: Unarchive @@ -2461,9 +2664,9 @@ uz: text: failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}". succeeded: Copied project "%{source_project_name}" to "%{target_project_name}". - title: Copy project "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: One object of this type + one: "%{count} object of this type" other: "%{count} objects of this type" zero: No objects of this type create_portfolio: @@ -2501,13 +2704,9 @@ uz: plural: Custom actions custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: This custom field is enabled in all projects since the "For all projects" option is checked. It cannot be deactivated for individual projects. - heading: For all projects hierarchy: subitems: - one: 1 sub-item + one: "%{count} sub-item" other: "%{count} sub-items" zero: no sub-items items: @@ -2528,7 +2727,7 @@ uz: short: Short name weight: Weight notice: - remember_items_and_projects: Remember to set items and projects in the respective tabs for this custom field. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. dialog: @@ -2593,16 +2792,17 @@ uz: is_enabled_globally: Is enabled globally multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: No role assignment + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Work package or project selection is required first reorder_alphabetical: Reorder values alphabetically reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Create a new custom field - no_results_title_text: There are currently no custom fields. text_add_new_custom_field: 'To add new custom fields to a project you first need to create them before you can add them to this project. ' @@ -2666,56 +2866,56 @@ uz: datetime: distance_in_words: about_x_hours: - one: about 1 hour + one: about %{count} hour other: about %{count} hours about_x_months: - one: about 1 month + one: about %{count} month other: about %{count} months about_x_years: - one: about 1 year + one: about %{count} year other: about %{count} years almost_x_years: - one: almost 1 year + one: almost %{count} year other: almost %{count} years half_a_minute: half a minute less_than_x_minutes: one: less than a minute other: less than %{count} minutes less_than_x_seconds: - one: less than 1 second + one: less than %{count} second other: less than %{count} seconds over_x_years: - one: over 1 year + one: over %{count} year other: over %{count} years x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" x_hours: - one: 1 hour + one: "%{count} hour" other: "%{count} hours" x_hours_abbreviated: - one: 1 hr + one: "%{count} hr" other: "%{count} hrs" x_minutes: - one: 1 minute + one: "%{count} minute" other: "%{count} minutes" x_minutes_abbreviated: - one: 1 min + one: "%{count} min" other: "%{count} mins" x_months: - one: 1 month + one: "%{count} month" other: "%{count} months" x_seconds: - one: 1 second + one: "%{count} second" other: "%{count} seconds" x_seconds_abbreviated: - one: 1 s + one: "%{count} s" other: "%{count} s" x_weeks: - one: 1 week + one: "%{count} week" other: "%{count} weeks" x_years: - one: 1 year + one: "%{count} year" other: "%{count} years" units: day: @@ -2866,7 +3066,7 @@ uz: teaser: description_html: You have access to all %{trial_plan} features. title: - one: One day left of %{trial_plan} trial token + one: "%{count} day left of %{trial_plan} trial token" other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Your trial enterprise token was already retrieved. Please check your emails for the token being attached. Please reach out to our support team if you need a new one. @@ -3206,9 +3406,150 @@ uz: selected: Selected include_sub_items: Include sub-items no_results_text: No results + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + one: This form is used by %{count} type. Changes apply to it. + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This form is used by %{count} type or variant. Changes apply to it. + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: There are currently no posts for the forum. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + one: 'Accepted solution:' + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + one: Load previous reply + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + one: 1 participant + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3233,6 +3574,8 @@ uz: groups: edit: synchronized_groups: Synchronized groups + form: + group_attributes: Group attributes index: description: By grouping users together, you can add them as members to the same projects or assign the same global roles to them. memberships: @@ -3258,6 +3601,10 @@ uz: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3271,7 +3618,7 @@ uz: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3280,7 +3627,7 @@ uz: warning: Warning help_texts: views: - favoured: Mark this view as favourite and add to the saved views sidebar on the left. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} are always attached to a project. You can only select projects here where the %{plural} module is active. After creating a %{singular} you can add work packages from other projects to it.\n" public: 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. homescreen: @@ -3305,6 +3652,31 @@ uz: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Read about new features and product updates. learn_about: Learn more about all new features @@ -3341,8 +3713,10 @@ uz: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3392,6 +3766,7 @@ uz: budget_deleted: Budget has been deleted dates_changed: Dates changed default_attribute_written: Read-only attributes written + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3544,10 +3919,10 @@ uz: label_copy_target: Target label_copy_workflow_from: Copy workflow from label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Core build label_core_version: Core version label_created_by: Created by %{user} + label_criteria: Criteria label_current_status: Current status label_current_version: Current version label_custom_comment: "%{name} comment" @@ -3571,8 +3946,6 @@ uz: label_custom_field_default_type: Empty type label_custom_field_new: New custom field label_custom_field_plural: Custom fields - label_custom_logo: Custom logo desktop - label_custom_logo_mobile: Custom logo mobile label_custom_pdf_export_settings: Custom PDF export settings label_custom_style: Design label_custom_style_description: Choose how OpenProject looks to you with themes, select your default colors to use in the app and how exports look like. @@ -3581,11 +3954,12 @@ uz: label_database_version: PostgreSQL version label_date: Date label_date_and_time: Date and time - label_date_format: Date format + label_date_and_time_formats: Date and time formats label_date_from: From label_date_from_to: From %{start} to %{end} label_date_to: To label_dates: Dates + label_day: Day label_day_plural: days label_default: Default label_defaults: Defaults @@ -3596,6 +3970,7 @@ uz: label_deleted_custom_field: "(deleted custom field)" label_deleted_custom_item: "(deleted item)" label_deleted_custom_option: "(deleted option)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3666,6 +4041,7 @@ uz: label_float: Float label_folder: Folder label_follows: follows + label_form_configuration_plural: Forms label_formula: Formula label_forum_new: New forum label_forum_plural: Forums @@ -3684,6 +4060,7 @@ uz: label_go_forward: Open %{module} sub-menu label_greater_or_equal: ">=" label_group: Group + label_group_attributes_plural: Group attributes label_group_by: Group by label_group_named: Group %{name} label_group_new: New group @@ -3735,8 +4112,8 @@ uz: label_journal_diff: Description Comparison label_jump_to_a_project: Jump to a project... label_keyword_plural: Keywords + label_label_plural: Labels label_language: Language - label_language_based: Based on user's language label_languages: Languages label_last_activity: Last activity label_last_change_on: Last change on @@ -3758,6 +4135,7 @@ uz: label_list: List label_loading: Loading... label_locale: Language and region + label_locale_based: Use default for user locale label_lock_user: Lock user label_locked: locked label_logged_as: Logged in as @@ -3769,6 +4147,7 @@ uz: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Managed %{vendor} repositories label_mapping_for: 'Mapping for: %{attribute}' + label_markdown_version: Markdown version label_max_size: Maximum size label_me: me label_member_all_admin: "(All roles due to admin status)" @@ -3787,7 +4166,6 @@ uz: label_menu_item_name: Name of menu item label_message: Message label_message_last: Last message - label_message_new: New message label_message_plural: Messages label_message_posted: Message added label_minute_plural: minutes @@ -3799,6 +4177,7 @@ uz: label_module_plural: Modules label_modules: Modules label_modules_and_plugins: Modules and Plugins + label_month: Month label_months_from: months from label_more: More label_more_information: More information @@ -3812,6 +4191,7 @@ uz: label_my_avatar: My avatar label_my_queries: My custom queries label_my_security: Security + label_my_time: My time label_name: Name label_never: Never label_new: New @@ -3826,7 +4206,10 @@ uz: label_news_singular: News label_news_view_all: View all news label_next: Next + label_next_day: Next day + label_next_month: Next month label_next_week: Next week + label_next_workweek: Next work week label_next_year: Next year label_no_change_option: "(No change)" label_no_data: No data to display @@ -3834,6 +4217,7 @@ uz: label_no_parent_group: "(No parent group)" label_no_parent_page: No parent page label_no_start_date: no start date + label_no_time: No time tracked label_nobody: nobody label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3900,7 +4284,10 @@ uz: label_preview: Preview label_preview_not_available: Preview not available label_previous: Previous + label_previous_day: Previous day + label_previous_month: Previous month label_previous_week: Previous week + label_previous_workweek: Previous work week label_previous_year: Previous year label_principal_invite_via_email: " or invite new users via email" label_principal_search: Add existing users or groups @@ -4019,6 +4406,7 @@ uz: label_sort_lowest: Move to bottom label_sorted_by: sorted by %{value} label_spent_time: Spent time + label_stack: Stack label_start_to_end: start to end label_start_to_start: start to start label_starts_with: starts with @@ -4038,6 +4426,7 @@ uz: label_subtask_plural: Subtasks label_summary: Summary label_system: System + label_system_or_language_default: Use system or language based default label_system_settings: System settings label_system_storage: Storage information label_table_of_contents: Table of contents @@ -4052,6 +4441,7 @@ uz: label_time: Time label_time_entry_activity_plural: Spent time activities label_time_entry_plural: Spent time + label_timer_since: Started at %{time} label_title: Title label_today: today label_today_as_date: Select today as date. @@ -4087,7 +4477,9 @@ uz: label_user_search: Search for user label_user_settings: User settings label_users_settings: Users settings + label_value: Value label_value_x: 'Value: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Edit version label_version_new: New version label_version_plural: Versions @@ -4100,6 +4492,7 @@ uz: label_videos: Videos label_view_all_revisions: View all revisions label_view_diff: View differences + label_view_mode_switcher: Change view label_view_revisions: View revisions label_view_x: 'View: %{x}' label_watched_work_packages: Watched work packages @@ -4123,6 +4516,8 @@ uz: label_wiki_start: Start page label_wiki_toc: Table of Contents label_wiki_toc_empty: Table of Contents is empty as no headings are present. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: Work label_work_package: Work package label_work_package_attachments: Work package attachments @@ -4145,45 +4540,46 @@ uz: label_working_days: Working days label_working_days_and_hours: Working days and hours label_working_hours: Work schedule + label_workweek: Work week label_x_closed_work_packages_abbr: - one: 1 closed + one: "%{count} closed" other: "%{count} closed" zero: 0 closed label_x_comments: - one: 1 comment + one: "%{count} comment" other: "%{count} comments" zero: no comments label_x_days: - one: 1 day + one: "%{count} day" other: "%{count} days" label_x_files: - one: 1 file + one: "%{count} file" other: "%{count} files" zero: no files label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: - one: One item selected + one: "%{count} item selected" other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 open + one: "%{count} open" other: "%{count} open" zero: 0 open label_x_projects: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: no projects label_x_work_packages: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" zero: No work packages label_x_working_days: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" label_x_working_days_time_off: - one: 'Time off: 1 working day' + one: 'Time off: %{count} working day' other: 'Time off: %{count} working days' label_yesterday: yesterday label_zen_mode: Zen mode @@ -4238,7 +4634,7 @@ uz: start_tls: STARTTLS start_tls_description: Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections. tls_options: - tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Verify SSL certificate verify_peer_description_html: 'Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. @@ -4295,6 +4691,8 @@ uz: you_have: You have logo_alt_text: Logo mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: To notification center @@ -4351,7 +4749,7 @@ uz: mentioned: You have been mentioned in a comment mentioned_by: "%{user} mentioned you in a comment" more_to_see: - one: There is 1 more work package with notifications. + one: There is %{count} more work package with notifications. other: There are %{count} more work packages with notifications. open_in_browser: Open in browser reason: @@ -4530,6 +4928,13 @@ uz: create_button: Create dialog_body: This token will allow third-party applications to communicate with your instance. To differentiate the new API token, please give it a name. dialog_title: Create new API token + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + one: "%{count} day (%{date})" + other: "%{count} days (%{date})" name_label: Token name failed_to_create_token: 'Failed to create access token: %{error}' failed_to_reset_token: 'Failed to reset access token: %{error}' @@ -4543,10 +4948,26 @@ uz: password_confirmation_dialog: confirmation_required: You need to enter your account password to confirm this change. title: Confirm your password to continue + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Access tokens description: Provider tokens are issued by OpenProject, allowing other applications to access it. Client tokens are issued by other applications, allowing OpenProject to access them. + expired_on: Expired on %{date} headers: action: Action expiration: Expires @@ -4748,7 +5169,6 @@ uz: notice_password_confirmation_failed: The entered password is not correct. notice_principals_found_multiple: "There are %{number} results found. \n Tab to focus the first result." notice_principals_found_single: "There is one result. \n Tab to focus it." - notice_project_cannot_update_custom_fields: 'You cannot update the project''s available custom fields. The project is invalid: %{errors}' notice_project_not_deleted: The project wasn't deleted. notice_project_not_found: Project not found. notice_requires_enterprise_token: Enterprise token missing or doesn't allow access to this page. @@ -4758,9 +5178,6 @@ uz: notice_successful_create: Successful creation. notice_successful_delete: Successful deletion. notice_successful_update: Successful update. - notice_successful_update_custom_fields_added_to_project: | - Successful update. The custom fields of the activated types are automatically activated - on the work package form. See more. notice_to_many_principals_to_display: |- There are too many results. Narrow down the search by typing in the name of the new member (or group). @@ -4862,7 +5279,7 @@ uz: ' confirm_revoke_my_application: - one: Do you really want to remove this application? This will revoke one token active for it. + one: Do you really want to remove this application? This will revoke %{count} token active for it. other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: No OAuth applications have been registered. flows: @@ -4953,8 +5370,6 @@ uz: not_found: not found. respond_to?: does not implement required method. rules: - copy_workflow_from: - workflow_missing: has no own workflow. custom_field: format_not_supported: format '%{field_format}' is unsupported. item: @@ -4974,7 +5389,6 @@ uz: or: or rules: blueprint: Pattern blueprint - copy_workflow_from: Type for workflow copy depth: Depth enabled: Enabled item: Item @@ -5046,8 +5460,8 @@ uz: label: Table of contents page_nr_footer: Page %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Attributes and description @@ -5072,7 +5486,7 @@ uz: permission_change_work_package_status_explanation: Allows changing status without Edit work packages permission permission_comment_news: Comment news permission_commit_access: Read/write access to repository (commit) - permission_copy_projects: Copy projects + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: In template projects, this permission has a secondary function, it allows the creation of new projects derived from the template. permission_copy_work_packages: Duplicate work packages permission_create_backup: Create backups @@ -5105,6 +5519,7 @@ uz: permission_export_projects: Export projects permission_export_work_packages: Export work packages permission_header_for_project_module_work_package_tracking: Work packages and Gantt charts + permission_import_work_packages: Import work packages permission_invite_members_by_email: Invite members by email permission_invite_members_by_email_explanation: 'Allows users to invite new members by email. Invited users will receive an email with a link to set their password and activate their account. Depends on the permission to manage members @@ -5115,6 +5530,9 @@ uz: permission_manage_dashboards: Manage dashboards permission_manage_forums: Manage forums permission_manage_members: Manage members + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Manage news permission_manage_own_reminders: Create own reminders permission_manage_own_working_times: Manage own working times @@ -5143,7 +5561,6 @@ uz: permission_save_bcf_queries: Save BCF queries permission_save_queries: Save views permission_search_project: Search project - permission_select_custom_fields: Select custom fields permission_select_project_custom_fields: Select project attributes permission_select_project_modules: Select project modules permission_select_project_phases: Select project phases @@ -5177,6 +5594,16 @@ uz: permission_work_package_assigned: Become assignee/responsible permission_work_package_assigned_explanation: Work packages can be assigned to users and groups in possession of this role in the respective project placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Delete placeholder user deletion_info: data_consequences: 'All occurrences of the placeholder user (e.g., as assignee, responsible or other user values) will be reassigned to an account called "Deleted user". As the data of every deleted account is reassigned to this account it will not be possible to distinguish the data the user created from the data of another deleted account. @@ -5198,7 +5625,7 @@ uz: name: OmniAuth SAML / Single-Sign On portfolio: count: - one: 1 portfolio + one: "%{count} portfolio" other: "%{count} portfolios" zero: 0 portfolios filters: @@ -5209,7 +5636,7 @@ uz: label: Portfolio name filter placeholder: Search portfolios sub_items_html: - one: "1 sub-item" + one: "%{count} sub-item" other: "%{count} sub-items" lists: active: Active portfolios @@ -5224,7 +5651,7 @@ uz: It can be used for highlighting work packages in the table. program: count: - one: 1 program + one: "%{count} program" other: "%{count} programs" zero: 0 programs filters: @@ -5236,7 +5663,7 @@ uz: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Archive project count: - one: 1 project + one: "%{count} project" other: "%{count} projects" zero: 0 projects destroy: @@ -5341,11 +5768,11 @@ uz: no_status_when_submitted: Failed to enable project initiation request because work package type %{type} requires at least one status associated with it. Please enable at least one status workflow for this work package type. no_work_package_type: Failed to enable project initiation request because it requires at least one active work package type and this project has none. Please add at least one work package type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Select which of the configured external file storages should be used. external_file_storage: External file storage - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Save as work package file attachment label_file_link_export: Upload file to external file storage and add file link to work package pdf_file_storage: PDF file storage @@ -5355,6 +5782,12 @@ uz: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: There are currently no custom fields available. forums: no_results_content_text: Create a new forum @@ -5451,14 +5884,14 @@ uz: new_heading: Fields that become available nothing_affected: No fields or statuses are affected. status_count: - one: 1 work package + one: "%{count} work package" other: "%{count} work packages" table_suffix: "(table)" value_count: - one: 1 work package has a value + one: "%{count} work package has a value" other: "%{count} work packages have a value" work_packages: - one: 1 work package will use the new configuration + one: "%{count} work package will use the new configuration" other: "%{count} work packages will use the new configuration" success: The project now uses %{type}. target_label: Variant @@ -5470,7 +5903,7 @@ uz: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Create a new version - no_results_title_text: There are currently no versions for the project. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Show work packages work_packages_graph: Work packages graph work_package_priorities: @@ -5478,15 +5911,27 @@ uz: status: button_edit: Edit status wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: This attribute has no help text defined. progress_label: "%{current} of %{total}" sections: Sections sidebar_content_title: Content - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Project initiation request + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Apply preconfigured filter configure_view: @@ -5515,7 +5960,7 @@ uz: action_title: React add_reaction: Add reaction and_others: - one: and 1 other + one: and %{count} other other: and %{count} others and_user: and %{user} react_with: React with %{reaction} @@ -5637,6 +6082,31 @@ uz: warnings: cannot_annotate: This file cannot be annotated. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + one: "(Project: %{projects})" + other: "(Projects: %{projects})" + entry_projects_truncated: + one: "(Projects: %{projects} and %{count} other)" + other: "(Projects: %{projects} and %{count} others)" + heading: + one: 'This role is still attributed to %{count} member:' + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + one: "%{count} project" + other: "%{count} projects" + summary_users: + one: "%{count} user" + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5648,6 +6118,15 @@ uz: permissions: section_check_all_label: Assign all %{module} permissions section_uncheck_all_label: Unassign all %{module} permissions + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + one: "%{count} permission" + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Permissions matrix for %{module} module matrix_check_all_label: Assign all %{module} permissions to all roles @@ -5752,7 +6231,7 @@ uz: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Max number of diff lines displayed setting_disable_password_login: Disable password authentication - setting_display_subprojects_work_packages: Display subprojects work packages on main projects by default + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Duration format setting_duration_format_days_and_hours: Days and hours setting_duration_format_hours_only: Hours only @@ -5867,6 +6346,7 @@ uz: setting_start_of_week: Week starts on setting_sys_api_description: The repository management web service provides integration and user authorization for accessing repositories. setting_sys_api_enabled: Enable repository management web service + setting_sys_api_key: API key setting_time_format: Time setting_total_percent_complete_mode: Calculation of % Complete hierarchy totals setting_total_percent_complete_mode_simple_average: Simple average @@ -5919,7 +6399,7 @@ uz: description_html: 'Select the mode in which the antivirus scanner integration should operate.
  • %{disabled_option}: Uploaded files are not scanned for viruses.
  • %{socket_option}: You have set up ClamAV on the same server as OpenProject and the scan daemon clamd is running in the background
  • %{host_option}: You are streaming files to an external virus scanning host.
' - remaining_quarantined_files_html: 'Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Virus scanning has been enabled successfully. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. @@ -5930,6 +6410,7 @@ uz: ' title: Virus scanning attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Deactivating this option will hide the attachments list on the work packages files tab for new projects. The files attached in the description of a work package will still be uploaded in the internal attachments storage. ' @@ -6021,12 +6502,12 @@ uz: confirmation_message: The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview. heading: Disable this project initiation request? title: Disable project initiation request - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Project creation wizard project_initiation_request: Project initiation request @@ -6046,8 +6527,8 @@ uz: You submitted a project initiation request for **%{project_name}**. It is now awaiting review. Click the link below to access the work package with your request. confirmation_email_text: Confirmation email text - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Send confirmation email to the user who submitted the project initiation request status_when_submitted: Status when submitted status_when_submitted_caption: The status the generated work package will transition to once the request is submitted. @@ -6055,7 +6536,7 @@ uz: work_package_comment_caption: The assignee selected above will automatically be @mentioned in the comment. work_package_comment_default: A project initiation request for **%{project_name}** was submitted and is awaiting review. work_package_type: Work package type - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Open project creation wizard project_initiation_request: Open project initiation request @@ -6075,6 +6556,7 @@ uz: heading: New phase no_gate: No gate non_defined: No phases are currently defined. + order_changed: Order successfully changed. phase_gates: Phase gates section_header: Phases start_gate: Start gate @@ -6131,7 +6613,7 @@ uz: section_work_week: Work week sharing: count: - one: 1 user + one: "%{count} user" other: "%{count} users" zero: 0 users denied: You don't have permissions to share %{entities}. @@ -6224,19 +6706,19 @@ uz:
Note: Inherited values (e.g., from children or relations) will still apply. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Excluded from totals is_closed: Closed - is_default: Default is_readonly: Read-only + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Add a new status no_results_title_text: There are currently no work package statuses. + status_actions: Status actions support: array: sentence_connector: and skip_last_comma: 'false' text_access_token_hint: Access tokens allow you to grant external applications access to resources in OpenProject. - text_accessibility_hint: The accessibility mode is designed for users who are blind, motorically handicaped or have a bad eyesight. For the latter focused elements are specially highlighted. Please notice, that the Backlogs module is not available in this mode. text_analyze: 'Further analyze: %{subject}' text_are_you_sure: Are you sure? text_are_you_sure_continue: Are you sure you want to continue? @@ -6279,12 +6761,6 @@ uz: ' text_custom_field_possible_values_info: One line for each value - text_custom_logo_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×47px image. You can add as much spacing inside that image as you like. - - ' - text_custom_logo_mobile_instructions: 'The logo automatically scales to fit the header. For best results, upload a white logo on a transparent 130×33px image. You can add as much spacing inside that image as you like. - - ' text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image''s background is not transparent otherwise it will look bad on iOS. ' @@ -6334,6 +6810,7 @@ uz: text_length_between: Length between %{min} and %{max} characters. text_line_separated: Multiple values allowed (one line for each value). text_load_default_configuration: Load the default configuration + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: There are no access tokens which can be configured. text_no_configuration_data: |- Roles, types, work package statuses and workflow have not been configured yet. @@ -6439,6 +6916,68 @@ uz: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + one: "%{names} and %{count} more" + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6448,14 +6987,40 @@ uz: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6464,8 +7029,10 @@ uz: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6494,21 +7061,21 @@ uz: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Select which templates from those that are available you would like to enable for this type. The template determines the design and attributes visible in the exported PDF of a work package using this type. The first template on the list is selected by default. pdf_export_templates: actions: label_disable_all: Disable all label_enable_all: Enable all label_toggle_template: Toggle %{template} label: PDF Export templates + order_changed: Order successfully changed. tab: Generate PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6525,6 +7092,8 @@ uz: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6546,6 +7115,14 @@ uz: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6555,12 +7132,14 @@ uz: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6574,12 +7153,12 @@ uz: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6592,10 +7171,12 @@ uz: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Enable for all projects select_projects: Select projects select_projects_description: Select the projects in which you would like to use this type. tab: Projects + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6610,43 +7191,17 @@ uz: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - one: The following configuration is inherited by 1 other type or variant. Any changes you make here will also affect the dependent. - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - one: 1 dependent type - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6654,6 +7209,9 @@ uz: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6662,13 +7220,14 @@ uz: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6682,12 +7241,16 @@ uz: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6696,33 +7259,74 @@ uz: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + one: 'The type will be removed from %{count} project:' + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Create a new type no_results_title_text: There are currently no types. project_variants_count: - one: 1 project-specific variant + one: "%{count} project-specific variant" other: "%{count} project-specific variants" remove_default: Do not activate in new projects remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + one: "%{type} without %{fields} and %{count} more field" + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Ignore this warning. message: You may run into errors and degraded experience on this page. @@ -6741,7 +7345,7 @@ uz: authorization_rejected: You are not allowed to sign in. blocked: locked temporarily blocked_num_failed_logins: - one: locked temporarily (one failed login attempt) + one: locked temporarily (%{count} failed login attempt) other: locked temporarily (%{count} failed login attempts) confirm_status_change: You are about to change the status of '%{name}'. Are you sure you want to continue? deleted: Deleted user @@ -6842,7 +7446,7 @@ uz: deletion_warning: Are you sure you want to revoke this session? You will be logged out on this device. device: Device / OS expires: Expires - instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognise or from devices you do not control. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Last connection may_not_delete_current: You cannot delete your current session. session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6902,13 +7506,19 @@ uz: start_date: Start date work_days: Work days work_days_count: - one: 1 working day + one: "%{count} working day" other: "%{count} working days" work_hours: Work hours version_status_closed: closed version_status_locked: locked version_status_open: open versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: There are currently no work packages assigned to this version. work_packages_in_archived_projects: The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views. @@ -7078,12 +7688,14 @@ uz: required_description: Marks this work package as being a requirement to the related one requires_description: Marks the related work package as a requirement to this one work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: The work packages could not be copied. could_not_be_deleted: 'The following work packages could not be deleted:' could_not_be_saved: 'The following work packages could not be saved:' deletion_successful: - one: Successfully deleted 1 work package. + one: Successfully deleted %{count} work package. other: Successfully deleted %{count} work packages. descendant: descendant of selected move_failed: The work packages could not be moved. @@ -7108,17 +7720,17 @@ uz: description_with_visible_descendants: Are you sure you want to delete the selected work packages and all visible descendants? heading: Permanently delete these %{count} work packages? hidden_descendants_only_warning: - one: There is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: There is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - one: All visible descendants will be removed. However, there is one descendant that you cannot see. It will not be deleted but the relation will be removed. + one: All visible descendants will be removed. However, there is %{count} descendant that you cannot see. It will not be deleted but the relation will be removed. other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: Delete %{count} work packages undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: @@ -7176,18 +7788,154 @@ uz: description: Are you sure you want to delete "%{name}"? heading: Permanently delete this work package? hidden_descendants_only_warning: - one: This work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: This work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - one: All visible descendants will be deleted. However, this work package has one descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. + one: All visible descendants will be deleted. However, this work package has %{count} descendant that you cannot see. It will not be deleted but the hierarchical relation will be removed. other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: Delete work package undeletable_descendants_warning: - one: You are not able to delete one descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - one: You are not able to delete one descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. + one: You are not able to delete %{count} descendant because you lack the necessary permissions in %{projects}. It will be preserved but the hierarchical relation will be removed. other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + one: "%{count} line checked, no problems found" + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + one: View the imported work package + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + one: "%{count} problem." + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + one: "%{count} line" + other: "%{count} lines" + x_problems: + one: "%{count} problem" + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7219,37 +7967,53 @@ uz: version: no_results_title_text: There are currently no versions available. x_descendants: - one: One descendant work package + one: "%{count} descendant work package" other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: one: Successfully copied workflow to '%{role_name}' role. other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - one: Successfully copied workflow to '%{type_name}'. - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + one: This workflow is currently used by %{count} type or variant. Please select a new workflow to replace it with. + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Workflow matrix matrix_caption_assignee: Workflow matrix for assignee matrix_caption_author: Workflow matrix for author @@ -7258,12 +8022,88 @@ uz: matrix_check_uncheck_all_in_row_label_html: Toggle transitions from %{old_status} to all new statuses matrix_checkbox_label: Allow transition from %{old_status} to %{new_status} matrix_uncheck_all_label: Disallow all transitions + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + one: "%{count} project" + other: "%{count} projects" + roles_count: + one: "%{count} role" + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + one: "%{count} type" + other: "%{count} types" + variants_count: + one: "%{count} variant" + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + one: This workflow is used by %{count} type. Changes apply to it. + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + one: This workflow is used by %{count} type or variant. Changes apply to it. + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Change working days dialog: diff --git a/config/locales/crowdin/vi.seeders.yml b/config/locales/crowdin/vi.seeders.yml index 0194e39bcbba..d24de01cdaa9 100644 --- a/config/locales/crowdin/vi.seeders.yml +++ b/config/locales/crowdin/vi.seeders.yml @@ -250,70 +250,26 @@ vi: Trong mô-đun này, bạn có thể truyền đạt tin tức dự án cho các thành viên trong nhóm của mình. versions: item_0: - name: Backlog lỗi - item_1: - name: Backlog sản phẩm - item_2: - name: Chạy nước rút 1 wiki: - title: Chạy nước rút 1 + title: Release 1.0 content: | - ### Họp lập kế hoạch Sprint - - _Vui lòng ghi lại các chủ đề ở đây cho cuộc họp lập kế hoạch Sprint_ - - * Thời gian đóng hộp (8 h) - * Đầu vào: Product Backlog - * Đầu ra: Sprint Backlog - - * Chia làm 2 ô thời gian bổ sung 4h: - - * Chủ sản phẩm trình bày [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) và các ưu tiên cho nhóm, đồng thời giải thích Mục tiêu Sprint mà nhóm phải đồng ý. Họ cùng nhau ưu tiên các chủ đề trong Product Backlog mà nhóm sẽ xử lý trong lần Sprint tiếp theo. Nhóm cam kết thực hiện việc giao hàng đã thảo luận. - * Nhóm lập kế hoạch một cách tự động (không có Chủ sở hữu sản phẩm) một cách chi tiết và chia nhỏ các nhiệm vụ từ các yêu cầu đã thảo luận để hợp nhất [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - ### Cuộc họp Scrum hàng ngày - - _Vui lòng ghi lại các chủ đề ở đây cho cuộc họp Scrum hàng ngày_ - - * Cuộc họp ngắn, hàng ngày về tình trạng của nhóm. - * Thời gian được đóng khung (tối đa 15 phút). - * Cuộc họp độc lập để thảo luận về các chủ đề sau từ [Task board](##sprint:scrum_project__version__sprint_1). - * Tôi dự định làm gì cho đến buổi Daily Scrum tiếp theo? - * Điều gì đã cản trở công việc của tôi (Trở ngại)? - * Scrum Master kiểm duyệt và ghi chú [Sprint Impediments](##sprint:scrum_project__version__sprint_1). - * Chủ sở hữu sản phẩm có thể tham gia có thể tham gia để được thông tin. - - ### Họp sơ kết Sprint + ### Release 1.0 - _Vui lòng ghi lại các chủ đề ở đây cho cuộc họp Sprint Review_ + _Please document here what this release contains._ - * Thời gian đóng hộp (4 h). - * Thời gian chuẩn bị tối đa một giờ cho mỗi người. - * Nhóm cho chủ sở hữu sản phẩm và những người quan tâm khác thấy những gì đã đạt được trong lần Sprint này. - * Quan trọng: không có hình nộm và không có PowerPoint! Chức năng của sản phẩm vừa hoàn thiện (Tăng dần) phải được thể hiện. - * Phản hồi từ Chủ sở hữu sản phẩm, các bên liên quan và những người khác là mong muốn và sẽ được đưa vào công việc tiếp theo. - * Dựa trên các chức năng đã được chứng minh, Chủ sở hữu sản phẩm quyết định đưa phần tăng trưởng này vào hoạt động hoặc phát triển thêm. Khả năng này cho phép ROI sớm. - - - ### Hồi tưởng nước rút - - _Vui lòng ghi lại các chủ đề ở đây cho cuộc họp Cải tiến Sprint_ - - * Thời gian đóng khung (3 h). - * Sau Sprint Review, sẽ được Scrum Master kiểm duyệt. - * Nhóm thảo luận về lần Sprint: điều gì đã diễn ra tốt đẹp, điều gì cần được cải thiện để đạt năng suất cao hơn cho lần Sprint tiếp theo hoặc thậm chí có nhiều niềm vui hơn. - item_3: - name: Chạy nước rút 2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: Loại 1 (sẽ được thay đổi trong cài đặt Dự án) queries: item_0: name: kế hoạch dự án item_1: - name: Sản phẩm Backlog + name: Version 1.1 item_2: - name: Chạy nước rút 1 + name: Version 1.0 item_3: name: Nhiệm vụ boards: @@ -339,20 +295,21 @@ vi: options: name: Bắt đầu text: | - Chúng tôi rất vui vì bạn đã tham gia! Chúng tôi khuyên bạn nên thử một số thứ để bắt đầu trong OpenProject. + We are glad you joined! We suggest to try a few things to get started in OpenProject. - _Hãy thử các bước sau:_ + _Try the following steps:_ - 1. *Mời thành viên mới tham gia dự án của bạn*: → Đi tới [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) trong điều hướng dự án. - 2. *Xem Product backlog và Sprint backlog của bạn*: → Đi đến [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) trong phần điều hướng dự án. - 3. *Xem bảng Nhiệm vụ của bạn*: → Đi tới [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Nhấp vào mũi tên phải trên Sprint → Chọn [Task Board](##sprint:scrum_project__version__sprint_1). - 4. *Tạo gói công việc mới*: → Đi tới [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Tạo và cập nhật kế hoạch dự án*: → Đi tới [Project plan](##query:scrum_project__query__project_plan) trong điều hướng dự án. - 6. *Tạo một wiki Sprint*: → Đi tới [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) và mở wiki Sprint từ menu thả xuống bên phải trong một lần Sprint. Bạn có thể chỉnh sửa [wiki template]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) tùy theo nhu cầu của mình. - 7. *Kích hoạt thêm các mô-đun*: → Đi tới [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - Tại đây bạn sẽ tìm thấy [User Guides](https://www.openproject.org/docs/user-guide/) của chúng tôi. - Vui lòng cho chúng tôi biết nếu bạn có bất kỳ câu hỏi nào hoặc cần hỗ trợ. Liên hệ với chúng tôi: [support[at]openproject.com](mailto:support@openproject.com). + + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Gói công việc diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml index f70c157bc56d..80a7fb1c93c8 100644 --- a/config/locales/crowdin/vi.yml +++ b/config/locales/crowdin/vi.yml @@ -40,7 +40,9 @@ vi: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: Xoá tài khoản delete_confirmation: Bạn có chắc chắn muốn xoá tài khoản chứ? deletion_info: @@ -65,7 +67,9 @@ vi: error_self_registration_limited_provider: 'Đăng ký người dùng bị giới hạn đối với nhà cung cấp dịch vụ đăng nhập một lần ''%{name}''. Vui lòng yêu cầu quản trị viên kích hoạt tài khoản cho bạn hoặc thay đổi giới hạn tự đăng ký cho nhà cung cấp này. ' - login_with_auth_provider: hoặc đăng nhập bằng tài khoản hiện tại + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: Vui lòng đăng nhập để kích hoạt tài khoản của bạn. @@ -118,6 +122,8 @@ vi: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: khách hàng SCIM + automation: + actions: Actions calculated_value_error: customized_id: ID tùy chỉnh customized_type: Loại tùy chỉnh @@ -128,8 +134,6 @@ vi: repository: Kho lưu trữ comment: commented: Nhận xét - custom_action: - actions: hành động custom_field: admin_only: Chỉ dành cho quản trị viên allow_non_open_versions: Cho phép các phiên bản không mở @@ -168,6 +172,7 @@ vi: uid: ID Khách hàng emoji_reaction: reactable: Đã phản hồi trên + reaction: Reaction enterprise_token: active_user_count_restriction: Người dùng đang hoạt động encoded_token: Mã thông báo hỗ trợ doanh nghiệp @@ -179,20 +184,44 @@ vi: company: công ty favorite: favorited: mục + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: Số cột page: Trang row_count: Số dòng widgets: Tiện ích group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: URL nhận dạng organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira instance name personal_access_token: Personal access token url: Jira instance URL @@ -223,6 +252,7 @@ vi: title: Tiêu đề member: blocked: Blocked + principal_type: Member type roles: Vai trò notification: read_ian: Đọc trong ứng dụng @@ -235,6 +265,7 @@ vi: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ vi: ongoing: đang diễn ra spent_on: Ngày type: Kiểu + token/base: + expires_on: Expiration date token/ical: calendar: lịch ical_token_query_assignment: Phân công truy vấn @@ -384,19 +417,17 @@ vi: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: Defaults source enabled_in_new_projects: Active in new projects - form_configuration_source: Form source + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF export source - project_attributes_source: Project attributes source project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: Workflows source + workflow: Workflow user: admin: Người Quản lý auth_source: Nguồn xác thực + avatar_type: Avatar type consented_at: Đồng ý tại current_password: Mật khẩu hiện tại department: Department @@ -410,7 +441,7 @@ vi: last_name: Họ ldap_auth_source: Kết nối LDAP new_password: Mật khẩu mới - password_confirmation: Xác nhận lại mật khẩu + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ vi: user_preference: auto_hide_popups: Tự động ẩn biểu ngữ thành công auto_hide_popups_caption: Khi được bật, biểu ngữ thành công màu xanh sẽ tự động biến mất sau 5 giây. + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: Cập nhật cảnh báo button_update_look_and_feel: Cập nhật giao diện button_update_user_information: Cập nhật hồ sơ comments_sorting: Hiển thị hoạt động gói công việc được sắp xếp theo daily_reminders: Lời nhắc hàng ngày + date_format: Date format disable_keyboard_shortcuts: Tắt phím tắt dismissed_enterprise_banners: Biểu ngữ doanh nghiệp ẩn force_dark_theme_contrast: Buộc độ tương phản cao khi ở chế độ Tối @@ -434,13 +469,23 @@ vi: header_look_and_feel: Nhìn và cảm nhận impaired: Viet nam increase_contrast: Tăng độ tương phản - increase_contrast_caption: Bật chế độ tương phản cao cho chế độ màu đã chọn. + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: Tăng độ tương phản chủ đề mode_guideline: Một số chế độ sẽ ghi đè màu chủ đề tùy chỉnh để đảm bảo khả năng truy cập và mức độ dễ đọc. Vui lòng chọn Chế độ ánh sáng để được hỗ trợ chủ đề tùy chỉnh đầy đủ. + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: Chế độ màu + time_format: Time format time_zone: Múi giờ warn_on_leaving_unsaved: Cảnh báo tôi khi rời khỏi gói công việc có những thay đổi chưa được lưu workdays: Ngày làm việc + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ vi: title: Ngày làm việc true: bao gồm những ngày không làm việc journal_internal: Tạp chí nội bộ + labels: Labels notify: thông báo observed_in_versions: Observed in versions parent: Cha @@ -519,6 +565,10 @@ vi: work_package: Gói công việc (Work Package) work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: phải được đồng ý @@ -590,6 +640,8 @@ vi: regex_invalid: có thể không được xác nhận với các biểu hiện thường xuyên liên kết. regex_list_invalid: Không thể phân tích cú pháp các dòng %{invalid_lines} dưới dạng biểu thức chính quy. regex_match_failed: không khớp với biểu thức chính quy %{expression}. + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: phải nhỏ hơn hoặc bằng với chiều dài tối đa smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ vi: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: độ dài không đúng (phải là %{count} ký tự). models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ vi: general_consent: Vui lòng chấp nhận các điều khoản và điều kiện. favorite: already_favorited: đã được yêu thích rồi. + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: giá trị kết thúc cần lớn hơn giá trị bắt đầu. outside: nằm ngoài bảng dữ liệu. @@ -688,6 +754,13 @@ vi: not_unique: đã được sử dụng. Vui lòng chọn tên khác. jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ vi: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: Variants cannot be enabled on a project yet. Enable the feature flag to try out variants in_use_by_work_packages: 'gói công việc vẫn được sử dụng: %{types}' switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -856,42 +928,26 @@ vi: blank: Vui lòng cung cấp tên mã thông báo format: "%{message}" in_use: Tên mã thông báo này đã được sử dụng, vui lòng chọn tên khác + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: Invalid work package attribute used. - attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' - duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. - group_without_name: Group name can't be blank. - query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' base: - borrowed_by_variants: Cannot be deleted while its configuration is reused by %{names}. is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -905,7 +961,7 @@ vi: numeric: số (ví dụ như ' 1') requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - other: đã được sử dụng trước đây. Vui lòng chọn một cái khác với %{count} cuối cùng của bạn. + other: has been used before. Please choose one that is different from your last %{count}. special: đặc biệt (ví dụ như ' %') uppercase: chữ hoa (ví dụ như ' A') password_confirmation: @@ -974,6 +1030,8 @@ vi: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: không thể có trong một dự án khác. cannot_be_milestone: không thể là một cột mốc. @@ -1001,6 +1059,8 @@ vi: status_id: status_invalid_in_type: không hợp lệ vì tình trạng hiện tại không tồn tại loại này. status_transition_invalid: không hợp lệ vì không tồn tại chuyển đổi hợp lệ từ trạng thái cũ sang trạng thái mới cho vai trò của người dùng hiện tại. + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: không thể là một mốc quan trọng vì work package này có trẻ em. is_not_a_valid_target_for_time_entries: 'Work package #%{id} không phải là một mục tiêu hợp lệ để gán lại các mục thời gian.' @@ -1009,7 +1069,7 @@ vi: template: body: 'Vui lòng kiểm tra các mục sau đây:' header: - other: "%{count} lỗi đã cấm lưu %{model} này" + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1035,6 +1095,8 @@ vi: other: Work package attribute help texts auth_provider: other: Nhà cung cấp xác thực + automation: + other: Automations backup: other: Backups capability: @@ -1049,8 +1111,6 @@ vi: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ vi: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1093,6 +1155,8 @@ vi: other: Health reports issue_priority: other: ưu tiên + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1293,7 +1357,28 @@ vi: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1326,7 +1411,11 @@ vi: tab_interface: Giao diện tab_pdf_export_font: Phông chữ xuất PDF tab_pdf_export_styles: Kiểu xuất PDF - theme_warning: Thay đổi chủ đề sẽ ghi đè phong cách tùy chỉnh của bạn. Thiết kế sau đó sẽ bị mất. Bạn có chắc chắn muốn tiếp tục không? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: Tải lên mã thông báo hỗ trợ phiên bản Enterprise book_now: Đặt chỗ ngay @@ -1359,7 +1448,7 @@ vi: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Bộ cấp phát bộ nhớ Jemalloc @@ -1367,12 +1456,15 @@ vi: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1405,16 +1497,30 @@ vi: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add cấu hình - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save cấu hình - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing cấu hình... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1530,7 +1636,7 @@ vi: users: other: "%{count} users" work_packages: - other: "%{count} gói công việc (work package)s" + other: "%{count} work packages" revert_dialog: confirm: I understand that this reversion will delete data permanently description: This will delete all imported objects (including whole projects). @@ -1659,23 +1765,52 @@ vi: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the cấu hình. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1706,6 +1841,18 @@ vi: update: failure: Không thể cập nhật cấu hình MCP. success: Cấu hình MCP đã được cập nhật thành công. + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: Xem trang tích hợp và plugin của chúng tôi để biết thêm thông tin. no_results_title_text: Hiện tại không có plugin nào được cài đặt. @@ -1887,7 +2034,7 @@ vi: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1919,12 +2066,19 @@ vi: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1946,7 +2100,31 @@ vi: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: Đang hiển thị is_inactive: hiện tại không hiển thị show_until: Xem đến khi @@ -1954,7 +2132,7 @@ vi: deleted_by_admin: Tệp bị cách ly '%{filename}' đã bị quản trị viên xóa. deleted_message: Đã phát hiện thấy vi-rút trong tệp '%{filename}'. Tập tin đã bị xóa. not_processed_yet_message: Quá trình tải xuống bị chặn do tệp chưa được quét vi-rút. Vui lòng thử lại sau. - overridden_by_admin: Việc cách ly tệp '%{filename}' đã bị %{user} xóa. Bây giờ tập tin có thể được truy cập. + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: container delete: Xóa tập tin bị cách ly @@ -2008,10 +2186,6 @@ vi: not_found: reminder: Lời nhắc bạn đang tìm kiếm không thể tìm thấy hoặc đã bị xóa. work_package: Không thể tìm thấy gói công việc bạn đang tìm kiếm hoặc đã bị xóa. - render: - context_not_parsable: Bối cảnh được cung cấp không phải là một liên kết đến một tài nguyên. - context_object_not_found: Không thể tìm thấy tài nguyên được cung cấp làm bối cảnh. - unsupported_context: Tài nguyên đã cho không được hỗ trợ dưới dạng ngữ cảnh. unable_to_create_attachment: Không thể tạo tệp đính kèm unable_to_create_attachment_permissions: Không thể lưu tệp đính kèm do thiếu quyền hệ thống tệp user: @@ -2050,7 +2224,7 @@ vi: body: cơ thể category: thể loại color: màu sắc - comment: bình luận + comment: Nhận xét comments: bình luận content: Nội dung created_at: Tạo ngày @@ -2082,6 +2256,7 @@ vi: groups: nhóm hexcode: Mã hex id: ID + inexistent: Inexistent is_default: Giá trị mặc định is_for_all: Cho tất cả các dự án issue: Work Package @@ -2132,6 +2307,7 @@ vi: updated_at: Được cập nhật vào lúc updated_on: Đã cập nhật vào uploader: Tải lên + url: URL user: người dùng username: tên người dùng value: giá trị @@ -2146,6 +2322,29 @@ vi: ' login_and_registration: Đăng nhập và đăng ký + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 'Công việc bị hủy do lỗi: %{message}' @@ -2274,6 +2473,7 @@ vi: button_set_reminder: Đặt lời nhắc button_show: Hiện button_sort: Sắp xếp + button_stop_timer: Dừng hẹn giờ button_submit: Gửi button_test: Kiểm tra button_unarchive: Ngừng lưu trữ @@ -2340,9 +2540,9 @@ vi: text: failed: Không thể chép dự án "%{source_project_name}" sang dự án "%{target_project_name}". succeeded: Đã sao chép dự án "%{source_project_name}" sang "%{target_project_name}". - title: Sao chép dự án "%{source_project_name}" + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: Một đối tượng của loại này + one: "%{count} object of this type" other: "%{count} đối tượng của loại này" zero: Không có đối tượng thuộc loại này create_portfolio: @@ -2380,13 +2580,9 @@ vi: plural: Tác vụ tùy chỉnh custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: Trường tùy chỉnh này được bật trong tất cả các dự án vì tùy chọn "Dành cho tất cả dự án" được chọn. Nó không thể bị vô hiệu hóa đối với các dự án riêng lẻ. - heading: Đối với tất cả các dự án hierarchy: subitems: - one: 1 mục phụ + one: "%{count} sub-item" other: "%{count} mục phụ" zero: không có mục phụ items: @@ -2407,7 +2603,7 @@ vi: short: Tên viết tắt weight: cân nặng notice: - remember_items_and_projects: Hãy nhớ đặt các mục và dự án trong các tab tương ứng cho trường tùy chỉnh này. + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: Bạn có thể tự động cấp một vai trò dự án nhất định cho bất kỳ người dùng nào được gán cho thuộc tính dự án này, bất kể vai trò ban đầu của người dùng đó trong dự án đó là gì. dialog: @@ -2472,16 +2668,17 @@ vi: is_enabled_globally: Được kích hoạt trên toàn cầu multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: Không phân công vai trò + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: Lựa chọn gói công việc hoặc dự án là bắt buộc trước tiên reorder_alphabetical: Sắp xếp lại các giá trị theo thứ tự bảng chữ cái reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: Tạo trường tùy chỉnh mới - no_results_title_text: Không có hiện tại không có trường tùy chỉnh. text_add_new_custom_field: 'Để thêm các trường tùy chỉnh mới vào một dự án, trước tiên bạn cần tạo chúng trước khi có thể thêm vào dự án này. ' @@ -2545,40 +2742,40 @@ vi: datetime: distance_in_words: about_x_hours: - other: khoảng %{count} giờ + other: about %{count} hours about_x_months: - other: khoảng %{count} tháng + other: about %{count} months about_x_years: - other: khoảng %{count} năm + other: about %{count} years almost_x_years: - other: gần %{count} năm + other: almost %{count} years half_a_minute: nửa phút less_than_x_minutes: other: ít hơn %{count} phút less_than_x_seconds: - other: ít hơn %{count} giây + other: less than %{count} seconds over_x_years: - other: trên %{count} năm + other: over %{count} years x_days: - other: "%{count} ngày" + other: "%{count} days" x_hours: - other: "%{count} giờ" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count} giờ" + other: "%{count} hrs" x_minutes: - other: "%{count} phút" + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count} phút" + other: "%{count} mins" x_months: - other: "%{count} tháng" + other: "%{count} months" x_seconds: - other: "%{count} giây" + other: "%{count} seconds" x_seconds_abbreviated: - other: "%{count} giây" + other: "%{count} s" x_weeks: - other: "%{count} tuần" + other: "%{count} weeks" x_years: - other: "%{count} năm" + other: "%{count} years" units: day: other: ngày @@ -2725,7 +2922,7 @@ vi: teaser: description_html: You have access to all %{trial_plan} features. title: - other: "%{count} ngày còn lại của %{trial_plan} mã thông báo dùng thử" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: 'Mã thông báo doanh nghiệp dùng thử của bạn đã được truy xuất. Vui lòng kiểm tra email của bạn để biết mã thông báo được đính kèm. Vui lòng liên hệ với nhóm hỗ trợ của chúng tôi nếu bạn cần một cái mới. @@ -3062,9 +3259,142 @@ vi: selected: đã chọn include_sub_items: Bao gồm các mục phụ no_results_text: Không có kết quả + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: Hiện tại không có bài viết cho diễn đàn. + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3089,6 +3419,8 @@ vi: groups: edit: synchronized_groups: Nhóm được đồng bộ hóa + form: + group_attributes: Group attributes index: description: Bằng cách nhóm người dùng lại với nhau, bạn có thể thêm họ làm thành viên cho cùng một dự án hoặc chỉ định các vai trò chung giống nhau cho họ. memberships: @@ -3114,6 +3446,10 @@ vi: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3125,7 +3461,7 @@ vi: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3134,7 +3470,7 @@ vi: warning: Warning help_texts: views: - favoured: Đánh dấu chế độ xem này là yêu thích và thêm vào thanh bên chế độ xem đã lưu ở bên trái. + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} luôn gắn liền với một dự án. Ở đây bạn chỉ có thể chọn các dự án có mô-đun %{plural} đang hoạt động. Sau khi tạo %{singular} bạn có thể thêm các gói công việc từ các dự án khác vào đó.\n" public: Xuất bản chế độ xem này, cho phép người dùng khác truy cập vào chế độ xem của bạn. Người dùng có quyền 'Quản lý chế độ xem công khai' có thể sửa đổi hoặc xóa truy vấn công khai. Điều này không ảnh hưởng đến khả năng hiển thị của kết quả gói công việc trong chế độ xem đó và tùy thuộc vào quyền của họ, người dùng có thể thấy các kết quả khác nhau. homescreen: @@ -3159,6 +3495,31 @@ vi: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: Đọc về các tính năng mới và cập nhật sản phẩm. learn_about: Tìm hiểu thêm về tất cả các tính năng mới @@ -3195,8 +3556,10 @@ vi: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3246,6 +3609,7 @@ vi: budget_deleted: Budget has been deleted dates_changed: Ngày đã thay đổi default_attribute_written: Thuộc tính chỉ đọc được viết + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3398,10 +3762,10 @@ vi: label_copy_target: Mục tiêu label_copy_workflow_from: Sao chép quy trình từ label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: Xây dựng cốt lõi label_core_version: Phiên bản lõi label_created_by: Được tạo bởi %{user} + label_criteria: Criteria label_current_status: Tình trạng hiện tại label_current_version: Phiên bản hiện tại label_custom_comment: "%{name} comment" @@ -3425,8 +3789,6 @@ vi: label_custom_field_default_type: Kiểu rỗng label_custom_field_new: Thêm mục tùy biến label_custom_field_plural: Trường tùy chỉnh - label_custom_logo: Máy tính để bàn logo tùy chỉnh - label_custom_logo_mobile: Logo tùy chỉnh di động label_custom_pdf_export_settings: Cài đặt xuất PDF tùy chỉnh label_custom_style: Thiết kế label_custom_style_description: Chọn cách OpenProject hiển thị với bạn bằng các chủ đề, chọn màu mặc định để sử dụng trong ứng dụng và cách xuất sẽ trông như thế nào. @@ -3435,11 +3797,12 @@ vi: label_database_version: Phiên bản PostgreSQL label_date: ngày label_date_and_time: Ngày và giờ - label_date_format: Định dạng ngày + label_date_and_time_formats: Date and time formats label_date_from: Từ label_date_from_to: Từ %{start} tới %{end} label_date_to: Đến label_dates: ngày tháng + label_day: ngày label_day_plural: ngày label_default: Mặc định label_defaults: mặc định @@ -3450,6 +3813,7 @@ vi: label_deleted_custom_field: "(đã xóa các mục tùy chỉnh)" label_deleted_custom_item: "(mục đã bị xóa)" label_deleted_custom_option: "(tùy chọn đã xóa)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3520,6 +3884,7 @@ vi: label_float: Số thực label_folder: Thư mục label_follows: theo dõi + label_form_configuration_plural: Forms label_formula: Công thức label_forum_new: Diễn đàn mới label_forum_plural: diễn đàn @@ -3538,6 +3903,7 @@ vi: label_go_forward: Mở menu phụ %{module} label_greater_or_equal: ">=" label_group: nhóm + label_group_attributes_plural: Group attributes label_group_by: Nhóm theo label_group_named: Nhóm %{name} label_group_new: Nhóm mới @@ -3589,8 +3955,8 @@ vi: label_journal_diff: So sánh mô tả label_jump_to_a_project: Chuyển đến một dự án... label_keyword_plural: Từ khóa + label_label_plural: Labels label_language: ngôn ngữ - label_language_based: Dựa trên ngôn ngữ của người dùng label_languages: ngôn ngữ label_last_activity: Hoạt động cuối cùng label_last_change_on: Thay đổi cuối trên @@ -3612,6 +3978,7 @@ vi: label_list: danh sách label_loading: Đang tải... label_locale: Ngôn ngữ và khu vực + label_locale_based: Use default for user locale label_lock_user: Khóa người dùng label_locked: bị khóa label_logged_as: Đăng nhập như @@ -3623,6 +3990,7 @@ vi: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: Kho lưu trữ %{vendor} được quản lý label_mapping_for: 'Ánh xạ cho: %{attribute}' + label_markdown_version: Markdown version label_max_size: Kích thước tối đa label_me: tôi label_member_all_admin: "(Tất cả các vai trò do tư cách quản trị viên)" @@ -3641,7 +4009,6 @@ vi: label_menu_item_name: Tên món trong thực đơn label_message: tin nhắn label_message_last: Tin nhắn cuối cùng - label_message_new: Tin nhắn mới label_message_plural: Tin nhắn label_message_posted: Đã thêm tin nhắn label_minute_plural: phút @@ -3653,6 +4020,7 @@ vi: label_module_plural: Các Mô-Đun label_modules: mô-đun label_modules_and_plugins: Mô-đun và Plugin + label_month: tháng label_months_from: tháng từ label_more: Xem thêm label_more_information: Thêm thông tin @@ -3666,6 +4034,7 @@ vi: label_my_avatar: Hình đại diện của tôi label_my_queries: Các truy vấn tùy biến của tôi label_my_security: Security + label_my_time: My time label_name: tên label_never: không bao giờ label_new: Mới @@ -3680,7 +4049,10 @@ vi: label_news_singular: Tin tức label_news_view_all: Xem tất cả tin label_next: Tiếp + label_next_day: Ngày hôm sau + label_next_month: Tháng tiếp theo label_next_week: Tuần tới + label_next_workweek: Tuần làm việc tiếp theo label_next_year: Next year label_no_change_option: "(không đổi)" label_no_data: Không có dữ liệu để hiển thị @@ -3688,6 +4060,7 @@ vi: label_no_parent_group: "(No parent group)" label_no_parent_page: Không có trang quan hệ label_no_start_date: không có ngày bắt đầu + label_no_time: Không theo dõi thời gian label_nobody: không ai label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3754,7 +4127,10 @@ vi: label_preview: Xem trước label_preview_not_available: Xem trước không có sẵn label_previous: Trước đó + label_previous_day: Ngày hôm trước + label_previous_month: Tháng trước label_previous_week: Tuần trước + label_previous_workweek: Tuần làm việc trước đó label_previous_year: Previous year label_principal_invite_via_email: hoặc mời người dùng mới qua email label_principal_search: Thêm người dùng hoặc nhóm hiện có @@ -3873,6 +4249,7 @@ vi: label_sort_lowest: Chuyển đến dưới cùng label_sorted_by: sắp xếp theo %{value} label_spent_time: dành thời gian + label_stack: Stack label_start_to_end: bắt đầu đến kết thúc label_start_to_start: bắt đầu đến bắt đầu label_starts_with: starts with @@ -3892,6 +4269,7 @@ vi: label_subtask_plural: Tác vụ con label_summary: Tóm tắt label_system: Hệ thống + label_system_or_language_default: Use system or language based default label_system_settings: Cài đặt hệ thống label_system_storage: Thông tin lưu trữ label_table_of_contents: Mục lục @@ -3906,6 +4284,7 @@ vi: label_time: thời gian label_time_entry_activity_plural: Hoạt động dành thời gian label_time_entry_plural: dành thời gian + label_timer_since: Bắt đầu lúc %{time} label_title: tiêu đề label_today: hôm nay label_today_as_date: Chọn hôm nay làm ngày. @@ -3941,7 +4320,9 @@ vi: label_user_search: Tìm kiếm người dùng label_user_settings: Cài đặt người dùng label_users_settings: Cài đặt người dùng + label_value: Value label_value_x: 'Giá trị: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: Chỉnh sửa phiên bản label_version_new: Phiên bản mới label_version_plural: phiên bản @@ -3954,6 +4335,7 @@ vi: label_videos: Các đoạn phim label_view_all_revisions: Xem tất cả các phiên bản label_view_diff: Xem sự khác biệt + label_view_mode_switcher: Thay đổi chế độ xem label_view_revisions: Xem các bản điều chỉnh label_view_x: 'View: %{x}' label_watched_work_packages: Các công việc đã xem @@ -3977,6 +4359,8 @@ vi: label_wiki_start: Trang bắt đầu label_wiki_toc: Bảng mục lục label_wiki_toc_empty: Mục lục trống vì không có tiêu đề nào. + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: làm việc label_work_package: Work Package label_work_package_attachments: Phần đính kèm công việc @@ -3999,36 +4383,37 @@ vi: label_working_days: Working days label_working_days_and_hours: Ngày và giờ làm việc label_working_hours: Work schedule + label_workweek: tuần làm việc label_x_closed_work_packages_abbr: - one: 1 đóng + one: "%{count} closed" other: "%{count} đóng" zero: 0 đóng label_x_comments: - one: 1 bình luận + one: "%{count} comment" other: "%{count} bình luận" zero: Không có bình luận label_x_days: other: "%{count} days" label_x_files: - one: 1 tập tin + one: "%{count} file" other: "%{count} tệp" zero: không có tập tin label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 mở + one: "%{count} open" other: "%{count} mở" zero: 0 mở label_x_projects: - one: một dự án + one: "%{count} project" other: "%{count} dự án" zero: Không có dự án label_x_work_packages: - one: 1 gói công việc + one: "%{count} work package" other: "%{count} gói công việc" zero: Không có gói công việc label_x_working_days: @@ -4090,7 +4475,7 @@ vi: start_tls: BẮT ĐẦU start_tls_description: Gửi lệnh STARTTLS sau khi kết nối với cổng LDAP tiêu chuẩn. Được khuyến nghị cho các kết nối được mã hóa. tls_options: - tls_certificate_description: Nếu chứng chỉ máy chủ LDAP không có trong các nguồn tin cậy của hệ thống này, bạn có thể thêm chứng chỉ đó theo cách thủ công tại đây. Nhập chuỗi chứng chỉ PEM X509. + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: Xác minh chứng chỉ SSL verify_peer_description_html: 'Cho phép xác minh SSL nghiêm ngặt của chuỗi chứng chỉ tin cậy.
Cảnh báo: Việc bỏ chọn tùy chọn này sẽ tắt xác minh SSL của chứng chỉ máy chủ LDAP. Điều này làm lộ mối liên hệ của bạn với các cuộc tấn công của Man in the Middle. @@ -4147,6 +4532,8 @@ vi: you_have: bạn có logo_alt_text: biểu tượng mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: Đến trung tâm thông báo @@ -4203,7 +4590,7 @@ vi: mentioned: Bạn đã được đề cập trong một nhận xét mentioned_by: "%{user} đã đề cập đến bạn trong nhận xét" more_to_see: - other: Có thêm %{count} gói công việc có thông báo. + other: There are %{count} more work packages with notifications. open_in_browser: Mở trong trình duyệt reason: assigned: được giao @@ -4383,6 +4770,12 @@ vi: create_button: Tạo dialog_body: Mã thông báo này sẽ cho phép các ứng dụng của bên thứ ba giao tiếp với phiên bản của bạn. Để phân biệt mã thông báo API mới, vui lòng đặt tên cho nó. dialog_title: Tạo mã thông báo API mới + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: Tên mã thông báo failed_to_create_token: 'Không tạo được mã thông báo truy cập: %{error}' failed_to_reset_token: 'Lỗi cập nhật mã truy cập: %{error}' @@ -4396,10 +4789,26 @@ vi: password_confirmation_dialog: confirmation_required: Bạn cần nhập mật khẩu tài khoản của mình để xác nhận thay đổi này. title: Xác nhận mật khẩu của bạn để tiếp tục + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: Mã thông báo truy cập description: Mã thông báo của nhà cung cấp được OpenProject phát hành, cho phép các ứng dụng khác truy cập vào nó. Mã thông báo của khách hàng được phát hành bởi các ứng dụng khác, cho phép OpenProject truy cập chúng. + expired_on: Expired on %{date} headers: action: Hành động expiration: Hết hạn @@ -4601,7 +5010,6 @@ vi: notice_password_confirmation_failed: Mật khẩu đã nhập không chính xác. notice_principals_found_multiple: "Có %{number} kết quả được tìm thấy. \n Tab để tập trung vào kết quả đầu tiên." notice_principals_found_single: "Có một kết quả. \n Tab để tập trung vào nó." - notice_project_cannot_update_custom_fields: 'Bạn không thể cập nhật các mục tùy chỉnh có sẵn của dự án. Dự án không hợp lệ: %{errors}' notice_project_not_deleted: Dự án không bị xóa. notice_project_not_found: Dự án không được tìm thấy. notice_requires_enterprise_token: Mã thông báo doanh nghiệp bị thiếu hoặc không cho phép truy cập vào trang này. @@ -4611,9 +5019,6 @@ vi: notice_successful_create: Sáng tạo thành công. notice_successful_delete: Xóa thành công. notice_successful_update: Cập nhật thành công. - notice_successful_update_custom_fields_added_to_project: | - Cập nhật thành công. Các trường tùy chỉnh của các loại đã kích hoạt sẽ tự động được kích hoạt - trên biểu mẫu gói công việc. Xem thêm. notice_to_many_principals_to_display: |- Có quá nhiều kết quả. Thu hẹp tìm kiếm bằng cách nhập tên của thành viên (hoặc nhóm) mới. @@ -4802,8 +5207,6 @@ vi: not_found: không tìm thấy. respond_to?: không thực hiện phương pháp cần thiết. rules: - copy_workflow_from: - workflow_missing: không có quy trình làm việc riêng. custom_field: format_not_supported: định dạng '%{field_format}' không được hỗ trợ. item: @@ -4823,7 +5226,6 @@ vi: or: hoặc rules: blueprint: bản thiết kế hoa văn - copy_workflow_from: Loại bản sao quy trình công việc depth: Độ sâu enabled: đã bật item: mục @@ -4895,8 +5297,8 @@ vi: label: Table of contents page_nr_footer: Trang %{page} trong số %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: Thuộc tính và mô tả @@ -4921,7 +5323,7 @@ vi: permission_change_work_package_status_explanation: Cho phép thay đổi trạng thái mà không có quyền Chỉnh sửa gói công việc permission_comment_news: Chú thích vào tin mới permission_commit_access: Quyền truy cập đọc/ghi vào kho lưu trữ (cam kết) - permission_copy_projects: Sao chép dự án + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: Trong các dự án mẫu, quyền này có chức năng phụ, nó cho phép tạo các dự án mới bắt nguồn từ mẫu. permission_copy_work_packages: Gói công việc trùng lặp permission_create_backup: Tạo bản sao lưu @@ -4954,6 +5356,7 @@ vi: permission_export_projects: Dự án xuất khẩu permission_export_work_packages: Xuất gói công việc permission_header_for_project_module_work_package_tracking: Gói công việc và biểu đồ Gantt + permission_import_work_packages: Import work packages permission_invite_members_by_email: Mời thành viên qua email permission_invite_members_by_email_explanation: 'Cho phép người dùng mời thành viên mới qua email. Người dùng được mời sẽ nhận được email có liên kết để đặt mật khẩu và kích hoạt tài khoản của họ. Phụ thuộc vào quyền quản lý thành viên @@ -4964,6 +5367,9 @@ vi: permission_manage_dashboards: Quản lý trang tổng quan permission_manage_forums: Quản lý diễn đàn permission_manage_members: Quản lý thành viên + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: Quản lý tin tức permission_manage_own_reminders: Tạo lời nhắc riêng permission_manage_own_working_times: Manage own working times @@ -4992,7 +5398,6 @@ vi: permission_save_bcf_queries: Lưu truy vấn BCF permission_save_queries: Lưu các chế độ xem permission_search_project: Tìm kiếm dự án - permission_select_custom_fields: Chọn trường tùy chỉnh permission_select_project_custom_fields: Chọn thuộc tính dự án permission_select_project_modules: Chọn mô-đun dự án permission_select_project_phases: Chọn giai đoạn dự án @@ -5026,6 +5431,16 @@ vi: permission_work_package_assigned: Trở thành người được giao/chịu trách nhiệm permission_work_package_assigned_explanation: Các gói công việc có thể được chỉ định cho người dùng và nhóm có vai trò này trong dự án tương ứng placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: Xóa người dùng giữ chỗ deletion_info: data_consequences: 'Tất cả các lần xuất hiện của người dùng giữ chỗ (ví dụ: với tư cách là người được chuyển nhượng, người chịu trách nhiệm hoặc giá trị người dùng khác) sẽ được chỉ định lại cho tài khoản có tên "Người dùng đã xóa". Vì dữ liệu của mọi tài khoản đã xóa được gán lại cho tài khoản này nên sẽ không thể phân biệt dữ liệu người dùng đã tạo với dữ liệu của tài khoản đã xóa khác. @@ -5047,7 +5462,7 @@ vi: name: OmniAuth SAML / Đăng nhập một lần portfolio: count: - one: 1 danh mục đầu tư + one: "%{count} portfolio" other: "%{count} danh mục đầu tư" zero: 0 danh mục đầu tư filters: @@ -5058,7 +5473,7 @@ vi: label: Bộ lọc tên danh mục đầu tư placeholder: Tìm kiếm danh mục đầu tư sub_items_html: - other: "%{count} mục phụ" + other: "%{count} sub-items" lists: active: Danh mục đầu tư đang hoạt động archived: Danh mục lưu trữ @@ -5072,7 +5487,7 @@ vi: Nó có thể được sử dụng để làm nổi bật các gói công việc trong bảng. program: count: - one: 1 chương trình + one: "%{count} program" other: "%{count} chương trình" zero: 0 chương trình filters: @@ -5084,7 +5499,7 @@ vi: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: Lưu trữ dự án count: - one: 1 dự án + one: "%{count} project" other: "%{count} dự án" zero: 0 dự án destroy: @@ -5189,11 +5604,11 @@ vi: no_status_when_submitted: Failed to enable project initiation request because gói công việc (work package) type %{type} requires at least one status associated with it. Please enable at least one status workflow for this gói công việc (work package) type. no_work_package_type: Failed to enable project initiation request because it requires at least one active gói công việc (work package) type and this project has none. Please add at least one gói công việc (work package) type to this project. export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: Chọn kho lưu trữ tệp bên ngoài được định cấu hình sẽ được sử dụng. external_file_storage: Lưu trữ tập tin bên ngoài - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: Lưu dưới dạng tệp đính kèm tệp gói công việc label_file_link_export: Tải tệp lên bộ lưu trữ tệp bên ngoài và thêm liên kết tệp vào gói công việc pdf_file_storage: lưu trữ tập tin PDF @@ -5203,6 +5618,12 @@ vi: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: Không không có trường tùy chỉnh. forums: no_results_content_text: Tạo diễn đàn mới @@ -5315,7 +5736,7 @@ vi: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: Tạo ra một phiên bản mới - no_results_title_text: Hiện đang có phiên bản dự án. + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: Hiển thị các gói công việc work_packages_graph: Biểu đồ gói công việc work_package_priorities: @@ -5323,15 +5744,27 @@ vi: status: button_edit: Chỉnh sửa trạng thái wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: Thuộc tính này không có văn bản trợ giúp được xác định. progress_label: "%{current} trong số %{total}" sections: phần sidebar_content_title: Nội dung - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: Yêu cầu khởi tạo dự án + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: Áp dụng bộ lọc được cấu hình sẵn configure_view: @@ -5360,7 +5793,7 @@ vi: action_title: phản ứng add_reaction: Thêm phản ứng and_others: - other: và %{count} người khác + other: and %{count} others and_user: và %{user} react_with: Phản ứng với %{reaction} reaction_by: "%{reaction} bởi" @@ -5481,6 +5914,26 @@ vi: warnings: cannot_annotate: Tập tin này không thể được chú thích. roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5492,6 +5945,14 @@ vi: permissions: section_check_all_label: Gán tất cả các quyền %{module} section_uncheck_all_label: Bỏ gán tất cả quyền %{module} + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: Ma trận quyền cho mô-đun %{module} matrix_check_all_label: Gán tất cả các quyền %{module} cho tất cả các vai trò @@ -5596,7 +6057,7 @@ vi: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: Số dòng khác biệt tối đa được hiển thị setting_disable_password_login: Vô hiệu hóa xác thực mật khẩu - setting_display_subprojects_work_packages: Hiển thị các gói công việc của dự án con trên các dự án chính theo mặc định + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: Định dạng thời lượng setting_duration_format_days_and_hours: Ngày và giờ setting_duration_format_hours_only: Chỉ giờ @@ -5711,6 +6172,7 @@ vi: setting_start_of_week: Tuần Bắt đầu setting_sys_api_description: Dịch vụ web quản lý kho lưu trữ cung cấp sự tích hợp và ủy quyền cho người dùng để truy cập vào kho lưu trữ. setting_sys_api_enabled: Kích hoạt dịch vụ web quản lý kho lưu trữ + setting_sys_api_key: API key setting_time_format: thời gian setting_total_percent_complete_mode: Tính % tổng số thứ bậc hoàn thành setting_total_percent_complete_mode_simple_average: Trung bình đơn giản @@ -5763,7 +6225,7 @@ vi: description_html: 'Chọn chế độ mà tích hợp trình quét antivirus nên hoạt động.
  • %{disabled_option}: Các tệp tải lên sẽ không được quét virus.
  • %{socket_option}: Bạn đã thiết lập ClamAV trên cùng một máy chủ với OpenProject và daemon quét clamd đang chạy nền
  • %{host_option}: Bạn đang truyền tệp đến một máy chủ quét virus bên ngoài.
' - remaining_quarantined_files_html: 'Quét virus đã bị vô hiệu hóa. Có %{file_count} tệp vẫn còn trong cách ly. Để xem các tệp đã cách ly, vui lòng truy cập liên kết này: %{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: 'Quét virus đã được kích hoạt thành công. Có %{file_count} đã được tải lên trước đó và vẫn cần được quét. Quá trình này đã được lên lịch ở chế độ nền. Các tập tin sẽ vẫn có thể truy cập được trong quá trình quét. @@ -5774,6 +6236,7 @@ vi: ' title: Quét virus attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: 'Việc tắt tùy chọn này sẽ ẩn danh sách tệp đính kèm trên tab tệp gói công việc cho các dự án mới. Các tệp đính kèm trong phần mô tả của gói công việc sẽ vẫn được tải lên bộ lưu trữ tệp đính kèm nội bộ. ' @@ -5865,12 +6328,12 @@ vi: confirmation_message: Trình hướng dẫn yêu cầu khởi tạo sẽ không còn khả dụng cho các dự án mới dựa trên mẫu này nữa. Người quản lý dự án và chủ sở hữu dự án sẽ cần định cấu hình và điền thông tin liên quan theo cách thủ công trong phần Tổng quan về dự án. heading: Tắt yêu cầu bắt đầu dự án này? title: Tắt yêu cầu khởi tạo dự án - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: Trình hướng dẫn tạo dự án project_initiation_request: Yêu cầu khởi tạo dự án @@ -5890,8 +6353,8 @@ vi: Bạn đã gửi yêu cầu bắt đầu dự án cho **%{project_name}**. Bây giờ nó đang chờ xem xét. Nhấp vào liên kết bên dưới để truy cập gói công việc với yêu cầu của bạn. confirmation_email_text: Văn bản email xác nhận - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: Gửi email xác nhận cho người dùng đã gửi yêu cầu bắt đầu dự án status_when_submitted: Trạng thái khi gửi status_when_submitted_caption: Trạng thái của gói công việc được tạo sẽ chuyển sang trạng thái sau khi yêu cầu được gửi. @@ -5899,7 +6362,7 @@ vi: work_package_comment_caption: Người được giao được chọn ở trên sẽ tự động được @đề cập trong nhận xét. work_package_comment_default: Yêu cầu bắt đầu dự án cho **%{project_name}** đã được gửi và đang chờ xem xét. work_package_type: Loại gói công việc - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: Mở trình hướng dẫn tạo dự án project_initiation_request: Mở yêu cầu bắt đầu dự án @@ -5919,6 +6382,7 @@ vi: heading: Giai đoạn mới no_gate: Không có cổng non_defined: Hiện tại không có giai đoạn nào được xác định. + order_changed: Order successfully changed. phase_gates: Cổng pha section_header: giai đoạn start_gate: Cổng bắt đầu @@ -5975,7 +6439,7 @@ vi: section_work_week: tuần làm việc sharing: count: - one: 1 người dùng + one: "%{count} user" other: "%{count} người dùng" zero: 0 người dùng denied: Bạn không có quyền chia sẻ %{entities}. @@ -6068,19 +6532,19 @@ vi:
Lưu ý: Các giá trị được kế thừa (ví dụ: từ con cái hoặc quan hệ) sẽ vẫn được áp dụng. index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: Bị loại trừ khỏi tổng số is_closed: đóng cửa - is_default: mặc định is_readonly: Chỉ đọc + no_filter_results_title_text: No status matches the current filter. no_results_content_text: Thêm trạng thái mới no_results_title_text: Hiện tại không có trạng thái gói công việc. + status_actions: Status actions support: array: sentence_connector: và skip_last_comma: sai text_access_token_hint: Mã thông báo truy cập cho phép bạn cấp cho các ứng dụng bên ngoài quyền truy cập vào tài nguyên trong OpenProject. - text_accessibility_hint: Chế độ trợ năng được thiết kế dành cho người dùng bị mù, khuyết tật vận động hoặc có thị lực kém. Đối với các yếu tố tập trung sau này được đánh dấu đặc biệt. Xin lưu ý rằng mô-đun Backlogs không khả dụng ở chế độ này. text_analyze: 'Phân tích sâu hơn: %{subject}' text_are_you_sure: Bạn có chắc không? text_are_you_sure_continue: Bạn có chắc chắn muốn tiếp tục không? @@ -6123,12 +6587,6 @@ vi: ' text_custom_field_possible_values_info: Một dòng cho mỗi giá trị - text_custom_logo_instructions: 'Logo tự động chia tỷ lệ để vừa với tiêu đề. Để có kết quả tốt nhất, hãy tải lên biểu tượng màu trắng trên hình ảnh trong suốt có kích thước 130×47px. Bạn có thể thêm bao nhiêu khoảng cách bên trong hình ảnh đó tùy thích. - - ' - text_custom_logo_mobile_instructions: 'Logo tự động chia tỷ lệ để vừa với tiêu đề. Để có kết quả tốt nhất, hãy tải lên biểu tượng màu trắng trên hình ảnh trong suốt có kích thước 130×33px. Bạn có thể thêm bao nhiêu khoảng cách bên trong hình ảnh đó tùy thích. - - ' text_custom_touch_icon_instructions: 'Đây là biểu tượng xuất hiện trên điện thoại di động hoặc máy tính bảng của bạn khi bạn đặt dấu trang trên màn hình chính. Nó phải là tệp hình ảnh PNG có kích thước 180 x 180 pixel bình phương. Vui lòng đảm bảo nền của hình ảnh không trong suốt, nếu không nó sẽ trông xấu trên iOS. ' @@ -6178,6 +6636,7 @@ vi: text_length_between: Độ dài từ %{min} đến %{max} ký tự. text_line_separated: Cho phép nhiều giá trị (mỗi giá trị một dòng). text_load_default_configuration: Tải cấu hình mặc định + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: Không có mã thông báo truy cập nào có thể được cấu hình. text_no_configuration_data: |- Vai trò, loại, trạng thái gói công việc và quy trình làm việc chưa được định cấu hình. @@ -6283,6 +6742,67 @@ vi: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6292,14 +6812,40 @@ vi: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6308,8 +6854,10 @@ vi: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6338,21 +6886,21 @@ vi: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: Chọn mẫu nào trong số những mẫu có sẵn mà bạn muốn bật cho loại này. Mẫu xác định thiết kế và các thuộc tính hiển thị trong tệp PDF đã xuất của gói công việc sử dụng loại này. Mẫu đầu tiên trong danh sách được chọn theo mặc định. pdf_export_templates: actions: label_disable_all: Vô hiệu hóa tất cả label_enable_all: Kích hoạt tất cả label_toggle_template: Toggle %{template} label: Mẫu xuất PDF + order_changed: Order successfully changed. tab: Tạo PDF templates: readonly_error: Cannot be changed while linked to a source type. @@ -6369,6 +6917,8 @@ vi: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6390,6 +6940,14 @@ vi: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6399,12 +6957,14 @@ vi: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6418,12 +6978,12 @@ vi: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6436,10 +6996,12 @@ vi: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: Kích hoạt cho tất cả các dự án select_projects: Chọn dự án select_projects_description: Chọn các dự án mà bạn muốn sử dụng loại này. tab: dự án + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6454,41 +7016,17 @@ vi: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6496,6 +7034,9 @@ vi: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6504,13 +7045,14 @@ vi: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6524,12 +7066,16 @@ vi: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6538,23 +7084,51 @@ vi: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: Tạo loại mới no_results_title_text: Hiện tại không có loại nào. project_variants_count: @@ -6563,7 +7137,18 @@ vi: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: Bỏ qua cảnh báo này. message: Bạn có thể gặp phải lỗi và trải nghiệm không mong muốn trên trang này. @@ -6582,7 +7167,7 @@ vi: authorization_rejected: Bạn không được phép đăng nhập. blocked: bị khóa tạm thời blocked_num_failed_logins: - other: bị khóa tạm thời (%{count} lần đăng nhập không thành công) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: Bạn sắp thay đổi trạng thái '%{name}'. Bạn có chắc chắn muốn tiếp tục không? deleted: Người dùng đã bị xóa department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6682,7 +7267,7 @@ vi: deletion_warning: Bạn có chắc chắn muốn thu hồi phiên này không? Bạn sẽ đăng xuất trên thiết bị này. device: Thiết bị/HĐH expires: Hết hạn - instructions: Bạn đã đăng nhập vào tài khoản của mình thông qua các thiết bị sau. Thu hồi các phiên mà bạn không nhận ra hoặc từ các thiết bị bạn không kiểm soát. + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: Kết nối cuối cùng may_not_delete_current: Bạn không thể xóa phiên hiện tại của mình. session_name: "%{browser_name} %{browser_version} trên %{os_name}" @@ -6748,6 +7333,12 @@ vi: version_status_locked: bị khóa version_status_open: mở versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: Hiện tại không có gói công việc nào được gán cho phiên bản này. work_packages_in_archived_projects: Phiên bản này được chia sẻ với các dự án đã lưu trữ vẫn có các gói công việc được gán cho phiên bản này. Những nội dung này được tính nhưng sẽ không xuất hiện trong các chế độ xem được liên kết. @@ -6917,6 +7508,8 @@ vi: required_description: Đánh dấu gói công việc này là một yêu cầu đối với gói công việc liên quan requires_description: Đánh dấu gói công việc liên quan là yêu cầu đối với gói công việc này work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: Các gói công việc không thể được sao chép. could_not_be_deleted: 'The following work packages could not be deleted:' @@ -7018,6 +7611,137 @@ vi: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7049,34 +7773,50 @@ vi: version: no_results_title_text: Hiện tại không sẵn có phiên bản nào. x_descendants: - other: "%{count} gói sản phẩm phụ thuộc" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same gói công việc (work package) type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another gói công việc (work package)s type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: Ma trận quy trình công việc matrix_caption_assignee: Ma trận quy trình công việc cho người được giao matrix_caption_author: Ma trận quy trình làm việc cho tác giả @@ -7085,12 +7825,82 @@ vi: matrix_check_uncheck_all_in_row_label_html: Chuyển đổi các chuyển đổi từ %{old_status} sang tất cả các trạng thái mới matrix_checkbox_label: Cho phép chuyển đổi từ %{old_status} sang %{new_status} matrix_uncheck_all_label: Không cho phép tất cả các chuyển đổi + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each gói công việc (work package) type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: Thay đổi ngày làm việc dialog: diff --git a/config/locales/crowdin/zh-CN.seeders.yml b/config/locales/crowdin/zh-CN.seeders.yml index 9058cf2f0cbd..005599bd1fd6 100644 --- a/config/locales/crowdin/zh-CN.seeders.yml +++ b/config/locales/crowdin/zh-CN.seeders.yml @@ -121,7 +121,7 @@ zh-CN: demo-project: name: 演示项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示 Scrum 项目目标的简短摘要。 + description: 这是对此演示项目目标的简短摘要。 news: item_0: title: 欢迎来到您的演示项目 @@ -227,7 +227,7 @@ zh-CN: scrum-project: name: Scrum 项目 status_explanation: 所有任务都按计划进行。相关人员均知晓各自任务。系统已完全建立。 - description: 这是对此演示 Scrum 项目目标的简短摘要。 + description: 这是对此演示Scrum项目目标的简短摘要。 news: item_0: title: 欢迎来到您的 Scrum 演示项目 @@ -236,70 +236,26 @@ zh-CN: 在这个模块中,您可以向您的团队成员传送项目新闻。 versions: item_0: - name: 缺陷待办事项 - item_1: - name: 产品待办事项 - item_2: - name: 开发冲刺 1 wiki: - title: 开发冲刺 1 + title: 版本 1.0 content: | - ### 冲刺计划会议 - - _请记录冲刺计划会议的主题_ - - * 时间盒(8 h) - * 输入: 产品待办事项 - * 输出: 冲刺待办事项 - - * 4 h的两个额外时间盒: - - * 产品所有者向团队提交[产品待办事项]({{opSetting:base_url}}/projects/your-scrum-project/backlog) 和优先事项,并解释冲刺目标, 小组必须同意。 它们共同确定了产品积压的主题,工作队将在下次喷洒时处理这些主题。 该小组致力于讨论的交付。 - * 团队自动规划(不包括产品所有者),并从讨论的要求中分解任务,以合并[冲刺目标]({{opSetting:base_url}}/projects/your-scrum-project/packlogs)。 - - - ### 每日敏捷会议 - - _请将主题记录到每日敏捷会议上。 - - * 团队每日状态短会。 - * 时间盒(最多15分钟)。 - * 待命会议,讨论[任务板]的下列议题(##sprint:scrum_project__version__sprint_1)。 - * 我打算在下次每日快递之前做些什么? - * 什么阻碍了我的工作(障碍)? - * Scrum Master modificates and notes [Sprint Impacts](##sprint:scrum_project__version__sprint_1)。 - * 产品所有者可以参与,以便随时了解情况。 + ### 版本 1.0 - ### 敏捷总结会议 + _请在此处记录此版本包含的内容_。 - _请将主题记录到敏捷总结会议上_ - - * 时间盒(4 h)。 - * 每人最多准备一小时的时间。 - * 团队向产品所有者和其他感兴趣的人展示了在这次冲压中取得的成就。 - * 重要:没有垃圾信息和PowerPoint!只需演示完成的产品功能(增量)。 - * 需要产品所有者、利益攸关者和其他方面的反馈,并将纳入今后的工作。 - * 根据已证明的功能,产品所有者决定接受这种递增或进一步发展。 这种可能性使得能够早日建立ROI。 - - - ### 敏捷回顾会议 - - _请将主题记录到敏捷回顾会议_ - - * 时间盒(3 h)。 - * 冲刺评论后,将由敏捷教练主持。 - * 团队讨论冲刺:情况良好。 为了提高下一次冲刺的生产力,需要改进的是什么,甚至有更多的趣味。 - item_3: - name: 开发冲刺 2 + * 此版本的工作包是目标版本为 1.0 的工作包。 + * 发布日期为 *版本 v1.0* 里程碑的日期。 + * 打开[路线图]({{opSetting:base_url}}/projects/your-scrum-project/roadmap)可以跟踪所有版本的进展。 + * 打开[项目设置 → 版本]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions)可以将另一个 WiKi 页面关联到某个版本。 categories: item_0: 第1类(在项目设置中更改) queries: item_0: name: 项目计划 item_1: - name: 产品待办事项 + name: 版本 1.1 item_2: - name: 开发冲刺 1 + name: 版本 1.0 item_3: name: 任务 boards: @@ -324,20 +280,7 @@ zh-CN: item_1: options: name: 入门指南 - text: | - 我们很高兴您加入!建议您尝试以下几个步骤来开始使用OpenProject。 - - 请按照以下步骤进行操作: - - 1. *邀请新成员加入项目*:→ 在项目导航中前往[成员]({{opSetting:base_url}}/projects/your-scrum-project/members)。 - 2. *查看产品待办和迭代待办*:→ 在项目导航中前往[待办]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)。 - 3. *查看任务看板*:→ 在项目导航中前往[待办]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → 点击迭代右侧的箭头 → 选择[任务看板](##sprint:scrum_project__version__sprint_1)。 - 4. *创建新的工作包*:→ 在工作包 → [创建]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new)中进行操作。 - 5. *创建和更新项目计划*:→ 在项目导航中前往[项目计划](##query:scrum_project__query__project_plan)。 - 6. *创建迭代Wiki*:→ 在[待办]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)中打开迭代右侧下拉菜单中的Wiki。您可以根据需要编辑[Wiki模板]({{opSetting:base_url}}/projects/your-scrum-project/wiki/)。 - 7. *激活其他模块*:→ 在项目设置 → [模块]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules)中进行操作。 - - 您可以在我们的[用户指南](https://www.openproject.org/docs/user-guide/)中找到更多信息。如果您有任何问题或需要支持,请随时与我们联系:[support[at]openproject.com](mailto:support@openproject.com)。 + text: "我们很高兴您加入!建议您尝试以下几个步骤来开始使用 OpenProject。\n\n_请按照以下步骤进行操作_:\n\n1. *邀请新成员加入项目*:→ 在项目导航中前往[成员]({{opSetting:base_url}}/projects/your-scrum-project/members)。\n2. *查看产品积压工作和冲刺积压工作*:→ 在项目导航中前往[积压工作]({{opSetting:base_url}}/projects/your-scrum-project/backlogs)。\n3. *创建冲刺*:→ 前往[积压工作]({{opSetting:base_url}}/projects/your-scrum-project/backlogs),并点击“+冲刺”创建新冲刺。将工作包从积压工作移动到冲刺,以规划待完成的工作。准备好后,点击“开始冲刺”。 \n4. *查看冲刺面板*:→ 前往[面板]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → 点击冲刺名称打开冲刺的面板。\n5. *创建新的工作包*:→ 前往[工作包 → 创建]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new)。\n6. *创建和更新项目计划*:→ 在项目导航中前往[项目计划](##query:scrum_project__query__project_plan)。\n7. *激活其他模块*:→ 前往[项目设置 → 模块]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules)。\n\n\n您可以在这里找到我们的[用户指南](https://www.openproject.org/docs/user-guide/)。\n如果您有任何问题或需要支持,请随时与我们联系:[support[at]openproject.com](mailto:support@openproject.com)。\n" item_5: options: name: 工作包 diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index 443550ccdc91..7e5f0adb2d79 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -40,7 +40,9 @@ zh-CN: view: 通过宏放置的指向某个视图的动态链接。 work_package: 通过宏放置的指向某个工作包的动态链接。 account: + already_have_an_account: You already have an account? auth_source_login_html: 请以 %{login} 身份登录,以激活您的帐户。 + continue_with_provider: Continue with %{name} delete: 删除帐户 delete_confirmation: 您确认想要删除您的账户? deletion_info: @@ -65,7 +67,9 @@ zh-CN: error_self_registration_limited_provider: '用户注册在''%{name}''单点登录提供商上受限。请向管理员请求激活您的账户,或者更改该提供商的自主注册限制。 ' - login_with_auth_provider: 或使用您的现有帐户登录 + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: 继续登录 omniauth_direct_login_redirecting: 正在将您重定向到您的身份提供商… omniauth_login: 请登录以激活您的帐户。 @@ -118,6 +122,8 @@ zh-CN: auth_provider: additional_form_action_urls: Additional allowed login redirect URLs scim_clients: SCIM 客户端 + automation: + actions: Actions calculated_value_error: customized_id: 自定义ID customized_type: 自定义类型 @@ -128,8 +134,6 @@ zh-CN: repository: 存储库 comment: commented: 评论 - custom_action: - actions: 操作 custom_field: admin_only: 仅管理员 allow_non_open_versions: 允许非打开版本 @@ -168,6 +172,7 @@ zh-CN: uid: 客户端 ID emoji_reaction: reactable: 作用于 + reaction: Reaction enterprise_token: active_user_count_restriction: 活跃用户 encoded_token: 企业版支持令牌 @@ -179,20 +184,44 @@ zh-CN: company: 公司 favorite: favorited: 条目 + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: 列数 page: 页 row_count: 行数 - widgets: 微件 + widgets: 小部件 group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: 用户组 identity_url: 身份 URL organizational_unit: 组织单元 parent: 父群组 group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: 组织单元 parent: 父群组 import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira 实例名称 personal_access_token: 个人访问令牌 url: Jira 实例 URL @@ -223,6 +252,7 @@ zh-CN: title: 标题 member: blocked: 已阻止 + principal_type: 成员类型 roles: 角色 notification: read_ian: 在app中读取 @@ -235,6 +265,7 @@ zh-CN: position: 位置 persisted_query: filters: 筛选器 + group_bys: 结果分组方式 name: 名称 orders: 订单 selects: 选择 @@ -367,6 +398,8 @@ zh-CN: ongoing: 正在进行的 spent_on: 日期 type: 类型 + token/base: + expires_on: Expiration date token/ical: calendar: 日历 ical_token_query_assignment: 查询任务 @@ -384,19 +417,17 @@ zh-CN: type_variant: attribute_groups: 表单 default_work_package_description: 默认描述文本 - defaults_source: 默认值来源 enabled_in_new_projects: 在新项目中有效 - form_configuration_source: 表单来源 + linked_aspects: Inherited configuration patterns: 模式 - pdf_export_source: PDF 导出来源 - project_attributes_source: 项目特性来源 project_types: 使用此变体的项目 variant: 变体 variant_name: 名称 - workflows_source: 工作流来源 + workflow: Workflow user: admin: 管理员 auth_source: 身份验证源 + avatar_type: Avatar type consented_at: 同意在 current_password: 当前密码: department: 部门 @@ -410,7 +441,7 @@ zh-CN: last_name: 姓氏 ldap_auth_source: LDAP 连接 new_password: 新密码 - password_confirmation: 确认 + password_confirmation: Password confirmation user_custom_field: custom_field_section: 分区 user_non_working_time: @@ -419,11 +450,15 @@ zh-CN: user_preference: auto_hide_popups: 自动隐藏成功横幅 auto_hide_popups_caption: 启用后,绿色成功横幅将在 5 秒后自动消失。 + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: 更新提醒 button_update_look_and_feel: 更新外观和风格 button_update_user_information: 更新配置文件 comments_sorting: 显示工作包活动排序方式 daily_reminders: 每日提醒 + date_format: Date format disable_keyboard_shortcuts: 禁用键盘快捷键 dismissed_enterprise_banners: 隐藏企业横幅 force_dark_theme_contrast: 在深色模式下强制使用高对比度 @@ -434,13 +469,23 @@ zh-CN: header_look_and_feel: 外观和风格 impaired: 辅助功能模式 increase_contrast: 增加对比度 - increase_contrast_caption: 为选定的颜色模式启用高对比度模式。 + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: 增加主题对比度 mode_guideline: 某些模式将覆盖自定义主题颜色,以提升无障碍性和可读性。请选择“浅色”模式,以实现对自定义主题的全面支持。 + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: 颜色模式 + time_format: Time format time_zone: 时区 warn_on_leaving_unsaved: 离开未保存更改的工作包时提示我 workdays: 工作日 + user_resource: + description: 描述 + name: 名称 + user_filter: 用户筛选器 + user_resource_detail: + description: 描述 + user_filter: 用户筛选器 user_working_hours: availability_factor: 空闲系数 days: 工作日 @@ -491,6 +536,7 @@ zh-CN: title: 工作日 true: 包括非工作日 journal_internal: 内部日记 + labels: Labels notify: 通知 observed_in_versions: 在版本中发现 parent: 父级 @@ -519,6 +565,10 @@ zh-CN: work_package: 工作包 work_package_version: kind: 种类 + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: 必须接受。 @@ -590,6 +640,8 @@ zh-CN: regex_invalid: 无法与关联的正则表达式进行验证。 regex_list_invalid: 行 %{invalid_lines} 无法解析为正则表达式。 regex_match_failed: 与正则表达式 %{expression}不匹配。 + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: 必须小于或等于最大长度。 smaller_than_or_equal_to_max_value: 必须小于或等于最大值。 ssrf_filtered: 违反了此 OpenProject 实例的 SSRF 政策。 @@ -612,6 +664,10 @@ zh-CN: user_in_ldap_managed_department: 此用户属于通过 LDAP 同步进行管理的部门,无法移动。 wrong_length: 长度不正确 (应该是 %{count} 个字符)。 models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ zh-CN: general_consent: 请接受条款与条件。 favorite: already_favorited: 已经被收藏。 + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: 结束值需要大于起始值。 outside: 不在网格内。 @@ -688,6 +754,13 @@ zh-CN: not_unique: 已被使用。请另选一个名称。 jira: invalid_protocol: 请提供有效的协议(http 或 https) + label: + attributes: + name: + blank: 名称不能为空。 + format: "%{message}" + taken: 使用此名称的标签已存在。请使用其他名称。 + too_long: 名称太长(最多 %{count} 个字符)。 ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ zh-CN: types: cannot_assign_multiple_variants_of_parent: 只能在项目上启用一个类型的单个变体 cannot_assign_variant_and_parent: 无法指定变体及其父项 - cannot_assign_variants_yet: 目前无法在项目上启用变体。请启用功能标志以试用变体 in_use_by_work_packages: '仍在使用的工作包: %{types}' switch_target_blank: 选择要切换到的变体 switch_target_identical: 目标类型必须不同于项目现在使用的类型 @@ -856,42 +928,26 @@ zh-CN: blank: 请提供令牌名称 format: "%{message}" in_use: 此令牌名称已被使用,请选择其他令牌名称 + type: + attributes: + base: + in_use_by_work_packages: 无法删除此类型,因为工作包仍在使用。 type_variant: attributes: - attribute_groups: - attribute_unknown: 使用的工作包特性无效。 - attribute_unknown_name: 使用的工作包特性无效:%{attribute} - duplicate_group: 群组名称 '%{group}' 被多次使用。群组名称必须唯一。 - group_without_name: 群组名称不能为空。 - query_invalid: 嵌入式查询 '%{group}' 无效:%{details} base: - borrowed_by_variants: 无法删除,其配置被 %{names} 重复使用。 is_default_variant: 无法删除类型的默认配置。 project_variants_not_allowed: 此类型不允许在项目中创建变体。 restrict_dependent_destroy: has_many: 无法删除,项目仍在使用它。 - defaults_source_id: - must_be_available_to_the_variant: 必须是此项目可以使用的配置。 - would_create_cycle: 将在循环中链接这些配置。 enabled_in_new_projects: not_available_to_project_owned_variant: 不能在项目拥有的变体上设置。 taken: 已为此类型的另一个配置设置。 - form_configuration_source_id: - must_be_available_to_the_variant: 必须是此项目可以使用的配置。 - would_create_cycle: 将在循环中链接这些配置。 patterns: invalid_tokens: 字段内的一个或多个特性无效。请先修正特性,然后再保存。 - pdf_export_source_id: - must_be_available_to_the_variant: 必须是此项目可以使用的配置。 - would_create_cycle: 将在循环中链接这些配置。 - project_attributes_source_id: - must_be_available_to_the_variant: 必须是此项目可以使用的配置。 - would_create_cycle: 将在循环中链接这些配置。 variant: must_belong_to_the_type: 必须是此类型的变体。 - workflows_source_id: - must_be_available_to_the_variant: 必须是此项目可以使用的配置。 - would_create_cycle: 将在循环中链接这些配置。 + workflow: + not_available_to_this_variant: 必须是此项目可以使用的工作流。 user: attributes: base: @@ -905,7 +961,7 @@ zh-CN: numeric: 数值 (例如 ' 1') requirements_not_met: 必须包括以下类型的字符:%{rules} reused: - other: 已被使用过。请选择一个与您过去使用的 %{count} 个密码不同的密码。 + other: has been used before. Please choose one that is different from your last %{count}. special: 特殊字符 (例如 ' %') uppercase: 大写字母 (如 'A') password_confirmation: @@ -974,6 +1030,8 @@ zh-CN: identifier: must_not_be_changed: '不得手动更改。工作包标识符是自动分配并通过别名表解析的,因此手动更改它们会破坏链接和标识符历史记录。如果此更改是有意操作,请使用 `save(context: :%{context})` 进行保存,并确保 work_package_semantic_aliases 表的一致性。' semantic_identifier_incomplete: 并且必须同时设置 sequence_number。 + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: 不能在另一个项目中。 cannot_be_milestone: 不能是一个里程碑。 @@ -1001,6 +1059,8 @@ zh-CN: status_id: status_invalid_in_type: 无效,因为此类型中不存在当前状态。 status_transition_invalid: 是无效的,因为在当前用户的角色下,没有从旧到新的状态有效的过渡存在。 + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: 无法成为里程碑,因为此工作包具有子级。 is_not_a_valid_target_for_time_entries: '工作包 #%{id} 不是重新分配时间条目的有效目标。' @@ -1009,7 +1069,7 @@ zh-CN: template: body: 请检查以下字段: header: - other: "%{count} 个错误使得 %{model} 无法保存" + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: 操作 @@ -1035,6 +1095,8 @@ zh-CN: other: 工作包特性帮助文本 auth_provider: other: 身份验证提供方 + automation: + other: Automations backup: other: 备份 capability: @@ -1049,8 +1111,6 @@ zh-CN: other: 颜色 comment: other: 评论 - custom_action: - other: 自定义操作 custom_field: other: 自定义字段 custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ zh-CN: other: 导出 export_setting: other: 导出设置 + form_configuration: + other: Forms forum: other: 论坛 global_role: @@ -1093,6 +1155,8 @@ zh-CN: other: 健康报告 issue_priority: other: 优先事项 + label: + other: Labels ldap_auth_source: other: LDAP 连接 mcp_configuration: @@ -1293,7 +1357,28 @@ zh-CN: admin: banners: environment_configured_readonly: 这些值通过环境变量配置,无法在此处编辑。 + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: 基本色 main_menu: 主侧边菜单 @@ -1326,7 +1411,11 @@ zh-CN: tab_interface: 界面 tab_pdf_export_font: PDF 导出字体 tab_pdf_export_styles: PDF 导出样式 - theme_warning: 更改主题将覆盖您的自定义样式。设计将会丢失。您确定要继续吗? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: 上传企业版支持令牌 book_now: 立即预订 @@ -1344,7 +1433,7 @@ zh-CN: title: 删除企业令牌 enterprise_link: 如需了解详细信息,请单击此处。 get_quote: 获取报价 - order: 订购本地部署版的 Enterprise edition + order: 订购本地部署的 Enterprise edition paste: 粘贴您企业版的支持令牌 replace_token: 替换您当前的支持令牌 required_for_feature: 此功能仅限具激活的企业版支持令牌的订阅者使用。 @@ -1359,7 +1448,7 @@ zh-CN: import: title: 导入 info: - database_deprecation_html: '自 OpenProject 16.0 起,使用 OpenProject 需要搭配 PostgreSQL 16。您的安装仍可使用当前数据库正常运行,但预计在未来版本中将不会兼容。
我们已准备[所有安装方式的升级指南](upgrade_guide)。在下一个版本发布前,您可以随时按照指南执行升级。 + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: 使用 jemalloc 内存分配器 @@ -1367,12 +1456,15 @@ zh-CN: actions: button_edit: 编辑配置 button_open: 打开运行 + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: '请通过提供您的反馈和捐赠您的私有数据,帮助我们改进 Jira Migrator。您可以[加入 Jira Migrator 的开发社区](link)。 ' description: 此 Jira Migrator 目前处于测试阶段。我们目前仅支持 Jira Server/Data Center 版本 10.x 和 11.x。目前不支持云实例。 title: 测试版 - 试试吧! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: 配置 Jira 主机,以开始将 Jira 中的条目导入此 OpenProject 实例。 title: 尚未配置 Jira 主机 @@ -1405,16 +1497,30 @@ zh-CN: description: Jira 使用由项目密钥和序列号组成的问题标识符 (PRJ-123)。OpenProject 也支持该标识符,但需要在[此处](link)启用。 title: 必须启用基于项目的语义标识符。 form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: 添加配置 - button_delete_token: 删除令牌 + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: 保存配置 - delete_token_confirm: 确定要删除令牌吗?这将禁用 Jira 连接。 + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: 名称 - personal_access_token: 个人访问令牌 + personal_access_token: Personal access token (PAT) url: Jira 服务器/数据中心 URL label_testing: 正在测试配置… - test_configuration_caption: 您可以通过[点击此处](test)来测试此配置 + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: 编辑运行 @@ -1518,19 +1624,19 @@ zh-CN: title: 请确保您有备份! parts: issues: - other: "%{count} 个问题" + other: "%{count} issues" jobs: other: "%{count} jobs" projects: - other: "%{count} 个项目" + other: "%{count} projects" statuses: - other: "%{count} 种状态" + other: "%{count} statuses" types: - other: "%{count} 种类型" + other: "%{count} types" users: - other: "%{count} 个用户" + other: "%{count} users" work_packages: - other: "%{count} 个工作包" + other: "%{count} work packages" revert_dialog: confirm: 我明白,此撤消操作会永久删除数据 description: 将删除所有导入的对象(包括整个项目)。 @@ -1595,7 +1701,7 @@ zh-CN: caption: 选择要导入 OpenProject 的内容 caption_done: 已完成 caption_done_description: - other: "%{count} 个项目被选作范围" + other: "%{count} projects selected as scope" description: 在从主机 Jira 实例获取的可用数据中选择要导入的数据。 elements: custom_fields: 自定义字段的子集 @@ -1659,23 +1765,52 @@ zh-CN: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API 返回错误状态 %{status}。请检查您的 Jira 实例 URL 和 API 令牌。 + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 连接错误:%{message} error: 测试连接时发生意外错误 failed: 连接失败:无法检索服务器信息 invalid_url: 请提供有效的 URL - missing_credentials: 请提供 URL 和个人访问令牌,以测试连接 parse_error: 服务器响应解析失败。服务器可能不是有效的 Jira 实例。 + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: 成功连接到 %{server}(版本 %{version}) - token_error: API 令牌无效。请在配置中检查您的凭据。 + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: 令牌已成功删除。 user: unknown_name: 未知 journal_aggregation: caption_with_maximum: '如果用户对工作包执行的操作(更改描述、状态、数值或编写评论)是在此时间段内完成的,则会将这些操作分为一组。此设置还控制通知和[网络钩子](webhook_link)延迟。最大值为 %{max} 分钟。 ' + labels: + delete_dialog_component: + confirmation: 我明白此操作无法撤消 + description_html: 此操作将从所有项目中的所有工作包中移除标签 %{name}。 + heading: 删除此标签? + title: 删除此标签? + dialog_component: + create_title: 创建标签 + rename_title: 重命名“%{name}” + index: + description: 所有能够编辑工作包的用户都可以自由地使用现有标签对工作包进行标记,或即时创建新标签。这包括用户在所有项目中创建的所有标签。 + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: 标签 + label_add: 添加标签 + search_placeholder: 在此处输入以搜索 + table_component: + blank_slate: + description: 用户在工作包上创建的标签将出现在此处。 + title: 还没有标签 + headers: + name: 标签 + usage: 用于 + no_matches: + description: 尝试其他搜索词。 + title: 没有标签与您的搜索匹配 mcp_configurations: index: description: Model Context Protocol 允许 AI 智能体向其用户提供此 OpenProject 实例所公开的工具和资源。此功能仍处于测试阶段。 @@ -1706,6 +1841,18 @@ zh-CN: update: failure: MCP 配置无法更新。 success: MCP 配置已成功更新。 + members: + index: + blank_description: 没有成员资格与当前筛选条件匹配。 + blank_title: 无成员资格 + filter_label: 搜索用户 + inheritance_source: "%{type} %{name}" + inherited_via: "(通过:%{source})" + title: 成员资格 + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: 更多信息,请参阅我们的集成和插件页面。 no_results_title_text: 目前没有安装插件。 @@ -1719,7 +1866,7 @@ zh-CN: confirm_button: 取消保留标识符 description: 此项目标识符取消保留后,将无法撤消。使用此标识符的外部链接和集成将停止解析,任何新项目都可以使用该名称。 description_with_work_packages: - other: 此项目标识符(及其 %{count} 个工作包标识符)取消保留后,将无法撤消。使用此标识符的外部链接和集成将停止解析,任何新项目都可以使用该名称。 + other: Unreserving this project identifier (and its %{count} work package identifiers) cannot be undone. External links and integrations using it will stop resolving, and the name becomes available for any new project to claim. heading: 是否取消保留“%{identifier}”? title: 取消保留标识符 empty_body: 项目的标识符更改后,上一个标识符会出现在此处,以便您在确认安全后将其取消保留。 @@ -1847,7 +1994,7 @@ zh-CN: error_unknown: 需要手动检查 error_used_in_past: 由另一个项目的标识名历史保留 remaining_projects: - other: "…其他 %{count} 个项目" + other: "... %{count} more projects" banner: existing_identifiers_notice: "%{project_count} 个项目的现有标识符不符合基于项目的语义标识符要求。OpenProject 可以自动更新这些标识符,使其成为如下例中所示的有效格式。点击“自转换标识符”,以这种方式更新所有项目的标识符,并启用基于项目的语义标识符。\n" box_header: @@ -1885,7 +2032,7 @@ zh-CN: types_caption: 添加应当可以使用此操作的工作包类型。所有可用的变体将自动包含在内。 usage_scope_caption: 您可以限制此操作的可见范围: 所有位置(包括评论、Wiki 和自定义字段)、适用于所有工作包类型,或适用于某些工作包类型。 index: - description: 文本转换操作为用户提供了由 LLM 驱动的功能,可以在所有使用富文本编辑器的位置(例如,工作包描述、评论和 Wiki 页面)进行文本编写、整理和审核。可以使用您自己的提示词和指令来创建新操作。 + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: 操作 label_aria_add_action: 添加文本转换操作 index_component: @@ -1917,16 +2064,19 @@ zh-CN: ignore: 忽略更改 save: 保存更改并继续 title: 保存更改后再继续? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 角色:%{role} no_role: 选择角色 roles: - other: |- - One - 已选择一个角色 - Other - 已选择 %{count} 个角色 + other: "%{count} roles selected" title: 选择角色 + with_transitions: With transitions + without_transitions: Without transitions status_button: 状态 statuses_dialog: caption: 添加或移除您想要关联到此类型的状态。移除状态也会删除与之关联的工作流。 @@ -1936,7 +2086,7 @@ zh-CN: confirm: 移除 description: 删除这些状态将使其无法用于此类型,并会删除现有工作流。确定要继续吗? heading: - other: 是否移除 %{count} 种状态? + other: Remove %{count} statuses? title: 移除状态 tabs: always: 默认转换 @@ -1948,7 +2098,31 @@ zh-CN: assignee: 对工作包受理人可用的其他过渡。 author: 对工作包作者可用的其他过渡。 menu_label: 显示的过渡 + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: 无法访问 AI 服务。 + not_available: AI 助手不可用。 + timeout: AI 服务未及时响应。 + upstream_error: AI 服务返回错误。 + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: 当前已显示 is_inactive: 当前未显示 show_until: 显示截至日期 @@ -1956,7 +2130,7 @@ zh-CN: deleted_by_admin: 管理员已删除被隔离的文件 "%{filename}"。 deleted_message: 在文件 "%{filename}"中检测到病毒。该文件已被删除。 not_processed_yet_message: 下载被阻止,因为尚未对文件进行病毒扫描。请稍后再试。 - overridden_by_admin: '%{user}解除了文件 "%{filename}"的隔离。现在可以访问该文件了。' + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: 容器 delete: 删除被隔离的文件 @@ -2010,10 +2184,6 @@ zh-CN: not_found: reminder: 找不到您要查找的提醒或者它已被删除。 work_package: 找不到您要查找的工作包或者它已被删除。 - render: - context_not_parsable: 所提供的上下文环境并不是指向资源的链接。 - context_object_not_found: 找不到可作为上下文环境的资源。 - unsupported_context: 所提供的资源不被上下文环境所支持。 unable_to_create_attachment: 无法创建附件 unable_to_create_attachment_permissions: 由于缺少文件系统权限,无法保存附件 user: @@ -2084,6 +2254,7 @@ zh-CN: groups: 组 hexcode: 十六进制代码 id: ID + inexistent: Inexistent is_default: 默认值 is_for_all: 应用到所有项目 issue: 工作包 @@ -2134,6 +2305,7 @@ zh-CN: updated_at: 更新于 updated_on: 更新于 uploader: 上载程序 + url: URL user: 用户 username: 用户名 value: 值 @@ -2148,6 +2320,29 @@ zh-CN: ' login_and_registration: 登录和注册 + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: 由于错误,作业已被取消:%{message} @@ -2274,6 +2469,7 @@ zh-CN: button_set_reminder: 设置提醒 button_show: 显示 button_sort: 排序 + button_stop_timer: 停止计时器 button_submit: 提交 button_test: 测试 button_unarchive: 取消归档 @@ -2340,9 +2536,9 @@ zh-CN: text: failed: 无法将项目"%{source_project_name}"复制到项目"%{target_project_name}"。 succeeded: 已复制项目"%{source_project_name}"到"%{target_project_name}"。 - title: 复制项目“%{source_project_name}” + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: 有一个此类型的对象 + one: "%{count} object of this type" other: 有 %{count} 个此类型的对象 zero: 没有此类型的对象 create_portfolio: @@ -2380,13 +2576,9 @@ zh-CN: plural: 自定义操作 custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: 由于选中了 "适用于所有项目 "选项,因此所有项目都启用了该自定义字段。单个项目无法停用。 - heading: 适用于所有项目 hierarchy: subitems: - one: 1 个子项目 + one: "%{count} sub-item" other: "%{count} 个子项目" zero: 无子项目 items: @@ -2407,7 +2599,7 @@ zh-CN: short: 短名 weight: 重量 notice: - remember_items_and_projects: 请记住,在相应的选项卡中为此自定义字段设置条目和项目。 + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: 您可以自动将某个项目角色授予任何被指定至此项目特性的用户,而不管该用户在该项目中的原始角色是什么。 dialog: @@ -2472,16 +2664,17 @@ zh-CN: is_enabled_globally: 已全局启用 multi_value_more: other: 和其他 %{count} 个 + no_results_title_text: There are currently no custom fields. no_role_assigment: 无角色指定 + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: 需要先选择工作包或项目 reorder_alphabetical: 按字母顺序重新排序 reorder_confirmation: 警告:当前的可用值顺序以及所有未保存的值都将丢失。确定要继续吗? semantic_keys: job_title: 职务名称 none: 无 - tab: - no_results_content_text: 创建新的自定义字段 - no_results_title_text: 目前没有自定义字段。 text_add_new_custom_field: '要向项目添加新的自定义字段,您需要先创建字段,然后才能将其添加到此项目中。 ' @@ -2545,40 +2738,40 @@ zh-CN: datetime: distance_in_words: about_x_hours: - other: 大约 %{count} 小时 + other: about %{count} hours about_x_months: - other: 大约 %{count} 个月 + other: about %{count} months about_x_years: - other: 大约 %{count} 年 + other: about %{count} years almost_x_years: - other: 接近 %{count} 年 + other: almost %{count} years half_a_minute: 半分钟 less_than_x_minutes: other: 不到 %{count} 分钟 less_than_x_seconds: - other: 不到 %{count} 秒 + other: less than %{count} seconds over_x_years: - other: 超过 %{count} 年 + other: over %{count} years x_days: - other: "%{count} 天" + other: "%{count} days" x_hours: - other: "%{count} 小时" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count} 小时" + other: "%{count} hrs" x_minutes: - other: "%{count} 分钟" + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count} 分钟" + other: "%{count} mins" x_months: - other: "%{count} 个月" + other: "%{count} months" x_seconds: - other: "%{count} 秒" + other: "%{count} seconds" x_seconds_abbreviated: - other: "%{count} 秒" + other: "%{count} s" x_weeks: - other: "%{count} 周" + other: "%{count} weeks" x_years: - other: "%{count} 年" + other: "%{count} years" units: day: other: 天 @@ -2725,7 +2918,7 @@ zh-CN: teaser: description_html: 您可以访问 %{trial_plan} 的所有功能。 title: - other: "%{trial_plan} 试用令牌剩余 %{count} 天" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: '您的试用 Enterprise 令牌已被检索。请检查您的电子邮件,查看是否已附上令牌。如果您需要一个新令牌,请联系我们的支持团队。 @@ -3062,9 +3255,142 @@ zh-CN: selected: 已选择 include_sub_items: 包含子条目 no_results_text: 无结果 + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: 论坛中目前无发贴。 + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3089,6 +3415,8 @@ zh-CN: groups: edit: synchronized_groups: 同步的群组 + form: + group_attributes: Group attributes index: description: 通过将用户分组到一起,您可以将他们添加为同一项目的成员,也可以将相同的全局角色分配给他们。 memberships: @@ -3114,6 +3442,10 @@ zh-CN: leave_project: 离开项目 no_favorite_projects: 您没有收藏的项目。 title: 项目 + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3125,7 +3457,7 @@ zh-CN: summary: failure: 某些检查失败,系统无法按预期运行。 success: 所有连接和系统均按预期运行。 - warning: 某些检查返回警告。这可能导致出现意外行为。 + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: 失败 @@ -3134,7 +3466,7 @@ zh-CN: warning: 警告 help_texts: views: - favoured: 将此视图标记为收藏项,并添加到左侧的已保存视图边栏中。 + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural}始终与项目关联。您只能在此处选择已激活 %{plural} 模块的项目。创建了 %{singular} 后,您可以将其他项目的工作包添加到其中。\n" public: 发布此视图,以允许其他用户访问您的视图。具有“管理公开视图”权限的用户可以修改或移除公开查询。这不会影响工作包结果在该视图中的可见性,并且根据用户拥有的权限,他们可能会看到不同的结果。 homescreen: @@ -3159,6 +3491,31 @@ zh-CN: line_6: 在社区版本中使用日期提醒。 new_features_title: '此版本包含各种新功能和改进,例如: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: 了解新功能和产品更新。 learn_about: 详细了解所有新功能 @@ -3195,8 +3552,10 @@ zh-CN: journals: cause_descriptions: budget_deleted: 预算已删除 + forum_message_deleted: "(deleted)" import: changed_with_diff: "“%{field}”已更改 (%{link})" + csv: from CSV deleted_with_diff: "“%{field}”已删除 (%{link})" field_changed: "“%{field}”已从 %{old_value} 更改为 %{new_value}" field_removed: "“%{field}”已移除" @@ -3246,6 +3605,7 @@ zh-CN: budget_deleted: 预算已删除 dates_changed: 日期已更改 default_attribute_written: 已写入只读属性 + forum_message_html: "Created from forum message %{message_information}" import: 已导入 meeting_agenda_item_added_html: "已添加到会议 %{meeting_title_information}" meeting_agenda_item_added_template_html: "已添加到 %{meeting_title_information}" @@ -3398,10 +3758,10 @@ zh-CN: label_copy_target: 目标 label_copy_workflow_from: 复制工作流自 label_copy_workflow_from_role: 复制到其他角色 - label_copy_workflow_from_type: 复制到其他类型 label_core_build: 核心构建 label_core_version: 核心版本 label_created_by: 由 %{user} 创建 + label_criteria: 条件 label_current_status: 当前状态 label_current_version: 当前版本 label_custom_comment: "%{name}注释" @@ -3425,8 +3785,6 @@ zh-CN: label_custom_field_default_type: 空类型 label_custom_field_new: 新的自定义字段 label_custom_field_plural: 自定义字段 - label_custom_logo: 自定义徽标桌面版 - label_custom_logo_mobile: 自定义徽标移动版 label_custom_pdf_export_settings: 自定义 PDF 导出设置 label_custom_style: 设计 label_custom_style_description: 选择主题来定制OpenProject的外观,选择应用中的默认颜色以及导出的样式。 @@ -3435,11 +3793,12 @@ zh-CN: label_database_version: PostgreSQL 版本 label_date: 日期 label_date_and_time: 日期和时间 - label_date_format: 日期格式 + label_date_and_time_formats: Date and time formats label_date_from: 从 label_date_from_to: 从 %{start} 到 %{end} label_date_to: 到 label_dates: 日期 + label_day: 天 label_day_plural: 天 label_default: 默认 label_defaults: 默认 @@ -3450,6 +3809,7 @@ zh-CN: label_deleted_custom_field: "(删除自定义字段)" label_deleted_custom_item: "(删除项目)" label_deleted_custom_option: "(删除的选项)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: 组织 label_departments_description_html: '通过按层级创建部门和子部门来定义公司结构。这样可以反映汇报关系,并在 OpenProject 中保持清晰、结构分明的组织概览。您还可以通过 [LDAP 部门同步](ldap_docs_article)导入现有组织结构。 @@ -3520,6 +3880,7 @@ zh-CN: label_float: 浮点数 label_folder: 文件夹 label_follows: 跟踪 + label_form_configuration_plural: Forms label_formula: 公式 label_forum_new: 新论坛 label_forum_plural: 论坛 @@ -3538,6 +3899,7 @@ zh-CN: label_go_forward: 打开 %{module} 子菜单 label_greater_or_equal: ">=" label_group: 组 + label_group_attributes_plural: Group attributes label_group_by: 分组依据 label_group_named: 组 %{name} label_group_new: 新的组 @@ -3589,8 +3951,8 @@ zh-CN: label_journal_diff: 描述的对比 label_jump_to_a_project: 跳转到一个项目... label_keyword_plural: 关键词 + label_label_plural: 标签 label_language: 语言 - label_language_based: 基于用户的语言 label_languages: 语言 label_last_activity: 最近一次活动 label_last_change_on: 最后一次修改时间 @@ -3612,6 +3974,7 @@ zh-CN: label_list: 列表 label_loading: 正在加载... label_locale: 语言和地区 + label_locale_based: Use default for user locale label_lock_user: 锁定用户 label_locked: 已锁定 label_logged_as: 登录用户名 @@ -3623,6 +3986,7 @@ zh-CN: label_managed_by_ldap: 通过 LDAP 同步进行管理 label_managed_repositories_vendor: 托管的 %{vendor} 存储库 label_mapping_for: 映射: %{attribute} + label_markdown_version: Markdown version label_max_size: 最大 label_me: 我 label_member_all_admin: "(所有角色都由管理员状态决定)" @@ -3641,7 +4005,6 @@ zh-CN: label_menu_item_name: 菜单项名称 label_message: 消息 label_message_last: 最后一条消息 - label_message_new: 新消息 label_message_plural: 消息 label_message_posted: 添加消息 label_minute_plural: 分钟 @@ -3653,6 +4016,7 @@ zh-CN: label_module_plural: 模块 label_modules: 模块 label_modules_and_plugins: 模块和插件 + label_month: 月 label_months_from: 月份从 label_more: 更多 label_more_information: 更多信息 @@ -3666,6 +4030,7 @@ zh-CN: label_my_avatar: 我的头像 label_my_queries: 我的自定义查询 label_my_security: 安全性 + label_my_time: My time label_name: 名称 label_never: 永不 label_new: 新增 @@ -3680,7 +4045,10 @@ zh-CN: label_news_singular: 新闻 label_news_view_all: 查看所有新闻 label_next: 下一个 + label_next_day: 后一天 + label_next_month: 下个月 label_next_week: 下周 + label_next_workweek: 下一个工作周 label_next_year: 明年 label_no_change_option: "(不变)" label_no_data: 没有要显示的数据 @@ -3688,6 +4056,7 @@ zh-CN: label_no_parent_group: "(无父群组)" label_no_parent_page: 无父级页面 label_no_start_date: 没有开始日期 + label_no_time: 无时间追踪 label_nobody: 没人 label_non_working_days: 空闲日历 label_non_working_days_summary: 摘要 @@ -3754,7 +4123,10 @@ zh-CN: label_preview: 预览 label_preview_not_available: 预览不可用 label_previous: 上一个 + label_previous_day: 前一天 + label_previous_month: 上个月 label_previous_week: 前一周 + label_previous_workweek: 上一个工作周 label_previous_year: 去年 label_principal_invite_via_email: " 或通过电子邮件邀请新用户" label_principal_search: 添加现有用户或组 @@ -3834,7 +4206,7 @@ zh-CN: label_revision_plural: 修订 label_roadmap: 路线图 label_roadmap_due_in: "%{value} 到期" - label_roadmap_edit: 编辑路线图%{name} + label_roadmap_edit: 编辑路线图 %{name} label_roadmap_no_work_packages: 该版本没有工作包。 label_roadmap_overdue: "%{value} 超时" label_role_and_permissions: 角色和权限 @@ -3873,6 +4245,7 @@ zh-CN: label_sort_lowest: 移至底部 label_sorted_by: 排序按 %{value} label_spent_time: 已耗工时 + label_stack: Stack label_start_to_end: 开始结束 label_start_to_start: 开始开始 label_starts_with: 开始为 @@ -3892,6 +4265,7 @@ zh-CN: label_subtask_plural: 子任务 label_summary: 摘要 label_system: 系统 + label_system_or_language_default: Use system or language based default label_system_settings: 系统设置 label_system_storage: 存储信息 label_table_of_contents: 目录 @@ -3906,6 +4280,7 @@ zh-CN: label_time: 时间 label_time_entry_activity_plural: 花费时间的活动 label_time_entry_plural: 已耗工时 + label_timer_since: "%{time} 开始" label_title: 标题 label_today: 今天 label_today_as_date: 选择今天为日期。 @@ -3941,7 +4316,9 @@ zh-CN: label_user_search: 搜索用户 label_user_settings: 用户设置 label_users_settings: 用户设置 + label_value: Value label_value_x: '值: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: 编辑版本 label_version_new: 新版本 label_version_plural: 版本 @@ -3954,6 +4331,7 @@ zh-CN: label_videos: 视频 label_view_all_revisions: 查看所有修订版本 label_view_diff: 查看差异 + label_view_mode_switcher: 更改视图 label_view_revisions: 查看修订版本 label_view_x: 查看:%{x} label_watched_work_packages: 受关注的工作包 @@ -3977,6 +4355,8 @@ zh-CN: label_wiki_start: 起始页 label_wiki_toc: 目录 label_wiki_toc_empty: 目录为空,因为没有标题。 + label_with_criteria: 带有条件 + label_without_criteria: 不带条件 label_work: 工时 label_work_package: 工作包 label_work_package_attachments: 工作包附件 @@ -3999,42 +4379,43 @@ zh-CN: label_working_days: 工作日 label_working_days_and_hours: 工作日和工作小时 label_working_hours: 工作时间表 + label_workweek: 工作周 label_x_closed_work_packages_abbr: - one: 1 个已关闭 + one: "%{count} closed" other: "%{count} 个已关闭" zero: 0 个已关闭 label_x_comments: - one: 1 条评论 + one: "%{count} comment" other: "%{count} 条评论" zero: 没有注释 label_x_days: - other: "%{count} 天" + other: "%{count} days" label_x_files: - one: 1 个文件 + one: "%{count} file" other: "%{count} 个文件" zero: 无文件 label_x_items: - one: 1 个项目 + one: "%{count} item" other: "%{count} 个项目" zero: 没有项目 label_x_items_selected: - other: 已选择 %{count} 个条目 + other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 个打开 + one: "%{count} open" other: "%{count} 个打开" zero: 0 个已打开 label_x_projects: - one: 1 个项目 + one: "%{count} project" other: "%{count} 个项目" zero: 没有项目 label_x_work_packages: - one: 1 个工作包 + one: "%{count} work package" other: "%{count} 个工作包" zero: 无工作包 label_x_working_days: - other: "%{count} 个工作日" + other: "%{count} working days" label_x_working_days_time_off: - other: 休息时间:%{count} 个工作日 + other: 'Time off: %{count} working days' label_yesterday: 昨天 label_zen_mode: 极简模式 ldap_auth_sources: @@ -4087,7 +4468,7 @@ zh-CN: start_tls: STARTTLS start_tls_description: 连接到标准LDAP端口后发送STARTTLS命令。推荐用于加密连接。 tls_options: - tls_certificate_description: 如果LDAP服务器证书不在此系统的信任源中,您可以在此手动添加它。输入PEM X509证书字符串。 + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: 验证SSL证书 verify_peer_description_html: '允许严格的 SSL 验证证书信任链。
警告: 取消选中此选项将禁用 SSL 验证 LDAP 服务器证书。这会使您的连接暴露于中间人攻击之下。 @@ -4144,6 +4525,8 @@ zh-CN: you_have: 您有 logo_alt_text: 徽标 mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} 在 %{id} - %{subject} 中提及了您" notification: center: 前往通知中心 @@ -4200,7 +4583,7 @@ zh-CN: mentioned: 您已在评论中被提及 mentioned_by: "%{user} 在评论中提及了您" more_to_see: - other: 还有 %{count} 个包含通知的工作包。 + other: There are %{count} more work packages with notifications. open_in_browser: 在浏览器中打开 reason: assigned: 已分配 @@ -4369,6 +4752,12 @@ zh-CN: create_button: 创建 dialog_body: 此令牌将允许第三方应用程序与您的实例通信。为了区分新的 API 令牌,请为其命名。 dialog_title: 创建新的 API 令牌 + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: 令牌名称 failed_to_create_token: 创建访问令牌失败: %{error} failed_to_reset_token: '无法重置访问令牌: %{error}' @@ -4382,10 +4771,26 @@ zh-CN: password_confirmation_dialog: confirmation_required: 需要输入帐户密码以确认此更改。 title: 确认密码以继续 + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: 访问令牌 description: 提供商令牌由 OpenProject 签发,允许其他应用程序访问。客户端令牌由其他应用程序签发,允许 OpenProject 对其进行访问。 + expired_on: Expired on %{date} headers: action: 操作 expiration: 过期 @@ -4591,7 +4996,6 @@ zh-CN: notice_principals_found_single: |- 这有一个结果。 点击来关注它。 - notice_project_cannot_update_custom_fields: 您无法更新项目的可用自定义字段。项目无效:%{errors} notice_project_not_deleted: 项目没有被删除 notice_project_not_found: 未找到项目。 notice_requires_enterprise_token: 企业令牌缺失或不允许访问此页面。 @@ -4601,9 +5005,6 @@ zh-CN: notice_successful_create: 成功创建。 notice_successful_delete: 成功删除。 notice_successful_update: 成功更新。 - notice_successful_update_custom_fields_added_to_project: '更新成功。已激活类型的自定义字段在工作包表单上自动激活。了解详情。 - - ' notice_to_many_principals_to_display: |- 搜索结果数量过多。 请键入新成员 (或组) 的名字来缩小搜索范围。 @@ -4704,7 +5105,7 @@ zh-CN: ' confirm_revoke_my_application: - other: 您真的要删除此应用程序吗?这将撤销 %{count} 已激活的令牌。 + other: Do you really want to remove this application? This will revoke %{count} tokens active for it. empty_application_lists: 没有注册任何OAuth应用程序。 flows: authorization_code: 授权码流 @@ -4792,8 +5193,6 @@ zh-CN: not_found: 未找到。 respond_to?: 不实现所需方法。 rules: - copy_workflow_from: - workflow_missing: 无独立工作流。 custom_field: format_not_supported: 格式 '%{field_format}' 不受支持。 item: @@ -4813,7 +5212,6 @@ zh-CN: or: 或 rules: blueprint: 图案蓝图 - copy_workflow_from: 工作流副本的类型 depth: 深 enabled: 已启用 item: 条目 @@ -4885,8 +5283,8 @@ zh-CN: label: 目录 page_nr_footer: 第 %{page} 页,共%{total} 页 template_artefact: - caption: 以 PMflex 工件形式呈现的工作包详细信息。 - label: PMflex 工件 + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: 当前表单中使用默认模板的所有特性。 label: 属性和描述 @@ -4911,7 +5309,7 @@ zh-CN: permission_change_work_package_status_explanation: 允许在不编辑工作包权限的情况下更改状态 permission_comment_news: 评论新闻 permission_commit_access: 读/写访问存储库 (提交) - permission_copy_projects: 复制项目 + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 在模板项目中,此权限具有一个辅助功能,即允许通过模板创建新项目。 permission_copy_work_packages: 复制工作包 permission_create_backup: 创建备份 @@ -4944,6 +5342,7 @@ zh-CN: permission_export_projects: 导出项目 permission_export_work_packages: 导出工作包 permission_header_for_project_module_work_package_tracking: 工作包和甘特图 + permission_import_work_packages: Import work packages permission_invite_members_by_email: 通过电子邮件邀请成员 permission_invite_members_by_email_explanation: '允许用户通过电子邮件邀请新会员。邀请用户将收到一封包含链接的电子邮件来设置密码并激活他们的帐户。 依赖于管理会员的权限 @@ -4954,6 +5353,9 @@ zh-CN: permission_manage_dashboards: 管理仪表板 permission_manage_forums: 管理论坛 permission_manage_members: 管理成员 + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: 管理新闻 permission_manage_own_reminders: 创建个人提醒事项 permission_manage_own_working_times: 管理自己的工作时间 @@ -4982,7 +5384,6 @@ zh-CN: permission_save_bcf_queries: 保存 BCF 查询 permission_save_queries: 保存界面设置 permission_search_project: 搜索项目 - permission_select_custom_fields: 选择自定义字段 permission_select_project_custom_fields: 选择项目属性 permission_select_project_modules: 选择项目模块 permission_select_project_phases: 选择项目阶段 @@ -5016,6 +5417,16 @@ zh-CN: permission_work_package_assigned: 成为受理人/责任人 permission_work_package_assigned_explanation: 工作包可以分配给在各自项目中拥有此角色的用户和组 placeholder_users: + criteria: + activate: 激活筛选条件 + activate_caption: '这样便可为此占位符用户添加一组筛选条件,用于定义符合所需条件的可能用户。 + + ' + enable: 按条件匹配用户 + enable_caption: 描述此占位符所代表的用户类型,以便为其推荐匹配的用户。 + matching_users: 符合筛选条件的用户 + no_matching_users: 没有用户符合这些条件。 + show_all_matching_users: 显示全部 %{count} 个匹配的用户 delete_tooltip: 删除占位符用户 deletion_info: data_consequences: '出现的所有占位符用户(例如,作为受理人、负责人或其他用户值)将被重新分配给一个名为“已删除用户”的帐户。 由于每个已删除帐户的数据都会被重新分配给此帐户,因此无法将用户创建的数据与另一个已删除帐户的数据区分。 @@ -5037,7 +5448,7 @@ zh-CN: name: OmniAuth SAML / SSO单点登录 portfolio: count: - one: 1 个项目组合 + one: "%{count} portfolio" other: "%{count} 个项目组合" zero: 0 个项目组合 filters: @@ -5048,7 +5459,7 @@ zh-CN: label: 项目组合名称筛选器 placeholder: 搜索项目组合 sub_items_html: - other: "%{count} 个子条目" + other: "%{count} sub-items" lists: active: 有效项目组合 archived: 归档的项目组合 @@ -5062,7 +5473,7 @@ zh-CN: 颜色可用于高亮显示表中的工作包。 program: count: - one: 1 个计划 + one: "%{count} program" other: "%{count} 个计划" zero: 0 个计划 filters: @@ -5074,7 +5485,7 @@ zh-CN: confirmation_message: 将此项目归档后,此实例的所有用户将无法再使用此项目及其所有后代。可以对已归档的项目进行恢复。 title: 归档项目 count: - one: 1个项目 + one: "%{count} project" other: "%{count} 个项目" zero: 0 个项目 destroy: @@ -5179,11 +5590,11 @@ zh-CN: no_status_when_submitted: 无法启用项目启动请求,因为工作包类型“%{type}” 至少需要一个与之相关的状态。请为此工作包类型至少启用一个状态工作流。 no_work_package_type: 无法启用项目启动请求,因为它至少需要一个有效工作包类型,但此项目没有。请为此项目至少添加一种工作包类型。 export: - description_attachment_export: 生成的工件将以 PDF 附件的形式保存到工件工作包中。 - description_file_link_export: 该工件工作包将具有一个文件链接,指向存储在外部文件存储空间中的 PDF 文件。需要具有一个工作文件存储空间,其中包含此项目的自动管理的项目文件夹。目前仅支持 Nextcloud 文件存储空间。 + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: 选择应使用哪个配置的外部文件存储空间。 external_file_storage: 外部文件存储空间 - label_artifact_export: 工件导出 + label_artifact_export: Artifact export label_attachment_export: 保存为工作包文件附件 label_file_link_export: 将文件上传到外部文件存储空间,并将文件链接添加到工作包 pdf_file_storage: PDF 文件存储空间 @@ -5193,6 +5604,12 @@ zh-CN: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: 目前没有可用的自定义字段。 forums: no_results_content_text: 创建新论坛 @@ -5289,12 +5706,12 @@ zh-CN: new_heading: 变为可用状态的字段 nothing_affected: 没有任何字段或状态受到影响。 status_count: - other: "%{count} 个工作包" + other: "%{count} work packages" table_suffix: "(表)" value_count: - other: "%{count} 个工作包具有值" + other: "%{count} work packages have a value" work_packages: - other: "%{count} 个工作包将使用新配置" + other: "%{count} work packages will use the new configuration" success: 项目现在使用 %{type}。 target_label: 变体 title: "%{type}:切换变体" @@ -5305,7 +5722,7 @@ zh-CN: variants_not_allowed: 此类型不允许在项目中创建变体。 versions: no_results_content_text: 创建一个新的版本 - no_results_title_text: 目前这个项目没有版本。 + no_results_title_text: 未找到此项目中符合筛选条件的版本。 show_work_packages: 显示工作包 work_packages_graph: 工作包图 work_package_priorities: @@ -5313,15 +5730,27 @@ zh-CN: status: button_edit: 编辑状态 wizard: - create_artifact_storage_error: 无法在文件存储空间中存储工件 - create_artifact_work_package_error: 无法创建工件工作包 + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: 此项目没有为向导启用任何项目特性。请在项目设置中至少启用一个属性。 no_help_text: 此特性未定义帮助文本。 progress_label: "%{current}/%{total}" sections: 分区 sidebar_content_title: 目录 - success: 项目特性已保存,工件工作包已成功创建。 + success: Project attributes saved and artifact work package created successfully. title: 项目启动请求 + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: 应用预配置筛选器 configure_view: @@ -5350,7 +5779,7 @@ zh-CN: action_title: 回应 add_reaction: 添加回应 and_others: - other: 和 %{count} 其他 + other: and %{count} others and_user: 和 %{user} react_with: 使用 %{reaction} 进行回应 reaction_by: 由 %{reaction} @@ -5442,7 +5871,7 @@ zh-CN: setup_documentation_details: 如果您在配置新文件存储方面需要帮助,请查看文档: setup_documentation_details_link_text: 文件存储设置 show_warning_details: 要使用此文件存储,请记得在每个所需项目的项目设置中激活模块和特定存储。 - update_timeout: 在 N 分钟内保留存储库最后所需的磁盘空间信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。 + update_timeout: 在 N 分钟内保留存储库最后所需磁盘空间的信息。由于计算存储库所需的磁盘空间可能增加系统开销,增加该值可以减少性能影响。 subversion: existing_introduction: 如果您已有本地 Git 存储库,可以将其链接到 OpenProject 来访问。 existing_title: 现有的 Subversion 存储库 @@ -5461,6 +5890,26 @@ zh-CN: warnings: cannot_annotate: 此文件不能进行注释。 roles: + delete_dialog: + confirm: 确定要删除此角色吗? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: 确定要删除角色“%{name}”吗? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: 在这些用户中,有 %{count} 位用户将失去对相关项目的访问权限,因为该角色是他们在这些项目中拥有的唯一角色。确定要删除此角色吗? + zero: 这些用户都不会失去对其任何项目的访问权限。确定要删除此角色吗? + show_memberships: 显示所有具有此角色的成员资格 + summary: "%{projects} 中的 %{users}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: 删除角色 edit: default_for_new_projects_warning: 此角色被配置为创建项目的非管理员用户所具有的默认角色。请勿移除以下权限,否则项目创建者将无法完成新建项目的设置: index: @@ -5472,6 +5921,14 @@ zh-CN: permissions: section_check_all_label: 指定所有 %{module} 权限 section_uncheck_all_label: 取消指定所有 %{module} 权限 + permissions_dialog: + edit_permissions: 编辑角色权限 + no_permissions: 此角色未授予任何权限。 + permission_count: + other: "%{count} permissions" + preview_action: 查看权限 + preview_aria_label: 查看 %{role} 的权限 + title: "“%{name}”的权限" report: matrix_caption: "%{module} 模块的权限矩阵" matrix_check_all_label: 向所有角色指定所有 %{module} 权限 @@ -5576,7 +6033,7 @@ zh-CN: setting_default_projects_wiki: 默认为新项目启用 wiki 功能 setting_diff_max_lines_displayed: 最大差异显示行数 setting_disable_password_login: 禁用密码验证 - setting_display_subprojects_work_packages: 默认在主项目上显示子项目工作包 + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: 持续时间格式 setting_duration_format_days_and_hours: 天数和小时数 setting_duration_format_hours_only: 仅限小时 @@ -5690,7 +6147,8 @@ zh-CN: setting_smtp_user_name: SMTP 用户名 setting_start_of_week: 一周起始日 setting_sys_api_description: 存储库管理网页服务提供了集成的,用户授权的存储库访问。 - setting_sys_api_enabled: 启用存储库管理网页服务 + setting_sys_api_enabled: 启用版本库管理 web 服务 + setting_sys_api_key: API key setting_time_format: 时间 setting_total_percent_complete_mode: 计算 完成% 层次结构总数 setting_total_percent_complete_mode_simple_average: 简单平均值 @@ -5743,7 +6201,7 @@ zh-CN: description_html: '选择防病毒扫描程序集成的运行模式。
  • %{disabled_option}:不对上传的文件进行病毒扫描。
  • %{socket_option}:您已经在与 OpenProject 相同的服务器上设置了 ClamAV,并且扫描守护程序 clamd 正在后台运行。
  • %{host_option}:您正在将文件流式传输到外部病毒扫描主机。
' - remaining_quarantined_files_html: '病毒扫描已禁用。%{file_count} 个文件仍在隔离区。要查看被隔离的文件,请访问此链接:%{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: '病毒扫描已成功启用。之前上传的 %{file_count} 仍需扫描。此过程已在后台安排。扫描期间,文件仍可访问。 @@ -5754,6 +6212,7 @@ zh-CN: ' title: 病毒扫描 attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: '禁用此选项将会为新项目隐藏工作包文件标签上的附件列表。 工作包描述中的文件仍将上传到内部附件存储。 ' @@ -5845,12 +6304,12 @@ zh-CN: confirmation_message: 基于此模板的新项目将无法再使用启动请求向导。项目经理和项目所有者需要在项目概览中手动配置和填写相关信息。 heading: 是否禁用此项目启动请求? title: 禁用项目启动请求 - header_description: 'OpenProject 可以生成一个分步向导,帮助项目经理填写项目启动请求。您可以选择应包含哪些项目特性,并由此创建一个 PDF 工件。 + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: 工件名称 - artifact_name_caption: 为此工件选择项目管理框架推荐的名称。 + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: 项目创建向导 project_initiation_request: 项目启动请求 @@ -5870,8 +6329,8 @@ zh-CN: 您提交了 **%{project_name}** 的项目启动请求。目前正在等待审查。 请点击下方链接访问工作包以及您的请求。 confirmation_email_text: 确认电子邮件文本 - description: 当用户提交项目启动请求时,将创建一个新的工作包,并以 PDF 文件形式附上请求工件。以下设置定义了新工作包的类型、状态和受理人。 - description_template: "**此工作包是在 %{wizard_name} 工作流完成后自动创建的**。 包含所有提交信息的 PDF 工件已生成并附加到此工作包,供参考和审核。 如果需要更新或重新运行初始化步骤,您可以随时使用下方链接重新打开向导:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: 向提交项目启动请求的用户发送确认电子邮件 status_when_submitted: 提交时的状态 status_when_submitted_caption: 提交请求后,生成的工作包将转入的状态。 @@ -5879,7 +6338,7 @@ zh-CN: work_package_comment_caption: 在上方选择的受理人将在备注中被自动提及。 work_package_comment_default: "**%{project_name}** 的项目启动请求已提交,正在等待审查。" work_package_type: 工作包类型 - work_package_type_caption: 应当用于存储已完成工件的工作包类型。 + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: 打开项目创建向导 project_initiation_request: 打开项目启动请求 @@ -5899,6 +6358,7 @@ zh-CN: heading: 新阶段 no_gate: 无关口 non_defined: 当前没有定义阶段。 + order_changed: Order successfully changed. phase_gates: 阶段关口 section_header: 阶段 start_gate: 开始关口 @@ -5955,7 +6415,7 @@ zh-CN: section_work_week: 工作周 sharing: count: - one: 1 个用户 + one: "%{count} user" other: "%{count} 个用户" zero: 0 个用户 denied: 您没有权限共享 %{entities}。 @@ -6047,19 +6507,19 @@ zh-CN:
注:继承值(例如,来自子级或关系的值)仍然适用。 index: + could_not_be_moved: 无法移动状态。 headers: - excluded_from_totals: 不包括在总计中 is_closed: 已关闭 - is_default: 默认 is_readonly: 只读 + no_filter_results_title_text: 没有任何状态与当前筛选条件匹配。 no_results_content_text: 添加新的状态 no_results_title_text: 目前没有工作包状态。 + status_actions: 状态操作 support: array: sentence_connector: 和 skip_last_comma: 非 text_access_token_hint: 访问令牌允许你授予外部应用程序对 OpenProject 资源的访问权限。 - text_accessibility_hint: 辅助功能模式设计用于失明、具有行动障碍或视力不佳的用户。为视力不佳的用户特别突出显示关注的元素。请注意,此模式不支持待办清单模块。 text_analyze: 进一步分析: %{subject} text_are_you_sure: 是否确定? text_are_you_sure_continue: 确定要继续吗? @@ -6102,12 +6562,6 @@ zh-CN: ' text_custom_field_possible_values_info: 每个值一行 - text_custom_logo_instructions: '徽标会自动缩放以适应页眉。为获得最佳效果,请上传一个位于透明的 130×47 像素图像上的白色徽标。您可以根据自己的喜好在图像内添加间距。 - - ' - text_custom_logo_mobile_instructions: '徽标会自动缩放以适应页眉。为获得最佳效果,请上传一个位于透明的 130×33 像素图像上的白色徽标。您可以根据自己的喜好在图像内添加间距。 - - ' text_custom_touch_icon_instructions: '这是当您在主屏幕上放置书签时,显示在手机或平板电脑中的图标。它是大小为 180x180 像素的正方形 PNG 图像文件。请确保图像的背景不是透明的,否则在 iOS 上看起来会很糟糕。 ' @@ -6157,6 +6611,7 @@ zh-CN: text_length_between: 长度介于 %{min} 和 %{max} 个字符。 text_line_separated: 允许有多个值 (每行一个值)。 text_load_default_configuration: 加载默认配置 + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: 没有可配置的访问令牌。 text_no_configuration_data: |- 角色、类型、工作包状态和工作流尚未配置。 @@ -6262,6 +6717,67 @@ zh-CN: tree_view: label_empty_sub_tree: 没有项目 types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: 比较变体 + blankslate: + description: 为此类型添加第二个变体,以了解它们之间的区别。 + title: 还没有可比较的对象 + description: 将此类型的变体与父类型进行比较。 + labels: + duplicate: 可能重复 + duplicate_of: 配置方式与 %{names} 完全相同 + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: 父类型 + same_as_type: 与父类型相同 + rows: + form: + fields: 字段 + groups: 分区 + required: 必选 + same_as_base: 与父类型相同 + scope: + availability: 可用于 + enabled_in_new_projects: 在新项目中有效 + projects: 项目 + workflows: + roles: 涉及的角色 + same_as_base: 与父类型相同 + statuses: 状态 + transitions: 转换 + sections: + configuration: 配置概览 + form: 表单 + scope: 范围 + workflows: 工作流 + title: 比较变体 + title_for_type: 比较 %{name} 的变体 + values: + global: 所有项目 + inheriting_from: 继承自 + project_specific: 项目特定 ([%{project}](project_url)) + same_as_base: 与父类型相同 creation_wizard: add_variant: 将变体添加到 %{name} create_type: 创建类型 @@ -6271,14 +6787,40 @@ zh-CN: finish: 完成 placeholder_description: 此步骤即将推出。 progress_label: 第 %{number} 步,共 %{total} 步 + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: 默认值 details: 详细信息 form_configuration: 表单 - pdf: PDF 生成 + pdf: Generate PDF project_attributes: 项目特性 projects: 项目 - workflows: 工作流 + start: Start + workflows: Workflow success: 创建成功。 edit: breadcrumb_variant: 变体:%{name} @@ -6287,8 +6829,10 @@ zh-CN: caption: 使用引用的特性和文本定义模式,以自动生成工作包主题。用户将无法手动编辑主题。 label: 自动生成的主题 description: - caption: 添加文本,该文本将添加到所有此类型的新工作包的描述字段中。 - label: 默认描述文本 + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: 用户可以不受限制地手动输入和编辑工作包主题。 label: 可手动编辑的主题 @@ -6317,21 +6861,21 @@ zh-CN: file_link: caption: 生成的 PDF 会上传至项目的自动管理的 Nextcloud 存储空间,并与该工作包相关联。没有此类存储空间的项目中的工作包将被跳过。 label: 将文件上传到外部文件存储空间,并将文件链接添加到工作包 - intro: 当此类型的工作包的状态发生变化时,自动生成该工作包的 PDF 工件。 - invalid_mode: 工件导出模式无效。 - label: 工件自动导出 + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: 不会自动生成 PDF。 label: 关闭 - section_title: 工件自动导出 + section_title: Automatic artifact export unavailable: 不可用,未配置自动管理的 Nextcloud 存储空间 - intro: 为此类型选择模板。模板决定此类型工作包导出的PDF的设计和可见属性。默认选择列表上的第一个模板。 pdf_export_templates: actions: label_disable_all: 全部禁用 label_enable_all: 全部启用 label_toggle_template: 切换 %{template} label: PDF 导出模板 + order_changed: Order successfully changed. tab: 生成 PDF templates: readonly_error: 链接到源类型时无法更改。 @@ -6348,6 +6892,8 @@ zh-CN: confirm_delete_group: 确定要删除此小节吗?此操作无法自动撤消。 confirm_reset: 确定要重置表单吗? custom_field: 自定义字段 + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: 删除小节 drag_to_activate: 从此处拖动字段,以将其激活 drag_to_reorder: 拖动以重新排序 @@ -6369,6 +6915,14 @@ zh-CN: query_group_label: 相关的工作包表 remove_attribute: 从小节中移除 rename_group: 重命名小节 + required: + already_required_globally: 此自定义字段对所有类型为必选项。 + for_variant: 在此类型中为必选项 + globally: 必选 + globally_hint: 在自定义字段上更改此项 + mark: 在此类型中为必选项 + not_a_custom_field: 对于单一类型,仅可将自定义字段设为必选。 + unmark: 在此类型中不是必选项 reset_description: '此操作会将特性重置为其默认群组,并禁用所有自定义字段。 ' @@ -6378,12 +6932,14 @@ zh-CN: tab: 表单 untitled_group: 无标题群组 overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: 配置模式 - dependents: 依赖项类型和变体 mode: always_manual: 始终手动 - inheriting_from_html: 从 %{source_name} 继承 + inheriting_from_html: Using the same as type (%{source_name}) manual: 手动配置 + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: 设置 tab: 概览 project_attributes: @@ -6397,12 +6953,12 @@ zh-CN: manual: description: 在您[创建项目特性](administration_url)后,这些特性将显示在此处,并且可以添加到类型中。 title: 没有可用的项目特性 - description: 选择您希望为此工作包类型启用的项目特性。启用的项目特性将显示在此类型工作包的一个单独的选项卡中;拥有必要权限的用户可以在其中查看和编辑这些特性。 disabled: 已禁用 exclusions: attribute_label: 继承 %{attribute} filter: 按分区或名称搜索 tab: 项目特性 + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: 是否从 %{project} 中移除类型“%{type}”? @@ -6415,10 +6971,12 @@ zh-CN: empty_state: description: 添加一个项目以在其中使用此配置。 no_results: 没有匹配的项目。 + title: Not used in any project yet enable_all: 对所有项目启用 select_projects: 选择项目 select_projects_description: 选择您想要使用此类型的项目。 tab: 项目 + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6433,41 +6991,17 @@ zh-CN: title: 复制配置 invalid_source: 无法从所选类型复制该配置。请选择其他源类型。 success: 配置已复制。 - dependents: - blank: - description: 没有其他类型或变体继承自此配置 - title: 没有依赖项类型 - description: - other: 以下配置被 %{count} 个其他类型或变体继承。您在此处所做的任何更改也将影响这些依赖项。 - dialog: - description: 这些类型和变体继承此分区的配置。您在此处所做的任何更改都将应用于所有这些类型和变体。 - direct_heading: 直接依赖项 - indirect_heading: 通过其他类型产生的依赖项 - title: 依赖项类型 - variant_of_html: "%{type_name} 的变体" - variant_of_via_html: "%{type_name} 的变体,通过 %{source_name} 继承" - via_html: 通过 %{source_name} 继承 - title: - other: "%{count} 个依赖项类型" - view: 查看依赖项类型 exclusions: not_inherited: 此配置不是继承而来,因此无需排除任何内容。请直接编辑该配置。 unknown_aspect: 未知的配置分区“%{aspect}”。 inherited: - change_source: 更改源类型 configure_manually: 手动配置 confirm_dialog: - change_source: - description_html: 如果将源类型更改为 %{source_name},您将会覆盖当前设置,并且可能影响有关此类型的工作包的现有信息。 - heading: 更改源类型? - title: 更改源类型 check_box: 我明白这会覆盖当前设置 from_manual: description: 所有当前选择的设置都将被覆盖,并且可能影响有关此类型的工作包的现有信息。 heading: 切换配置模式? title: 切换配置模式 - description: 此配置继承自源类型 [%{source_name}](source_url)%{source_suffix}。 - description_unlinked: 此配置继承自源类型 %{source_name}%{source_suffix}。 dialog: description: 从源类型继承此配置。添加到源中的任何新配置也适用于此处。 source_label: 源类型 @@ -6475,6 +7009,9 @@ zh-CN: submit: 切换 title: 继承自其他类型 invalid_source: 无法从所选类型继承该配置。请选择其他源类型。 + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: 配置模式已切换。 title: 已继承配置 manual: @@ -6483,13 +7020,14 @@ zh-CN: description: 所有当前选择的设置都将被覆盖,并且可能影响有关此类型的工作包的现有信息。 heading: 切换配置模式? title: 切换配置模式 - copy_from_type: 从其他类型复制 description: 不会继承任何设置。您仍可以从其他类型中一次性复制设置。 dialog: submit: 切换 title: 手动配置 - inherit_from_type: 继承自其他类型 + inherit_from_type: Inherit from parent invalid_mode: 所选模式对此配置不可用。请选择其他模式。 + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: 首先对此配置现在继承的设置进行一次性复制。 @@ -6503,12 +7041,16 @@ zh-CN: success: 配置模式已切换。 title: 手动配置 parent_suffix: "(父项)" + variant_suffix: "(Variant)" variants: blankslate: description_html: '您可以创建变体,为不同项目提供此类型的不同版本。
每个变体均可以针对默认模板、自定义字段、工作流和偏好设置执行继承、复制操作,也可以拥有自己的自定义配置。 ' title: 此类型不存在变体 + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: 在 %{project} 中创建 delete: description: ‌在删除此变体前,使用此变体的所有项目将切换至您在下方选择的变体。 @@ -6517,32 +7059,71 @@ zh-CN: filter_no_results: 没有任何变体匹配此筛选条件 global_section: description: 这些变体在所有项目中可用。 - title: 变体 + title: 全局变体 project_specific_section: description: 这些变体仅在创建它们的项目内使用。 title: 项目特定变体 workflow: - tab: 工作流 + tab: Workflow index: add_variant: 将变体添加到 %{name} add_variant_action: 添加变体 + convert_to_global: 转换为全局变体 + convert_to_global_dialog: + confirm: 转换 + text: '此操作会将这一项目特定变体转换为对所有项目可用的全局变体。项目管理员将无法再对其进行编辑。 + + ' + workflow_text: '其工作流“%{name}”属于该项目,同时也会成为全局工作流。 + + ' + convert_to_global_notice: "%{name} 现在是全局变体。" + convert_to_global_rename: + confirm: 转换 + text: 使用此名称的全局变体已存在。请使用其他名称。 + title: 为此变体选择其他名称 + created_by_migration: Migrated + delete: + description: 此类型将永久删除。此操作无法撤消。 + description_with_variants: 此类型及其所有变体将永久删除。此操作无法撤消。 + heading: 删除类型“%{name}”? + projects: + other: 'The type will be removed from %{count} projects:' + title: 删除类型 description: '类型和变体内的每个配置区域都可以独立配置、受限于另一种类型,或者完全关联到一个源类型。 ' duplicate_name: "%{name} 的副本" duplicate_notice: "%{name} 重复。" enabled_in_new_projects: 在新项目中有效 + filter: Filter by name + filter_no_results: No types match this filter make_default: 在新项目中激活 make_default_notice: "%{name} 现已在新项目中激活。" + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: 创建新的类型 no_results_title_text: 目前没有类型。 project_variants_count: - other: "%{count} 个项目特定变体" + other: "%{count} project-specific variants" remove_default: 不在新项目中激活 remove_default_notice: "%{name} 不再在新项目中激活。" type_label: 类型 variant_label: 变体 + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: 里程碑 + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: 请忽略这个警告。 message: 此页面可能会发生运行错误和不良用户体验。 @@ -6561,7 +7142,7 @@ zh-CN: authorization_rejected: 你不允许登录。 blocked: 暂时锁定 blocked_num_failed_logins: - other: 暂时锁定(%{count} 次尝试登录失败) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: 您即将更改 "%{name}" 的状态。确实要继续吗? deleted: 已删除的用户 department_ldap_managed_caption: 此部门通过 LDAP 同步进行管理,无法在此处更改。 @@ -6661,7 +7242,7 @@ zh-CN: deletion_warning: 确定要撤销此会话吗?您将在此设备上退出登录。 device: 设备 / 操作系统 expires: 过期 - instructions: 您已经通过以下设备登录到您的帐户。请撤销您无法识别或无法控制的设备的会话。 + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: 最后连接 may_not_delete_current: 您不能删除当前会话。 session_name: "%{os_name} 上的 %{browser_name} %{browser_version}" @@ -6721,12 +7302,18 @@ zh-CN: start_date: 开始日期 work_days: 工作日 work_days_count: - other: "%{count} 个工作日" + other: "%{count} working days" work_hours: 工作时数 version_status_closed: 关闭 version_status_locked: 锁定 version_status_open: 打开 versions: + filter_status_labels: + closed: 已关闭 + locked: 已锁定 + open: 打开 + index: + filter_label: 搜索版本 overview: no_results_title_text: 目前没有工作包分配给此版本。 work_packages_in_archived_projects: 该版本与归档项目共享,这些项目仍然有分配给此版本的工作包。虽然这些工作包被计算在内,但不会显示在链接视图中。 @@ -6756,7 +7343,7 @@ zh-CN: warning_user_limit_reached_admin_html: '添加额外的用户将超出当前限值。请[升级您的方案](upgrade_url),以确保外部用户能够访问此实例。 ' - warning_user_limit_reached_instructions: '您已达到用户限制(%{current}/%{max} 活跃用户)。请联系 sales@openproject.com 升级您的企业版计划以添加额外用户。 + warning_user_limit_reached_instructions: '您达到了用户限制(%{current}/%{max}活跃用户)。 请联系sales@openproject.com以升级您的Enterprise edition计划并添加其他用户。 ' wiki: @@ -6896,12 +7483,14 @@ zh-CN: required_description: 将此工作包标记为相关工作包的需求 requires_description: 将相关工作包标记为该工作包的需求 work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: 无法复制工作包。 could_not_be_deleted: 以下工作包无法删除: could_not_be_saved: 无法保存以下工作包: deletion_successful: - other: 成功删除 %{count} 个工作包。 + other: Successfully deleted %{count} work packages. descendant: 所选项的子工作包 move_failed: 无法移动工作包。 none_could_be_saved: "%{total} 个工作包全部无法更新。" @@ -6925,14 +7514,14 @@ zh-CN: description_with_visible_descendants: 确定要删除所选工作包和所有可见后代吗? heading: 永久删除这些 %{count} 工作包? hidden_descendants_only_warning: - other: 有 %{count} 个您看不到的后代。这些后代不会被删除,但其中的任何层级关系都将被移除。 + other: There are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. hidden_descendants_warning: - other: 所有可见后代都将被移除。不过,有 %{count} 个您看不到的后代。这些后代不会被删除,但其中的任何层级关系都将被移除。 + other: All visible descendants will be removed. However, there are %{count} descendants that you cannot see. They will not be deleted but any hierarchical relations will be removed. title: 删除 %{count} 个工作包 undeletable_descendants_warning: - other: 由于缺乏必要的权限,您无法删除 %{count} 个后代。这些后代将被保留,但其中的任何层级关系都将被移除。 + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - other: 由于在 %{projects} 中缺乏必要的权限,您无法删除 %{count} 个后代。这些后代将被保留,但其中的任何层级关系都将被移除。 + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. datepicker_modal: banner: description: @@ -6989,14 +7578,145 @@ zh-CN: description: 确定要删除“%{name}”吗? heading: 是否永久删除此工作包? hidden_descendants_only_warning: - other: 此工作包有 %{count} 个您看不到的后代。这些后代不会被删除,但层级关系将被移除。 + other: This work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. hidden_descendants_warning: - other: 所有可见后代都将被删除。不过,此工作包有 %{count} 个您看不到的后代。这些后代不会被删除,但层级关系将被移除。 + other: All visible descendants will be deleted. However, this work package has %{count} descendants that you cannot see. They will not be deleted but the hierarchical relation will be removed. title: 删除工作包 undeletable_descendants_warning: - other: 由于缺乏必要的权限,您无法删除 %{count} 个后代。这些后代将被保留,但其中的任何层级关系都将被移除。 + other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: - other: 由于在 %{projects} 中缺乏必要的权限,您无法删除 %{count} 个后代。这些后代将被保留,但其中的任何层级关系都将被移除。 + other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: '目标项目中未启用这些工作包或其后代的类型。如果您希望工作包类型保持不变,请在目标项目中启用缺少的类型。否则,请从列表中选择目标项目中的可用类型。 @@ -7028,34 +7748,50 @@ zh-CN: version: no_results_title_text: 目前有可用的版本。 x_descendants: - other: "%{count} 个子工作包" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: 将当前工作流复制到同一工作包类型中的一个或多个角色。如果所选角色已具有工作流,当前工作流将被覆盖。 - label: 复制到其他角色 - from_type: - caption: 将当前工作流复制到其他工作包类型中。如果所选类型已具有工作流,当前工作流将被覆盖。这会影响所有角色。 - label: 复制到其他类型 - source_role_id: - label: 源角色 target_role_ids: label: 目标角色 - target_variant_ids: - label: 目标类型 from_roles: create: notice: other: 已成功将工作流复制到 %{count} 个角色。 - from_variants: - create: - notice: - other: 已成功将工作流复制到 %{count} 种类型。 new: - title: 复制“%{source_type}”的工作流 + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: 工作流矩阵 matrix_caption_assignee: 受理人的工作流矩阵 matrix_caption_author: 作者的工作流矩阵 @@ -7064,12 +7800,82 @@ zh-CN: matrix_check_uncheck_all_in_row_label_html: 切换从“%{old_status}”到所有新状态的转换 matrix_checkbox_label: 允许从“%{old_status}”转换为“%{new_status}” matrix_uncheck_all_label: 禁止所有转换 + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: 按类型名称筛选… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: 为每个工作包类型配置状态过渡。 + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: 更改工作日 dialog: diff --git a/config/locales/crowdin/zh-TW.seeders.yml b/config/locales/crowdin/zh-TW.seeders.yml index 806b4986987d..ba385b3f81ce 100644 --- a/config/locales/crowdin/zh-TW.seeders.yml +++ b/config/locales/crowdin/zh-TW.seeders.yml @@ -257,70 +257,26 @@ zh-TW: 在這個模組,您可以與您的團隊成員溝通專案新訊。 versions: item_0: - name: Bug的待辦事項 - item_1: - name: 產品待辦事項 - item_2: - name: 衝刺1 wiki: - title: 衝刺1 + title: Release 1.0 content: | - ### Sprint 規劃會議 - - _請在此記錄 Sprint 規劃會議的主題_ - - * 時間框定 (8 小時) - * 輸入:產品 Backlog - * 輸出:Sprint Backlog - - * 分成兩個額外的時間方塊(4 小時): - - * Product Owner 向團隊提出 [Product Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) 和優先順序,並解釋 Sprint 目標,團隊必須同意。他們一起從 Product Backlog 中排列出團隊在下一個衝刺中要處理的主題的優先順序。團隊承諾完成所討論的交付。 - * 團隊自主地(在沒有 Product Owner 的情況下)進行詳細計劃,並從討論的需求中分解任務,以整合出 [Sprint Backlog]({{opSetting:base_url}}/projects/your-scrum-project/backlogs). - - - #### 每日 Scrum 會議 - - _請在此記錄每日 Scrum 會議的主題_ + ### Release 1.0 - * 簡短的團隊每日狀態會議。 - * 時間框定(最多 15 分鐘)。 - * 站立會議,討論 [任務板](##sprint:scrum_project__version__sprint_1) 中的下列主題。 - * 在下一次每日 Scrum 之前,我打算做什麼? - * 什麼阻礙了我的工作(障礙)? - * Scrum Master 主持並記下 [Sprint Impediments](##sprint:scrum_project__version__sprint_1)。 - * Product Owner 可能會參與,以便隨時掌握資訊。 + _Please document here what this release contains._ - ### Sprint Review 會議 - - _請在此記錄 Sprint Review 會議的主題_ - - * 時間框定 (4 小時)。 - * 每人最多 1 小時的準備時間。 - * 團隊向產品擁有者和其他有興趣的人展示這次衝刺的成果。 - * 重要事項:無假人、無 PowerPoint!只需展示已完成的產品功能(增量)。 - * 希望得到產品所有人、利害關係人及其他人士的反饋,並將其納入進一步的工作中。 - * 基於所展示的功能,產品負責人決定使用此增量或進一步開發。這種可能性允許早期投資報酬率。 - - - ### Sprint Retrospective - - _請在此記錄 Sprint Retrospective 會議的主題_ - - * 時間框定 (3 小時)。 - * Sprint Review 之後,將由 Scrum Master 主持。 - * 團隊討論 Sprint:哪些地方做得好,哪些地方需要改進,以提高下一個 Sprint 的生產力,甚至是更多的樂趣。 - item_3: - name: 衝刺2 + * The work packages of this release are the ones with the target version 1.0. + * The release date is the date of the *Release v1.0* milestone. + * Open the [Roadmap]({{opSetting:base_url}}/projects/your-scrum-project/roadmap) to follow the progress of all versions. + * Open [Project settings → Versions]({{opSetting:base_url}}/projects/your-scrum-project/settings/versions) to link another wiki page to a version. categories: item_0: 類別 1 ( 將於專案設定變更 ) queries: item_0: name: 專案計畫 item_1: - name: 產品待辦事項 + name: Version 1.1 item_2: - name: 衝刺1 + name: Version 1.0 item_3: name: 任務 boards: @@ -346,20 +302,21 @@ zh-TW: options: name: 開始 text: | - 我們很高興您加入!我們建議您嘗試幾個步驟來開始使用 OpenProject。 + We are glad you joined! We suggest to try a few things to get started in OpenProject. - _嘗試以下步驟:_ + _Try the following steps:_ + + 1. *Invite new members to your project*: → Go to [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) in the project navigation. + 2. *View your Product backlog and Sprint backlogs*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) in the project navigation. + 3. *Create a sprint*: → Go to [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) and click "+ Sprint" to create a new sprint. Move work packages from the backlog to the sprint to plan the work to be done. When ready, click "Start sprint". + 4. *View your Sprint board*: → Go to [Boards]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Open the sprint's board by clicking on the sprint's name. + 5. *Create a new work package*: → Go to [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 6. *Create and update a project plan*: → Go to [Project plan](##query:scrum_project__query__project_plan) in the project navigation. + 7. *Activate further modules*: → Go to [Project settings → Modules]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 1.*邀請新會員加入您的專案*: → 前往專案導覽中的【會員】({{opSetting:base_url}}/projects/your-scrum-project/members)。 - 2.*查看您的 Product backlogs 和 Sprint backlogs*: → 前往專案導覽中的 [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) 。 - 3.*檢視您的任務板*: → 進入 [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → 點擊 Sprint 上的向右箭頭 → 選擇 [Task Board](##sprint:scrum_project__version__sprint_1)。 - 4.*Create a new work package*: → 進入 [Work packages → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5.*Create and update a project plan*: → 前往專案導覽中的 [Project plan](##query:scrum_project__query__project_plan)。 - 6.*建立 Sprint wiki*: → 轉到 [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs),然後在 sprint 中從右邊的下拉式功能表開啟 sprint wiki。您可以根據需要編輯 [wiki 模板]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) 。 - 7.*啟動更多模組*: → 進入 [專案設定 → 模組]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - 在這裡您可以找到我們的 [使用者指南](https://www.openproject.org/docs/user-guide/)。 - 如果您有任何問題或需要支援,請告訴我們。聯絡我們:[support[at]openproject.com](mailto:support@openproject.com). + Here you will find our [User Guides](https://www.openproject.org/docs/user-guide/). + Please let us know if you have any questions or need support. Contact us: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: 工作套件 diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 26cfc0d497a8..9a0133169569 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -40,7 +40,9 @@ zh-TW: view: A dynamic link to a view placed using a macro. work_package: A dynamic link to a work package placed using a macro. account: + already_have_an_account: You already have an account? auth_source_login_html: Please login as %{login} to activate your account. + continue_with_provider: Continue with %{name} delete: 刪除帳號 delete_confirmation: 您確定要刪除這個帳號嗎? deletion_info: @@ -65,7 +67,9 @@ zh-TW: error_self_registration_limited_provider: '用戶註冊在''%{name}''單點登錄提供商上受限。請向管理員請求啟用您的賬戶,或者更改該提供商的自主註冊限制。 ' - login_with_auth_provider: 或使用您的現有帳號登錄 + login_title: Sign in to %{app_title} + login_with_external_account: Sign in with an external account + no_account_yet: You don't have an account yet? omniauth_direct_login_continue: Continue to sign in omniauth_direct_login_redirecting: Redirecting you to your identity provider… omniauth_login: 請登入來啟用您的帳號。 @@ -118,6 +122,8 @@ zh-TW: auth_provider: additional_form_action_urls: 其他允許的登入重定向網址 scim_clients: SCIM 用戶端 + automation: + actions: Actions calculated_value_error: customized_id: 自訂 ID customized_type: 客製化類型 @@ -128,8 +134,6 @@ zh-TW: repository: 版本庫 comment: commented: 已留言 - custom_action: - actions: 操作 custom_field: admin_only: 僅限管理員 allow_non_open_versions: 允許非開放版本 @@ -168,6 +172,7 @@ zh-TW: uid: 用戶端 ID emoji_reaction: reactable: 反應於 + reaction: Reaction enterprise_token: active_user_count_restriction: 活躍使用者 encoded_token: Enterprise support token @@ -179,20 +184,44 @@ zh-TW: company: 公司 favorite: favorited: 項目 + form_configuration: + attribute_groups: Form + description: Description + name: Name + type_variants: Types and variants using this form + form_configuration_attribute: + attribute_key: Attribute + custom_field: Custom field + group: Group + position: Position + form_configuration_group: + default_key: Default group + kind: Kind + label: Label + query: Query grids/grid: column_count: 欄數: page: 頁面 row_count: 列數 widgets: 小工具 group: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type group_users: Group users identity_url: 身份識別 URL organizational_unit: Organizational unit parent: Parent group group_detail: + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type organizational_unit: Organizational unit parent: Parent group import/jira: + auth_method: Auth method + basic_auth_password: Basic auth password + basic_auth_username: Basic auth username name: Jira 實例名稱 personal_access_token: 個人存取權杖 url: Jira 實例網址 @@ -223,6 +252,7 @@ zh-TW: title: 標題 member: blocked: Blocked + principal_type: Member type roles: 角色 notification: read_ian: 在應用程式內閱讀 @@ -235,6 +265,7 @@ zh-TW: position: Position persisted_query: filters: Filters + group_bys: Group results by name: Name orders: Orders selects: Selects @@ -367,6 +398,8 @@ zh-TW: ongoing: 開啟中 spent_on: 日期 type: 類型 + token/base: + expires_on: Expiration date token/ical: calendar: 行事曆 ical_token_query_assignment: 指派查詢 @@ -384,19 +417,17 @@ zh-TW: type_variant: attribute_groups: Form default_work_package_description: Default text for description - defaults_source: 預設來源 enabled_in_new_projects: Active in new projects - form_configuration_source: 表單來源 + linked_aspects: Inherited configuration patterns: Patterns - pdf_export_source: PDF 匯出來源 - project_attributes_source: 專案屬性來源 project_types: Projects using this variant variant: Variant variant_name: Name - workflows_source: 工作流程來源 + workflow: Workflow user: admin: 管理員 auth_source: 驗證方式 + avatar_type: Avatar type consented_at: 同意在 current_password: 目前的密碼 department: Department @@ -410,7 +441,7 @@ zh-TW: last_name: 姓 ldap_auth_source: LDAP 連線 new_password: 新密碼 - password_confirmation: 確認密碼 + password_confirmation: Password confirmation user_custom_field: custom_field_section: Section user_non_working_time: @@ -419,11 +450,15 @@ zh-TW: user_preference: auto_hide_popups: 自動關閉成功通知 auto_hide_popups_caption: 啟用時,綠色的成功通知會在 5 秒內自動關閉。 + avatar_color: Fallback color + avatar_text: Avatar text + avatar_type: Avatar type button_update_alerts: 更新提醒設定 button_update_look_and_feel: 更新介面與外觀 button_update_user_information: 更新個人資料 comments_sorting: 顯示工作套件活動,排序方式為 daily_reminders: 每日提醒 + date_format: Date format disable_keyboard_shortcuts: 停用鍵盤快速鍵 dismissed_enterprise_banners: 隱藏的企業版廣告 force_dark_theme_contrast: 在黑暗模式中強制高對比度 @@ -434,13 +469,23 @@ zh-TW: header_look_and_feel: 介面與外觀 impaired: 協助工具模式 increase_contrast: 增加對比度 - increase_contrast_caption: 啟用所選色彩模式的高對比模式。 + increase_contrast_caption: Enables high-contrast mode for the chosen color mode. increase_theme_contrast: 增加主題對比 mode_guideline: 某些模式會覆蓋自訂主題的顏色,以提高可訪問性和可存取性。請選擇「Light」模式,以獲得完整的自訂主題支援。 + require_double_click_for_inline_edit: Require double click to edit fields + require_double_click_for_inline_edit_caption: When enabled, a single click no longer opens a field for editing. This makes it easier to select and copy text, e.g. in a work package description. theme: 色彩模式 + time_format: Time format time_zone: 時區 warn_on_leaving_unsaved: 離開尚未儲存的工作套件時提示我 workdays: 工作日 + user_resource: + description: Description + name: Name + user_filter: User filter + user_resource_detail: + description: Description + user_filter: User filter user_working_hours: availability_factor: Availability factor days: Working days @@ -491,6 +536,7 @@ zh-TW: title: 工作日 true: 包含非工作日 journal_internal: 內部日誌 + labels: Labels notify: 通知 observed_in_versions: Observed in versions parent: 上層目錄: @@ -519,6 +565,10 @@ zh-TW: work_package: Work package work_package_version: kind: Kind + workflow: + description: Description + name: Name + type_variants: Types and variants using this workflow errors: messages: accepted: 必須被接受 @@ -590,6 +640,8 @@ zh-TW: regex_invalid: 不能被相關聯的正則運算式驗證。 regex_list_invalid: "%{invalid_lines} 行無法解析為正規表示式。" regex_match_failed: 與正則表達式 %{expression} 不匹配。 + replacement_workflow_invalid: The selected replacement must be another available workflow. + replacement_workflow_required: A replacement workflow must be selected before this workflow can be deleted. smaller_than_or_equal_to_max_length: 必須小於或等於最大長度。 smaller_than_or_equal_to_max_value: must be smaller than or equal to maximum value. ssrf_filtered: violates the SSRF policy of this OpenProject instance. @@ -612,6 +664,10 @@ zh-TW: user_in_ldap_managed_department: This user belongs to a department managed by LDAP synchronization and cannot be moved. wrong_length: 長度錯誤 (應該要有 %{count} 個字元) models: + ai/text_transform_run: + attributes: + base: + not_available: This action is not available. attachment: attributes: content_type: @@ -671,6 +727,16 @@ zh-TW: general_consent: 請接受條款與條件。 favorite: already_favorited: 已收藏。 + form_configuration: + attributes: + attribute_groups: + attribute_unknown: Invalid work package attribute used. + attribute_unknown_name: 'Invalid work package attribute used: %{attribute}' + duplicate_group: The group name '%{group}' is used more than once. Group names must be unique. + group_without_name: Group name can't be blank. + query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}' + base: + default_undeletable: The default form cannot be deleted. Mark another form as default first. grids/grid: end_before_start: 結束值必須大於開始值。 outside: 不在網格(grid)內。 @@ -688,6 +754,13 @@ zh-TW: not_unique: 已被使用。請選擇其他名稱。 jira: invalid_protocol: Please provide a valid protocol (http or https) + label: + attributes: + name: + blank: Name cannot be empty. + format: "%{message}" + taken: A label with this name already exists. Please use another one. + too_long: Name is too long (maximum is %{count} characters). ldap_auth_source: attributes: tls_certificate_string: @@ -743,7 +816,6 @@ zh-TW: types: cannot_assign_multiple_variants_of_parent: Can only enable a single variant of a Type on the project cannot_assign_variant_and_parent: 'Cannot assign a variant and its parent ' - cannot_assign_variants_yet: 目前尚無法在專案中啟用變體。請啟用此功能標誌以試用變體 in_use_by_work_packages: "%{types} 仍在被工作套件使用中" switch_target_blank: Select the variant to switch to switch_target_identical: The target type must be different from the type the project uses now @@ -856,42 +928,26 @@ zh-TW: blank: 請提供令牌名稱 format: "%{message}" in_use: 此令牌名稱已被使用,請選擇其他名稱 + type: + attributes: + base: + in_use_by_work_packages: This type cannot be deleted while work packages still use it. type_variant: attributes: - attribute_groups: - attribute_unknown: 使用了無效的工作項目屬性。 - attribute_unknown_name: 使用了無效的工作項目屬性: %{attribute} - duplicate_group: 群組名稱 %{group} 已被使用,群組名稱不可重複。 - group_without_name: 群組名稱不能為空。 - query_invalid: 內嵌查詢「%{group}」無效: %{details} base: - borrowed_by_variants: 當其設定仍被 %{names} 重複使用時,無法刪除。 is_default_variant: The default configuration of a type cannot be deleted. project_variants_not_allowed: This type does not allow creation of variants inside projects. restrict_dependent_destroy: has_many: Cannot be deleted while projects are still using it. - defaults_source_id: - must_be_available_to_the_variant: 這必定是本專案可用的某種設定。 - would_create_cycle: 會將這些設定以迴圈方式串聯起來。 enabled_in_new_projects: not_available_to_project_owned_variant: cannot be set on a variant a project owns. taken: is already set for another configuration of this type. - form_configuration_source_id: - must_be_available_to_the_variant: 這必定是本專案可用的某種設定。 - would_create_cycle: would link these configurations in a loop. patterns: invalid_tokens: One or more attributes inside the field are not valid. Please, fix the attributes before saving. - pdf_export_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. - project_attributes_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. variant: must_belong_to_the_type: must be a variant of this type. - workflows_source_id: - must_be_available_to_the_variant: must be a configuration this project can use. - would_create_cycle: would link these configurations in a loop. + workflow: + not_available_to_this_variant: must be a workflow this project can use. user: attributes: base: @@ -905,7 +961,7 @@ zh-TW: numeric: 數字(例如:「1」) requirements_not_met: 'Must include characters of the following types: %{rules}' reused: - other: 先前%{count} 個已被使用,請改用別的 + other: has been used before. Please choose one that is different from your last %{count}. special: 特別(例如:「%」) uppercase: 大寫(例如:「A」) password_confirmation: @@ -974,6 +1030,8 @@ zh-TW: identifier: must_not_be_changed: 'must not be changed manually. Work package identifiers are allocated automatically and resolved through the alias table, so changing them by hand breaks links and identifier history. If this change is deliberate, save with `save(context: :%{context})` and keep the work_package_semantic_aliases table consistent.' semantic_identifier_incomplete: and sequence_number must both be set at the same time. + observed_in_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. parent: cannot_be_in_another_project: 不能在另一個專案中 cannot_be_milestone: 不能是里程碑 @@ -1001,6 +1059,8 @@ zh-TW: status_id: status_invalid_in_type: 無效, 因為此類型中不存在目前狀態。 status_transition_invalid: 無效,因為目前使用者的角色沒有從舊狀態到新狀態的有效過度狀態 + target_versions: + error_readonly: cannot be set because you are not allowed to assign versions in this project. type: cannot_be_milestone_due_to_children: 不可以是里程碑,因為這個工作套件有子套件。 is_not_a_valid_target_for_time_entries: '工作套件 #%{id} 不是重新分配時間項目有效的目標。' @@ -1009,7 +1069,7 @@ zh-TW: template: body: 請檢查下列欄位: header: - other: 有 %{count} 個錯誤發生導致「%{model}」無法被保存。 + other: "%{count} errors prohibited this %{model} from being saved" models: action: other: Actions @@ -1035,6 +1095,8 @@ zh-TW: other: Work package attribute help texts auth_provider: other: 驗證提供者 + automation: + other: Automations backup: other: Backups capability: @@ -1049,8 +1111,6 @@ zh-TW: other: Colors comment: other: Comments - custom_action: - other: Custom actions custom_field: other: Custom fields custom_field/hierarchy/item: @@ -1081,6 +1141,8 @@ zh-TW: other: Exports export_setting: other: Export settings + form_configuration: + other: Forms forum: other: Forums global_role: @@ -1093,6 +1155,8 @@ zh-TW: other: Health reports issue_priority: other: 優先權 + label: + other: Labels ldap_auth_source: other: LDAP connections mcp_configuration: @@ -1293,7 +1357,28 @@ zh-TW: admin: banners: environment_configured_readonly: These values are configured via environment variables and cannot be edited here. + custom_fields: + delete_dialog_component: + heading: Do you want to delete the custom field %{name}? + title: Delete custom field %{name} custom_styles: + branding: + desktop: + description: By default the OpenProject logos are used, but if you upload new logos the theme will automatically be changed to Custom theme. For better results, we recommend a transparent logo. + title: Custom desktop logos + mobile: + description: By default the OpenProject logos are used for the mobile browser version, the native mobile app will not be updated by this change. For better results, we recommend a transparent logo. + title: Custom mobile logos + modes: + dark: + description: The app header will be black. We recommend a white logo on transparent background. + name: Dark mode logo + light: + description: Make sure to upload a logo that has enough contrast with the app header color selected. + name: Light mode logo + light_high_contrast: + description: The app header will be grey. We recommend a black logo on transparent background. + name: High contrast mode logo color_groups: base_colors: Base colors main_menu: Main lateral menu @@ -1326,7 +1411,11 @@ zh-TW: tab_interface: 介面 tab_pdf_export_font: PDF 匯出字型 tab_pdf_export_styles: PDF 匯出類型 - theme_warning: 改變佈景主題會覆蓋你的自訂樣式,你的變更將會遺失。你確定要繼續嗎? + theme_warning: + confirmation: I understand that this action cannot be reversed + description: Changing the theme will overwrite the custom styles and colors. The created design values will be lost. + heading: Change color theme? + title: Change color theme enterprise: add_token: 上傳企業版所需令牌(Token) book_now: 立即預約 @@ -1359,7 +1448,7 @@ zh-TW: import: title: Import info: - database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatability in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. + database_deprecation_html: 'Starting with OpenProject 16.0, PostgreSQL 16 is required to use OpenProject. Your installation will remain functional with your current database, but anticipate incompatibility in future releases.
We have prepared [upgrade guides for all installation methods](upgrade_guide). You can perform the upgrade ahead of the next release at any time by following the guides. ' jemalloc_allocator: Jemalloc 記憶體分配器 @@ -1367,12 +1456,15 @@ zh-TW: actions: button_edit: Edit configuration button_open: Open runs + api_client: + unknown_auth_method: Unknown authentication method. Please use 'bearer' or 'basic'. banner: contribution_callout: 'Please, help us improve the Jira Migrator with your feedback and private data donations. You can [join the development community](link) of the Jira Migrator. ' description: This Jira Migrator is currently in beta. We currently only support Jira Server/Data Center versions 10.x and 11.x. Cloud instances are not supported at this time. title: Beta - Try it out! + basic_auth_password_deleted: Basic auth password was successfully deleted. blank: description: Configure a Jira host to start importing items from Jira to this OpenProject instance. title: No Jira hosts configured yet @@ -1405,16 +1497,30 @@ zh-TW: description: Jira uses issue identifiers consisting of a project key and a sequence number (PRJ-123). OpenProject also supports it, but it needs to be enabled [here](link). title: Project-based semantic identifiers must be enabled. form: + auth_method: + basic: + caption: Use basic auth if you are using a Jira Server version 8 or the instance is configured behind a proxy. + label: Basic auth + bearer: + caption: We recommend using this authentication method. + label: Personal access token (PAT) button_add: Add configuration - button_delete_token: Delete token + button_delete_basic_auth_password: Delete basic auth password + button_delete_personal_access_token: Delete PAT button_save: Save configuration - delete_token_confirm: Are you sure you want to delete the token? This will disable the Jira connection. + button_test_connection: Test Connection + delete_basic_auth_password_confirm: Are you sure you want to delete the basic auth password? This will disable the Jira connection. + delete_personal_access_token_confirm: Are you sure you want to delete the personal access token (PAT)? This will disable the Jira connection. + exclude_resolution_fields_caption: You can exclude the resolution and resolution date fields from the import for this configuration. fields: + basic_auth_password: Password + basic_auth_username: Username + exclude_resolution_fields: Exclude resolution fields for this configuration name: Name - personal_access_token: Personal Access Token + personal_access_token: Personal access token (PAT) url: Jira Server/Data Center URL label_testing: Testing configuration... - test_configuration_caption: You can test this configuration by [clicking here](test) + personal_access_token_deleted: Personal access token (PAT) was successfully deleted. run: actions: button_edit: Edit run @@ -1659,23 +1765,52 @@ zh-TW: rest_line_text: Downloading attachments for %{projects_number} more projects title: Download attachments test: - api_error: Jira API returned error status %{status}. Please check your Jira instance URL and API token. + api_error: Jira API returned error status %{status}. Please check your Jira instance URL and credentials. + basic_auth_password_invalid: Invalid basic auth password. Please check your credentials in the configuration. + basic_auth_username_invalid: Invalid basic auth username. Please check your credentials in the configuration. connection_error: 'Connection error: %{message}' error: An unexpected error occurred while testing the connection failed: 'Connection failed: Unable to retrieve server information' invalid_url: Please provide a valid URL - missing_credentials: Please provide both URL and Personal Access Token to test the connection parse_error: Failed to parse the response from the server. The server may not be a valid Jira instance. + personal_access_token_invalid: Invalid personal access token (PAT). Please check your credentials in the configuration. success: Successfully connected to %{server} (version %{version}) - token_error: Invalid API token. Please check your credentials in the configuration. + user_is_not_admin: Credential's owner is not an Administer in Jira title: Jira Migrator - token_deleted: Token was successfully deleted. user: unknown_name: Unknown journal_aggregation: caption_with_maximum: 'User actions on a work package (changing description, status, values, or writing comments) are grouped if performed within this period. It also controls notification and [webhook](webhook_link) delays. The maximum is %{max} minutes. ' + labels: + delete_dialog_component: + confirmation: I understand that this action is not reversible + description_html: This will remove the label %{name} from all work packages in all projects. + heading: Delete this label? + title: Delete this label? + dialog_component: + create_title: Create label + rename_title: Rename "%{name}" + index: + description: All users able to edit work packages can freely tag work packages with either existing labels or create new ones instantly. This includes all labels created by users across all projects. + row_component: + used_in_work_packages: + other: "%{count} work packages" + sub_header_component: + button_add: Label + label_add: Add label + search_placeholder: Type here to search + table_component: + blank_slate: + description: Labels created by users on work packages will appear here. + title: No labels yet + headers: + name: Label + usage: Used in + no_matches: + description: Try a different search term. + title: No labels match your search mcp_configurations: index: description: The model context protocol allows AI agents to provide its users with tools and resources exposed by this OpenProject instance. This feature is still in beta. @@ -1706,6 +1841,18 @@ zh-TW: update: failure: 無法更新 MCP 設定。 success: MCP 組態已成功更新。 + members: + index: + blank_description: No membership matches the current filter. + blank_title: No memberships + filter_label: Search users + inheritance_source: "%{type} %{name}" + inherited_via: "(via: %{source})" + title: Memberships + placeholder_users: + index: + blank_description: No placeholder user matches the current filter. + blank_title: No placeholder users plugins: no_results_content_text: 請參閱我們的整合和外掛頁面以獲取更多資訊。 no_results_title_text: 目前沒有安裝任何外掛程式 @@ -1887,7 +2034,7 @@ zh-TW: types_caption: Add work package types for which this action should be available. All available variants will automatically be included. usage_scope_caption: 'You can limit where this action is visible: everywhere (including comments, wikis and custom fields), for all work package types or for certain work package types.' index: - description: Text transform actions give users LLM-powered actions to write, organise and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. + description: Text transform actions give users LLM-powered actions to write, organize and review text wherever the rich text editor is used, such as work package descriptions, comments and wiki pages. You create new actions using your own prompts and instructions. label_add_action: Action label_aria_add_action: Add text transform action index_component: @@ -1919,12 +2066,19 @@ zh-TW: ignore: Ignore changes save: Save changes and continue title: Save changes before continuing? + read_only: + edit_action: Edit workflow + text_html: 'You are using an existing workflow. To make changes, either edit the original workflow or click on + %{action} above to create a new one. + + ' role_selector: label: 'Role: %{role}' no_role: Select role roles: other: "%{count} roles selected" title: Select roles + with_transitions: With transitions + without_transitions: Without transitions status_button: Status statuses_dialog: caption: Add or remove statuses you would like to associate with this type. Removing a status will also delete the workflow associated with it. @@ -1946,7 +2100,31 @@ zh-TW: assignee: Additional transitions available to the work package's assignee. author: Additional transitions available to the work package's author. menu_label: Transitions shown + workflow_button: Workflow + ai: + text_transform: + errors: + connection_failed: The AI service could not be reached. + not_available: The AI assistant is not available. + timeout: The AI service did not respond in time. + upstream_error: The AI service returned an error. + pane: + cancel: Cancel + close: Close + copied: Copied + copy: Copy + discard: Discard + editor_gone: The editor is no longer open, so the text cannot be replaced. You can still copy it. + failed_title: Generation failed + generating: Generating… + replace: Replace + selection_gone: The selected text is no longer there, so it cannot be replaced. You can still copy it. + stopped_description: The response was blocked before it finished, so the partial text was discarded. + stopped_title: Generation stopped + title: AI result + try_again: Try again announcements: + content: Content is_active: 當前已顯示 is_inactive: 尚未顯示 show_until: 只顯示到 @@ -1954,7 +2132,7 @@ zh-TW: deleted_by_admin: 被隔離的檔案 '%{filename}' 已被管理員刪除。 deleted_message: 在檔案 '%{filename}' 中偵測到病毒。該檔案已被刪除。 not_processed_yet_message: 下載被阻止,因為尚未對文件進行病毒掃描。請稍後再試。 - overridden_by_admin: "%{user} 已移除檔案 '%{filename}' 的隔離區。現在可以存取該檔案。" + overridden_by_admin: The quarantine for file '%{filename}' has been removed by %{user}. The file can now be accessed. quarantined_attachments: container: 隔離區容器 delete: 刪除隔離區文件 @@ -2012,12 +2190,6 @@ zh-TW: not_found: reminder: 您查找的提醒不存在或已被刪除。 work_package: 找不到您要查找的工作套件或者它已被刪除。 - render: - context_not_parsable: 提供的對應文不是指向資源的連結。 - context_object_not_found: |- - Cannot find the resource given with the context. - 無法找到本文對應的資源。 - unsupported_context: 所提供的資源不受相對應支援。 unable_to_create_attachment: 無法創建附件 unable_to_create_attachment_permissions: 缺乏檔案系統權限,無法儲存此附件 user: @@ -2088,6 +2260,7 @@ zh-TW: groups: 群組 hexcode: 十六進位碼 id: ID + inexistent: Inexistent is_default: 預設值 is_for_all: 對所有的專案 issue: 工作套件 @@ -2138,6 +2311,7 @@ zh-TW: updated_at: 更新於 updated_on: 更新於 uploader: 上傳者 + url: URL user: 使用者 username: 使用者名稱 value: 值 @@ -2152,6 +2326,29 @@ zh-TW: ' login_and_registration: 登入及註冊 + automations: + actions: + add: Add action + assigned_to: + executing_user_value: "(Assign to executing user)" + name: Actions + conditions: Conditions + edit: Edit automation %{name} + new: New automation + plural: Automations + summary: + if: If + none: None + then: Then + title: Summary + when: When + trigger: Trigger + triggers: + button: + button_label: Button label + label: Button press + more_coming: OpenProject will add more trigger types soon. + name: Triggers background_jobs: status: cancelled_due_to: '作業因錯誤取消: %{message}' @@ -2280,6 +2477,7 @@ zh-TW: button_set_reminder: 設定提醒 button_show: 顯示 button_sort: 排序 + button_stop_timer: 停止計時器 button_submit: 提交 button_test: 測試 button_unarchive: 取消封存 @@ -2346,9 +2544,9 @@ zh-TW: text: failed: 無法從 “%{source_project_name}” 複製專案到 "%{target_project_name}" succeeded: 複製 "%{source_project_name}" 到 "%{target_project_name}"。 - title: 複製專案 %{source_project_name} + title: Duplicate project "%{source_project_name}" x_objects_of_this_type: - one: 一個此類型物件 + one: "%{count} object of this type" other: 有%{count} 此類型物件 zero: 無此類型物件 create_portfolio: @@ -2386,13 +2584,9 @@ zh-TW: plural: 自訂動作 custom_fields: admin: - custom_field_projects: - is_for_all_blank_slate: - description: 由於已勾選「適用於所有專案」選項,因此所有專案都會啟用此自訂欄位。個別專案無法停用。 - heading: 對所有的專案 hierarchy: subitems: - one: 1 個子項目 + one: "%{count} sub-item" other: "%{count} 子項目" zero: 無子項目 items: @@ -2413,7 +2607,7 @@ zh-TW: short: 簡稱 weight: 權重 notice: - remember_items_and_projects: 請記得在此自訂欄位索引標籤中設定項目和專案。 + remember_items_and_projects: Remember to set items for this custom field, and to make sure it is used in at least one project. role_assignment: description: 您可以自動將某個專案角色授予指派給此專案屬性的任何使用者,不論該使用者在該專案中的原始角色為何。 dialog: @@ -2478,16 +2672,17 @@ zh-TW: is_enabled_globally: 已全域啟用 multi_value_more: other: and %{count} more + no_results_title_text: There are currently no custom fields. no_role_assigment: 無角色指派 + overview: + description: 'In OpenProject, you can add custom fields to work packages, user profiles and even time log entries. These settings have been moved to their respective sections:' + heading: Settings moved placeholder_version_select: 需要先選擇工作套件或專案 reorder_alphabetical: 按字母順序重新排列 reorder_confirmation: 'Warning: The current order of available values as well as all unsaved values will be lost. Are you sure you want to continue?' semantic_keys: job_title: Job title none: None - tab: - no_results_content_text: 建立一個新的自定義欄位 - no_results_title_text: 目前沒有自定義的欄位 text_add_new_custom_field: '要加入客製欄位至一個專案,您必須先建立欄位才能將它們加入至此專案。 ' @@ -2551,40 +2746,40 @@ zh-TW: datetime: distance_in_words: about_x_hours: - other: 大約 %{count} 小時 + other: about %{count} hours about_x_months: - other: 大約 %{count} 個月 + other: about %{count} months about_x_years: - other: 大約 %{count} 年 + other: about %{count} years almost_x_years: - other: 差不多 %{count} 年 + other: almost %{count} years half_a_minute: 半分鐘 less_than_x_minutes: other: 少於 %{count} 分鐘 less_than_x_seconds: - other: 少於 %{count} 秒 + other: less than %{count} seconds over_x_years: - other: 超過 %{count} 年 + other: over %{count} years x_days: - other: "%{count} 天" + other: "%{count} days" x_hours: - other: "%{count} 一個小時" + other: "%{count} hours" x_hours_abbreviated: - other: "%{count} 小時" + other: "%{count} hrs" x_minutes: - other: "%{count} 分" + other: "%{count} minutes" x_minutes_abbreviated: - other: "%{count} 分" + other: "%{count} mins" x_months: - other: "%{count} 個月" + other: "%{count} months" x_seconds: - other: "%{count} 秒" + other: "%{count} seconds" x_seconds_abbreviated: - other: "%{count} 秒" + other: "%{count} s" x_weeks: - other: "%{count} 週" + other: "%{count} weeks" x_years: - other: "%{count} 年" + other: "%{count} years" units: day: other: 天 @@ -2731,7 +2926,7 @@ zh-TW: teaser: description_html: You have access to all %{trial_plan} features. title: - other: "%{count} %{trial_plan} 試用令牌所剩天數" + other: "%{count} days left of %{trial_plan} trial token" trial: already_retrieved: '您的試用 Enterprise 令牌已經被領取。請檢查您的電子郵件,令牌已隨信附上。如需新的,請聯絡我們的支援團隊。 @@ -3066,9 +3261,142 @@ zh-TW: selected: 已選取 include_sub_items: 包含子項目 no_results_text: 查無結果 + form_configurations: + button: Form + change: + select: + caption: The type shows its work packages with the attribute groups of the form you pick here. + label: Form + placeholder: Select a form… + title: Change form + default: + label: Default + mark: Mark as default + marked: "%{name} is now the default form. New types use it." + name: Default form + form: + copy_from: + caption: The new form starts with a copy of that form's attribute groups. + label: Copy from + placeholder: Select a form… + description: + caption: Add a short description about where and how will this form be used. + label: Description + edit_title: Edit form + name: + caption: Pick a name that will let you identify this form later in other places. + label: Form name + new_title: Create form + index: + actions: + edit: Edit form + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a form to define the attribute groups a type or variant shows on its work packages. + filtered_description: No form matches the current filters. + filtered_title: No matching forms + title: No forms + columns: + name: Form name + projects: Projects + types_and_variants: Types and variants + description: Every named work package form in this instance, with the types and variants using it. + filters: + name: Form + name_placeholder: Filter by form name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Form + implicit: "%{name} form" + selector: + default: "(Default)" + prefix: Form + same_as_type: "(same as type)" + title: Select form + start: + copy: + caption: Start with an existing form, change it as you wish and save it as a new form. + label: Start with a copy of an existing form + missing: Select the form to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with the default attribute groups and arrange them yourself. + label: Start from scratch + title: Configure a new form + tab: + read_only: + banner_html: 'You are using an existing form. To make changes, either edit the original form or click on + Form above to create a new one. + + ' + edit_action: Edit form + usage: + dialog: + button: View dependent types + caption_html: The form %{name} is used in the following types and variants. + title: Form used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this form yet. + used_by_types: + other: This form is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This form is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing form for this type with a pre-defined set of attribute groups. + label: Use an existing form + new: + caption: Arrange the attribute groups of a new form for this type. + label: Configure a new form forums: + index: + could_not_be_moved: Forum could not be moved. + forum_actions: Forum actions + no_results_title_text: There are currently no forums. show: - no_results_title_text: 論壇上目前沒有任何貼文。 + last_reply: Last reply + new_topic: New topic + no_results_title_text: No topics yet + sort: + fewest_replies: Fewest replies + most_replies: Most replies + newest: Newest + oldest: Oldest + oldest_activity: Oldest activity + recent_activity: Recent activity + topic: Topic + topic: + accept_as_solution: Accept as solution + accepted_solution: Accepted solution + accepted_solutions_banner: + other: 'Accepted solutions:' + add_work_package: Add new work package + edit_message: Edit message + gap: + load_previous: + other: Load previous %{count} replies + load_previous_page: Load previous %{count} replies (out of %{total}) + message_actions: Message actions + participants: + other: "%{count} participants" + quote_message: Quote message + remove_as_solution: Remove as solution + replies: + one: 1 reply + other: "%{count} replies" + zero: No replies yet + started_html: Started %{time} + view_work_package: View %{id} + with_accepted_solution: With accepted solution general_csv_decimal_separator: "." general_csv_encoding: UTF-8 general_csv_separator: "," @@ -3093,6 +3421,8 @@ zh-TW: groups: edit: synchronized_groups: 同步群組 + form: + group_attributes: Group attributes index: description: 透過將使用者分組,您可以將他們新增為相同專案的成員,或指派相同的全局角色給他們。 memberships: @@ -3118,6 +3448,10 @@ zh-TW: leave_project: Leave project no_favorite_projects: You have no favorite projects. title: Projects + whats_new: + title: What's new in %{version} + unread: Unread + view_release_video: View release video health_reports: common: checks: @@ -3129,7 +3463,7 @@ zh-TW: summary: failure: Some checks failed and the system does not work as expected. success: All connections and systems are working as expected. - warning: Some checks returned a warning. This can lead to unexpected behaviour. + warning: Some checks returned a warning. This can lead to unexpected behavior. result_component: status: failed: Failed @@ -3138,7 +3472,7 @@ zh-TW: warning: Warning help_texts: views: - favoured: 將此視圖標記為收藏項,並添加到左側的已保存視圖邊欄中。 + favoured: Mark this view as favorite and add to the saved views sidebar on the left. project: "%{plural} 總是附加在某個專案中。您只能在此選擇已啟用 %{plural} 模組的專案。建立 %{singular} 之後,您可以將其他專案的工作套件新增至其中。\n" public: 發布此版面,允許其他使用者存取您的版面。 具有「管理公開版面」權限的使用者可以修改或刪除公開查詢。 這不會影響該版面中工作套件的可見性,並且根據使用者的權限,使用者可能會看到不同的結果。 homescreen: @@ -3163,6 +3497,31 @@ zh-TW: line_6: Use Date alerts in the Community Edition. new_features_title: 'The release contains various new features and improvements, such as: + ' + '18_0': + new_features_list: + line_0: + description: Use with shared and project-specific workflows and forms + title: Type variants + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_1: + description: Sprint reports, including many new charts + title: Agile Reporting + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_2: + description: Summarize text, change formats, base it on templates + title: AI Text Actions + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_3: + description: Create and reuse tags + title: Labels + url: https://www.openproject.org/docs/release-notes/18-0-0/ + line_4: + description: Configure or delegate custom fields per project + title: Project-specific values + url: https://www.openproject.org/docs/release-notes/18-0-0/ + new_features_title: 'The release contains various new features and improvements, such as: + ' header: 閱讀關於新功能和產品更新的資訊。 learn_about: 進一步瞭解所有新功能 @@ -3199,8 +3558,10 @@ zh-TW: journals: cause_descriptions: budget_deleted: Budget has been deleted + forum_message_deleted: "(deleted)" import: changed_with_diff: "%{field} changed (%{link})" + csv: from CSV deleted_with_diff: "%{field} deleted (%{link})" field_changed: "%{field} changed from %{old_value} to %{new_value}" field_removed: "%{field} removed" @@ -3250,6 +3611,7 @@ zh-TW: budget_deleted: Budget has been deleted dates_changed: 日期變更 default_attribute_written: 已寫入只讀屬性 + forum_message_html: "Created from forum message %{message_information}" import: Imported meeting_agenda_item_added_html: "Added to meeting %{meeting_title_information}" meeting_agenda_item_added_template_html: "Added to %{meeting_title_information}" @@ -3402,10 +3764,10 @@ zh-TW: label_copy_target: 目標 label_copy_workflow_from: 工作流程來自於 label_copy_workflow_from_role: Copy to other roles - label_copy_workflow_from_type: Copy to another type label_core_build: 核心編譯 label_core_version: 核心版本 label_created_by: 由 %{user} 建立 + label_criteria: Criteria label_current_status: 目前狀態 label_current_version: 目前版本 label_custom_comment: "%{name} comment" @@ -3429,8 +3791,6 @@ zh-TW: label_custom_field_default_type: 空類型 label_custom_field_new: 新增欄位 label_custom_field_plural: 客製欄位 - label_custom_logo: 客製化桌面標誌 - label_custom_logo_mobile: 自訂手機標誌 label_custom_pdf_export_settings: 匯出PDF設定 label_custom_style: 設計 label_custom_style_description: 選擇 OpenProject 的主題外觀、選擇要在應用程式中使用的預設顏色以及匯出的外觀。 @@ -3439,11 +3799,12 @@ zh-TW: label_database_version: PostgreSQL 版本 label_date: 日期 label_date_and_time: 日期和時間 - label_date_format: 日期格式 + label_date_and_time_formats: Date and time formats label_date_from: 寄件者 label_date_from_to: 從 %{start} 到 %{end} label_date_to: 到 label_dates: 日期 + label_day: 日 label_day_plural: 天 label_default: 預設 label_defaults: 預設 @@ -3454,6 +3815,7 @@ zh-TW: label_deleted_custom_field: "(已刪除的客製欄位)" label_deleted_custom_item: "(刪除項目)" label_deleted_custom_option: "(刪除的選項)" + label_deleted_label: "(deleted label)" label_deleted_version: "(deleted version)" label_departments: Organization label_departments_description_html: 'Define your company’s structure by creating departments and sub-departments in a hierarchical way. This allows you to reflect reporting lines and maintain a clear, structured overview of your organization within OpenProject. You can also import an existing organization structure through [LDAP department synchronization](ldap_docs_article). @@ -3519,11 +3881,12 @@ zh-TW: label_filter_add: 新增條件 label_filter_any_name_attribute: 名稱屬性 label_filter_by: 篩選條件: - label_filter_plural: 篩選條件 + label_filter_plural: 篩選器 label_filters_toggle: 顯示/隱藏篩選條件 label_float: 浮點數 label_folder: 資料夾 label_follows: 關注 + label_form_configuration_plural: Forms label_formula: 公式 label_forum_new: 新增討論區 label_forum_plural: 討論區 @@ -3540,9 +3903,10 @@ zh-TW: label_global_roles: 全域角色 label_go_back: 回到上一層選單 label_go_forward: 開啟 %{module} 子選單 - label_greater_or_equal: 之前 + label_greater_or_equal: ">=" label_group: 群組 - label_group_by: 分類 + label_group_attributes_plural: Group attributes + label_group_by: 分組依據 label_group_named: 群組名稱 %{name} label_group_new: 新增群組 label_group_plural: 群組 @@ -3593,8 +3957,8 @@ zh-TW: label_journal_diff: 內容對比 label_jump_to_a_project: 前往一個專案... label_keyword_plural: 關鍵字 + label_label_plural: Labels label_language: 語言 - label_language_based: 根據使用者的語言 label_languages: 語言 label_last_activity: 最後的活動 label_last_change_on: 最後一次更改在 @@ -3609,13 +3973,14 @@ zh-TW: label_ldap_auth_source_plural: LDAP 連線 label_ldap_authentication: LDAP 認證 label_learn_more: 了解更多 - label_less_or_equal: 之後 + label_less_or_equal: "<=" label_less_than_ago: 幾天內 label_life_cycle_step_plural: 專案生命週期 label_link_url: 連結(URL) label_list: 清單 label_loading: 讀取中... label_locale: 語言和地區 + label_locale_based: Use default for user locale label_lock_user: 鎖定使用者 label_locked: 鎖定 label_logged_as: 登入為 @@ -3627,6 +3992,7 @@ zh-TW: label_managed_by_ldap: Managed by LDAP synchronization label_managed_repositories_vendor: 已管理的 %{vendor} 版本庫 label_mapping_for: 對應為: %{attribute} + label_markdown_version: Markdown version label_max_size: 最大容量 label_me: 我 label_member_all_admin: "(所有角色都由管理員狀態決定)" @@ -3645,7 +4011,6 @@ zh-TW: label_menu_item_name: 選單項目名稱 label_message: 訊息 label_message_last: 最後訊息 - label_message_new: 新增訊息 label_message_plural: 訊息 label_message_posted: 訊息已新增 label_minute_plural: 分鐘 @@ -3657,6 +4022,7 @@ zh-TW: label_module_plural: 模組 label_modules: 模組 label_modules_and_plugins: 模組與外掛 + label_month: 月 label_months_from: 從幾個月 label_more: 更多 label_more_information: 更多資訊 @@ -3670,6 +4036,7 @@ zh-TW: label_my_avatar: 我的大頭貼 label_my_queries: 我的自訂查詢 label_my_security: Security + label_my_time: My time label_name: 名稱 label_never: 無 label_new: 新增 @@ -3684,7 +4051,10 @@ zh-TW: label_news_singular: 最新消息 label_news_view_all: 檢視所有新聞 label_next: 下一頁 + label_next_day: 下一天 + label_next_month: 下個月 label_next_week: 下一週 + label_next_workweek: 下個工作週 label_next_year: Next year label_no_change_option: "(沒有變動)" label_no_data: 沒有資料可顯示 @@ -3692,6 +4062,7 @@ zh-TW: label_no_parent_group: "(No parent group)" label_no_parent_page: 無上層頁面 label_no_start_date: 無開始日期 + label_no_time: 無時間追蹤 label_nobody: 沒有人 label_non_working_days: Availability calendar label_non_working_days_summary: Summary @@ -3758,7 +4129,10 @@ zh-TW: label_preview: 預覽 label_preview_not_available: 無法提供預覽 label_previous: 上一個 + label_previous_day: 前一天 + label_previous_month: 前一個月 label_previous_week: 前一週 + label_previous_workweek: 前個工作週 label_previous_year: Previous year label_principal_invite_via_email: 或者透過郵件邀請新的使用者 label_principal_search: 增加現有使用者或群組 @@ -3877,6 +4251,7 @@ zh-TW: label_sort_lowest: 移到底部 label_sorted_by: 以 %{value} 排序 label_spent_time: 工時 + label_stack: Stack label_start_to_end: 開始到結束 label_start_to_start: 開始到開始 label_starts_with: starts with @@ -3889,13 +4264,14 @@ zh-TW: label_storage_used_space: 已用磁碟空間 label_string: 文字 label_subitems: 子項目 - label_subject_or_id: 名稱或 id + label_subject_or_id: 主旨或 id label_subproject: 子專案 label_subproject_add: Add subproject label_subproject_plural: 子專案 label_subtask_plural: 子任務 label_summary: 總覽 label_system: 系统 + label_system_or_language_default: Use system or language based default label_system_settings: 系統設置 label_system_storage: 儲存空間資訊 label_table_of_contents: 目錄 @@ -3910,6 +4286,7 @@ zh-TW: label_time: 時間 label_time_entry_activity_plural: 工時活動 label_time_entry_plural: 工時 + label_timer_since: 從 %{time}開始 label_title: 標題 label_today: 今天 label_today_as_date: 選擇今天為開始日期。 @@ -3945,7 +4322,9 @@ zh-TW: label_user_search: 搜尋使用者 label_user_settings: 使用者設定 label_users_settings: 使用者設定 + label_value: Value label_value_x: '值: %{x}' + label_version_custom_field_plural: Version custom fields label_version_edit: 編輯版本 label_version_new: 新增版本 label_version_plural: 版本 @@ -3958,6 +4337,7 @@ zh-TW: label_videos: 影片 label_view_all_revisions: 檢視所有修訂 label_view_diff: 檢視差異 + label_view_mode_switcher: 變更檢視 label_view_revisions: 檢視修訂 label_view_x: 'View: %{x}' label_watched_work_packages: 監看的工作套件 @@ -3981,6 +4361,8 @@ zh-TW: label_wiki_start: 開始頁面 label_wiki_toc: 目錄 label_wiki_toc_empty: 目錄不存在,因為沒有任何標題。 + label_with_criteria: With criteria + label_without_criteria: Without criteria label_work: 工時 label_work_package: 工作套件 label_work_package_attachments: 工作套件附件 @@ -4003,36 +4385,37 @@ zh-TW: label_working_days: Working days label_working_days_and_hours: 工作日和工作小時 label_working_hours: Work schedule + label_workweek: 工作週 label_x_closed_work_packages_abbr: - one: 1 已結束 + one: "%{count} closed" other: "%{count} 個已結案" zero: 0 個已關閉 label_x_comments: - one: 1 則留言 + one: "%{count} comment" other: "%{count} 個留言" zero: 沒有留言 label_x_days: other: "%{count} days" label_x_files: - one: 1 個檔案 + one: "%{count} file" other: "%{count} 檔案" zero: 沒有檔案 label_x_items: - one: 1 item + one: "%{count} item" other: "%{count} items" zero: no items label_x_items_selected: other: "%{count} items selected" label_x_open_work_packages_abbr: - one: 1 開啟中 + one: "%{count} open" other: "%{count} 個未完成" zero: 0 個已開啟 label_x_projects: - one: 1 個專案 + one: "%{count} project" other: "%{count} 個專案" zero: 沒有專案 label_x_work_packages: - one: 1個工作套件 + one: "%{count} work package" other: "%{count} 個工作套件" zero: 無工作套件 label_x_working_days: @@ -4092,7 +4475,7 @@ zh-TW: start_tls: STARTTLS start_tls_description: 連接到標準LDAP端口後發送STARTTLS命令。推薦用於加密連接。 tls_options: - tls_certificate_description: 如果LDAP服務器證書不在此系統中,您可以在此手動增加它。輸入PEM X509證書字符串。 + tls_certificate_description: If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certificate string. verify_peer: 驗證SSL證書 verify_peer_description_html: '啟用憑證信任鏈的嚴格 SSL 驗證。
警告:取消選取此選項將停用 LDAP 伺服器憑證的 SSL 驗證。這會暴露您與中間人攻擊的關係。 @@ -4149,6 +4532,8 @@ zh-TW: you_have: 你擁有 logo_alt_text: 商標 mention: + message_body: "%{user_name} mentioned you:" + message_subject: "%{user_name} mentioned you in %{subject}" subject: "%{user_name} mentioned you in %{id} - %{subject}" notification: center: 顯示通知中心 @@ -4205,10 +4590,7 @@ zh-TW: mentioned: 您在討論中被cue到 mentioned_by: "%{user} 留言時提到您。" more_to_see: - other: |- - 還有 1 個工作套件通知 - - 還有 %{count} 個工作套件通知。 + other: There are %{count} more work packages with notifications. open_in_browser: 在瀏覽器中開啟 reason: assigned: 指派 @@ -4380,6 +4762,12 @@ zh-TW: create_button: 建立 dialog_body: 此令牌(Token)將允許第三方應用程式與您的實例進行通訊。為了區分新的 API 令牌,請為它命名。 dialog_title: 產生新 API 令牌(Token) + expires_on_caption: The token stays valid until the end of the selected day. + expiry_custom: Custom date + expiry_label: Expiration + expiry_never: No expiration + expiry_preset: + other: "%{count} days (%{date})" name_label: 令牌名稱 failed_to_create_token: '無法建立訪問令牌(Token): %{error}' failed_to_reset_token: '無法重置訪問令牌(Token): %{error}' @@ -4393,10 +4781,26 @@ zh-TW: password_confirmation_dialog: confirmation_required: 您需要輸入帳戶密碼來確認這項變更。 title: 確認您的密碼以便繼續 + timer: + stop: Stop + tracking: Time tracking + work: + actions: + assign_to_me: Assign work package to me + delete_time_entry: Delete time entry + edit_time_entry: Edit time entry + log_time_from_allocation: Log time from allocation + open_project: Open project + open_work_package: Open work package + entries_filter: + all: All entries + allocated: Allocations only + logged: Logged time only my_account: access_tokens: access_tokens: 存取令牌(Token) description: 提供者令牌由 OpenProject 發行,允許其他應用程式存取。用戶端識別碼由其他應用程式發行,允許 OpenProject 存取它們。 + expired_on: Expired on %{date} headers: action: 動作 expiration: 過期 @@ -4600,7 +5004,6 @@ zh-TW: 找到 %{number} 條結果。  Tab鍵以轉到第一條結果。 notice_principals_found_single: "有一個結果。 \n Tab鍵轉到該結果。" - notice_project_cannot_update_custom_fields: 無法更新專案的可用客製欄位。專案無效:%{errors} notice_project_not_deleted: 專案沒有被刪除 notice_project_not_found: 未找到專案。 notice_requires_enterprise_token: 企業識別碼遺失或不允許存取此頁面。 @@ -4610,9 +5013,6 @@ zh-TW: notice_successful_create: 建立成功 notice_successful_delete: 刪除成功 notice_successful_update: 更新成功 - notice_successful_update_custom_fields_added_to_project: '更新成功。相關類型之專案,此客製欄位會自動啟動。看更多。 - - ' notice_to_many_principals_to_display: |- 搜尋的結果太多。 請透過輸入新成員 (群組) 的名稱來縮小搜尋的範圍。 @@ -4801,8 +5201,6 @@ zh-TW: not_found: 未找到。 respond_to?: 未執行所需的方法。 rules: - copy_workflow_from: - workflow_missing: 沒有自己的工作流程。 custom_field: format_not_supported: 格式 '%{field_format}' 不支援。 item: @@ -4822,7 +5220,6 @@ zh-TW: or: 或 rules: blueprint: 樣式藍圖 - copy_workflow_from: 工作流程複製的類型 depth: 深度 enabled: 啟用 item: 項目 @@ -4894,8 +5291,8 @@ zh-TW: label: Table of contents page_nr_footer: 頁面 %{page} of %{total} template_artefact: - caption: Work package details rendered as a PMflex Artefact. - label: PMflex Artefact + caption: Work package details rendered as a PMflex Artifact. + label: PMflex Artifact template_attributes: caption: All the attributes present in the current form using the default template. label: 屬性以及說明 @@ -4920,7 +5317,7 @@ zh-TW: permission_change_work_package_status_explanation: 允許在無編輯工作套件權限的情況下更改狀態 permission_comment_news: 在「最新消息」留言 permission_commit_access: 讀/寫 權限版本庫 (Commit) - permission_copy_projects: 複製專案 + permission_copy_projects: Duplicate projects permission_copy_projects_explanation: 在範本專案中,此權限具有次要功能,它允許建立源自範本的新專案。 permission_copy_work_packages: 複製工作套件 permission_create_backup: 建立備份 @@ -4953,6 +5350,7 @@ zh-TW: permission_export_projects: 匯出專案 permission_export_work_packages: 匯出工作套件 permission_header_for_project_module_work_package_tracking: 工作套件與甘特圖 + permission_import_work_packages: Import work packages permission_invite_members_by_email: 透過電子郵件邀請會員 permission_invite_members_by_email_explanation: '允許使用者透過電子郵件邀請新會員。受邀的使用者會收到一封電子郵件,內含設定密碼和啟動帳戶的連結。取決於管理會員的權限 @@ -4963,6 +5361,9 @@ zh-TW: permission_manage_dashboards: 管理儀表板 permission_manage_forums: 管理討論區 permission_manage_members: 管理成員 + permission_manage_members_explanation: 'Caution: Users with this permission can assign any project role to any member, including roles with permissions that they themselves don''t have. This includes changing their own roles, allowing users to give themselves more permissions on the project. + + ' permission_manage_news: 管理消息 permission_manage_own_reminders: 建立自己的提醒事項 permission_manage_own_working_times: Manage own working times @@ -4991,7 +5392,6 @@ zh-TW: permission_save_bcf_queries: 保存 BCF 查詢 permission_save_queries: 儲存版面 permission_search_project: 搜尋專案 - permission_select_custom_fields: 選擇客製欄位 permission_select_project_custom_fields: 選擇專案屬性 permission_select_project_modules: 選擇專案的模組 permission_select_project_phases: 選擇專案階段 @@ -5025,6 +5425,16 @@ zh-TW: permission_work_package_assigned: 成為執行者/負責人 permission_work_package_assigned_explanation: 工作套件可指派給在各自專案中擁有此角色的使用者或群組 placeholder_users: + criteria: + activate: Activate filter criteria + activate_caption: 'This allows to add a set of filters to this placeholder user used to define the possible users that fit the desired criteria. + + ' + enable: Match users by criteria + enable_caption: Describe the kind of user this placeholder stands for, so matching users can be suggested for it. + matching_users: Users meeting the filter criteria + no_matching_users: No user meets these criteria. + show_all_matching_users: Show all %{count} matching users delete_tooltip: 刪除佔位使用者 deletion_info: data_consequences: '出現的所有佔位符用戶(例如,作為受理人、負責人或其他用戶值) 將被重新分配給一個名為“已刪除用戶”的帳戶。 由於每個已刪除帳戶的數據都會被重新分配給此帳戶,因此無法將用戶創建的數據與另一個已刪除帳戶的數據區分。 @@ -5046,7 +5456,7 @@ zh-TW: name: OmniAuth SAML / SSO單點登錄 portfolio: count: - one: 1 個組合 + one: "%{count} portfolio" other: "%{count} 組合" zero: 0 個組合 filters: @@ -5057,7 +5467,7 @@ zh-TW: label: 專案組合名稱篩選 placeholder: 搜尋組合 sub_items_html: - other: "%{count}分項" + other: "%{count} sub-items" lists: active: 封存組合 archived: 已封存的專案組合 @@ -5071,7 +5481,7 @@ zh-TW: 可用於在表格中突顯工作套件。 program: count: - one: 1 個方案 + one: "%{count} program" other: "%{count} 個方案" zero: 0 個方案 filters: @@ -5083,7 +5493,7 @@ zh-TW: confirmation_message: Archiving this project will make it and all its descendants unavailable to all users of this instance. Archived projects can be restored. title: 封存專案 count: - one: 1 個專案 + one: "%{count} project" other: "%{count} 個專案" zero: 0 個專案 destroy: @@ -5188,11 +5598,11 @@ zh-TW: no_status_when_submitted: 啟用專案啟動請求失敗,因為工作包類型 %{type} 至少需要一個狀態與之相關。請為此工作包類型啟用至少一個狀態工作流程。 no_work_package_type: 啟用專案啟動請求失敗,因為它需要至少一個作用中的工作套件類型,而此專案沒有。請為此專案新增至少一個工作套件類型。 export: - description_attachment_export: The generated artefact will be saved as a PDF attachment to the artefact work package. - description_file_link_export: The artefact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. + description_attachment_export: The generated artifact will be saved as a PDF attachment to the artifact work package. + description_file_link_export: The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported. description_file_storage_selection: 選擇應使用哪個已設定的外部檔案儲存空間。 external_file_storage: 外部存儲空間 - label_artifact_export: Artefact export + label_artifact_export: Artifact export label_attachment_export: 儲存為工作套件檔案附件 label_file_link_export: 將檔案上傳至外部檔案儲存空間,並將檔案連結新增至工作套件 pdf_file_storage: PDF 檔案儲存 @@ -5202,6 +5612,12 @@ zh-TW: ' custom_fields: + changes_heading: Important changes + changes_text: 'Starting with version 18.0, custom fields are no longer enabled or disabled for each project. They are part of forms, which types and variants use. The list below shows the custom fields on the work packages of this project, and the variants that include them. + + ' + column_name: Custom field + column_variants: Variants no_results_title_text: 目前沒有客製欄位可用。 forums: no_results_content_text: 建立論壇。 @@ -5314,7 +5730,7 @@ zh-TW: variants_not_allowed: This type does not allow creation of variants inside projects. versions: no_results_content_text: 建立一個新版本 - no_results_title_text: 目前的專案沒有設定版本 + no_results_title_text: No versions matching the filter criteria were found for this project. show_work_packages: 顯示工作套件 work_packages_graph: 工作套件圖表 work_package_priorities: @@ -5322,15 +5738,27 @@ zh-TW: status: button_edit: 編輯狀態 wizard: - create_artifact_storage_error: Failed to store artefact in file storage - create_artifact_work_package_error: Failed to create artefact work package + create_artifact_storage_error: Failed to store artifact in file storage + create_artifact_work_package_error: Failed to create artifact work package no_custom_fields_html: This project has no project attributes enabled for the wizard. Please enable at least one in the project settings. no_help_text: 此屬性未定義任何說明文字。 progress_label: "%{current} of %{total}" sections: 區段 sidebar_content_title: 內容 - success: Project attributes saved and artefact work package created successfully. + success: Project attributes saved and artifact work package created successfully. title: 專案啟動請求 + pwa: + offline: + body: "%{app_title} reloads automatically as soon as your connection returns." + headline: You’re offline + headline_online: You’re back online + reloading: Reloading… + retry: Retry + retrying: Retrying… + status_checking: Checking your connection… + status_restored: Connection restored. Reloading… + status_still: Still offline. We’ll try again in a moment. + title: Offline queries: apply_filter: 套用篩選條件 configure_view: @@ -5359,7 +5787,7 @@ zh-TW: action_title: 反應 add_reaction: 加入反應 and_others: - other: 與其他 %{count} 個 + other: and %{count} others and_user: 和 %{user} react_with: 使用 %{reaction} 進行反應 reaction_by: "%{reaction} 由" @@ -5476,6 +5904,26 @@ zh-TW: warnings: cannot_annotate: 這個檔案無法註釋 roles: + delete_dialog: + confirm: Are you sure you want to delete this role? + entry_projects: + other: "(Projects: %{projects})" + entry_projects_truncated: + other: "(Projects: %{projects} and %{count} others)" + heading: + other: 'This role is still attributed to %{count} members:' + heading_unused: Are you sure you want to delete the role "%{name}"? + losing_project_access: + one: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + other: Out of these users, %{count} will lose access to projects in which this was their only role. Are you sure you want to delete this role? + zero: None of these users will lose access to any of their projects. Are you sure you want to delete this role? + show_memberships: Show all memberships with this role + summary: "%{users} in %{projects}" + summary_projects: + other: "%{count} projects" + summary_users: + other: "%{count} users" + title: Delete role edit: default_for_new_projects_warning: 'This role is configured as the default role given to non-admin users who create a project. Do not remove the following permissions, otherwise project creators will be unable to complete the setup of their newly created projects:' index: @@ -5487,6 +5935,14 @@ zh-TW: permissions: section_check_all_label: 指定所有 %{module} 權限 section_uncheck_all_label: 取消指定所有 %{module} 權限 + permissions_dialog: + edit_permissions: Edit role permissions + no_permissions: This role does not grant any permissions. + permission_count: + other: "%{count} permissions" + preview_action: View permissions + preview_aria_label: View the permissions of %{role} + title: Permissions of "%{name}" report: matrix_caption: "%{module} 模組的權限矩陣" matrix_check_all_label: 將所有 %{module} 權限指派給所有角色 @@ -5591,7 +6047,7 @@ zh-TW: setting_default_projects_wiki: Enable wiki functionality for new projects by default setting_diff_max_lines_displayed: 顯示比對差異的最大行數 setting_disable_password_login: 停用密碼驗證 - setting_display_subprojects_work_packages: 預設在主專案中顯示子專案的工作套件 + setting_display_subprojects_work_packages: Display subprojects work packages in main projects by default setting_duration_format: 持續時間格式 setting_duration_format_days_and_hours: 天數和小時數 setting_duration_format_hours_only: 僅限小時 @@ -5706,6 +6162,7 @@ zh-TW: setting_start_of_week: 一週起始於 setting_sys_api_description: 版控容器管理網路服務提供容器存取管理和使用者認證 setting_sys_api_enabled: 啟用版控容器管理網路服務 + setting_sys_api_key: API key setting_time_format: 時間 setting_total_percent_complete_mode: 完成百分比層級總計 setting_total_percent_complete_mode_simple_average: 簡易平均 @@ -5758,7 +6215,7 @@ zh-TW: description_html: '選擇防毒掃描程式整合應運作的模式。
  • %{disabled_option}:上傳的檔案不會進行病毒掃描。
  • %{socket_option}:您已設定ClamAV,且掃描程式clamd 在背景執行
  • %{host_option}:將檔案傳輸到外部病毒掃描主機。
' - remaining_quarantined_files_html: '病毒掃描已禁用。%{file_count} 個文件仍在隔離區。要查看被隔離的文件,請訪問此鏈接:%{link} + remaining_quarantined_files_html: 'Virus scanning has been disabled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} ' remaining_rescanned_files: '病毒掃描已成功啓用。之前上傳的 %{file_count} 仍需掃描。此過程已在後台安排。掃描期間,文件仍可訪問。 @@ -5769,6 +6226,7 @@ zh-TW: ' title: 病毒掃描中: attachments: + attachment_max_size_env_caption: This value is set via environment variables and cannot be changed here. Edit environment variables directly to change it. show_work_package_attachments: '禁用此選項將會為新專案隱藏工作套件文件標籤上的附件列表。 工作套件描述中的文件仍將上傳到內部附件存儲。 ' @@ -5862,12 +6320,12 @@ zh-TW: confirmation_message: 啟動請求精靈將不再適用於基於此模板的新專案。專案經理和專案所有人將需要在專案概述中手動設定和填寫相關資訊。 heading: 停用此專案啟動請求? title: 停用專案啟動請求 - header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artefact as a result. + header_description: 'OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can choose which project attributes should be included and create a PDF artifact as a result. ' name: - artifact_name: Artefact name - artifact_name_caption: Choose the name for this artefact that your project management framework recommends. + artifact_name: Artifact name + artifact_name_caption: Choose the name for this artifact that your project management framework recommends. options: project_creation_wizard: 專案建立精靈 project_initiation_request: 專案啟動請求 @@ -5885,8 +6343,8 @@ zh-TW: 您已提交 %{project_name} 的專案啟動請求,目前正等待審核。 請點擊下方連結以存取包含您請求的工作套件。 confirmation_email_text: 確認電子郵件文字 - description: When a user submits a project initiation request, a new work package will be created with the request artefact attached as a PDF file. The settings below define the type, status and assignee for this new work package. - description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artefact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" + description: When a user submits a project initiation request, a new work package will be created with the request artifact attached as a PDF file. The settings below define the type, status and assignee for this new work package. + description_template: "**This work package was automatically created upon completion of the %{wizard_name} workflow.** A PDF artifact containing all submitted information has been generated and attached to this work package for reference and audit purposes. If you need to update or re-run the initiation steps, you can reopen the wizard at any time by using the link below:\n" send_confirmation_email: 向提交專案啟動請求的使用者傳送確認電子郵件 status_when_submitted: 提交時的狀態 status_when_submitted_caption: 提交請求後,產生的工作套件將轉換到的狀態。 @@ -5894,7 +6352,7 @@ zh-TW: work_package_comment_caption: 上面選擇的執行者會自動在留言中 @。 work_package_comment_default: "%{project_name} 的專案啟動請求已提交,正在等待審核。" work_package_type: 工作套件類型 - work_package_type_caption: The work package type that should be used to store the completed artefact. + work_package_type_caption: The work package type that should be used to store the completed artifact. wizard_status_button: project_creation_wizard: 開啟專案建立精靈 project_initiation_request: 開啟專案啟動請求 @@ -5916,6 +6374,7 @@ zh-TW: heading: 新增階段 no_gate: 沒有關卡 non_defined: 目前沒定義階段。 + order_changed: Order successfully changed. phase_gates: 階段關卡 section_header: 階段 start_gate: 開始關卡 @@ -5972,7 +6431,7 @@ zh-TW: section_work_week: 工作週 sharing: count: - one: 1 個用戶 + one: "%{count} user" other: "%{count} 個使用者" zero: 0個用戶 denied: 您沒有權限分享 %{entities}。 @@ -6063,19 +6522,19 @@ zh-TW:
注意:繼承的值(例如來自子項或關係)仍然適用。 index: + could_not_be_moved: Status could not be moved. headers: - excluded_from_totals: 不包括在總計中 is_closed: 已關閉 - is_default: 預設 is_readonly: 唯讀 + no_filter_results_title_text: No status matches the current filter. no_results_content_text: 新增一個狀態 no_results_title_text: 目前沒有任何工作套件狀態。 + status_actions: Status actions support: array: sentence_connector: 和 skip_last_comma: 否 text_access_token_hint: 存取令牌(Token)讓你能夠允許外部程式存取專案內的資源。 - text_accessibility_hint: 輔助功能模式設計用於失明、具有行動障礙或視力不佳的用戶。為視力不佳的用戶特別突出顯示關注的元素。請注意,此模式不支援待辦清單模塊。 text_analyze: '進一步分析: %{subject}' text_are_you_sure: 是否確定? text_are_you_sure_continue: 你要繼續嗎? @@ -6118,12 +6577,6 @@ zh-TW: ' text_custom_field_possible_values_info: 每個值一行 - text_custom_logo_instructions: '標誌會自動縮放以適應頁首 (Header) 空間。為了達到最佳效果,請上傳一個白色標誌,並置於透明的 130×47 像素圖像上。您可以在該圖像內部添加任意多您想要的間距。 - - ' - text_custom_logo_mobile_instructions: '徽標會自動調整大小以配合標頭。為達到最佳效果,請在 130×33px 的透明圖片上上傳白色標誌。您可以隨意在該圖像中加入間距。 - - ' text_custom_touch_icon_instructions: '這個圖示將會顯示在您的手機或平板的主畫面中。它必須是 180px X 180px 大小的 PNG 圖檔。請確保圖片的背景不是透明的,否則在 iOS 上會看起來很醜。 ' @@ -6173,6 +6626,7 @@ zh-TW: text_length_between: 長度須介於 %{min} 至 %{max} 個字元 text_line_separated: 可多行(每行一個值)。 text_load_default_configuration: 載入預設組態 + text_markdown_login_required: Log in or send an X-OpenProject-API-Key header to read this document. text_no_access_tokens_configurable: 沒有存取令牌(Token)可以被設定。 text_no_configuration_data: |- 角色,類型,工作套件狀態與工作流程都尚未設定。 @@ -6278,6 +6732,67 @@ zh-TW: tree_view: label_empty_sub_tree: No items types: + aspect_descriptions: + defaults: + type: Set the template description text for this type and choose whether subjects are written by users or generated automatically. + variant: Set the template description text for this variant and choose whether subjects are written by users or generated automatically. + details: + type: Set the basic properties of this type, like its name, color and how it appears in projects. Project members always see this name, even when their project uses a variant. + variant: Name this variant so admins can tell it apart from other variants. Project members don't see this name, they see the name of the parent type. + form_configuration: + existing: + type: These are the fields project members see when creating or editing a work package of this type. You can choose to deactivate fields you would like to hide. + variant: These are the fields project members see when creating or editing a work package of this variant. You can choose to deactivate fields you would like to hide. + new: + type: These are the fields project members see when creating or editing a work package of this type. Arrange and group them in any order you like. + variant: These are the fields project members see when creating or editing a work package of this variant. Arrange and group them in any order you like. + pdf: Choose which PDF templates are available when generating the PDF of work packages that use these settings. Each template defines the layout and which attributes appear in the PDF. The first template in the list is the default. + project_attributes: Choose which project attributes appear in work packages. Project members with permission can view and edit them in the work package's Project attributes tab. + projects: + type: Choose the projects in which this type should be available. + variant: Choose the projects in which this variant should be available. In these projects, the variant's settings replace those of its parent type. + variants: See all variants of this type, including those created by project admins within their projects. + workflows: Define which status changes each role can make in work packages of this type. Workflows can be shared across types and variants. + comparison: + action: Compare variants + blankslate: + description: Add a second variant to this type to see what sets them apart. + title: There is nothing to compare yet + description: Compare the variants of this type with the parent type. + labels: + duplicate: Possible duplicate + duplicate_of: Configured exactly like %{names} + duplicate_of_more: + other: "%{names} and %{count} more" + parent_type: Parent type + same_as_type: Same as parent type + rows: + form: + fields: Fields + groups: Sections + required: Of which required + same_as_base: Same as parent type + scope: + availability: Available to + enabled_in_new_projects: Active in new projects + projects: Projects + workflows: + roles: Roles involved + same_as_base: Same as parent type + statuses: Statuses + transitions: Transitions + sections: + configuration: Configuration overview + form: Form + scope: Scope + workflows: Workflows + title: Compare variants + title_for_type: Compare variants of %{name} + values: + global: All projects + inheriting_from: Inheriting from + project_specific: Project-specific ([%{project}](project_url)) + same_as_base: Identical to the parent type creation_wizard: add_variant: Add a variant to %{name} create_type: Create type @@ -6287,14 +6802,40 @@ zh-TW: finish: Finish placeholder_description: This step will be available soon. progress_label: Step %{number} of %{total} + start: + next_heading: What happens next? + submit: Start + type: + heading: Create a new type + lead_html: You are about to create a new work package type in your instance. A type is a kind of work package, such as a Bug, Task or Milestone, with its own form, workflow and settings. + next_steps: You will configure your type in the next steps, choosing the settings that best fit your needs. Once the type exists, you can create variants of it to adapt individual settings without creating another type. + objects_description: Form and workflows are standalone objects that can be shared across multiple types and variants. You can select an existing one, create a new one from a copy, or start from scratch. + objects_title: Objects + options_heading: Settings and objects + options_intro: A type is made up of two kinds of building blocks. + settings_description: Details, defaults, project attributes, projects and PDF export belong to the type itself. You configure them directly for this type. + settings_title: Settings + variant: + heading: Create a new variant + inherit_description: The variant uses the parent type's settings. Any changes to the parent type are automatically reflected in the variant. + inherit_title: Use the same settings as the type + lead_html: You are about to create a new variant of %{type_name} in your instance. A variant is an alternative version of a work package type. It starts with the configuration of the original type and lets you adapt individual settings without creating an entirely new type. + manual_description: Start with a copy of the parent type's current settings and customize them independently, or start from scratch. Changes to the parent type will not affect this configuration. + manual_title: Manual configuration + next_steps: You will configure your variant in the next steps, choosing the settings that best fit your needs. + objects_description: Workflows and forms are standalone objects that can be shared across multiple types and variants. You can select an existing workflow or form, create a new one from a copy, or start from scratch. + objects_heading: Reuse workflow and form objects + options_heading: Reuse or customize settings + options_intro: For most settings, you can choose whether to use the parent type's configuration or configure it independently. Form and workflows are handled separately below. steps: defaults: Defaults details: Details form_configuration: Form - pdf: PDF generation + pdf: Generate PDF project_attributes: Project attributes projects: Projects - workflows: Workflows + start: Start + workflows: Workflow success: Created successfully. edit: breadcrumb_variant: 'Variant: %{name}' @@ -6303,8 +6844,10 @@ zh-TW: caption: Define a pattern using referenced attributes and text to automatically generate work package subjects. Users will not be able to manually edit subjects. label: Automatically generated subjects description: - caption: Add the text that will be added to the description field of all new work packages with this type. - label: Default description text + caption: + type: This text is included by default in the description of every new work package of this type. + variant: This text is included by default in the description of every new work package of this variant. + label: Description template manually_editable_subjects: caption: Users can manually enter and edit work package subjects without restrictions. label: Manually editable subjects @@ -6333,21 +6876,21 @@ zh-TW: file_link: caption: The generated PDF is uploaded to the project's automatically-managed Nextcloud storage and linked from the work package. Work packages in projects without such a storage are skipped. label: Upload file to external file storage and add file link to work package - intro: Automatically generate a PDF artefact of a work package of this type whenever its status changes. - invalid_mode: Invalid artefact export mode. - label: Automatic artefact export + intro: Automatically generate a PDF artifact of a work package of this type whenever its status changes. + invalid_mode: Invalid artifact export mode. + label: Automatic artifact export off_mode: caption: No PDF is generated automatically. label: 'Off' - section_title: Automatic artefact export + section_title: Automatic artifact export unavailable: unavailable, no automatically-managed Nextcloud storage is configured - intro: 從可用的範本中選擇您想要為此類型啟用的範本。範本決定了使用此類工作套件匯出的 PDF 中顯示的設計和屬性。預設為選定清單中的第一個模板。 pdf_export_templates: actions: label_disable_all: 全部停用 label_enable_all: 全部啟用 label_toggle_template: Toggle %{template} label: PDF匯出範本 + order_changed: Order successfully changed. tab: 產生PDF檔案 templates: readonly_error: Cannot be changed while linked to a source type. @@ -6364,6 +6907,8 @@ zh-TW: confirm_delete_group: Are you sure you want to delete this section? This action cannot be automatically reversed. confirm_reset: Are you sure you want to reset the form? custom_field: Custom field + defaults_not_generated: + already_configured: This form already has groups or attributes. delete_group: Delete section drag_to_activate: Drag fields from here to activate them drag_to_reorder: Drag to reorder @@ -6385,6 +6930,14 @@ zh-TW: query_group_label: Related work packages table remove_attribute: Remove from section rename_group: Rename section + required: + already_required_globally: This custom field is required for all types. + for_variant: Required in this type + globally: Required + globally_hint: Change this on the custom field + mark: Require in this type + not_a_custom_field: Only a custom field can be made required for a single type. + unmark: Do not require in this type reset_description: 'This will reset the attributes to their default group and disable ALL custom fields. ' @@ -6394,12 +6947,14 @@ zh-TW: tab: Form untitled_group: Untitled group overview: + caption: Variants can either use settings from the original type or you can manually configure them to be different. This table shows you where the configuration for each setting comes from. configuration_mode: Configuration mode - dependents: Dependent types and variants mode: always_manual: Always manual - inheriting_from_html: Inheriting from %{source_name} + inheriting_from_html: Using the same as type (%{source_name}) manual: Manually configured + using_form_html: Using form %{name} + using_workflow_html: Using workflow %{name} settings: Settings tab: Overview project_attributes: @@ -6413,12 +6968,12 @@ zh-TW: manual: description: Once you [create project attributes](administration_url), they will be visible here and can be added to a type. title: No project attributes available - description: Select the project attributes that you want to enable for this work package type. Enabled project attributes are displayed in a separate tab in work packages of this type. Users with the necessary permissions can view and edit these attributes there. disabled: Disabled exclusions: attribute_label: Inherit %{attribute} filter: Search by section or name tab: Project attributes + project_specific_variant_suffix: "(Project-specific variant)" projects: actions: confirm_remove: Remove the type %{type} from %{project}? @@ -6431,10 +6986,12 @@ zh-TW: empty_state: description: Add a project to use this configuration there. no_results: No matching projects. + title: Not used in any project yet enable_all: 在所有專案中啟用 select_projects: 選取專案 select_projects_description: 選擇要使用此類型的專案。 tab: 專案 + variant_column: Variant or type reuse_mode: copy: confirm_dialog: @@ -6449,41 +7006,17 @@ zh-TW: title: Copy configuration invalid_source: The configuration cannot be copied from the selected type. Please select a different source type. success: The configuration was copied. - dependents: - blank: - description: No other type or variant inherits from this configuration - title: No dependent types - description: - other: The following configuration is inherited by %{count} other types or variants. Any changes you make here will also affect the dependents. - dialog: - description: These types and variants inherit the configuration of this section. A change you make here applies to all of them. - direct_heading: Direct dependents - indirect_heading: Dependents through other types - title: Dependent types - variant_of_html: Variant of %{type_name} - variant_of_via_html: Variant of %{type_name}, inheriting via %{source_name} - via_html: Inheriting via %{source_name} - title: - other: "%{count} dependent types" - view: View dependent types exclusions: not_inherited: This configuration is not inherited, so there is nothing to exclude. Edit the configuration directly instead. unknown_aspect: Unknown configuration section "%{aspect}". inherited: - change_source: Change source type configure_manually: Configure manually confirm_dialog: - change_source: - description_html: By changing the source type to %{source_name} you will overwrite the current settings and might affect existing information on the work packages of this type. - heading: Change source type? - title: Change source type check_box: I understand that this will override the current settings from_manual: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - description: This configuration is inherited from the source type [%{source_name}](source_url)%{source_suffix}. - description_unlinked: This configuration is inherited from the source type %{source_name}%{source_suffix}. dialog: description: Inherit this configuration from a source type. Any new configuration added to the source also applies here. source_label: Source type @@ -6491,6 +7024,9 @@ zh-TW: submit: Switch title: Inherit from another type invalid_source: The configuration cannot be inherited from the selected type. Please select a different source type. + mode_description: This variant will use the same settings as the type ([%{source_name}](source_url)). Any changes there will automatically reflect here. + mode_description_unlinked: This variant will use the same settings as the type. Any changes there will automatically reflect here. + mode_label: Use the same settings as the type success: The configuration mode was switched. title: Inherited configuration manual: @@ -6499,13 +7035,14 @@ zh-TW: description: All the current selected settings will be overridden and might affect existing information on the work packages of this type. heading: Switch configuration mode? title: Switch configuration mode - copy_from_type: Copy from another type description: No settings are inherited. You can still copy the settings from another type one time. dialog: submit: Switch title: Configure manually - inherit_from_type: Inherit from another type + inherit_from_type: Inherit from parent invalid_mode: The selected mode is not available for this configuration. Please choose a different mode. + mode_description: Manually configure this page. Changes to the parent type will no longer affect it. + mode_label: Configure this page manually modes: copy: caption: Start with a one-time copy of the settings that this configuration inherits now. @@ -6519,12 +7056,16 @@ zh-TW: success: The configuration mode was switched. title: Manual configuration parent_suffix: " (parent)" + variant_suffix: "(Variant)" variants: blankslate: description_html: 'You can create variants to offer versions of this type to different projects.
Each variant can inherit, copy or have its own custom configuration for the default template, custom fields, workflows and preferences. ' title: No variants exist for this type + created_by_migration_filter: + all: All + migrated: Migrated created_in_html: Created in %{project} delete: description: The projects using this variant will be switched to the variant you choose below before this variant is deleted. @@ -6533,23 +7074,51 @@ zh-TW: filter_no_results: No variants match this filter global_section: description: These variants are available across all projects. - title: Variants + title: Global variants project_specific_section: description: These variants are only available within the projects in which they were created. title: Project-specific variants workflow: - tab: Workflows + tab: Workflow index: add_variant: Add a variant to %{name} add_variant_action: Add variant + convert_to_global: Convert to global variant + convert_to_global_dialog: + confirm: Convert + text: 'This will make this project-specific variant a global one that is available to all projects. The project admin will no longer be able to edit it. + + ' + workflow_text: 'Its workflow "%{name}" belongs to this project and becomes global as well. + + ' + convert_to_global_notice: "%{name} is now a global variant." + convert_to_global_rename: + confirm: Convert + text: A global variant with this name already exists. Please choose a different name. + title: Pick another name for this variant + created_by_migration: Migrated + delete: + description: The type will be deleted permanently. This action cannot be undone. + description_with_variants: The type and all of its variants will be deleted permanently. This action cannot be undone. + heading: Delete type '%{name}'? + projects: + other: 'The type will be removed from %{count} projects:' + title: Delete type description: 'Each configuration area inside types and variants can be independently configured, limited from another type, or fully linked to a source. ' duplicate_name: Copy of %{name} duplicate_notice: "%{name} was duplicated." enabled_in_new_projects: Active in new projects + filter: Filter by name + filter_no_results: No types match this filter make_default: Activate in new projects make_default_notice: "%{name} is now activated in new projects." + migrated_variants_banner: + text: 'Some variants were automatically created during migration to preserve project-specific custom field configurations, as part of 18.0. They are marked as "%{label}". To remove them, make the affected projects use a different variant or type, then delete the migrated variant. [Learn more about variants](docs_url). + + ' no_results_content_text: 新增一個類型 no_results_title_text: 目前沒有類型 project_variants_count: @@ -6558,7 +7127,18 @@ zh-TW: remove_default_notice: "%{name} is no longer activated in new projects." type_label: Type variant_label: Variant + migration: + variant_name: "%{type} without %{fields}" + variant_name_truncated: + other: "%{type} without %{fields} and %{count} more fields" milestone_indicator: Milestone + patterns: + formats: + hierarchy_default: Default (label and short) + hierarchy_label: Label only + hierarchy_short: Short only + weighted_item_list_default: Default (label and weight) + weighted_item_list_weight: Weight only unsupported_browser: close_warning: 忽略此警告。 message: 您可能會在此頁面上遇到錯誤和降級的體驗。 @@ -6577,7 +7157,7 @@ zh-TW: authorization_rejected: 你不被允許登入。 blocked: 暫時停用 blocked_num_failed_logins: - other: 暫時鎖定 (%{count} 登錄失敗) + other: locked temporarily (%{count} failed login attempts) confirm_status_change: 您將更改 "%{name}" 的狀態。是否確實要繼續? deleted: 刪除使用者 department_ldap_managed_caption: This department is managed by LDAP synchronization and cannot be changed here. @@ -6677,7 +7257,7 @@ zh-TW: deletion_warning: 您確定要撤銷此會話?您將會登出此裝置。 device: 裝置/作業系統 expires: 到期 - instructions: 您已透過以下裝置登入帳號。請撤銷您無法識別或不受您控制的裝置連線。 + instructions: You are logged in to your account through the following devices. Revoke sessions that you do not recognize or from devices you do not control. last_connection: 最後連線 may_not_delete_current: 您不可以刪除自己的連線連線 session_name: "%{browser_name} %{browser_version} on %{os_name}" @@ -6743,6 +7323,12 @@ zh-TW: version_status_locked: 已停用 version_status_open: 開啟 versions: + filter_status_labels: + closed: Closed + locked: Locked + open: Open + index: + filter_label: Search versions overview: no_results_title_text: 目前沒有分配給此版本的工作套件。 work_packages_in_archived_projects: 此版本與已封存的專案共享,而這些專案仍有指派至該版本的工作套件。這些工作套件會被計算在內,但不會出現在關聯檢視中。 @@ -6910,6 +7496,8 @@ zh-TW: required_description: 將此工作套件標示為相關工作的需求 requires_description: 將關聯工作套件標示為此工作套件的需求 work_packages: + assign_to_me: + success: "%{work_package} is now assigned to you." bulk: copy_failed: 此工作套件無法被複製。 could_not_be_deleted: 'The following work packages could not be deleted:' @@ -7011,6 +7599,137 @@ zh-TW: other: You are not able to delete %{count} descendants because you lack the necessary permissions. These will be preserved but any hierarchical relations will be removed. undeletable_descendants_warning_html: other: You are not able to delete %{count} descendants because you lack the necessary permissions in %{projects}. These will be preserved but any hierarchical relations will be removed. + import: + check_file: Check file + checking_file: Checking %{filename} + clear: Clear + csv: + file: + empty: This file is empty. + expired: This file is no longer available. Upload it again. + expired_named: "%{filename} is no longer available. A checked file is kept for a few hours, so this one has to be uploaded again. It is checked once more before anything is created." + invalid_encoding: Line %{line} contains bytes that are not valid UTF-8 or UTF-16. Save the file again as CSV (UTF-8/UTF-16) and upload that file instead. + malformed: This file could not be read as CSV. Line %{line} opens a quote that is never closed. + missing: Choose a CSV file to upload. + no_rows: This file has column headers but no lines underneath them. + too_large: This file is %{size}. The largest file this instance accepts is %{limit}. Split the lines across several files, or ask an administrator to raise the limit. + too_large_before_upload: This file is larger than the %{limit} this instance accepts. Split the lines across several files, or ask an administrator to raise the limit. + too_many_rows: This file has more lines than can be imported at once. The most is %{limit}. + format: + unknown: This is not a UTF-8/UTF-16 CSV file. If it came from a spreadsheet, save it again as CSV (UTF-8/UTF-16) and upload that file instead. + wrong_encoding: This file is %{encoding} encoded, not UTF-8 or UTF-16. Choose the CSV UTF-8/UTF-16 format when saving, then upload it again. + header: + ambiguous: and %{other} both mean %{attribute}. Keep one of them. + duplicate: appears more than once. Keep one of them. + status_based: cannot be imported while progress is calculated from the status. An administrator changes this under Administration, Work packages, Progress tracking. + unknown: cannot be imported. + unknown_with_suggestion: cannot be imported. Did you mean %{suggestion}? + unnamed: This column has no name. Name it or remove the column. + job: + checking: Checking the file + importing: Importing the file + row: + created_after_updated: must not be later than the value in Updated on. + fractional_percentage: must be a whole number of percent, for example 50. + future_timestamp: must not be in the future. + invalid_date: must be a date written as YYYY-MM-DD. + invalid_timestamp: must be a date and time written as YYYY-MM-DDTHH:MM:SSZ. + not_created: could not be created, and no reason was reported. + too_many_cells: has %{count} cells but the header has %{expected}. A value containing the separator has to be quoted. + unknown: does not exist. + unknown_in_project: does not exist in this project. + unknown_user: does not match a user. Use the email address the user signs in with. + template: + example_category: Documentation + example_version: '1.0' + examples: + one: + description: Explain what the new page has to do. + subject: Write the documentation + two: + description: The error appears after a failed password reset. + subject: Fix the login error + view_name: CSV import on %{datetime} + download_template: Download the template + drop_or_click: Drop a CSV file here or click to select one. + dry_run_caption: Every line is validated and reported, but nothing is created. Recommended for a file you have not imported before. + dry_run_label: Check the file first, without importing + file_label: CSV file + guidance: + column_reference: Find more here + columns_html: "%{link} containing the correct column headers needed for the import to succeed and fill it with the work package data." + limits_html: The CSV file imported must be exported in UTF-8/UTF-16 with a limit of %{lines} lines and a size of %{size}. + names_html: The column headers and values inside each work package attribute must match existing values. User attributes must match an existing email address. %{link} + title: Before you start + import_file: Import file + importing_file: Importing %{filename} + intro: Create many work packages at once from a CSV file. Existing work packages are not changed. + menu_title: Work packages importer + report: + announcement: + checked: The file has been checked. The report is below. + file_rejected: The file was not imported. The report says what is wrong with its column headers. + imported: The import has finished. The report is below. + rows_rejected: Nothing was imported. The report lists the problems. + checked: + heading: Ready to import + import: Import %{work_packages} + kept: The checked file is kept for a few hours, so importing it does not need a second upload. + text: Nothing has been created yet. Review the summary below, then import. + title: + other: "%{count} lines checked, no problems found" + download_problems: Download as CSV + file_rejected: + heading: Header line + line: line 1 of %{filename} + nothing: Nothing was imported. Correct the file and upload it again. + text: Correct the headers in the file and upload it again. + title: The column headers could not be read + headline: + accounts: + label: Accounts + subtitle: assignee, accountable and author + dated: + label: Lines with dates + subtitle: a start or finish date + types: + label: Types + subtitle: used in this file + work_packages: + label: Work packages + subtitle: one for every line + imported: + again: Import another file + heading: Import summary + link: + other: View the %{count} imported work packages + notifications: Notifications were not sent for these work packages. + text_html: Imported from %{filename} on %{date} at %{time}. + title: "%{work_packages} created" + problems: + all: + other: "%{count} problems, all shown." + capped: "%{count} problems, the first %{shown} shown. Download the list for all of them." + heading: Problems + rows_rejected: + text: Everything was rolled back. Correct the lines below and upload the file again. + title: 'Nothing was imported: %{problems} in %{lines}' + table: + attribute: Column + available: Available values + column: Column + empty: empty + header: Header + message: Problem + row: Line + value: Value + x_lines: + other: "%{count} lines" + x_problems: + other: "%{count} problems" + run_failed: This run did not finish, and nothing was created. Upload the file again. + running_note: This runs in the background. Please do not close the page. + title: Import work packages move: bulk_current_type_not_available_in_target_project: 'The types of the work packages or their descendants aren''t enabled in the target project. Please enable the missing types in the target project if you''d like them to remain unchanged. Otherwise, select an available type in the target project from the list. @@ -7042,34 +7761,50 @@ zh-TW: version: no_results_title_text: 目前沒有可用的版本 x_descendants: - other: "%{count} 個子工作套件" + other: "%{count} work package descendants" workflows: + change: + confirm: + consequence: Existing work packages with these statuses will not be affected. They will remain in the current status but transitions to these statuses will no longer be possible. + description: 'The following statuses don’t exist in the workflow you have selected ("%{name}"):' + description_blank: The new workflow has no transitions. All status transitions of %{type} will be removed. + description_empty: The workflow you have selected ("%{name}") has no transitions. All status transitions of %{type} will be removed. + title: Use a different workflow for %{name}? + select: + caption: The type uses the status transitions of the workflow you pick here. + label: Workflow + placeholder: Select a workflow… + title: Change workflow copies: form: - mode: - from_role: - caption: Copy the current workflow to one or more roles inside the same work package type. If the selected role already has a workflow the current one will be overwritten. - label: Copy to other roles - from_type: - caption: Copy the current workflow to another work packages type. If the selected type already has a workflow the current one will be overwritten. This affects all roles. - label: Copy to another type - source_role_id: - label: Source role target_role_ids: label: Target roles - target_variant_ids: - label: Target types from_roles: create: notice: other: Successfully copied workflow to %{count} roles. - from_variants: - create: - notice: - other: Successfully copied workflow to %{count} types. new: - title: Copy workflow of "%{source_type}" + dialog_title: Copy workflow of "%{source}" + delete: + body_in_use: + other: This workflow is currently used by %{count} types and variants. Please select a new workflow to replace it with. + body_not_in_use: This workflow will be permanently deleted. This action is not reversible. + button: Delete workflow + confirmation_checkbox_label: I understand that this action is not reversible. + no_replacement: This workflow is in use and cannot be deleted because there is no other workflow to replace it with. + replace_caption: The selected workflow will be applied to all types and variants listed above. + replace_label: Replace with workflow + replace_placeholder: Select a workflow + title: Delete workflow %{name}? form: + copy_from: + caption: The new workflow starts with a copy of that workflow's status transitions. + label: Copy from + placeholder: Select a workflow… + description: + caption: Add a short description about where and how will this workflow be used. + label: Description + edit_title: Edit workflow matrix_caption: 工作流程矩陣 matrix_caption_assignee: 指派對象的工作流程矩陣 matrix_caption_author: 作者工作流程矩陣 @@ -7078,12 +7813,82 @@ zh-TW: matrix_check_uncheck_all_in_row_label_html: 切換從 %{old_status}到所有新狀態 matrix_checkbox_label: 允許從 %{old_status} 過渡到 %{new_status} matrix_uncheck_all_label: 禁止所有轉換 + name: + caption: Pick a name that will let you identify this workflow later in other places. + label: Workflow name + new_title: Create workflow index: + actions: + create: Workflow + edit: Edit transitions + menu: Actions for %{name} + rename: Edit name and description + blank_slate: + description: Create a workflow to define the status transitions a type or variant may use. + filtered_description: No workflow matches the current filters. + filtered_title: No matching workflows + title: No workflows + columns: + name: Workflow name + projects: Projects + roles: Roles + types_and_variants: Types and variants + description: Every named set of status transitions in this instance, with the types and variants using it. + filters: + name: Workflow + name_placeholder: Filter by workflow name or description… + projects_placeholder: Filter projects… + projects_count: + other: "%{count} projects" + roles_count: + other: "%{count} roles" type_filter: label: Filter by type name… + types_and_variants_count: "%{types} (including %{variants})" + types_count: + other: "%{count} types" + variants_count: + other: "%{count} variants" + name: + fallback: Workflow + implicit: "%{name} workflow" page_headers: index_component: description: Configure status transitions for each work package type. + selector: + prefix: Workflow + same_as_type: "(same as type)" + title: Select workflow + start: + copy: + caption: Start with an existing workflow, change it as you wish and save it as a new workflow. + label: Start with a copy of an existing workflow + missing: Select the workflow to copy, or start from scratch instead. + label: Starting point + scratch: + caption: Start with a blank workflow and build it manually. + label: Start from scratch + title: New workflow + usage: + dialog: + button: View dependent types + caption_html: The workflow %{name} is used in the following types and variants. + title: Workflow used in types + variant_of: Variant of %{type} + variants: Variants + unused: No type or variant uses this workflow yet. + used_by_types: + other: This workflow is used by %{count} types. Changes apply to all of them. + used_by_variants: + other: This workflow is used by %{count} types and variants. Changes apply to all of them. + wizard: + choice: + existing: + caption: Use an existing workflow for this type with a pre-defined set of status transitions for a set of roles. + label: Use an existing workflow + new: + caption: Manually define a new workflow for this type by choosing which status transitions are allowed for which roles. + label: Configure a new workflow working_days: change_button: 修改工作日 dialog: diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/af.ts b/extensions/blocknote-extensions/lib/locales/crowdin/af.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/af.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ar.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ar.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ar.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/az.ts b/extensions/blocknote-extensions/lib/locales/crowdin/az.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/az.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/be.ts b/extensions/blocknote-extensions/lib/locales/crowdin/be.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/be.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/bg.ts b/extensions/blocknote-extensions/lib/locales/crowdin/bg.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/bg.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ca.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ca.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ca.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ckb-IR.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ckb-IR.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ckb-IR.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/cs.ts b/extensions/blocknote-extensions/lib/locales/crowdin/cs.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/cs.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/da.ts b/extensions/blocknote-extensions/lib/locales/crowdin/da.ts new file mode 100644 index 000000000000..1e57fc91e30b --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/da.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': "Link eksisterende arbejdspakke", + 'subtext': "Tilføj et dynamisk link til én arbejdspakke", + 'create': { + 'title': "Opret ny arbejdspakke", + 'subtext': "Opret en arbejdspakke, og link til den her" + }, + 'aliases': { + 'workpackage': "arbejdspakke", + 'work package': "arbejdspakker", + 'wp': "ap", + 'link': 'link', + 'create': "opret" + } + }, + 'formattingToolbar': { + 'createWorkPackage': "Opret arbejdspakke" + }, + 'createWorkPackage': { + 'title': "Opret ny arbejdspakke", + 'close': "Luk", + 'cancel': "Annuller", + 'create': "Opret", + 'creating': "Opretter …", + 'selectPlaceholder': "Vælg …", + 'searchPlaceholder': "Skriv for at søge …", + 'loading': "Indlæser …", + 'noResults': "Ingen resultater", + 'filterBy': "Filtrér listen", + 'allValues': "Alle", + 'favorites': "Favoritter", + 'clear': "Ryd", + 'deselect': "Fjern markering", + 'removeValue': "Fjern {{value}}", + 'openOptions': "Vis valgmuligheder", + 'closeOptions': "Skjul valgmuligheder", + 'subjectPlaceholder': "Skriv emnet her", + 'subjectClipped': "Den markerede tekst var for lang og er afkortet til de første {{limit}} tegn.", + 'projectPlaceholder': "Vælg et projekt …", + 'loadFailed': "Formularen til arbejdspakken kunne ikke indlæses: {{message}}", + 'notAllowed': "Du har ikke tilladelse til at oprette arbejdspakker.", + 'validationFailed': "Ret de fremhævede felter nedenfor.", + 'requiredField': "Feltet er påkrævet.", + 'notANumber': "Angiv et tal.", + 'notAWholeNumber': "Angiv et helt tal uden decimaltegn.", + 'unsupportedField': "\"{{field}}\" kan ikke angives her.", + 'unsupportedRequired': "Arbejdspakken kræver et felt, der ikke kan angives her.", + 'createInOpenProject': "Opret den i OpenProject" + }, + 'search': { + 'label': "Link eksisterende arbejdspakke", + 'placeholder': "Søg efter arbejdspakkens id eller emne", + 'dropdownAriaLabel': "Søgeresultater for arbejdspakker", + 'noResults': "Ingen resultater", + 'error': "Fejl. Indholdet kunne ikke indlæses." + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': "Indlæser", + 'message': "Vent et øjeblik" + }, + 'unauthorized': { + 'header': "Den linkede arbejdspakke er ikke tilgængelig", + 'message': "Du har ikke tilladelse til at se den", + 'short_message': "Arbejdspakken er ikke tilgængelig: ingen tilladelse" + }, + 'error': { + 'header': "Fejl", + 'message': "Arbejdspakken kunne ikke indlæses", + 'short_message': "Ikke tilgængelig: fejl" + } + }, + 'options': { + 'openInNewTab': "Åbn i ny fane", + 'open': "Åbn", + 'changeSize': "Skift størrelse", + 'remove': "Fjern", + 'removeAriaLabel': "Fjern arbejdspakke", + 'openAriaLabel': "Åbn arbejdspakke {{id}} i ny fane", + 'inlineSizeLabel': "Størrelse i linjen", + 'blockSizeLabel': "Størrelse som blok", + 'chipAriaLabel': "Arbejdspakke {{id}}" + }, + 'preview': { + 'showAriaLabel': "Vis detaljer om arbejdspakke {{id}}" + }, + 'sizes': { + 'xxs': { + 'label': "Mini", + 'desc': "Id" + }, + 'xs': { + 'label': "Kompakt", + 'desc': "Type, id, emne" + }, + 's': { + 'label': "Normal", + 'desc': "Status, type, id, emne" + }, + 'm': { + 'label': "Kompakt kort", + 'desc': "Status, type, id, emne" + }, + 'l': { + 'label': "Normalt kort", + 'desc': "Id, emne, type, status, overordnet, projekt" + }, + 'xl': { + 'label': "Fuldt kort", + 'desc': "Id, emne, type, status, overordnet, projekt, beskrivelse" + } + }, + 'hashMenu': { + 'typeToSearch': "Skriv for at søge efter arbejdspakker …" + }, + 'spinner': { + 'ariaLabel': "Indlæser" + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/de.ts b/extensions/blocknote-extensions/lib/locales/crowdin/de.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/de.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/el.ts b/extensions/blocknote-extensions/lib/locales/crowdin/el.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/el.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/eo.ts b/extensions/blocknote-extensions/lib/locales/crowdin/eo.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/eo.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/es.ts b/extensions/blocknote-extensions/lib/locales/crowdin/es.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/es.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/et.ts b/extensions/blocknote-extensions/lib/locales/crowdin/et.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/et.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/eu.ts b/extensions/blocknote-extensions/lib/locales/crowdin/eu.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/eu.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/fa.ts b/extensions/blocknote-extensions/lib/locales/crowdin/fa.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/fa.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/fi.ts b/extensions/blocknote-extensions/lib/locales/crowdin/fi.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/fi.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/fil.ts b/extensions/blocknote-extensions/lib/locales/crowdin/fil.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/fil.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/fr.ts b/extensions/blocknote-extensions/lib/locales/crowdin/fr.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/fr.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/he.ts b/extensions/blocknote-extensions/lib/locales/crowdin/he.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/he.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/hi.ts b/extensions/blocknote-extensions/lib/locales/crowdin/hi.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/hi.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/hr.ts b/extensions/blocknote-extensions/lib/locales/crowdin/hr.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/hr.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/hu.ts b/extensions/blocknote-extensions/lib/locales/crowdin/hu.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/hu.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/hy.ts b/extensions/blocknote-extensions/lib/locales/crowdin/hy.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/hy.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/id.ts b/extensions/blocknote-extensions/lib/locales/crowdin/id.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/id.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/it.ts b/extensions/blocknote-extensions/lib/locales/crowdin/it.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/it.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ja.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ja.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ja.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ka.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ka.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ka.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/kk.ts b/extensions/blocknote-extensions/lib/locales/crowdin/kk.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/kk.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ko.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ko.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ko.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/li.ts b/extensions/blocknote-extensions/lib/locales/crowdin/li.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/li.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/lt.ts b/extensions/blocknote-extensions/lib/locales/crowdin/lt.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/lt.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/lv.ts b/extensions/blocknote-extensions/lib/locales/crowdin/lv.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/lv.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/mn.ts b/extensions/blocknote-extensions/lib/locales/crowdin/mn.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/mn.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ms.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ms.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ms.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ne.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ne.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ne.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/nl.ts b/extensions/blocknote-extensions/lib/locales/crowdin/nl.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/nl.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/no.ts b/extensions/blocknote-extensions/lib/locales/crowdin/no.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/no.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/pl.ts b/extensions/blocknote-extensions/lib/locales/crowdin/pl.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/pl.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/pt-BR.ts b/extensions/blocknote-extensions/lib/locales/crowdin/pt-BR.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/pt-BR.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/pt-PT.ts b/extensions/blocknote-extensions/lib/locales/crowdin/pt-PT.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/pt-PT.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/pt.ts b/extensions/blocknote-extensions/lib/locales/crowdin/pt.ts new file mode 100644 index 000000000000..f0c1de880fef --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/pt.ts @@ -0,0 +1,119 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': "Ligue o pacote de trabalho existente", + 'subtext': "Adicione uma ligação dinâmica a um único pacote de trabalho", + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': "pacote de trabalho", + 'work package': "pacote de trabalho", + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': "Ligue o pacote de trabalho existente", + 'placeholder': "Pesquise por ID do pacote de trabalho ou assunto", + 'dropdownAriaLabel': "Resultados da pesquisa de pacotes de trabalho", + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': "A carregar", + 'message': "Aguarde, por favor" + }, + 'unauthorized': { + 'header': "Pacote de trabalho associado não disponível", + 'message': "Não tem permissão para ver isto", + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': "Erro", + 'message': "Não foi possível carregar o pacote de trabalho", + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ro.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ro.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ro.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/ru.ts b/extensions/blocknote-extensions/lib/locales/crowdin/ru.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/ru.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/rw.ts b/extensions/blocknote-extensions/lib/locales/crowdin/rw.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/rw.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/si.ts b/extensions/blocknote-extensions/lib/locales/crowdin/si.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/si.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/sk.ts b/extensions/blocknote-extensions/lib/locales/crowdin/sk.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/sk.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/sl.ts b/extensions/blocknote-extensions/lib/locales/crowdin/sl.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/sl.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/sr.ts b/extensions/blocknote-extensions/lib/locales/crowdin/sr.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/sr.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/sv.ts b/extensions/blocknote-extensions/lib/locales/crowdin/sv.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/sv.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/th.ts b/extensions/blocknote-extensions/lib/locales/crowdin/th.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/th.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/tr.ts b/extensions/blocknote-extensions/lib/locales/crowdin/tr.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/tr.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/uk.ts b/extensions/blocknote-extensions/lib/locales/crowdin/uk.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/uk.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/uz.ts b/extensions/blocknote-extensions/lib/locales/crowdin/uz.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/uz.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/vi.ts b/extensions/blocknote-extensions/lib/locales/crowdin/vi.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/vi.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/zh-CN.ts b/extensions/blocknote-extensions/lib/locales/crowdin/zh-CN.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/zh-CN.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/extensions/blocknote-extensions/lib/locales/crowdin/zh-TW.ts b/extensions/blocknote-extensions/lib/locales/crowdin/zh-TW.ts new file mode 100644 index 000000000000..2f8b5a1599e8 --- /dev/null +++ b/extensions/blocknote-extensions/lib/locales/crowdin/zh-TW.ts @@ -0,0 +1,122 @@ +export const en = { + translation: { + 'slashMenu': { + 'title': 'Link existing work package', + 'subtext': 'Add a dynamic link to a single work package', + 'create': { + 'title': 'Create new work package', + 'subtext': 'Create a work package and link it here' + }, + 'aliases': { + 'workpackage': 'workpackage', + 'work package': 'work package', + 'wp': 'wp', + 'link': 'link', + 'create': 'create' + } + }, + 'formattingToolbar': { + 'createWorkPackage': 'Create work package' + }, + 'createWorkPackage': { + 'title': 'Create new work package', + 'close': 'Close', + 'cancel': 'Cancel', + 'create': 'Create', + 'creating': 'Creating…', + 'selectPlaceholder': 'Please select…', + 'searchPlaceholder': 'Type to search…', + 'loading': 'Loading…', + 'noResults': 'No results', + 'filterBy': 'Filter the list', + 'allValues': 'All', + 'favorites': 'Favorites', + 'clear': 'Clear', + 'deselect': 'Remove selection', + 'removeValue': 'Remove {{value}}', + 'openOptions': 'Show options', + 'closeOptions': 'Hide options', + 'subjectPlaceholder': 'Enter subject here', + 'subjectClipped': 'The selected text was too long and has been shortened to the first {{limit}} characters.', + 'projectPlaceholder': 'Select a project…', + 'loadFailed': 'The work package form could not be loaded: {{message}}', + 'notAllowed': 'You are not allowed to create work packages.', + 'validationFailed': 'Please correct the highlighted fields below.', + 'requiredField': 'This field is required.', + 'notANumber': 'Please enter a number.', + 'notAWholeNumber': 'Please enter a whole number, without a decimal separator.', + 'unsupportedField': '"{{field}}" cannot be set here.', + 'unsupportedRequired': 'This work package requires a field that cannot be set here.', + 'createInOpenProject': 'Create it in OpenProject' + }, + 'search': { + 'label': 'Link existing work package', + 'placeholder': 'Search by work package ID or subject', + 'dropdownAriaLabel': 'Work package search results', + 'noResults': 'No results', + 'error': 'Error. Unable to load content.' + }, + 'unavailableWorkPackage': { + 'loading': { + 'header': 'Loading', + 'message': 'Please wait' + }, + 'unauthorized': { + 'header': 'Linked work package unavailable', + 'message': 'You do not have permission to see this', + 'short_message': 'Work package unavailable: no permission' + }, + 'error': { + 'header': 'Error', + 'message': 'Could not load work package', + 'short_message': 'Unavailable: error' + } + }, + 'options': { + 'openInNewTab': 'Open in new tab', + 'open': 'Open', + 'changeSize': 'Change size', + 'remove': 'Remove', + 'removeAriaLabel': 'Remove work package', + 'openAriaLabel': 'Open work package {{id}} in new tab', + 'inlineSizeLabel': 'Inline size', + 'blockSizeLabel': 'Block size', + 'chipAriaLabel': 'Work package {{id}}' + }, + 'preview': { + 'showAriaLabel': 'Show details of work package {{id}}' + }, + 'sizes': { + 'xxs': { + 'label': 'Tiny', + 'desc': 'Identifier' + }, + 'xs': { + 'label': 'Compact', + 'desc': 'Type, Identifier, Subject' + }, + 's': { + 'label': 'Regular', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'm': { + 'label': 'Compact card', + 'desc': 'Status, Type, Identifier, Subject' + }, + 'l': { + 'label': 'Regular card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project' + }, + 'xl': { + 'label': 'Full card', + 'desc': 'Identifier, Subject, Type, Status, Parent, Project, Description' + } + }, + 'hashMenu': { + 'typeToSearch': 'Type to search work packages…' + }, + 'spinner': { + 'ariaLabel': 'Loading' + } + } +}; \ No newline at end of file diff --git a/modules/avatars/config/locales/crowdin/af.yml b/modules/avatars/config/locales/crowdin/af.yml index d400b9365b74..3a04f86318c2 100644 --- a/modules/avatars/config/locales/crowdin/af.yml +++ b/modules/avatars/config/locales/crowdin/af.yml @@ -3,16 +3,37 @@ af: are_you_sure_delete_avatar: Is jy seker jy wil jou avatar uitvee? avatar_deleted: Avatar is suksesvol uitgevee. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Doelgemaakte avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aktiveer gebruikers-gravatars enable_local_avatars: Aktiveer gebruikers-gepasmaakte avatars gravatar_default: Verstek Gravatar-beeld - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Laai asseblief 'n geldige prent op (jpg, png, gif) error_image_size: Die beeld is te groot. error_image_upload: Fout met berging van die beeld. diff --git a/modules/avatars/config/locales/crowdin/ar.yml b/modules/avatars/config/locales/crowdin/ar.yml index 6b8fdf928b92..dcd3d3fa8e46 100644 --- a/modules/avatars/config/locales/crowdin/ar.yml +++ b/modules/avatars/config/locales/crowdin/ar.yml @@ -3,16 +3,37 @@ ar: are_you_sure_delete_avatar: هل أنت متأكد من أنك تريد حذف صورتك الرمزية؟ avatar_deleted: الصورة الرمزية حذفت بنجاح. avatars: - label_avatar: الصورة الرمزية + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: الصورة الرمزية المخصصة + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: 'تفعيل مستخدم gravatars ' enable_local_avatars: تفعيل مستخدم الصورة الرمزية المخصصة gravatar_default: الصورة الافتراضية Gravatar - text_avatar_gravatar_html: يستخدم OpenProject صورة Gravatar الخاصة بك إذا كنت قد سجلت واحدة على %{gravatar_url}، أو صورة أو أيقونة افتراضية إن وجدت. - text_avatar_local: يمكنك أيضًا تحميل صورة رمزية مخصصة لتحل محل صورة Gravatar بالنقر على الصورة. نوصي باستخدام صورة بحجم 128 × 128 بكسل. - text_avatar_local_only: يمكنك تحميل صورة رمزية مخصصة بالنقر على الصورة. نوصي باستخدام صورة بحجم 128 × 128 بكسل. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: يرجى تحميل الصورة الصحيحة ووفقًا للتنسيقات (jpg, png, gif) error_image_size: الملف كبير جداً error_image_upload: خطأ في حفظ الصورة. diff --git a/modules/avatars/config/locales/crowdin/az.yml b/modules/avatars/config/locales/crowdin/az.yml index 80871ee2d9da..656abeb6de4f 100644 --- a/modules/avatars/config/locales/crowdin/az.yml +++ b/modules/avatars/config/locales/crowdin/az.yml @@ -3,16 +3,37 @@ az: are_you_sure_delete_avatar: Avatarınızı silmək istədiyinizə əminsiniz? avatar_deleted: Avatar uğurla silindi. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Fərdi avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: İstifadəçi qravatarlarını aktivləşdirin enable_local_avatars: İstifadəçinin fərdi avatarlarını aktivləşdirin gravatar_default: Defolt Gravatar şəkli - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Zəhmət olmasa düzgün şəkil yükləyin (jpg, png, gif) error_image_size: Şəkil çox böyükdür error_image_upload: Şəkli yadda saxlama xətası diff --git a/modules/avatars/config/locales/crowdin/be.yml b/modules/avatars/config/locales/crowdin/be.yml index f42f871dfa63..04a94ec3759e 100644 --- a/modules/avatars/config/locales/crowdin/be.yml +++ b/modules/avatars/config/locales/crowdin/be.yml @@ -3,16 +3,37 @@ be: are_you_sure_delete_avatar: Вы ўпэўнены што хочаце выдаліць аватар? avatar_deleted: Аватар выдалены паспяхова. avatars: - label_avatar: Аватар + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Карыстальніцкі аватар + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Выкарыстоўваць Gravatar enable_local_avatars: Уключыць карыстальніцкія аватары gravatar_default: Стандартны Gravatar - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Калі ласка запампуйце сапраўдны відарыс (jpg, png, gif) error_image_size: Відарыс занадта вялікі. error_image_upload: Памылка пры захаванні відарысу. diff --git a/modules/avatars/config/locales/crowdin/bg.yml b/modules/avatars/config/locales/crowdin/bg.yml index eae2c5641378..00bf70f49e5e 100644 --- a/modules/avatars/config/locales/crowdin/bg.yml +++ b/modules/avatars/config/locales/crowdin/bg.yml @@ -3,16 +3,37 @@ bg: are_you_sure_delete_avatar: Сигурни ли сте, че искате да изтриете аватара си? avatar_deleted: Аватара е изтрит успешно. avatars: - label_avatar: Аватар + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Граватар label_local_avatar: Потребителски аватар + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Активиране на потребителски граватари enable_local_avatars: Активиране на потребителски граватари gravatar_default: Подразбиращо се изображение от Gravatar - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Моля вдигайте валидни образи (jpg, png, gif) error_image_size: Образа е твърде голям. error_image_upload: Грешка при съхранение на образа. diff --git a/modules/avatars/config/locales/crowdin/ca.yml b/modules/avatars/config/locales/crowdin/ca.yml index 2a240cd5a22d..ae3007a6bef6 100644 --- a/modules/avatars/config/locales/crowdin/ca.yml +++ b/modules/avatars/config/locales/crowdin/ca.yml @@ -3,16 +3,37 @@ ca: are_you_sure_delete_avatar: Segur que vols eliminar el teu avatar? avatar_deleted: L'avatar s'ha eliminat correctament. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar personalitzat + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Activa els Gravatars d'usuari enable_local_avatars: Activa els avatars d'usuari personalitzats gravatar_default: Imatge Gravatar predeterminada - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: Podeu pujar un avatar personalitzat fent clic a la imatge. Recomanem una imatge de 128 × 128 píxels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Si us plau, pugeu una imatge vàlida (jpg, png, gif) error_image_size: La imatge és massa gran. error_image_upload: Error guardant la imatge. diff --git a/modules/avatars/config/locales/crowdin/ckb-IR.yml b/modules/avatars/config/locales/crowdin/ckb-IR.yml index 93fd741f9a3e..98800cbceb30 100644 --- a/modules/avatars/config/locales/crowdin/ckb-IR.yml +++ b/modules/avatars/config/locales/crowdin/ckb-IR.yml @@ -3,16 +3,37 @@ ckb-IR: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: ئاڤاتار + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Custom avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: وێنەکە زۆر گەورەیە. error_image_upload: هەڵە لە پاشەکەوتکردنی وێنەکە. diff --git a/modules/avatars/config/locales/crowdin/cs.yml b/modules/avatars/config/locales/crowdin/cs.yml index 2049574e8796..999f6160c464 100644 --- a/modules/avatars/config/locales/crowdin/cs.yml +++ b/modules/avatars/config/locales/crowdin/cs.yml @@ -3,16 +3,37 @@ cs: are_you_sure_delete_avatar: Jste si jisti, že chcete odstranit váš avatar? avatar_deleted: Avatar byl úspěšně odstraněn. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Vlastní avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Povolit uživatelské gravatary enable_local_avatars: Povolit uživatelské uživatelské avatary gravatar_default: Výchozí Gravatar - text_avatar_gravatar_html: OpenProject použije váš Gravatar, pokud jste si jej zaregistrovali na adrese %{gravatar_url}, nebo výchozí obrázek či ikonu, pokud existuje. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Prosím nahrajte platný obrázek (jpg, png, gif) error_image_size: Obrázek je příliš velký. error_image_upload: Chyba při ukládání obrázku. diff --git a/modules/avatars/config/locales/crowdin/da.yml b/modules/avatars/config/locales/crowdin/da.yml index 334a61e8ac01..9176a2d3bf0a 100644 --- a/modules/avatars/config/locales/crowdin/da.yml +++ b/modules/avatars/config/locales/crowdin/da.yml @@ -3,16 +3,37 @@ da: are_you_sure_delete_avatar: Er du sikker på, at du vil slette din avatar? avatar_deleted: Avataren er slettet. avatars: - label_avatar: Avatar + background_color_hint: Lad feltet stå tomt for en automatisk farve. + delete_image: Slet billede + edit_avatar: Rediger avatar + image_hint: Vælg en JPG-, PNG- eller GIF-fil. Billedet gemmes, når du vælger Gem. + image_required: Vælg et billede, eller vælg en anden avatarmulighed. + label_avatar_text: Avatartekst + label_background_color: Baggrundsfarve label_gravatar: Gravatar label_local_avatar: Tilpasset avatar + label_option: Avatarmulighed + manage_gravatar: Administrer dit billede på Gravatar + message_avatar_updated: Avataren er ændret. + preview: Eksempel + randomize_color: Vælg en tilfældig farve settings: enable_gravatars: Aktivér Gravatar for brugere enable_local_avatars: Aktivér tilpassede avatarer gravatar_default: Standardbillede fra Gravatar - text_avatar_gravatar_html: OpenProject bruger din Gravatar, hvis du har registreret en på %{gravatar_url}, ellers et standardbillede eller -ikon, hvis det findes. - text_avatar_local: Du kan også overføre en egen avatar, der tilsidesætter Gravataren, ved at klikke på billedet. Vi anbefaler et billede på 128 × 128 pixel. - text_avatar_local_only: Du kan overføre en egen avatar ved at klikke på billedet. Vi anbefaler et billede på 128 × 128 pixel. + text_avatar_text: Skriv op til to tegn. Lad feltet stå tomt for at bruge dine initialer. + text_invalid_error: Brug kun synlige tegn. + text_length_error: Skriv op til to tegn. + types: + gravatar: + description: Det billede, der er registreret til din e-mailadresse på Gravatar + label: Gravatar + image: + description: Et eget billede, som du kan overføre til denne installation + label: Billede + initials: + description: Brug dine initialer, eller erstat dem med op til to tegn. + label: Initialer empty_file_error: Overfør et gyldigt billede (jpg, png, gif) error_image_size: Billedet er for stort. error_image_upload: Fejl under lagring af billedet. diff --git a/modules/avatars/config/locales/crowdin/de.yml b/modules/avatars/config/locales/crowdin/de.yml index 100dfd083b92..a7c2c625cd51 100644 --- a/modules/avatars/config/locales/crowdin/de.yml +++ b/modules/avatars/config/locales/crowdin/de.yml @@ -3,16 +3,37 @@ de: are_you_sure_delete_avatar: Sind Sie sicher, dass Sie das Profilbild löschen möchten? avatar_deleted: Profilbild erfolgreich gelöscht. avatars: - label_avatar: Profilfoto + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Selbsterstelltes Profilbild + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aktiviere Gravatare enable_local_avatars: Selbsterstellte Profilbilder aktivieren gravatar_default: Standard-Gravatar-Bild - text_avatar_gravatar_html: OpenProject verwendet Ihr Gravatar-Bild, sofern eines unter %{gravatar_url} registriert ist, andernfalls ein Standardbild oder -symbol, sofern vorhanden. - text_avatar_local: Sie können ein eigenes Profilbild hochladen, welches Gravatar überschreibt, indem Sie auf das Bild klicken. Wir empfehlen ein Bild mit einer Größe von 128 × 128 Pixel. - text_avatar_local_only: Sie können ein eigenes Profilbild hochladen, indem Sie auf das Bild klicken. Wir empfehlen ein Bild mit einer Größe von 128 × 128 Pixel. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Bitte laden Sie ein gültiges Bild hoch (JPG, PNG, GIF) error_image_size: Das Bild ist zu groß. error_image_upload: Fehler beim Speichern des Bildes. diff --git a/modules/avatars/config/locales/crowdin/el.yml b/modules/avatars/config/locales/crowdin/el.yml index d6a059f45404..51df5fe6c854 100644 --- a/modules/avatars/config/locales/crowdin/el.yml +++ b/modules/avatars/config/locales/crowdin/el.yml @@ -3,16 +3,37 @@ el: are_you_sure_delete_avatar: Είστε βέβαιοι ότι θέλετε να διαγράψετε το άβαταρ σας; avatar_deleted: Το άβαταρ διαγράφηκε με επιτυχία. avatars: - label_avatar: Άβαταρ + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Προσαρμοσμένο άβαταρ + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Ενεργοποίηση gravatar χρήστη enable_local_avatars: Ενεργοποίηση προσαρμοσμένων άβαταρ χρήστη gravatar_default: Προεπιλεγμένη εικόνα Gravatar - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Παρακαλούμε ανεβάστε μια έγκυρη εικόνα (jpg, png, gif) error_image_size: Η εικόνα είναι πολύ μεγάλη. error_image_upload: Σφάλμα κατά την αποθήκευση της εικόνας. diff --git a/modules/avatars/config/locales/crowdin/eo.yml b/modules/avatars/config/locales/crowdin/eo.yml index c4e29243eef1..d76b609621ff 100644 --- a/modules/avatars/config/locales/crowdin/eo.yml +++ b/modules/avatars/config/locales/crowdin/eo.yml @@ -3,16 +3,37 @@ eo: are_you_sure_delete_avatar: Ĉu vi certas, ke vi volas forigi vian avataron? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: Avataro + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravataro label_local_avatar: Propra avataro + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Ŝalti uzantajn gravatarojn enable_local_avatars: Ŝalti uzantajn proprajn gravatarojn gravatar_default: Defaŭlta gravatara bildo - text_avatar_gravatar_html: OpenProject uzas vian Gravatar-profilbildon, se vi registris unu ĉe %{gravatar_url}, aŭ defaŭltan bildon aŭ ikonon, se tia ekzistas. - text_avatar_local: Vi ankaŭ povas alŝuti personigitan avataron, kiu anstataŭigas la Gravatar-an, per klako sur la bildo. Ni rekomendas bildon de 128 × 128 bilderoj. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Bonvolu alŝuti validan bildon (jpg, png, gif) error_image_size: La bildo estas tro granda. error_image_upload: Eraro dum konservado de la bildo. diff --git a/modules/avatars/config/locales/crowdin/es.yml b/modules/avatars/config/locales/crowdin/es.yml index 2253bc4ccab0..895b14336076 100644 --- a/modules/avatars/config/locales/crowdin/es.yml +++ b/modules/avatars/config/locales/crowdin/es.yml @@ -3,16 +3,37 @@ es: are_you_sure_delete_avatar: "¿Está seguro de que quiere eliminar su avatar?" avatar_deleted: El avatar se ha eliminado correctamente. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar personalizado + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Habilitar Gravatar de usuario enable_local_avatars: Habilitar avatares personalizados de usuario gravatar_default: Imagen de gravatar por defecto - text_avatar_gravatar_html: OpenProject utiliza tu Gravatar si lo has registrado en %{gravatar_url} o una imagen o icono predeterminado si hay alguno. - text_avatar_local: También puedes subir un avatar personalizado que sustituya al de Gravatar haciendo clic en la imagen. Te recomendamos que utilices una imagen de 128 por 128 píxeles. - text_avatar_local_only: Puedes subir un avatar personalizado haciendo clic en la imagen. Te recomendamos que utilices una imagen de 128 por 128 píxeles. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Cargue un archivo de imagen válido (JPG, PNG o GIF) error_image_size: El tamaño de la imagen es demasiado grande. error_image_upload: Error al guardar la imagen. diff --git a/modules/avatars/config/locales/crowdin/et.yml b/modules/avatars/config/locales/crowdin/et.yml index 2d9cca2d630b..98ac9adb1e8d 100644 --- a/modules/avatars/config/locales/crowdin/et.yml +++ b/modules/avatars/config/locales/crowdin/et.yml @@ -3,16 +3,37 @@ et: are_you_sure_delete_avatar: Olete kindel, et soovite oma profiilipilti kustutada? avatar_deleted: Profiilipilt kustutatud. avatars: - label_avatar: Profiilipilt + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Kohandatud profiilipilt + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Vaikimisi kasutatav Gravatari kasutajaikoon - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Palun laadige üles ainult lubatud formaadis (jpg, png, gif). error_image_size: Pilt on liiga suur. error_image_upload: Viga pildi salvestamisel. diff --git a/modules/avatars/config/locales/crowdin/eu.yml b/modules/avatars/config/locales/crowdin/eu.yml index b0f3b286ed17..8126bc99ae5d 100644 --- a/modules/avatars/config/locales/crowdin/eu.yml +++ b/modules/avatars/config/locales/crowdin/eu.yml @@ -3,16 +3,37 @@ eu: are_you_sure_delete_avatar: Ziur zure abatarra ezabatu nahi duzula? avatar_deleted: Abatarra ongi ezabatu da. avatars: - label_avatar: Abatarra + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Grabatarra label_local_avatar: Abatar pertsonalizatua + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: Irudia handiegia da. error_image_upload: Irudia gordetzeak akatsa eman du. diff --git a/modules/avatars/config/locales/crowdin/fa.yml b/modules/avatars/config/locales/crowdin/fa.yml index 81397b114442..c101413745b1 100644 --- a/modules/avatars/config/locales/crowdin/fa.yml +++ b/modules/avatars/config/locales/crowdin/fa.yml @@ -3,16 +3,37 @@ fa: are_you_sure_delete_avatar: 'آیا مطمئن هستید که می‌خواهید آواتار خود را حذف کنید؟ ' avatar_deleted: چهرک با کامیابی زدوده شد. avatars: - label_avatar: آواتار + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: چهرکنماد (شناسایی چهرک جهانی) label_local_avatar: جهرک سفارشی + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: چهرکنماد (شناسایی چهرک جهانی) کاربر را کارآ کنید enable_local_avatars: کاراندازی سفارشی سازی چهرکنماد (شناسایی چهرک جهانی) gravatar_default: تصویر گراواتار پیش‌فرض - text_avatar_gravatar_html: اگر در %{gravatar_url} یک Gravatar ثبت کرده باشید، OpenProject از آن استفاده می‌کند؛ در غیر این صورت، در صورت وجود از تصویر یا آیکون پیش‌فرض استفاده می‌شود. - text_avatar_local: همچنین می‌توانید با کلیک روی تصویر، یک آواتار سفارشی بارگذاری کنید که جایگزین Gravatar می‌شود. تصویر 128 در 128 پیکسل توصیه می‌شود. - text_avatar_local_only: می‌توانید با کلیک روی تصویر، آواتار سفارشی خود را بارگذاری کنید. ما تصویری به ابعاد ۱۲۸ در ۱۲۸ پیکسل را توصیه می‌کنیم. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: لطفاً یک عکس معتبر بارگذاری کنید (jpg، png، gif) error_image_size: عکس بیش از اندازه بزرگ است. error_image_upload: خطا در ذخیره عکس diff --git a/modules/avatars/config/locales/crowdin/fi.yml b/modules/avatars/config/locales/crowdin/fi.yml index d527d41931d7..e795946c5b10 100644 --- a/modules/avatars/config/locales/crowdin/fi.yml +++ b/modules/avatars/config/locales/crowdin/fi.yml @@ -3,16 +3,37 @@ fi: are_you_sure_delete_avatar: Haluatko varmasti poistaa kuvan? avatar_deleted: Kuva poistettu. avatars: - label_avatar: Kuva + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Valinnainen kuva + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Salli käyttäjien gravatar kuvat enable_local_avatars: Salli käyttäjien omat kuvat gravatar_default: Oletus Gravatar käyttäjäikoni - text_avatar_gravatar_html: OpenProject käyttää Gravatar-kuvaasi, jos olet rekisteröinyt sellaisen osoitteessa %{gravatar_url}, tai oletuskuvaa tai -kuvaketta, jos sellainen on olemassa. - text_avatar_local: Voit myös ladata oman avatarin, joka korvaa Gravatar-kuvan, napsauttamalla kuvaa. Suosittelemme 128 × 128 pikselin kokoista kuvaa. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Lisää kuva sallitussa tiedostomuodossa (jpg, png, gif) error_image_size: Kuva on liian suuri error_image_upload: Virhe tallentaessa kuvaa diff --git a/modules/avatars/config/locales/crowdin/fil.yml b/modules/avatars/config/locales/crowdin/fil.yml index ea347b5492d5..a19c814da27b 100644 --- a/modules/avatars/config/locales/crowdin/fil.yml +++ b/modules/avatars/config/locales/crowdin/fil.yml @@ -3,16 +3,37 @@ fil: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Custom avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: I-default ang Gravatar na larawan - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: The image is too large. error_image_upload: Error saving the image. diff --git a/modules/avatars/config/locales/crowdin/fr.yml b/modules/avatars/config/locales/crowdin/fr.yml index cc7a0b1000a6..738e7439e496 100644 --- a/modules/avatars/config/locales/crowdin/fr.yml +++ b/modules/avatars/config/locales/crowdin/fr.yml @@ -3,16 +3,37 @@ fr: are_you_sure_delete_avatar: Voulez-vous vraiment supprimer votre avatar ? avatar_deleted: L'avatar a bien été supprimé. avatars: - label_avatar: Avatar + background_color_hint: Laissez ce champ vide pour que la couleur soit choisie automatiquement. + delete_image: Supprimer l’image + edit_avatar: Modifier l'avatar + image_hint: Choisissez un fichier JPG, PNG ou GIF. Votre image est enregistrée lorsque vous cliquez sur « Enregistrer ». + image_required: Choisissez une image ou sélectionnez un autre avatar. + label_avatar_text: Texte de l'avatar + label_background_color: Arrière-plan label_gravatar: Gravatar label_local_avatar: Avatar personnalisé + label_option: Options de l'avatar + manage_gravatar: Gérez votre photo de profil sur Gravatar + message_avatar_updated: L'avatar a bien été changé. + preview: Aperçu + randomize_color: Choisir une couleur au hasard settings: enable_gravatars: Activer les gravatars de l'utilisateur enable_local_avatars: Activer les avatars personnalisés de l'utilisateur gravatar_default: Image Gravatar par défaut - text_avatar_gravatar_html: OpenProject utilise votre Gravatar si vous en avez créé un sur %{gravatar_url}, ou une image ou une icône par défaut si celle-ci existe. - text_avatar_local: En cliquant sur l'image, vous pouvez également importer un avatar personnalisé qui remplacera celui de Gravatar. Nous vous recommandons d'utiliser une image de 128 × 128 pixels. - text_avatar_local_only: Vous pouvez importer un avatar personnalisé en cliquant sur l'image. Nous vous recommandons d'utiliser une image de 128 × 128 pixels. + text_avatar_text: Saisissez jusqu'à deux caractères. Laissez ce champ vide pour utiliser les initiales de votre nom. + text_invalid_error: N'utilisez que des caractères visibles. + text_length_error: Saisissez jusqu'à deux caractères. + types: + gravatar: + description: L'image associée à votre adresse e-mail sur Gravatar + label: Gravatar + image: + description: Une image personnalisée que vous pouvez télécharger sur cette instance + label: Image + initials: + description: Utilisez les initiales de votre nom ou remplacez-les par deux caractères au maximum. + label: Initiales empty_file_error: Veuillez importer une image valide (JPG, PNG, GIF) error_image_size: L'image est trop grande. error_image_upload: Erreur lors de la sauvegarde de l'image. diff --git a/modules/avatars/config/locales/crowdin/he.yml b/modules/avatars/config/locales/crowdin/he.yml index cbd771c721da..1b060fa40cc7 100644 --- a/modules/avatars/config/locales/crowdin/he.yml +++ b/modules/avatars/config/locales/crowdin/he.yml @@ -3,16 +3,37 @@ he: are_you_sure_delete_avatar: האם אתה בטוח שאתה רוצה למחוק את התמונה? avatar_deleted: התמונה נמחקה בהצלחה avatars: - label_avatar: אווטר + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: תמונה אישית + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: בבקשה העלה תמונה נתמכת (jpg, png, gif) error_image_size: קובץ גדול מדי error_image_upload: תקלה בשמירת תמונה diff --git a/modules/avatars/config/locales/crowdin/hi.yml b/modules/avatars/config/locales/crowdin/hi.yml index 4d1936673687..f0da52b983ee 100644 --- a/modules/avatars/config/locales/crowdin/hi.yml +++ b/modules/avatars/config/locales/crowdin/hi.yml @@ -3,16 +3,37 @@ hi: are_you_sure_delete_avatar: क्या आप निश्चित रूप से अपना अवतार मिटाना चाहते हैं? avatar_deleted: अवतार सफ़लतापूर्वक मिटा दिया गया। avatars: - label_avatar: अवतार + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: गृवतार label_local_avatar: अनुकूलित अवतार + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: उपयोगकर्ता के Gravatar सक्षम करें enable_local_avatars: 'उपयोक्‍ता अनूकूल‍ित अवतार सक्षम करें। ' gravatar_default: पूर्व-निर्धारित Gravatar चित्र - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: कृपया वैध चित्र अपलोड करें (jpg, png, gif) error_image_size: चित्र अत्यधिक बड़ा है। error_image_upload: चित्र सुरक्षित करने में त्रुटि diff --git a/modules/avatars/config/locales/crowdin/hr.yml b/modules/avatars/config/locales/crowdin/hr.yml index 87554bb7eb08..a4085a6542b5 100644 --- a/modules/avatars/config/locales/crowdin/hr.yml +++ b/modules/avatars/config/locales/crowdin/hr.yml @@ -3,16 +3,37 @@ hr: are_you_sure_delete_avatar: Jeste li sigurni da želite obrisati svoj avatar? avatar_deleted: Avatar je uspješno obrisan. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Prilagođeni avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Dozvoli korisničke gravatare enable_local_avatars: Dozvoli prilagođene korisničke avatare gravatar_default: Zadane Gravatar slike - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Molimo pohranite sliku u ispravom formatu (jpg, png, gif) error_image_size: Slika je prevelika. error_image_upload: Greška pri spremanju slike. diff --git a/modules/avatars/config/locales/crowdin/hu.yml b/modules/avatars/config/locales/crowdin/hu.yml index 2113edb53079..7a7ba3ce1c82 100644 --- a/modules/avatars/config/locales/crowdin/hu.yml +++ b/modules/avatars/config/locales/crowdin/hu.yml @@ -3,16 +3,37 @@ hu: are_you_sure_delete_avatar: Biztosan törölni szeretné a profilképét? avatar_deleted: A profilkép sikeresen törölve. avatars: - label_avatar: Profilkép + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Egyéni profilkép + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Felhasználói gravatar profilképek engedélyezése enable_local_avatars: Felhasználói egyéni profilképek engedélyezése gravatar_default: Alapértelmezett Gravatar profilkép - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Töltsön fel egy érvényes képet (jpg, png, gif) error_image_size: A kép túl nagy. error_image_upload: Hiba a kép mentésekor. diff --git a/modules/avatars/config/locales/crowdin/hy.yml b/modules/avatars/config/locales/crowdin/hy.yml index 6e0cdd9be7a7..1b86bf331645 100644 --- a/modules/avatars/config/locales/crowdin/hy.yml +++ b/modules/avatars/config/locales/crowdin/hy.yml @@ -3,16 +3,37 @@ hy: are_you_sure_delete_avatar: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել Ձեր ավատարը avatar_deleted: Ավատարը հաջողությամբ ջնջվել է։ avatars: - label_avatar: Ավատար + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Հատուկ ավատար + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Միացնել օգտատերերի Gravatar-ները enable_local_avatars: Միացնել օգտատերերի հատուկ ավատարները gravatar_default: Կանխադրված Gravatar պատկեր - text_avatar_gravatar_html: OpenProject-ը օգտագործում է Ձեր Gravatar-ը, եթե գրանցել եք այն %{gravatar_url} կայքում, կամ կանխադրված պատկեր կամ պատկերակ, եթե այդպիսին առկա է։ - text_avatar_local: Պատկերի վրա սեղմելով կարող եք նաև վերբեռնել հատուկ ավատար, որը գերակայում է Gravatar-ին։ Խորհուրդ ենք տալիս 128 առ 128 պիքսել չափի պատկեր։ - text_avatar_local_only: Պատկերի վրա սեղմելով կարող եք վերբեռնել հատուկ ավատար։ Խորհուրդ ենք տալիս 128 առ 128 պիքսել չափի պատկեր։ + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Խնդրում ենք վերբեռնել վավեր պատկեր (jpg, png, gif)։ error_image_size: Պատկերը չափազանց մեծ է։ error_image_upload: Պատկերը պահպանելիս սխալ է տեղի ունեցել։ diff --git a/modules/avatars/config/locales/crowdin/id.yml b/modules/avatars/config/locales/crowdin/id.yml index ef6838fe6501..3abf0fb9063a 100644 --- a/modules/avatars/config/locales/crowdin/id.yml +++ b/modules/avatars/config/locales/crowdin/id.yml @@ -3,16 +3,37 @@ id: are_you_sure_delete_avatar: Apakah anda yakin ingin menghapus avatar anda? avatar_deleted: Avatar berhasil dihapus avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar khusus + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aktifkan gravatar pengguna enable_local_avatars: Aktifkan Avatar khusus pengguna gravatar_default: Gambar Gravatar default - text_avatar_gravatar_html: OpenProject akan menggunakan Gravatar Anda jika Anda telah mendaftarkannya di %{gravatar_url}, atau gambar atau ikon bawaan jika tersedia. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: Anda dapat mengunggah avatar kustom dengan mengklik gambar tersebut. Kami menyarankan menggunakan gambar berukuran 128 × 128 piksel. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Unggah gambar yang valid (jpg, png, gif) error_image_size: Gambar terlalu besar error_image_upload: Kesalahan menyimpan gambar diff --git a/modules/avatars/config/locales/crowdin/it.yml b/modules/avatars/config/locales/crowdin/it.yml index 34cbafb65192..90aa5baeea3e 100644 --- a/modules/avatars/config/locales/crowdin/it.yml +++ b/modules/avatars/config/locales/crowdin/it.yml @@ -3,16 +3,37 @@ it: are_you_sure_delete_avatar: Sei sicuro di voler eliminare il tuo avatar? avatar_deleted: Avatar eliminato con successo. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar personalizzato + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Abilita i gravatars dell'utente enable_local_avatars: Abilita gli avatar personalizzati dell'utente gravatar_default: Immagine Gravatar predefinita - text_avatar_gravatar_html: OpenProject utilizza il tuo Gravatar, se ne hai registrato uno su %{gravatar_url}, oppure un'immagine o un'icona predefinita, se disponibile. - text_avatar_local: Puoi anche caricare un avatar personalizzato che sostituisce il Gravatar facendo clic sull'immagine. Ti consigliamo un'immagine di 128 × 128 pixel. - text_avatar_local_only: Puoi caricare un avatar personalizzato facendo clic sull'immagine. Ti consigliamo un'immagine di 128 × 128 pixel. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Per favore caricare un'immagine valida (jpg, png, gif) error_image_size: L'immagine è troppo grande. error_image_upload: Errore nel salvataggio dell'immagine. diff --git a/modules/avatars/config/locales/crowdin/ja.yml b/modules/avatars/config/locales/crowdin/ja.yml index 0eb262a90b2e..e4ed1b04556b 100644 --- a/modules/avatars/config/locales/crowdin/ja.yml +++ b/modules/avatars/config/locales/crowdin/ja.yml @@ -3,16 +3,37 @@ ja: are_you_sure_delete_avatar: アバターを削除してもよろしいですか? avatar_deleted: アバターの削除が完了しました。 avatars: - label_avatar: アバター + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: カスタムのアバター + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: ユーザーのGravatarを有効にする enable_local_avatars: ユーザーのカスタムアバターを有効にする gravatar_default: デフォルトのグラバター画像 - text_avatar_gravatar_html: OpenProjectでは、 %{gravatar_url}でGravatarを登録している場合はその画像を使用し、登録がない場合はデフォルトの画像またはアイコンを使用します。 - text_avatar_local: また、画像をクリックすることで、Gravatarの代わりに独自のアバターをアップロードすることもできます。128×128ピクセルの画像の使用をお勧めします。 - text_avatar_local_only: 画像をクリックすると、独自のアバターをアップロードできます。128×128ピクセルの画像をお勧めします。 + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: 正しい画像をアップロードしてください (jpg、png、gif) error_image_size: 画像が大きすぎます。 error_image_upload: 画像の保存時にエラーが発生しました。 diff --git a/modules/avatars/config/locales/crowdin/ka.yml b/modules/avatars/config/locales/crowdin/ka.yml index cddaf5e311d0..da968f45e711 100644 --- a/modules/avatars/config/locales/crowdin/ka.yml +++ b/modules/avatars/config/locales/crowdin/ka.yml @@ -3,16 +3,37 @@ ka: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: ავატარი + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: გრავატარი label_local_avatar: პერსონალური ავატარი + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: The image is too large. error_image_upload: Error saving the image. diff --git a/modules/avatars/config/locales/crowdin/kk.yml b/modules/avatars/config/locales/crowdin/kk.yml index 55b51760be61..add0a41bde17 100644 --- a/modules/avatars/config/locales/crowdin/kk.yml +++ b/modules/avatars/config/locales/crowdin/kk.yml @@ -3,16 +3,37 @@ kk: are_you_sure_delete_avatar: Аватарыңызды шынымен өшіргіңіз келеді ме? avatar_deleted: Аватар сәтті өшірілді. avatars: - label_avatar: Аватар + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Граватар label_local_avatar: Жеке аватар + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Қолданушы граватарларына рұқсат беру enable_local_avatars: Қолданушы жеке аватарларына рұқсат беру gravatar_default: Әдепкі граватар бейнесі - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Талапқа сай суретті жүктеуіңізді сұраймыз (jpg, png, gif) error_image_size: Сурет тым үлкен. error_image_upload: Суретті жүктеуде қате шықты. diff --git a/modules/avatars/config/locales/crowdin/ko.yml b/modules/avatars/config/locales/crowdin/ko.yml index 997c4877cf3f..d9bdb9c7eeb7 100644 --- a/modules/avatars/config/locales/crowdin/ko.yml +++ b/modules/avatars/config/locales/crowdin/ko.yml @@ -3,16 +3,37 @@ ko: are_you_sure_delete_avatar: 아바타를 삭제하시겠습니까? avatar_deleted: 아바타가 삭제되었습니다. avatars: - label_avatar: 아바타 + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: 사용자 지정 아바타 + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: 사용자 Gravatar 사용 enable_local_avatars: 사용자 커스텀 Gravatar 사용 gravatar_default: 기본 Gravatar 이미지 - text_avatar_gravatar_html: OpenProject는 사용자가 %{gravatar_url}에서 Gravatar를 등록한 경우 해당 Gravatar를 사용하며, 등록된 Gravatar가 없는 경우에는 기본 이미지나 아이콘을 사용합니다. - text_avatar_local: 또한 이미지를 클릭하여 Gravatar를 재정의하는 사용자 지정 아바타를 업로드할 수 있습니다. 128×128 픽셀 크기의 이미지를 사용하는 것이 좋습니다. - text_avatar_local_only: 또한 이미지를 클릭하여 사용자 지정 아바타를 업로드할 수 있습니다. 128×128 픽셀 크기의 이미지를 사용하는 것이 좋습니다. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: 유효한 이미지(jpg, png, gif)를 업로드하십시오. error_image_size: 이미지가 너무 큽니다. error_image_upload: 이미지를 저장하는 중에 오류가 발생했습니다. diff --git a/modules/avatars/config/locales/crowdin/li.yml b/modules/avatars/config/locales/crowdin/li.yml index cf3caada8434..bf11302ceaf1 100644 --- a/modules/avatars/config/locales/crowdin/li.yml +++ b/modules/avatars/config/locales/crowdin/li.yml @@ -3,16 +3,37 @@ li: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: Profielfoto + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Globale profielfoto label_local_avatar: Aangepaste profielfoto + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: Ut plaetje is te groeët. error_image_upload: Error saving the image. diff --git a/modules/avatars/config/locales/crowdin/lt.yml b/modules/avatars/config/locales/crowdin/lt.yml index c37436057015..9adfc0fe3a3f 100644 --- a/modules/avatars/config/locales/crowdin/lt.yml +++ b/modules/avatars/config/locales/crowdin/lt.yml @@ -3,16 +3,37 @@ lt: are_you_sure_delete_avatar: Ar tikrai norite ištrinti jūsų nuotrauką? avatar_deleted: Nuotrauka sėkmingai ištrinta. avatars: - label_avatar: Nuotrauka + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravataras label_local_avatar: Sava nuotrauka + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Įjungti naudotojų gravatarus enable_local_avatars: Įjungti savus naudotojų gravatarus gravatar_default: Gravatar paveiksliukas pagal nutylėjimą - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Prašome įkelti tinkamą piešinį (jpg, png, gif) error_image_size: Paveikslėlis per didelis. error_image_upload: Klaida įrašant paveikslėlį. diff --git a/modules/avatars/config/locales/crowdin/lv.yml b/modules/avatars/config/locales/crowdin/lv.yml index 1a5a296eab7f..db42ff117ece 100644 --- a/modules/avatars/config/locales/crowdin/lv.yml +++ b/modules/avatars/config/locales/crowdin/lv.yml @@ -3,16 +3,37 @@ lv: are_you_sure_delete_avatar: Vai tiešām vēlies dzēst savu avatāru? avatar_deleted: Avatārs veiksmīgi izdzēsts. avatars: - label_avatar: Avatārs + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Pielāgots avatārs + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Lūdzu, augšupielādējiet atbilstoša formāta attēlu (jpg, png, gif) error_image_size: Attēls ir pārāk liels. error_image_upload: Kļūda, saglabājot attēlu. diff --git a/modules/avatars/config/locales/crowdin/mn.yml b/modules/avatars/config/locales/crowdin/mn.yml index 47ef7e90cf4f..8eb1a52e31cd 100644 --- a/modules/avatars/config/locales/crowdin/mn.yml +++ b/modules/avatars/config/locales/crowdin/mn.yml @@ -3,16 +3,37 @@ mn: are_you_sure_delete_avatar: Та аватараа устгахдаа итгэлтэй байна уу? avatar_deleted: Аватар амжилттай устгалаа. avatars: - label_avatar: Аватар + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Граватар label_local_avatar: Дурын аватар + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Хэрэглэгчийн граватаруудыг идэвхжүүлнэ enable_local_avatars: Хэрэглэгчийн хувийн аватаруудыг идэвхжүүлнэ үү gravatar_default: Өгөгдмөл Gravatar зураг - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Хүчинтэй зураг (jpg, png, gif) байршуулна уу error_image_size: Зураг хэтэрхий том байна. error_image_upload: Зураг хадгалахад алдаа гарлаа. diff --git a/modules/avatars/config/locales/crowdin/ms.yml b/modules/avatars/config/locales/crowdin/ms.yml index 0393e0056450..385fde1b2df4 100644 --- a/modules/avatars/config/locales/crowdin/ms.yml +++ b/modules/avatars/config/locales/crowdin/ms.yml @@ -3,16 +3,37 @@ ms: are_you_sure_delete_avatar: Adakah anda pasti mahu memadam avatar anda? avatar_deleted: Avatar berjaya dipadam. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar tersuai + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Benarkan pengguna gravatar enable_local_avatars: Benarkan pengguna menyuaikan avatar gravatar_default: Imej Gravatar default - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Sila muat naik imej yang sah (jpg, png, gif) error_image_size: Imej terlalu besar. error_image_upload: Ralat menyimpan imej. diff --git a/modules/avatars/config/locales/crowdin/ne.yml b/modules/avatars/config/locales/crowdin/ne.yml index bb8d48b3f82c..5f7c39d877d3 100644 --- a/modules/avatars/config/locales/crowdin/ne.yml +++ b/modules/avatars/config/locales/crowdin/ne.yml @@ -3,16 +3,37 @@ ne: are_you_sure_delete_avatar: 'के तँपाई अवतार हटाउन निश्चित हुनुहुन्छ ? ' avatar_deleted: 'अवतार सफलतापुर्वक हटाइयो। ' avatars: - label_avatar: 'अवतार ' + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: 'इच्छाएको अवतार ' + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: 'कृपया मान्य चित्र जस्तै जस्तै jpg, png, gif अपलोड गर्नुहोस्। ' error_image_size: यो चित्र निकै ठुलो छ। error_image_upload: 'चित्र समावेश गर्न सकिएन। ' diff --git a/modules/avatars/config/locales/crowdin/nl.yml b/modules/avatars/config/locales/crowdin/nl.yml index 26bde1e9adaf..ef6d6be4f957 100644 --- a/modules/avatars/config/locales/crowdin/nl.yml +++ b/modules/avatars/config/locales/crowdin/nl.yml @@ -3,16 +3,37 @@ nl: are_you_sure_delete_avatar: Weet je zeker dat je je avatar wilt verwijderen? avatar_deleted: Avatar succesvol verwijderd. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Aangepaste avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aangepaste avatars inschakelen enable_local_avatars: Aangepaste avatars inschakelen gravatar_default: Standaard Gravatarafbeelding - text_avatar_gravatar_html: OpenProject gebruikt je Gravatar als je er een bij %{gravatar_url} hebt geregistreerd, of een standaard afbeelding of pictogram als deze bestaat. - text_avatar_local: Je kunt ook een eigen avatar uploaden die de Gravatar overschrijft door op de afbeelding te klikken. We raden een afbeelding van 128 bij 128 pixels aan. - text_avatar_local_only: Je kunt ook een eigen avatar uploaden die de Gravatar overschrijft door op de afbeelding te klikken. We raden een afbeelding van 128 bij 128 pixels aan. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Upload een geldige afbeelding (jpg, png, gif) error_image_size: De afbeelding is te groot. error_image_upload: Fout bij het opslaan van de afbeelding diff --git a/modules/avatars/config/locales/crowdin/no.yml b/modules/avatars/config/locales/crowdin/no.yml index c01c57e3949f..61898a7c9b0a 100644 --- a/modules/avatars/config/locales/crowdin/no.yml +++ b/modules/avatars/config/locales/crowdin/no.yml @@ -3,16 +3,37 @@ are_you_sure_delete_avatar: Er du sikker på at du vil slette profilbildet din? avatar_deleted: Profilbildet har blitt endret. avatars: - label_avatar: Profilbilde + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Tilpasset profilbilde + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aktiver brukergravatarer enable_local_avatars: Aktiver brukerdefinerte profilbilder gravatar_default: Standard Gravatar-bilde - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Vennligst last opp et gyldig bilde (jpg, png, gif) error_image_size: Bildet er for stor. error_image_upload: Feil ved lagring av bilde. diff --git a/modules/avatars/config/locales/crowdin/pl.yml b/modules/avatars/config/locales/crowdin/pl.yml index d50928de7ed0..a4670c6bca7f 100644 --- a/modules/avatars/config/locales/crowdin/pl.yml +++ b/modules/avatars/config/locales/crowdin/pl.yml @@ -3,16 +3,37 @@ pl: are_you_sure_delete_avatar: Czy na pewno chcesz usunąć ten awatar? avatar_deleted: Awatar został usunięty. avatars: - label_avatar: Awatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Awatar niestandardowy + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Włącz Gravatary użytkownika enable_local_avatars: Włącz niestandardowe awatary użytkownika gravatar_default: Domyślny obraz Gravatar - text_avatar_gravatar_html: OpenProject używa Twojego Gravatara, jeśli został zarejestrowany na stronie %{gravatar_url}, lub domyślny obraz lub ikonę, jeśli istnieją. - text_avatar_local: Klikając obraz, można również przesłać własny awatar, który zastąpi Gravatar. Zalecamy użycie obrazu o wymiarach 128 na 128 pikseli. - text_avatar_local_only: Klikając obraz, można przesłać własny awatar. Zalecamy użycie obrazu o wymiarach 128 na 128 pikseli. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Prześlij prawidłowy obraz (jpg, png, gif) error_image_size: Obraz jest za duży. error_image_upload: Błąd podczas zapisywania obrazu. diff --git a/modules/avatars/config/locales/crowdin/pt-BR.yml b/modules/avatars/config/locales/crowdin/pt-BR.yml index 7ec4e134eed9..1298e4498f35 100644 --- a/modules/avatars/config/locales/crowdin/pt-BR.yml +++ b/modules/avatars/config/locales/crowdin/pt-BR.yml @@ -3,16 +3,37 @@ pt-BR: are_you_sure_delete_avatar: Tem certeza que deseja excluir sua Imagem do perfil? avatar_deleted: Imagem do perfil excluída com sucesso. avatars: - label_avatar: Imagem do perfil + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Imagem do perfil personalizada + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Habilitar Gravatar para o usuário enable_local_avatars: Habilitar Imagem do perfil personalizada gravatar_default: Imagem Gravatar padrão - text_avatar_gravatar_html: O OpenProject usa seu Gravatar, se você tiver cadastrado em %{gravatar_url}. Caso contrário, será exibida uma imagem ou ícone padrão, quando disponível. - text_avatar_local: Você também pode enviar um avatar personalizado clicando na imagem. Ele substituirá o Gravatar. Recomendamos uma imagem de 128 × 128 pixels. - text_avatar_local_only: Você pode enviar um avatar personalizado clicando na imagem. Recomendamos uma imagem de 128 × 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Por favor, envie uma imagem válida (jpg, png, gif) error_image_size: A imagem é muito grande. error_image_upload: Erro ao salvar a imagem. diff --git a/modules/avatars/config/locales/crowdin/pt-PT.yml b/modules/avatars/config/locales/crowdin/pt-PT.yml index 77cb29ed2fa3..b17b022a558a 100644 --- a/modules/avatars/config/locales/crowdin/pt-PT.yml +++ b/modules/avatars/config/locales/crowdin/pt-PT.yml @@ -3,16 +3,37 @@ pt-PT: are_you_sure_delete_avatar: Tem a certeza de que deseja apagar o seu avatar? avatar_deleted: Avatar apagado com sucesso. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar personalizado + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Ativar Gravatars de utilizadores enable_local_avatars: Ativar avatares personalizados de utilizador gravatar_default: Imagem Gravatar predefinida - text_avatar_gravatar_html: O OpenProject utiliza o seu Gravatar, caso o tenha registado em %{gravatar_url}, uma imagem ou um ícone predefinido, caso exista. - text_avatar_local: Também clicar na imagem para carregar um avatar personalizado que substitua o Gravatar. Recomendamos uma imagem com 128 por 128 píxeis. - text_avatar_local_only: Pode carregar um avatar personalizado clicando na imagem. Recomendamos uma imagem com 128 por 128 píxeis. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Por favor carregue uma imagem válida (jpg, png, gif) error_image_size: A imagem é demasiado grande. error_image_upload: Erro ao guardar a imagem. diff --git a/modules/avatars/config/locales/crowdin/ro.yml b/modules/avatars/config/locales/crowdin/ro.yml index ae2333a38c21..4f0b0008e691 100644 --- a/modules/avatars/config/locales/crowdin/ro.yml +++ b/modules/avatars/config/locales/crowdin/ro.yml @@ -3,16 +3,37 @@ ro: are_you_sure_delete_avatar: Ești sigur că vrei să-ți ștergi avatarul? avatar_deleted: Avatar șters cu succes. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar personalizat + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Activează gravatar-ul utilizatorului enable_local_avatars: Activați avatarele personalizate ale utilizatorului gravatar_default: Imagine Gravatar implicită - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Te rog să încarci o imagine validă (jpg, png, gif) error_image_size: Imaginea este prea mare. error_image_upload: Eroare de salvare a imaginii. diff --git a/modules/avatars/config/locales/crowdin/ru.yml b/modules/avatars/config/locales/crowdin/ru.yml index 71fba5b6c11f..c4df15516907 100644 --- a/modules/avatars/config/locales/crowdin/ru.yml +++ b/modules/avatars/config/locales/crowdin/ru.yml @@ -3,18 +3,39 @@ ru: are_you_sure_delete_avatar: Вы уверены, что хотите удалить свой аватар? avatar_deleted: Аватар успешно удален. avatars: - label_avatar: Аватар + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: 'Gravatar ' label_local_avatar: Пользовательский аватар + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Использовать Gravatar enable_local_avatars: Включить пользовательские аватары gravatar_default: Gravatar по умолчанию - text_avatar_gravatar_html: OpenProject использует ваш Gravatar если вы зарегистрировали его на %{gravatar_url}, или изображение или значок по умолчанию, если таковой существует. - text_avatar_local: Вы также можете загрузить пользовательский аватар, который переопределяет Gravatar нажав на изображение. Мы рекомендуем изображение 128 на 128 пикселей. - text_avatar_local_only: Вы можете загрузить свой аватар, нажав на изображение. Мы рекомендуем изображение размером 128 на 128 пикселей. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Пожалуйста, загрузите корректное изображение (jpg, png, gif) error_image_size: Изображение слишком большое. error_image_upload: Ошибка сохранения изображения. diff --git a/modules/avatars/config/locales/crowdin/rw.yml b/modules/avatars/config/locales/crowdin/rw.yml index e685e276d4ea..671e8fee699a 100644 --- a/modules/avatars/config/locales/crowdin/rw.yml +++ b/modules/avatars/config/locales/crowdin/rw.yml @@ -3,16 +3,37 @@ rw: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Custom avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: The image is too large. error_image_upload: Error saving the image. diff --git a/modules/avatars/config/locales/crowdin/si.yml b/modules/avatars/config/locales/crowdin/si.yml index 3406968dea61..c556309e41d5 100644 --- a/modules/avatars/config/locales/crowdin/si.yml +++ b/modules/avatars/config/locales/crowdin/si.yml @@ -3,16 +3,37 @@ si: are_you_sure_delete_avatar: ඔබට ඔබේ අවතාරය මකා දැමීමට අවශ්ය බව ඔබට විශ්වාසද? avatar_deleted: අවතාර් සාර්ථකව මකා දැමීය. avatars: - label_avatar: අවතාර් + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: කැටයම් label_local_avatar: අභිරුචි අවතාරය + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: පරිශීලක ගුරුත්වාකර්ෂණ සක්රිය කරන්න enable_local_avatars: පරිශීලක අභිරුචි අවතාර සක්රීය gravatar_default: පෙරනිමි රූපය - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: කරුණාකර වලංගු රූපයක් උඩුගත කරන්න (jpg, png, gif) error_image_size: රූපය ඉතා විශාලයි. error_image_upload: රූපය සුරැකීමේ දෝෂය. diff --git a/modules/avatars/config/locales/crowdin/sk.yml b/modules/avatars/config/locales/crowdin/sk.yml index f2b617e61b02..3e81fd5ca148 100644 --- a/modules/avatars/config/locales/crowdin/sk.yml +++ b/modules/avatars/config/locales/crowdin/sk.yml @@ -3,16 +3,37 @@ sk: are_you_sure_delete_avatar: Vážne chcete zmazať váš účet? avatar_deleted: Úspešne odstránené. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Vlastný avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Povoliť Gravatar enable_local_avatars: Povoliť Gravatar gravatar_default: Predvolený Gravatar obrázok - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Prosím, nahrajte platný obrázok (jpg, png, gif) error_image_size: Obrázok je príliš veľký error_image_upload: Chyba pri ukladaní obrázka diff --git a/modules/avatars/config/locales/crowdin/sl.yml b/modules/avatars/config/locales/crowdin/sl.yml index 19d747e6dea6..cb70ab1b242b 100644 --- a/modules/avatars/config/locales/crowdin/sl.yml +++ b/modules/avatars/config/locales/crowdin/sl.yml @@ -3,16 +3,37 @@ sl: are_you_sure_delete_avatar: Ali ste prepričani, da želite izbrisati svojega avatarja? avatar_deleted: Avatar uspešno izbrisan. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Avatar po meri + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Omogoči uporabniškega gravatarja enable_local_avatars: Omogoči avatarja po meri gravatar_default: Privzeta Gravatar slika - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Naložite veljavno sliko (jpg, png, gif) error_image_size: Slika je prevelika. error_image_upload: Napaka pri shranjevanju slike. diff --git a/modules/avatars/config/locales/crowdin/sr.yml b/modules/avatars/config/locales/crowdin/sr.yml index 1064566dce22..6cb841dc27f7 100644 --- a/modules/avatars/config/locales/crowdin/sr.yml +++ b/modules/avatars/config/locales/crowdin/sr.yml @@ -3,16 +3,37 @@ sr: are_you_sure_delete_avatar: Da li ste sigurni da želite da obrišete svoj avatar? avatar_deleted: Avatar je uspešno obrisan. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Prilagođeni avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Omogućite gravatare korisnika enable_local_avatars: Omogući prilagođene avatare za korisnike gravatar_default: Podrazumevana Gravatar slika - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Postavite ispravnu sliku (jpg, png, gif) error_image_size: Slika je prevelika. error_image_upload: Greška prilikom čuvanja slike. diff --git a/modules/avatars/config/locales/crowdin/sv.yml b/modules/avatars/config/locales/crowdin/sv.yml index 788fb03d763e..c15c00b3e4d4 100644 --- a/modules/avatars/config/locales/crowdin/sv.yml +++ b/modules/avatars/config/locales/crowdin/sv.yml @@ -3,16 +3,37 @@ sv: are_you_sure_delete_avatar: Är du säker på att du vill ta bort din avatar? avatar_deleted: Avatar har tagits bort. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Anpassad avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Aktivera användargravatarer enable_local_avatars: Aktivera användaranpassade avatarer gravatar_default: Standardbild för Gravatar - text_avatar_gravatar_html: OpenProject använder din Gravatar om du har registrerat en på %{gravatar_url}, annars används en standardbild eller standardikon om en sådan finns. - text_avatar_local: Du kan också ladda upp en egen avatar som ersätter Gravatar genom att klicka på bilden. Vi rekommenderar en bild på 128 × 128 pixlar. - text_avatar_local_only: Du kan ladda upp en egen avatar genom att klicka på bilden. Vi rekommenderar en bild på 128 × 128 pixlar. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Vänligen ladda upp en giltig bild (jpg, png, gif) error_image_size: Bilden är för stor. error_image_upload: Kunde inte spara bilden. diff --git a/modules/avatars/config/locales/crowdin/th.yml b/modules/avatars/config/locales/crowdin/th.yml index 1fa353449446..59f1f9fb905a 100644 --- a/modules/avatars/config/locales/crowdin/th.yml +++ b/modules/avatars/config/locales/crowdin/th.yml @@ -3,16 +3,37 @@ th: are_you_sure_delete_avatar: คุณแน่ใจหรือไม่ว่าคุณต้องการลบรูปนี้? avatar_deleted: ลบรูปโปรไฟล์สำเร็จ avatars: - label_avatar: รูปโปรไฟล์ + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: รูปโปรไฟล์ label_local_avatar: เลือกรูปปัจจุบันเอง + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: แสดงรูปโปรไฟล์ enable_local_avatars: แสดงรูปโปรไฟล์พื้นฐาน gravatar_default: ค่าตั้งต้นของรูป Gravatar - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: กรุณาเลือกรูปภาพนามสุกล .jpg .png .gif error_image_size: แฟ้มมีขนาดใหญ่เกินไป error_image_upload: ไม่สามารถบันทึกรูปได้ diff --git a/modules/avatars/config/locales/crowdin/tr.yml b/modules/avatars/config/locales/crowdin/tr.yml index ca31cd09b7a3..262a02ea4ae8 100644 --- a/modules/avatars/config/locales/crowdin/tr.yml +++ b/modules/avatars/config/locales/crowdin/tr.yml @@ -3,16 +3,37 @@ tr: are_you_sure_delete_avatar: Avatarını silmek istediğinden emin misin? avatar_deleted: Avatar başarıyla silindi. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Özel avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Kullanıcı gravatarlarını etkinleştir enable_local_avatars: Kullanıcı özel avatarları etkinleştir gravatar_default: Varsayılan Gravatar resmi - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Lütfen geçerli bir resim yükle (jpg, png, gif) error_image_size: Resim çok büyük. error_image_upload: Resim kaydedilirken hata oluştu. diff --git a/modules/avatars/config/locales/crowdin/uk.yml b/modules/avatars/config/locales/crowdin/uk.yml index cbf9f0fe2633..0861ba4b966d 100644 --- a/modules/avatars/config/locales/crowdin/uk.yml +++ b/modules/avatars/config/locales/crowdin/uk.yml @@ -3,16 +3,37 @@ uk: are_you_sure_delete_avatar: Ви впевнені, що хочете видалити свій avatar? avatar_deleted: Аватар успішно видалено. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Довільний avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Увімкнути gravatars enable_local_avatars: Увімкнути можливість завантажувати особисті avatars gravatar_default: Зображення Gravatar за замовчуванням - text_avatar_gravatar_html: OpenProject використовує ваш Gravatar, якщо ви зареєстрували його на %{gravatar_url}, або зображення за замовчуванням чи значок, якщо вони доступні. - text_avatar_local: Ви також можете завантажити власний аватар, який замінить Gravatar, натиснувши на зображення. Рекомендований розмір зображення — 128 × 128 пікселів. - text_avatar_local_only: Ви можете завантажити власний аватар, натиснувши на зображення. Рекомендований розмір зображення — 128 × 128 пікселів. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Будь ласка, завантажте зображення вірного формату (jpg, png, gif) error_image_size: Зображення завелике. error_image_upload: Помилка під час збереження зображення. diff --git a/modules/avatars/config/locales/crowdin/uz.yml b/modules/avatars/config/locales/crowdin/uz.yml index 99fcbf86dc4f..df5cd2515762 100644 --- a/modules/avatars/config/locales/crowdin/uz.yml +++ b/modules/avatars/config/locales/crowdin/uz.yml @@ -3,16 +3,37 @@ uz: are_you_sure_delete_avatar: Are you sure you want to delete your avatar? avatar_deleted: Avatar deleted successfully. avatars: - label_avatar: Avatar + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: Custom avatar + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Enable user gravatars enable_local_avatars: Enable user custom avatars gravatar_default: Default Gravatar image - text_avatar_gravatar_html: OpenProject uses your Gravatar if you registered one at %{gravatar_url}, or a default image or icon if one exists. - text_avatar_local: You can also upload a custom avatar that overrides the Gravatar by clicking the image. We recommend an image of 128 by 128 pixels. - text_avatar_local_only: You can upload a custom avatar by clicking the image. We recommend an image of 128 by 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Please upload a valid image (jpg, png, gif) error_image_size: The image is too large. error_image_upload: Error saving the image. diff --git a/modules/avatars/config/locales/crowdin/vi.yml b/modules/avatars/config/locales/crowdin/vi.yml index 0fb3e9724940..36bf5f44268c 100644 --- a/modules/avatars/config/locales/crowdin/vi.yml +++ b/modules/avatars/config/locales/crowdin/vi.yml @@ -3,16 +3,37 @@ vi: are_you_sure_delete_avatar: Bạn có chắc muốn xóa hình đại diện của bạn ? avatar_deleted: Hình đại diện đã xóa thành công avatars: - label_avatar: hình đại diện + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Nhóm ảnh đại diện label_local_avatar: Tùy chỉnh hình đại diện + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: Bật gravatars của người dùng enable_local_avatars: Cho phép người dùng tùy chỉnh hình đại diện gravatar_default: Hình ảnh Gravatar mặc định - text_avatar_gravatar_html: OpenProject sẽ sử dụng ảnh Gravatar của bạn nếu bạn đã đăng ký tại %{gravatar_url}, hoặc sử dụng ảnh hoặc biểu tượng mặc định nếu có. - text_avatar_local: Bạn cũng có thể tải lên một ảnh đại diện tùy chỉnh để thay thế ảnh Gravatar bằng cách nhấp vào hình ảnh. Chúng tôi khuyên bạn nên sử dụng hình ảnh có kích thước 128 × 128 pixels. - text_avatar_local_only: Bạn có thể tải lên ảnh đại diện tùy chỉnh bằng cách nhấp vào hình ảnh. Chúng tôi khuyên bạn nên sử dụng hình ảnh có kích thước 128 × 128 pixels. + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: Xin hãy tải lên hình ảnh đúng định dạng(jpg, png, gif) error_image_size: Ảnh quá lớn error_image_upload: Lỗi khi lưu ảnh! diff --git a/modules/avatars/config/locales/crowdin/zh-CN.yml b/modules/avatars/config/locales/crowdin/zh-CN.yml index c246203749e8..0fdefbd3ff24 100644 --- a/modules/avatars/config/locales/crowdin/zh-CN.yml +++ b/modules/avatars/config/locales/crowdin/zh-CN.yml @@ -3,16 +3,37 @@ zh-CN: are_you_sure_delete_avatar: 确定要删除头像吗? avatar_deleted: 成功删除头像。 avatars: - label_avatar: 头像 + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: Gravatar label_local_avatar: 自定义头像 + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: 启用用户 Gravatar enable_local_avatars: 启用用户自定义头像 gravatar_default: 默认的 Gravatar 图像 - text_avatar_gravatar_html: OpenProject 将使用您的 Gravatar(如果已在 %{gravatar_url} 注册)或者默认图像或图标(如果存在)。 - text_avatar_local: 您也可以点击图像,上传自定义头像以覆盖 Gravatar。建议使用 128×128 像素的图像。 - text_avatar_local_only: 您可以点击图像,上传自定义头像。建议使用 128×128 像素的图像。 + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: 请上传一张有效的图像(jpg、png、gif) error_image_size: 图像太大。 error_image_upload: 保存图像时出错。 diff --git a/modules/avatars/config/locales/crowdin/zh-TW.yml b/modules/avatars/config/locales/crowdin/zh-TW.yml index 22257c611e2f..2af19d45fe43 100644 --- a/modules/avatars/config/locales/crowdin/zh-TW.yml +++ b/modules/avatars/config/locales/crowdin/zh-TW.yml @@ -3,16 +3,37 @@ zh-TW: are_you_sure_delete_avatar: 您確定要刪除您的大頭貼? avatar_deleted: 大頭貼刪除成功 avatars: - label_avatar: 大頭貼 + background_color_hint: Leave blank for an automatic color. + delete_image: Delete image + edit_avatar: Edit avatar + image_hint: Choose a JPG, PNG, or GIF. Your image is saved when you select Save. + image_required: Choose an image, or select a different avatar option. + label_avatar_text: Avatar text + label_background_color: Background color label_gravatar: 大頭貼 label_local_avatar: 自定大頭貼 + label_option: Avatar option + manage_gravatar: Manage your image on Gravatar + message_avatar_updated: Avatar changed successfully. + preview: Preview + randomize_color: Randomize color settings: enable_gravatars: 啟用使用者的圖像 enable_local_avatars: 啟用使用者的客製化分身 gravatar_default: 預設大頭貼 - text_avatar_gravatar_html: 若您曾在 %{gravatar_url}註冊過 Gravatar,OpenProject 會使用您的 Gravatar;若未註冊,則會使用預設圖片或圖示(如有)。 - text_avatar_local: 您也可以點擊圖片,上傳自訂頭像來取代 Gravatar。我們建議使用 128 × 128 像素的圖片。 - text_avatar_local_only: 您可以點擊圖片上傳自訂頭像。我們建議使用 128 × 128 像素的圖片。 + text_avatar_text: Enter up to two characters. Leave blank to use your name's initials. + text_invalid_error: Use only visible characters. + text_length_error: Enter up to two characters. + types: + gravatar: + description: The image registered for your email address on Gravatar + label: Gravatar + image: + description: A custom image you can upload to this instance + label: Image + initials: + description: Use your name's initials or override them with up to two characters. + label: Initials empty_file_error: 請上傳一個有效的圖片 (jpg, png, gif) error_image_size: 圖片太大。 error_image_upload: 儲存大頭貼時發生錯誤 diff --git a/modules/backlogs/config/locales/crowdin/af.yml b/modules/backlogs/config/locales/crowdin/af.yml index dbc6d47a7a8c..e9d826352a62 100644 --- a/modules/backlogs/config/locales/crowdin/af.yml +++ b/modules/backlogs/config/locales/crowdin/af.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ af: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ af: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ af: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ af: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ af: remaining_hours: Oorblywende werk sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ af: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ af: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ af: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ af: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ af: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ af: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ar.yml b/modules/backlogs/config/locales/crowdin/ar.yml index e82d787547cf..7da592c65d57 100644 --- a/modules/backlogs/config/locales/crowdin/ar.yml +++ b/modules/backlogs/config/locales/crowdin/ar.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ar: project: allow_multiple_active_sprints: السماح بوجود عدة سباقات نشطة backlog_excluded_types: أنواع حزم العمل المستبعدة + estimation_unit: Unit sprint_sharing: مشاركة السباق statuses_considered_closed: Statuses considered closed sprint: @@ -73,7 +74,7 @@ ar: format: "%{message}" unfinished_work_packages: zero: There are %{count} work packages that were not completed in this sprint. - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. two: There are %{count} work packages that were not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. many: There are %{count} work packages that were not completed in this sprint. @@ -150,9 +151,18 @@ ar: details: سيتم حذف قائمة المهام المتأخرة «%{name}» ونقل جميع حزم العمل إلى صندوق الوارد الخاص بالمهام المتأخرة. ولن يتم حذف أي حزمة عمل. title: حذف مجموعة المهام المتراكمة؟ burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: حدد تاريخي بدء وانتهاء السبرينت لإنشاء مخطط التقدم. blankslate_title: لا توجد بيانات متاحة عن معدل انخفاض الكثافة + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'اختر أنواع حزم العمل التي تريد إخفاءها من قائمة المهام المتأخرة. لن تظهر العناصر من الأنواع المحددة في قائمة المهام المتأخرة تلقائيًا، مما يضمن تركيز القائمة على الأعمال التي تهم فريقك. على سبيل المثال، يمكن إخفاء أنواع مثل «الملحمات» أو «المعالم» التي تُدار على مستوى أعلى، لضمان تركيز قائمة المهام المتأخرة على العناصر القابلة للتنفيذ. ' @@ -175,12 +185,12 @@ ar: drop_zone_label: انقر هنا لإضافة هذا العنصر label_actions: إجراءات صندوق الوارد show_more: - zero: عرض %{count} عنصر آخر - one: عرض 1 عنصر آخر + zero: Show %{count} more items + one: Show %{count} more item two: Show %{count} more items few: Show %{count} more items many: Show %{count} more items - other: عرض %{count} عناصر أخرى + other: Show %{count} more items title: البريد الوارد index_subheader_component: label_search_by_subject: Search work packages by subject @@ -208,6 +218,8 @@ ar: remaining_hours: الأعمال المتبقية sharing: مشاركة السباق show_burndown_chart: مخطط العمل المتبقي + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: إضافة حزمة عمل موجودة @@ -230,9 +242,41 @@ ar: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + zero: "%{percentage}% (%{resolved} of %{total} work packages)" + one: "%{percentage}% (%{resolved} of %{total} work package)" + two: "%{percentage}% (%{resolved} of %{total} work packages)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + many: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -266,7 +310,6 @@ ar: header_backlogs: '' work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -277,14 +320,25 @@ ar: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -314,9 +368,15 @@ ar: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + zero: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + two: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + many: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -335,6 +395,18 @@ ar: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -355,6 +427,9 @@ ar: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/az.yml b/modules/backlogs/config/locales/crowdin/az.yml index eddf5de4613a..bfae6974ca2e 100644 --- a/modules/backlogs/config/locales/crowdin/az.yml +++ b/modules/backlogs/config/locales/crowdin/az.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ az: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ az: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ az: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ az: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ az: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ az: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ az: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ az: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ az: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ az: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ az: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/be.yml b/modules/backlogs/config/locales/crowdin/be.yml index 2e0ced3ebbe7..ffec41b9b71a 100644 --- a/modules/backlogs/config/locales/crowdin/be.yml +++ b/modules/backlogs/config/locales/crowdin/be.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ be: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ be: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. many: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. @@ -142,9 +143,18 @@ be: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -167,7 +177,7 @@ be: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items many: Show %{count} more items other: Show %{count} more items @@ -196,6 +206,8 @@ be: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -218,9 +230,39 @@ be: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + many: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ be: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -263,14 +304,25 @@ be: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -300,9 +352,13 @@ be: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + many: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -321,6 +377,18 @@ be: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ be: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/bg.yml b/modules/backlogs/config/locales/crowdin/bg.yml index c113412b622d..66b4be41e5ab 100644 --- a/modules/backlogs/config/locales/crowdin/bg.yml +++ b/modules/backlogs/config/locales/crowdin/bg.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ bg: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ bg: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ bg: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ bg: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ bg: remaining_hours: Оставаща работа sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ bg: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ bg: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ bg: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ bg: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ bg: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ bg: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ca.yml b/modules/backlogs/config/locales/crowdin/ca.yml index 1f1e76ccb7f4..00af7319c78f 100644 --- a/modules/backlogs/config/locales/crowdin/ca.yml +++ b/modules/backlogs/config/locales/crowdin/ca.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ca: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ ca: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ ca: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ ca: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ ca: remaining_hours: Treball restant sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ ca: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ ca: header_backlogs: Mòdul Backlogs work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ ca: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ ca: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ ca: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ ca: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ckb-IR.yml b/modules/backlogs/config/locales/crowdin/ckb-IR.yml index f46d36832416..7011974764e6 100644 --- a/modules/backlogs/config/locales/crowdin/ckb-IR.yml +++ b/modules/backlogs/config/locales/crowdin/ckb-IR.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ckb-IR: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ ckb-IR: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ ckb-IR: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ ckb-IR: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ ckb-IR: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ ckb-IR: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ ckb-IR: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ ckb-IR: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ ckb-IR: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ ckb-IR: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ ckb-IR: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/cs.yml b/modules/backlogs/config/locales/crowdin/cs.yml index 220fce5c26dd..92a11efe0a5c 100644 --- a/modules/backlogs/config/locales/crowdin/cs.yml +++ b/modules/backlogs/config/locales/crowdin/cs.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ cs: project: allow_multiple_active_sprints: Povolit více aktivních sprintů backlog_excluded_types: Vyloučené typy pracovních balíčků + estimation_unit: Unit sprint_sharing: Sdílení sprintu statuses_considered_closed: Stavy považované za uzavřené sprint: @@ -72,10 +73,10 @@ cs: base: format: "%{message}" unfinished_work_packages: - one: Jeden pracovní balíček nebyl v tomto sprintu dokončen. - few: V tomto sprintu nebylo dokončeno %{count} pracovních balíčků. - many: V tomto sprintu nebylo dokončeno %{count} pracovních balíčků. - other: V tomto sprintu nebylo dokončeno %{count} pracovních balíčků. + one: There is %{count} work package that was not completed in this sprint. + few: There are %{count} work packages that were not completed in this sprint. + many: There are %{count} work packages that were not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: není aktivní, takže jej nelze uzavřít. sprint_goal: @@ -142,9 +143,18 @@ cs: details: Sekce backlogu '%{name}' bude smazána a všechny pracovní balíčky budou přesunuty do složky nevyřízených úkolů. Žádný pracovní balíček nebude odstraněn. title: Smazat sekci backlogu? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Nastavte datum začátku a konce sprintu pro vygenerování Burndown grafu. blankslate_title: Nedostupná data pro Burndown + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Zvolte, které typy pracovních balíčků se mají skrýt z backlogu. Položky vybraných typů se v backlogu automaticky nezobrazí, takže zůstane soustředěn na práci, která je pro váš tým důležitá. Například typy jako Epicy nebo Milníky, které jsou řízeny na vyšší úrovni, lze skrýt, aby se backlog soustředil na položky, které lze realizovat. ' @@ -167,10 +177,10 @@ cs: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Zobrazit ještě 1 položku - few: Zobrazit ještě %{count} položek - many: Zobrazit ještě %{count} položek - other: Zobrazit ještě %{count} položek + one: Show %{count} more item + few: Show %{count} more items + many: Show %{count} more items + other: Show %{count} more items title: Nevyřízené index_subheader_component: label_search_by_subject: Search work packages by subject @@ -196,6 +206,8 @@ cs: remaining_hours: Zbývající práce sharing: Sdílení sprintu show_burndown_chart: Graf Burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Přidat existující pracovní balíček @@ -218,9 +230,39 @@ cs: shared_sprint_info_banner: Toto je sdílený sprint. Úpravy se odrazí ve všech projektech, které jej používají. shared_sprint_warning_banner: Toto je sdílený sprint. Nemáte potřebná oprávnění k jeho úpravě. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + many: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ cs: header_backlogs: Modul backlogů work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Kopírovst adresu URL copy_work_package_id: Kopírovat ID pracovního balíčku move_menu: Přesun na pozici move_to_backlog_bucket: Přesunout do sekce backlogu @@ -263,14 +304,25 @@ cs: add_existing_dialog: invalid_target: Cíl, do kterého se pokoušíte přidat, je neplatný. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story pointy - story_points_ideal: Story pointy (ideální) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -300,9 +352,13 @@ cs: notice_unsuccessful_finish_with_reason: 'Sprint nebylo možné dokončit: %{reason}' notice_unsuccessful_start: Sprint nebylo možné zahájit. notice_unsuccessful_start_with_reason: 'Sprint nebylo možné zahájit: %{reason}' - notice_work_package_invisible_after_move: 'Pracovní balíček byl přesunut do %{backlog}, ale není viditelný, protože jeho typ nebo stav je vyloučen z backlogu. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + many: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Vytváření sprintů permission_manage_sprint_items: Správa položek sprintu permission_select_backlog_types_and_statuses: Vyberte typy a stavy backlogu @@ -321,6 +377,18 @@ cs: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ cs: label: Podprojekty sprint_sharing: Sdílet sprinty backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Počet aktivních sprintů diff --git a/modules/backlogs/config/locales/crowdin/da.yml b/modules/backlogs/config/locales/crowdin/da.yml index a4e10edd0a4f..70d41aa15f8a 100644 --- a/modules/backlogs/config/locales/crowdin/da.yml +++ b/modules/backlogs/config/locales/crowdin/da.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ da: project: allow_multiple_active_sprints: Tillad flere aktive sprints backlog_excluded_types: Udeladte arbejdspakketyper + estimation_unit: Enhed sprint_sharing: Deling af sprints statuses_considered_closed: Statusser, der regnes som lukkede sprint: @@ -72,8 +73,8 @@ da: base: format: "%{message}" unfinished_work_packages: - one: Der er én arbejdsopgave, der ikke blev færdiggjort i dette sprint. - other: Der er %{count} arbejdsopgaver, som ikke blev færdiggjorte i dette sprint. + one: "%{count} arbejdspakke blev ikke færdig i denne sprint." + other: "%{count} arbejdspakker blev ikke færdige i denne sprint." status: not_active: er ikke aktiv, så den kan ikke lukkes. sprint_goal: @@ -134,9 +135,18 @@ da: details: Backlog-gruppen '%{name}' slettes, og alle arbejdspakker flyttes til backlog-indbakken. Ingen arbejdspakker slettes. title: Vil du slette backlog-gruppen? burndown_chart: + series: + guideline: Ideallinje + projection: Resterende story points (prognose) + remaining: Resterende story points show: blankslate_description: Angiv start- og slutdato for sprinten for at generere et burndown-diagram. blankslate_title: Ingen burndown-data tilgængelige + created_resolved_chart: + show: + blankslate_description: Angiv start- og slutdato for sprinten for at danne et diagram over oprettede og løste arbejdspakker. + blankslate_title: Der er ingen data til diagrammet over oprettede og løste arbejdspakker + estimation_unit: Enheder excluded_work_package_types_caption: 'Vælg, hvilke arbejdspakketyper der skal skjules i backloggen. Elementer af de valgte typer vises ikke automatisk i backloggen, så den holder fokus på det arbejde, der betyder noget for dit team. Typer som epics eller milepæle, der styres på et højere niveau, kan fx skjules, så backloggen holder fokus på elementer, der kan handles på. ' @@ -159,8 +169,8 @@ da: drop_zone_label: Slip her for at tilføje elementet label_actions: Handlinger for indbakken show_more: - one: Vis 1 emne mere - other: Vis %{count} emner mere + one: Vis %{count} element mere + other: Vis %{count} elementer mere title: Indbakke index_subheader_component: label_search_by_subject: Søg efter arbejdspakker på emne @@ -184,6 +194,8 @@ da: remaining_hours: Resterende arbejde sharing: Deling af sprints show_burndown_chart: Burndown-diagram + show_created_resolved_chart: Oprettede og løste arbejdspakker + show_work_package_overview: Arbejdspakker i sprinten sprint_component: action_menu: add_existing_work_package: Tilføj eksisterende arbejdspakke @@ -206,9 +218,37 @@ da: shared_sprint_info_banner: Det er en delt sprint. Ændringer slår igennem i alle projekter, der bruger den. shared_sprint_warning_banner: Det er en delt sprint. Du har ikke de nødvendige tilladelser til at redigere den. sprint_reports: + navigation_component: + next: Næste + previous: Forrige page_header_component: breadcrumb: Rapport title: Rapport for %{sprint} + widgets: + work_package_graph: + title: Graf over arbejdspakker + work_package_overview: + blankslate: + description: Angiv start- og slutdato for sprinten for at danne oversigten over arbejdspakker. + heading: Der er ingen data om sprinten + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Ændret omfang + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Færdige + initially_planned: + heading: Oprindeligt planlagt + unfinished: + heading: Ikke færdige + breakdown_block: + blocks: + show_all: Vis alle + closed_work_packages: Lukkede arbejdspakker + resolved_summary: + one: "%{percentage} % (%{resolved} af %{total} arbejdspakke)" + other: "%{percentage} % (%{resolved} af %{total} arbejdspakker)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ da: header_backlogs: Backlog-modul work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Kopiér URL til udklipsholderen copy_work_package_id: Kopiér arbejdspakkens id move_menu: Flyt til placering move_to_backlog_bucket: Flyt til backlog-gruppe @@ -249,14 +288,25 @@ da: add_existing_dialog: invalid_target: Det sted, som du forsøger at tilføje til, er ugyldigt. target_not_found: Den sprint eller backlog, som du forsøger at tilføje til, blev ikke fundet. + batch_update_service: + mixed_projects: Alle arbejdspakker i en samlet flytning skal høre til samme projekt. + stale_batch: Mindst én arbejdspakke blev ændret, mens flytningen blev forberedt. Tjek de nuværende placeringer, og prøv igen. + stale_predecessor: Den arbejdspakke, der skulle indsættes efter, er flyttet et andet sted hen. Tjek de nuværende placeringer, og prøv igen. + unavailable_target: Mållisten er ikke længere tilgængelig. Genindlæs siden, og prøv igen. + unexpected_failure: Arbejdspakkerne kunne ikke flyttes. Prøv igen. move: moved_announcement: "%{label} er flyttet til %{list}, placering %{position} af %{total}" + move_collection: + invalid_ids: Listen over arbejdspakker, der skal flyttes, er ugyldig. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Der kan højst flyttes %{max} arbejdspakker på én gang. + work_packages_not_found: Mindst én arbejdspakke blev ikke fundet i projektet. update_service: invalid_target_type: 'list_type skal være en af: backlog_bucket med et list_id, sprint med et list_id eller inbox uden list_id.' missing_target: list_type eller list_id skal være angivet. - burndown: - story_points: Story points - story_points_ideal: Story points (ideelt) + created_resolved: + wp_created: Oprettede + wp_resolved: Løste ee: features: multiple_active_sprints: Flere aktive sprints @@ -286,9 +336,11 @@ da: notice_unsuccessful_finish_with_reason: 'Sprinten kunne ikke afsluttes: %{reason}' notice_unsuccessful_start: Sprinten kunne ikke startes. notice_unsuccessful_start_with_reason: 'Sprinten kunne ikke startes: %{reason}' - notice_work_package_invisible_after_move: 'Arbejdspakken er flyttet til %{backlog}, men vises ikke, fordi dens type eller status er udeladt af backloggen. + notice_work_package_invisible_after_move: + one: 'Arbejdspakken er flyttet til %{backlog}, men vises ikke, fordi dens type eller status er udeladt af backloggen. - ' + ' + other: "%{count} arbejdspakker er flyttet til %{backlog}, men vises ikke, fordi deres type eller status er udeladt af backloggen.\n" permission_create_sprints: Opret sprints permission_manage_sprint_items: Administrer elementer i sprints permission_select_backlog_types_and_statuses: Vælg typer og statusser til backloggen @@ -307,6 +359,18 @@ da: backlog_buckets: Backlog-grupper sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Enhed + options: + none: + caption: Antallet af arbejdspakker bruges som standardenhed i diagrammerne. Nogle diagrammer i sprintrapporten vises ikke. + label: Ingen + story_points: + caption: Kortene og diagrammerne viser story points. + label: Story points + time: + caption: Kortene og diagrammerne viser estimeret arbejdstid. + label: Estimeret arbejdstid backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ da: label: Underprojekter sprint_sharing: Del sprints backlogs: + estimation_unit_form_component: + description: Vælg den standardenhed for indsats, hastighed og kapacitet, der passer til dit agile teams arbejdsgang. Den vises i backloggen og i sprintrapporterne. + heading: Standardenhed for hastighed, indsats og kapacitet multiple_active_sprints: description: Som standard kan der kun være én aktiv sprint ad gangen pr. projekt. Du kan ændre det, så flere sprints kan være aktive samtidig i dette projekt. heading: Antal aktive sprints diff --git a/modules/backlogs/config/locales/crowdin/de.yml b/modules/backlogs/config/locales/crowdin/de.yml index bb838225f4a0..a8a91a4f7694 100644 --- a/modules/backlogs/config/locales/crowdin/de.yml +++ b/modules/backlogs/config/locales/crowdin/de.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ de: project: allow_multiple_active_sprints: Mehrere aktive Sprints zulassen backlog_excluded_types: Ausgeschlossene Arbeitspaket-Typen + estimation_unit: Unit sprint_sharing: Sprints teilen statuses_considered_closed: Als abgeschlossen geltende Status sprint: @@ -72,8 +73,8 @@ de: base: format: "%{message}" unfinished_work_packages: - one: Es gibt ein Arbeitspaket, das in diesem Sprint nicht abgeschlossen wurde. - other: Es gibt %{count} Arbeitspakete, die in diesem Sprint nicht abgeschlossen wurden. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: ist nicht aktiv und kann deshalb nicht geschlossen werden. sprint_goal: @@ -134,9 +135,18 @@ de: details: Der Backlog Bucket '%{name}' wird gelöscht und alle Arbeitspakete werden in den Eingangs Backlog verschoben. Kein Arbeitspaket wird gelöscht. title: Backlog Bucket löschen? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Legen Sie Start- und Enddatum für den Sprint fest, um ein Burndown-Diagramm zu erstellen. blankslate_title: Keine Burndown-Daten verfügbar + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Wählen Sie, welche Arbeitspaket-Typen Sie aus dem Backlog ausblenden möchten. Elemente der ausgewählten Typen erscheinen nicht automatisch im Backlog und sind so auf die Arbeit konzentriert, die für Ihr Team wichtig ist. Typen wie Epics oder Milestones, die auf einer höheren Ebene verwaltet werden, können beispielsweise ausgeblendet werden, damit sich das Backlog auf umsetzbare Aufgaben konzentriert. ' @@ -159,8 +169,8 @@ de: drop_zone_label: Hier ablegen um das Arbeitspaket hinzuzufügen label_actions: Posteingang-Aktionen show_more: - one: Zeige ein weiteres Element - other: Zeige %{count} weitere Elemente + one: Show %{count} more item + other: Show %{count} more items title: Posteingang index_subheader_component: label_search_by_subject: Arbeitspakete nach Betreff suchen @@ -184,6 +194,8 @@ de: remaining_hours: Verbleibender Aufwand sharing: Sprints teilen show_burndown_chart: Burndown-Diagramm + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Arbeitspakete innerhalb des Sprints sprint_component: action_menu: add_existing_work_package: Vorhandenes Arbeitspaket hinzufügen @@ -206,9 +218,37 @@ de: shared_sprint_info_banner: Dies ist ein geteilter Sprint. Änderungen werden in allen Projekten, die diesen Sprint nutzen, übernommen. shared_sprint_warning_banner: Dies ist ein geteilter Sprint. Sie verfügen nicht über die erforderlichen Berechtigungen, um ihn zu bearbeiten. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Bericht title: "%{sprint} Bericht" + widgets: + work_package_graph: + title: Arbeitspaket-Graph + work_package_overview: + blankslate: + description: Legen Sie Start- und Enddatum für den Sprint fest, um die Arbeitspaket-Übersicht zu erstellen. + heading: Keine Sprintdaten verfügbar + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope-Änderungen + story_points_change: "+%{added} / -%{removed} Story-Punkte" + completed: + heading: Abgeschlossen + initially_planned: + heading: Ursprünglich geplant + unfinished: + heading: Unvollendet + breakdown_block: + blocks: + show_all: Alle anzeigen + closed_work_packages: Abgeschlossene Arbeitspakete + resolved_summary: + one: "%{percentage}% (%{resolved} von %{total} Arbeitspaket)" + other: "%{percentage}% (%{resolved} von %{total} Arbeitspaketen)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ de: header_backlogs: Backlog-Modul work_package_card_menu_component: action_menu: - copy_url_to_clipboard: URL in die Zwischenablage kopieren copy_work_package_id: Arbeitspaket-ID kopieren move_menu: Zu Position verschieben move_to_backlog_bucket: In Backlog Bucket verschieben @@ -249,14 +288,25 @@ de: add_existing_dialog: invalid_target: Das Ziel, zu dem Sie hinzufügen möchten, ist ungültig. target_not_found: Der Sprint oder das Backlog, zu dem Sie hinzufügen möchten, wurde nicht gefunden. + batch_update_service: + mixed_projects: Alle Arbeitspakete eines Vorgangs müssen zum selben Projekt gehören. + stale_batch: Mindestens ein Arbeitspaket hat sich während der Vorbereitungen fürs Verschieben geändert. Bitte überprüfen Sie die aktuellen Positionen und versuchen Sie es erneut. + stale_predecessor: Das Arbeitspaket, hinter welches eingefügt werden sollte wurde verschoben. Bitte überprüfen Sie die aktuellen Positionen und versuchen Sie es erneut. + unavailable_target: Der Zielcontainer ist nicht mehr verfügbar. Bitte laden Sie die Seite neu und versuchen Sie es erneut. + unexpected_failure: Die Arbeitspakete konnten nicht verschoben werden. Bitte versuchen Sie es erneut. move: moved_announcement: "%{label} verschoben nach %{list}, Position %{position} von %{total}" + move_collection: + invalid_ids: Die Liste der zu verschiebenden Arbeitspakete ist ungültig. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Es können nicht mehr als %{max} Arbeitspakete gleichzeitig verschoben werden. + work_packages_not_found: In diesem Projekt konnte mindestens ein Arbeitspaket nicht gefunden werden. update_service: invalid_target_type: "„list_type“ muss einer der folgenden Werte sein: „backlog_bucket“ mit einer „list_id“, „sprint“ mit einer „list_id“ oder „inbox“ ohne „list_id“." missing_target: "„list_type“ oder „list_id“ muss vorhanden sein." - burndown: - story_points: Story-Points - story_points_ideal: Story-Points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Mehrere aktive Sprints @@ -286,9 +336,11 @@ de: notice_unsuccessful_finish_with_reason: 'Der Sprint konnte nicht abgeschlossen werden: %{reason}' notice_unsuccessful_start: Der Sprint konnte nicht gestartet werden. notice_unsuccessful_start_with_reason: 'Der Sprint konnte nicht gestartet werden: %{reason}' - notice_work_package_invisible_after_move: 'Das Arbeitspaket wurde auf %{backlog} verschoben, ist aber nicht sichtbar, weil sein Typ oder Status gemäß Konfiguration im Backlog ausgeblendet wird. + notice_work_package_invisible_after_move: + one: 'Das Arbeitspaket wurde zu %{backlog} verschoben, ist aber nicht sichtbar, weil sein Typ oder Status gemäß Konfiguration im Backlog ausgeblendet wird. - ' + ' + other: "%{count} Arbeitspakete wurden zu %{backlog} verschoben, sind aber nicht sichtbar, weil ihr Typ oder Status gemäß Konfiguration im Backlog ausgeblendet wird.\n" permission_create_sprints: Sprints erstellen permission_manage_sprint_items: Sprint-Elemente verwalten permission_select_backlog_types_and_statuses: Typen und Status für Backlogs wählen @@ -307,6 +359,18 @@ de: backlog_buckets: Backlog Buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: Die Anzahl der Arbeitspakete wird in den Diagrammen als Standardeinheit verwendet. Einige Diagramme aus den Sprintberichten werden nicht angezeigt. + label: Keine + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Arbeitszeitschätzung backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ de: label: Unterprojekte sprint_sharing: Sprints teilen backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Standardmäßig kann pro Projekt jeweils nur ein Sprint aktiv sein. Sie können diese Einstellung ändern, sodass in diesem Projekt mehrere Sprints parallel aktiv sein können. heading: Anzahl der aktiven Sprints diff --git a/modules/backlogs/config/locales/crowdin/el.yml b/modules/backlogs/config/locales/crowdin/el.yml index ead9178bc0fd..25f6ed4dcff4 100644 --- a/modules/backlogs/config/locales/crowdin/el.yml +++ b/modules/backlogs/config/locales/crowdin/el.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ el: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Τύποι εργασιών που εξαιρούνται + estimation_unit: Unit sprint_sharing: Διαμοιρασμός Sprint statuses_considered_closed: Καταστάσεις που θεωρούνται κλειστές sprint: @@ -72,7 +73,7 @@ el: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: δεν είναι ενεργό, οπότε δεν μπορεί να κλείσει. @@ -134,9 +135,18 @@ el: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,8 +169,8 @@ el: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Εμφάνιση 1 ακόμη στοιχείου - other: Εμφάνιση %{count} περισσότερα στοιχεία + one: Show %{count} more item + other: Show %{count} more items title: Εισερχόμενα index_subheader_component: label_search_by_subject: Search work packages by subject @@ -184,6 +194,8 @@ el: remaining_hours: Υπολειπόμενες Ώρες sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ el: shared_sprint_info_banner: Αυτό είναι κοινόχρηστο σπριντ. Οι τροποποιήσεις θα αντικατοπτρίζονται σε όλα τα έργα που το χρησιμοποιούν. shared_sprint_warning_banner: Αυτό είναι κοινόχρηστο σπριντ. Δεν έχετε τα απαραίτητα δικαιώματα για να το επεξεργαστείτε. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ el: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Μετακίνηση στη θέση move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ el: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ el: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: Δεν ήταν δυνατή η εκκίνηση του σπριντ. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Δημιουργία σπριντ permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ el: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ el: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/eo.yml b/modules/backlogs/config/locales/crowdin/eo.yml index e5780cd560e9..f17f507fa6e3 100644 --- a/modules/backlogs/config/locales/crowdin/eo.yml +++ b/modules/backlogs/config/locales/crowdin/eo.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ eo: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ eo: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: ne estas aktiva, do ĝi ne povas esti fermita. @@ -134,9 +135,18 @@ eo: details: La tasklista ujo '%{name}' estos forigita kaj ĉiuj laborpakaĵoj estos movitaj al la backlog-enirkesto. Neniu laborpakaĵo estos forigita. title: Ĉu forigi tasklista ujo? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Agordu la komencan kaj finan daton de la sprinto por generi burndown-diagramon. blankslate_title: Neniuj datumoj por la "burndown"-diagramo disponeblas + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ eo: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Montru ankoraŭ 1 plian eron + one: Show %{count} more item other: Show %{count} more items title: Enirkesto index_subheader_component: @@ -184,6 +194,8 @@ eo: remaining_hours: Restanta laboro sharing: Sprint sharing show_burndown_chart: Burndown-diagramo + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ eo: shared_sprint_info_banner: Ĉi tio estas komuna sprinto. Modifoj estos reflektitaj en ĉiuj projektoj, kiuj uzas ĝin. shared_sprint_warning_banner: Ĉi tio estas komuna sprinto. Vi ne havas la necesajn permesojn por redakti ĝin. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ eo: header_backlogs: Tasklistaj moduloj work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Kopiu URL-on al la tondujo copy_work_package_id: Kopiu la ID de laborpako move_menu: Movu al pozicio move_to_backlog_bucket: Movu al la tasklista ujo @@ -249,14 +288,25 @@ eo: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Rakontaj poentoj - story_points_ideal: Rakontaj poentoj (ideala) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ eo: notice_unsuccessful_finish_with_reason: 'La sprinto ne povis esti plenigita: %{reason}' notice_unsuccessful_start: La sprinto ne povis esti komencita. notice_unsuccessful_start_with_reason: 'La sprinto ne povis esti komencita: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Kreu sprintojn permission_manage_sprint_items: Administri sprintajn erojn permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ eo: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ eo: label: Subprojektoj sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/es.yml b/modules/backlogs/config/locales/crowdin/es.yml index 178ae72d316c..3aca8d9e7d01 100644 --- a/modules/backlogs/config/locales/crowdin/es.yml +++ b/modules/backlogs/config/locales/crowdin/es.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ es: project: allow_multiple_active_sprints: Permitir varios sprints activos backlog_excluded_types: Tipos de paquetes de trabajo excluidos + estimation_unit: Unit sprint_sharing: Compartir Sprint statuses_considered_closed: Estados considerados cerrados sprint: @@ -72,8 +73,8 @@ es: base: format: "%{message}" unfinished_work_packages: - one: Hay un paquete de trabajo que no se completó en este sprint. - other: Hay %{count} paquetes de trabajo que no se completaron en este sprint. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: no está activo, por lo que no puede cerrarse. sprint_goal: @@ -134,9 +135,18 @@ es: details: Se eliminará el bucket de backlog «%{name}» y todos los paquetes de trabajo se trasladarán a la bandeja de entrada de tareas pendientes. No se eliminará ningún paquete de trabajo. title: "¿Eliminar bucket de backlog?" burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Establezca la fecha de inicio y finalización del sprint para generar un gráfico de trabajo pendiente. blankslate_title: No hay datos de trabajo pendiente disponibles + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Elige qué tipos de paquetes de trabajo quieres ocultar en el backlog. Los elementos de los tipos seleccionados no aparecerán automáticamente en el backlog, lo que te permitirá centrarte en el trabajo que realmente importa a tu equipo. Por ejemplo, puedes ocultar tipos como «Épicos» o «Hitos», que se gestionan a un nivel superior, para que el backlog se centre en elementos sobre los que se pueda actuar. ' @@ -159,8 +169,8 @@ es: drop_zone_label: Suelta aquí para añadir este elemento label_actions: Acciones de bandeja de entrada show_more: - one: Mostrar 1 artículo más - other: Mostrar %{count} artículos más + one: Show %{count} more item + other: Show %{count} more items title: Bandeja de entrada index_subheader_component: label_search_by_subject: Buscar paquetes de trabajo por tema @@ -184,6 +194,8 @@ es: remaining_hours: Trabajo restante sharing: Compartir Sprint show_burndown_chart: Diagrama Burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Paquetes de trabajo dentro del sprint sprint_component: action_menu: add_existing_work_package: Añadir un paquete de trabajo existente @@ -206,9 +218,37 @@ es: shared_sprint_info_banner: Este es un sprint compartido. Las modificaciones serán reflejadas en todos los proyectos que lo usen. shared_sprint_warning_banner: Este es un sprint compartido. Usted no tiene los permisos necesarios para editarlo. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Informe title: Informe de %{sprint} + widgets: + work_package_graph: + title: Gráfico de paquetes de trabajo + work_package_overview: + blankslate: + description: Establezca la fecha de inicio y finalización del sprint para generar un resumen del paquete de trabajo. + heading: No hay datos de sprints disponibles + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Cambio de alcance + story_points_change: "+%{added} / -%{removed} puntos de historia" + completed: + heading: Completado + initially_planned: + heading: Planeado inicialmente + unfinished: + heading: Sin terminar + breakdown_block: + blocks: + show_all: Ver todo + closed_work_packages: Paquetes de trabajo cerrados + resolved_summary: + one: "%{percentage} % (%{resolved} de %{total} paquete de trabajo)" + other: "%{percentage} % (%{resolved} de %{total} paquetes de trabajo)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ es: header_backlogs: Módulo de trabajos pendientes work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copiar URL al portapapeles copy_work_package_id: Copiar el ID del paquete de trabajo move_menu: Mover a la posición move_to_backlog_bucket: Mover al bucket de backlog @@ -249,14 +288,25 @@ es: add_existing_dialog: invalid_target: El destino al que quieres añadir no es válido. target_not_found: No se ha encontrado el sprint o el backlog al que intentas añadir. + batch_update_service: + mixed_projects: Todos los paquetes de trabajo de un lote deben pertenecer al mismo proyecto. + stale_batch: Al menos un paquete de trabajo ha sufrido cambios mientras se preparaba el traslado. Compruebe las posiciones actuales e inténtelo de nuevo. + stale_predecessor: El paquete de trabajo que debía insertarse a continuación se ha trasladado a otra ubicación. Compruebe las posiciones actuales e inténtelo de nuevo. + unavailable_target: La lista de destinos ya no está disponible. Actualice la página e inténtelo de nuevo. + unexpected_failure: No se pudieron trasladar los paquetes de trabajo. Inténtelo de nuevo. move: moved_announcement: "%{label} se movió a %{list}, posición %{position} de %{total}" + move_collection: + invalid_ids: La lista de paquetes de trabajo a trasladar no es válida. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No se pueden trasladar más de %{max} paquetes de trabajo a la vez. + work_packages_not_found: Al menos un paquete de trabajo no se encontró en este proyecto. update_service: invalid_target_type: 'list_type debe ser uno de los siguientes: backlog_bucket con un list_id, sprint con un list_id, o inbox sin un list_id.' missing_target: list_type o list_id deben estar presentes. - burndown: - story_points: Puntos de historia - story_points_ideal: Puntos de historia (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Varios sprints activos @@ -286,9 +336,11 @@ es: notice_unsuccessful_finish_with_reason: 'El sprint no pudo completarse: %{reason}' notice_unsuccessful_start: El sprint no pudo iniciarse. notice_unsuccessful_start_with_reason: 'El sprint no pudo iniciarse: %{reason}' - notice_work_package_invisible_after_move: 'El paquete de trabajo se ha trasladado a %{backlog}, pero no se ve porque su tipo o estado están excluidos de la lista de tareas pendientes. + notice_work_package_invisible_after_move: + one: 'El paquete de trabajo se ha trasladado a %{backlog}, pero no se ve porque su tipo o estado están excluidos de la lista de trabajos pendientes. - ' + ' + other: "%{count} paquetes de trabajo se han trasladado a %{backlog}, pero no se ven porque su tipo o estado están excluidos de la lista de trabajos pendientes.\n" permission_create_sprints: Crear sprints permission_manage_sprint_items: Gestionar elementos de sprint permission_select_backlog_types_and_statuses: Selecciona los tipos y estados del backlog @@ -307,6 +359,18 @@ es: backlog_buckets: Buckets de backlog sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ es: label: Subproyectos sprint_sharing: Compartir sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Por defecto, solo puede haber un sprint activo a la vez por proyecto. Puedes cambiarlo para que haya varios sprints activos en paralelo en este proyecto. heading: Número de sprints activos diff --git a/modules/backlogs/config/locales/crowdin/et.yml b/modules/backlogs/config/locales/crowdin/et.yml index 1cd433be2b21..7c2eac8ec731 100644 --- a/modules/backlogs/config/locales/crowdin/et.yml +++ b/modules/backlogs/config/locales/crowdin/et.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ et: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ et: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ et: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ et: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ et: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ et: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ et: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ et: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ et: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ et: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ et: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/eu.yml b/modules/backlogs/config/locales/crowdin/eu.yml index 9aa989cd7a46..950fcf547bfe 100644 --- a/modules/backlogs/config/locales/crowdin/eu.yml +++ b/modules/backlogs/config/locales/crowdin/eu.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ eu: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ eu: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ eu: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ eu: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ eu: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ eu: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ eu: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ eu: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ eu: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ eu: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ eu: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/fa.yml b/modules/backlogs/config/locales/crowdin/fa.yml index c2801f65e0dd..21dd5cf9eae0 100644 --- a/modules/backlogs/config/locales/crowdin/fa.yml +++ b/modules/backlogs/config/locales/crowdin/fa.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ fa: project: allow_multiple_active_sprints: اجازه دادن به چند اسپرینت فعال هم‌زمان backlog_excluded_types: انواع بسته‌های کاری مستثنی‌شده + estimation_unit: واحد sprint_sharing: اشتراک‌گذاری اسپرینت statuses_considered_closed: وضعیت‌هایی که بسته‌شده محسوب می‌شوند sprint: @@ -72,8 +73,8 @@ fa: base: format: "%{message}" unfinished_work_packages: - one: یک بسته کاری در این اسپرینت تکمیل نشده است. - other: "%{count} بسته کاری در این اسپرینت تکمیل نشده‌اند." + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: فعال نیست بنابراین نمی تواند بسته شود sprint_goal: @@ -134,9 +135,18 @@ fa: details: مخزن بک‌لاگ «%{name}» حذف می‌شود و همه بسته‌های کاری به صندوق ورودی بک‌لاگ منتقل می‌شوند. هیچ بسته کاری حذف نخواهد شد. title: مخزن بک‌لاگ حذف شود؟ burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: برای ایجاد نمودار برن‌داون، تاریخ شروع و پایان اسپرینت را تعیین کنید. blankslate_title: داده‌ای برای نمودار برن‌داون موجود نیست + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: واحدها excluded_work_package_types_caption: 'انتخاب کنید کدام نوع‌های بسته کاری از بک‌لاگ پنهان شوند. موارد مربوط به نوع‌های انتخاب‌شده به‌صورت خودکار در بک‌لاگ نمایش داده نمی‌شوند تا بک‌لاگ روی کارهای مهم تیم متمرکز بماند. برای مثال، نوع‌هایی مانند Epic یا Milestone که در سطح بالاتری مدیریت می‌شوند، می‌توانند پنهان شوند تا بک‌لاگ روی موارد قابل اقدام متمرکز بماند. ' @@ -159,8 +169,8 @@ fa: drop_zone_label: برای افزودن این مورد، آن را اینجا رها کنید label_actions: اقدامات صندوق show_more: - one: نمایش ۱ مورد دیگر - other: نمایش %{count} مورد دیگر + one: Show %{count} more item + other: Show %{count} more items title: صندوق index_subheader_component: label_search_by_subject: جستجوی بسته‌های کاری بر اساس موضوع @@ -184,6 +194,8 @@ fa: remaining_hours: کار باقی‌مانده sharing: اشتراک‌گذاری اسپرینت show_burndown_chart: نمودار Burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: بسته‌های کاری درون اسپرینت sprint_component: action_menu: add_existing_work_package: افزودن بسته کاری موجود @@ -206,9 +218,37 @@ fa: shared_sprint_info_banner: این یک اسپرینت اشتراکی است. تغییرات در همه پروژه‌هایی که از آن استفاده می‌کنند اعمال خواهد شد. shared_sprint_warning_banner: این یک اسپرینت اشتراکی است. شما مجوزهای لازم برای ویرایش آن را ندارید. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: گزارش title: گزارش %{sprint} + widgets: + work_package_graph: + title: نمودار بسته‌های کاری + work_package_overview: + blankslate: + description: برای ایجاد نمای کلی بسته‌های کاری، تاریخ شروع و پایان اسپرینت را تعیین کنید. + heading: داده‌ای برای اسپرینت در دسترس نیست + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: تغییر دامنه کار + story_points_change: "+%{added} / -%{removed} امتیاز داستان" + completed: + heading: تکمیل‌شده + initially_planned: + heading: برنامه‌ریزی اولیه + unfinished: + heading: ناتمام + breakdown_block: + blocks: + show_all: مشاهده همه + closed_work_packages: بسته‌های کاری بسته‌شده + resolved_summary: + one: "%{percentage}% (%{resolved} از %{total} بسته کاری)" + other: "%{percentage}% (%{resolved} از %{total} بسته کاری)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ fa: header_backlogs: ماژول backlogها work_package_card_menu_component: action_menu: - copy_url_to_clipboard: کپی URL در کلیپ‌بورد copy_work_package_id: کپی شناسه بسته کاری move_menu: انتقال به موقعیت move_to_backlog_bucket: انتقال به سطل بک‌لاگ @@ -249,14 +288,25 @@ fa: add_existing_dialog: invalid_target: مقصدی که می‌خواهید مورد را به آن اضافه کنید نامعتبر است. target_not_found: اسپرینت یا بک‌لاگی که می‌خواهید مورد را به آن اضافه کنید پیدا نشد. + batch_update_service: + mixed_projects: همه بسته‌های کاری یک عملیات گروهی باید به یک پروژه تعلق داشته باشند. + stale_batch: حداقل یکی از بسته‌های کاری هنگام آماده‌سازی جابه‌جایی تغییر کرده است. لطفاً موقعیت‌های فعلی را بررسی کنید و دوباره تلاش کنید. + stale_predecessor: بسته کاری‌ای که باید پس از آن درج شود به جای دیگری منتقل شده است. لطفاً موقعیت‌های فعلی را بررسی کنید و دوباره تلاش کنید. + unavailable_target: فهرست مقصد دیگر در دسترس نیست. لطفاً صفحه را دوباره بارگذاری کنید و دوباره تلاش کنید. + unexpected_failure: بسته‌های کاری قابل جابه‌جایی نبودند. لطفاً دوباره تلاش کنید. move: moved_announcement: "%{label} به %{list}، موقعیت %{position} از %{total} منتقل شد" + move_collection: + invalid_ids: فهرست بسته‌های کاری برای جابه‌جایی نامعتبر است. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: در هر بار نمی‌توان بیش از %{max} بسته کاری را جابه‌جا کرد. + work_packages_not_found: حداقل یک بسته کاری در این پروژه پیدا نشد. update_service: invalid_target_type: 'list_type باید یکی از این مقادیر باشد: backlog_bucket همراه با list_id، sprint همراه با list_id، یا inbox بدون list_id.' missing_target: list_type یا list_id باید موجود باشد. - burndown: - story_points: امتیاز داستان - story_points_ideal: امتیاز داستان (ایده‌آل) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: چند اسپرینت فعال @@ -286,9 +336,11 @@ fa: notice_unsuccessful_finish_with_reason: 'اسپرینت قابل تکمیل نبود: %{reason}' notice_unsuccessful_start: اسپرینت قابل شروع نبود. notice_unsuccessful_start_with_reason: 'اسپرینت قابل شروع نبود: %{reason}' - notice_work_package_invisible_after_move: 'بسته کاری به %{backlog} منتقل شد، اما دیده نمی‌شود زیرا نوع یا وضعیت آن از بک‌لاگ مستثنا شده است. + notice_work_package_invisible_after_move: + one: 'بسته کاری به %{backlog} منتقل شد، اما چون نوع یا وضعیت آن از بک‌لاگ حذف شده است، قابل مشاهده نیست. - ' + ' + other: "%{count} بسته کاری به %{backlog} منتقل شدند، اما چون نوع یا وضعیت آن‌ها از بک‌لاگ حذف شده است، قابل مشاهده نیستند.\n" permission_create_sprints: ایجاد اسپرینت‌ها permission_manage_sprint_items: مدیریت موارد اسپرینت permission_select_backlog_types_and_statuses: انتخاب انواع و وضعیت‌های بک‌لاگ @@ -307,6 +359,18 @@ fa: backlog_buckets: سطل‌های بک‌لاگ sprints: اسپرینت‌ها settings: + backlog_estimation_unit: + estimation_unit: واحد + options: + none: + caption: تعداد بسته‌های کاری به‌عنوان واحد پیش‌فرض در نمودارها استفاده خواهد شد. برخی از نمودارهای گزارش اسپرینت نمایش داده نخواهند شد. + label: هیچ‌کدام + story_points: + caption: کارت‌ها و نمودارها امتیازهای داستان را نمایش خواهند داد. + label: امتیازهای داستان + time: + caption: کارت‌ها و نمودارها برآورد زمان کار را نمایش خواهند داد. + label: برآورد زمان کار backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ fa: label: زیرپروژه‌ها sprint_sharing: اشتراک‌گذاری اسپرینت‌ها backlogs: + estimation_unit_form_component: + description: واحد پیش‌فرض اندازه‌گیری تلاش، سرعت و ظرفیت را متناسب با گردش کاری تیم چابک خود انتخاب کنید. این واحدها در بک‌لاگ و گزارش‌های اسپرینت نمایش داده خواهند شد. + heading: واحد پیش‌فرض سرعت، تلاش و ظرفیت multiple_active_sprints: description: به‌طور پیش‌فرض، در هر پروژه فقط یک اسپرینت می‌تواند هم‌زمان فعال باشد. می‌توانید این تنظیم را تغییر دهید تا چند اسپرینت در این پروژه به‌صورت موازی فعال باشند. heading: تعداد اسپرینت‌های فعال diff --git a/modules/backlogs/config/locales/crowdin/fi.yml b/modules/backlogs/config/locales/crowdin/fi.yml index 185c7b75b540..a6ed4b8091df 100644 --- a/modules/backlogs/config/locales/crowdin/fi.yml +++ b/modules/backlogs/config/locales/crowdin/fi.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ fi: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Poissuljetut tehtävätyypit + estimation_unit: Unit sprint_sharing: Sprintin jakaminen statuses_considered_closed: Suljetuiksi tulkitut tilat sprint: @@ -72,7 +73,7 @@ fi: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ fi: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ fi: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ fi: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ fi: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ fi: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ fi: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ fi: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ fi: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ fi: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/fil.yml b/modules/backlogs/config/locales/crowdin/fil.yml index b11b845ba0f2..4df41349562b 100644 --- a/modules/backlogs/config/locales/crowdin/fil.yml +++ b/modules/backlogs/config/locales/crowdin/fil.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ fil: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ fil: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ fil: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ fil: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ fil: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ fil: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ fil: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ fil: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ fil: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ fil: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ fil: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/fr.yml b/modules/backlogs/config/locales/crowdin/fr.yml index 64554650d814..fb3704225aea 100644 --- a/modules/backlogs/config/locales/crowdin/fr.yml +++ b/modules/backlogs/config/locales/crowdin/fr.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ fr: project: allow_multiple_active_sprints: Autoriser plusieurs sprints actifs backlog_excluded_types: Types de lots de travaux exclus + estimation_unit: Unité sprint_sharing: Partage de sprint statuses_considered_closed: Statuts considérés comme fermés sprint: @@ -72,8 +73,8 @@ fr: base: format: "%{message}" unfinished_work_packages: - one: Il y a un lot de travaux qui n'a pas été achevé dans ce sprint. - other: Il y a %{count} lots de travaux qui n'ont pas été achevés dans ce sprint. + one: Il y a un lot de travail, le « %{count} », qui n'a pas été mené à bien au cours de ce sprint. + other: Il y a %{count} lots de travail qui n'ont pas été menés à bien au cours de ce sprint. status: not_active: n'est pas actif et ne peut donc pas être fermé. sprint_goal: @@ -134,9 +135,18 @@ fr: details: Le bucket de backlog « %{name} » sera supprimé et tous les lots de travaux seront déplacés vers la boîte de réception du backlog. Aucun lot de travaux ne sera supprimé. title: Supprimer le bucket de backlog ? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Définissez les dates de début et de fin du sprint afin de générer un graphique burndown. blankslate_title: Aucune donnée de burndown disponible + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Unités excluded_work_package_types_caption: 'Choisissez les types de lots de travaux à masquer dans le backlog. Les éléments des types sélectionnés n''apparaîtront pas automatiquement dans le backlog, ce qui permet de le concentrer sur le travail pertinent pour votre équipe. Par exemple, des types comme les epics ou les jalons, gérés à un niveau supérieur, peuvent être masqués afin de conserver dans le backlog les éléments sur lesquels l''équipe peut agir. ' @@ -159,8 +169,8 @@ fr: drop_zone_label: Déposez ici pour ajouter cet élément label_actions: Actions de la boîte de réception show_more: - one: Afficher 1 élément supplémentaire - other: Afficher %{count} éléments supplémentaires + one: Afficher %{count} d'autres articles + other: Afficher %{count} d'autres articles title: Boîte de réception index_subheader_component: label_search_by_subject: Rechercher des lots de travaux par objet @@ -184,6 +194,8 @@ fr: remaining_hours: Travail restant sharing: Partage de sprint show_burndown_chart: Graphique burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Lots de travaux du sprint sprint_component: action_menu: add_existing_work_package: Ajouter un lot de travaux existant @@ -206,9 +218,37 @@ fr: shared_sprint_info_banner: Il s'agit d'un sprint partagé. Les modifications seront répercutées dans tous les projets qui l'utilisent. shared_sprint_warning_banner: Il s'agit d'un sprint partagé. Vous ne disposez pas des autorisations nécessaires pour le modifier. sprint_reports: + navigation_component: + next: Suivante + previous: Précédent page_header_component: breadcrumb: Rapport title: Rapport de %{sprint} + widgets: + work_package_graph: + title: Graphique des lots de travaux + work_package_overview: + blankslate: + description: Définissez les dates de début et de fin du sprint pour générer la vue d'ensemble des lots de travaux. + heading: Aucune donnée de sprint disponible + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Modification du périmètre + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Terminés + initially_planned: + heading: Initialement prévus + unfinished: + heading: Non terminés + breakdown_block: + blocks: + show_all: Tout afficher + closed_work_packages: Lots de travaux fermés + resolved_summary: + one: "%{percentage}% (%{resolved} sur %{total} lot de travaux)" + other: "%{percentage}% (%{resolved} sur %{total} lots de travaux)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ fr: header_backlogs: Module des backlogs work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copier l'URL dans le presse-papiers copy_work_package_id: Copier l'ID du lot de travaux move_menu: Déplacer vers la position move_to_backlog_bucket: Déplacer vers un bucket de backlog @@ -249,14 +288,25 @@ fr: add_existing_dialog: invalid_target: La destination à laquelle vous essayez d'ajouter cet élément n'est pas valide. target_not_found: Le sprint ou le backlog auquel vous essayez d'ajouter des éléments n'a pas été trouvé. + batch_update_service: + mixed_projects: Tous les lots de travaux traités ensemble doivent appartenir au même projet. + stale_batch: Au moins un lot de travaux a été modifié pendant la préparation du déplacement. Vérifiez les positions actuelles et réessayez. + stale_predecessor: Le lot de travaux après lequel l'insertion devait avoir lieu a été déplacé ailleurs. Vérifiez les positions actuelles et réessayez. + unavailable_target: La liste de destination n'est plus disponible. Rechargez la page et réessayez. + unexpected_failure: Les lots de travaux n'ont pas pu être déplacés. Réessayez. move: moved_announcement: "%{label} a été déplacé vers %{list}, à la position %{position} sur %{total}" + move_collection: + invalid_ids: La liste des lots de travaux à déplacer n'est pas valide. + member_failed: "%{work_package} : %{reason}" + too_many_work_packages: Il est impossible de déplacer plus de %{max} lots de travaux à la fois. + work_packages_not_found: Au moins un lot de travaux est introuvable dans ce projet. update_service: invalid_target_type: 'list_type doit être l''une des valeurs suivantes : backlog_bucket avec un list_id, sprint avec un list_id ou inbox sans list_id.' missing_target: list_type ou list_id doit être présent. - burndown: - story_points: Story points - story_points_ideal: Story points (idéal) + created_resolved: + wp_created: Créé + wp_resolved: Résolu ee: features: multiple_active_sprints: Plusieurs sprints actifs @@ -286,9 +336,11 @@ fr: notice_unsuccessful_finish_with_reason: 'Le sprint n''a pas pu être achevé : %{reason}' notice_unsuccessful_start: Le sprint n'a pas pu démarrer. notice_unsuccessful_start_with_reason: 'Le sprint n''a pas pu être démarré : %{reason}' - notice_work_package_invisible_after_move: 'Le lot de travaux a été déplacé vers %{backlog}, mais il n''est pas visible, car son type ou son statut est exclu du backlog. + notice_work_package_invisible_after_move: + one: 'Le lot de travaux a été déplacé vers %{backlog}, mais il n''est pas visible car son type ou son statut est exclu du backlog. - ' + ' + other: "%{count} lots de travaux ont été déplacés vers %{backlog}, mais ne sont pas visibles car leur type ou leur statut est exclu du backlog.\n" permission_create_sprints: Créer des sprints permission_manage_sprint_items: Gérer les éléments du sprint permission_select_backlog_types_and_statuses: Sélectionner les types et les statuts du backlog @@ -307,6 +359,18 @@ fr: backlog_buckets: Buckets de backlog sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unité + options: + none: + caption: Le nombre de lots de travaux sera utilisé comme unité par défaut dans les graphiques. Certains rapports de sprint ne seront pas affichés. + label: Aucun + story_points: + caption: Les cartes et les tableaux afficheront les story points. + label: Story points + time: + caption: Les cartes et graphiques afficheront les estimations du temps de travail. + label: Estimation du temps de travail backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ fr: label: Sous-projets sprint_sharing: Partager les sprints backlogs: + estimation_unit_form_component: + description: Sélectionnez l'unité de mesure par défaut pour l'effort, la vélocité et la capacité qui correspond au déroulement des tâches de votre équipe agile. Ces unités apparaîtront dans les rapports sur le backlog et les sprints. + heading: Unité par défaut de la vitesse, de l'effort et de la capacité multiple_active_sprints: description: Par défaut, un seul sprint peut être actif à la fois par projet. Vous pouvez modifier ce paramètre afin que plusieurs sprints puissent être actifs en parallèle dans ce projet. heading: Nombre de sprints actifs diff --git a/modules/backlogs/config/locales/crowdin/he.yml b/modules/backlogs/config/locales/crowdin/he.yml index 622ef3e7b7fa..f2d9b654af81 100644 --- a/modules/backlogs/config/locales/crowdin/he.yml +++ b/modules/backlogs/config/locales/crowdin/he.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ he: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ he: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. two: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: @@ -138,9 +139,18 @@ he: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -163,7 +173,7 @@ he: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item two: Show %{count} more items other: Show %{count} more items title: Inbox @@ -190,6 +200,8 @@ he: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -212,9 +224,38 @@ he: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + two: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -245,7 +286,6 @@ he: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -256,14 +296,25 @@ he: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -293,9 +344,12 @@ he: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + two: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -314,6 +368,18 @@ he: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -334,6 +400,9 @@ he: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/hi.yml b/modules/backlogs/config/locales/crowdin/hi.yml index 0fffbbc3382b..71306befbfff 100644 --- a/modules/backlogs/config/locales/crowdin/hi.yml +++ b/modules/backlogs/config/locales/crowdin/hi.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ hi: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ hi: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ hi: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ hi: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ hi: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ hi: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ hi: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ hi: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ hi: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ hi: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ hi: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/hr.yml b/modules/backlogs/config/locales/crowdin/hr.yml index 5a2246adda6d..8166ed475071 100644 --- a/modules/backlogs/config/locales/crowdin/hr.yml +++ b/modules/backlogs/config/locales/crowdin/hr.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ hr: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ hr: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: @@ -138,9 +139,18 @@ hr: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -163,7 +173,7 @@ hr: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items other: Show %{count} more items title: Inbox @@ -190,6 +200,8 @@ hr: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -212,9 +224,38 @@ hr: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -245,7 +286,6 @@ hr: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -256,14 +296,25 @@ hr: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -293,9 +344,12 @@ hr: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -314,6 +368,18 @@ hr: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -334,6 +400,9 @@ hr: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/hu.yml b/modules/backlogs/config/locales/crowdin/hu.yml index 4f2af29ee97c..7d8419d8628b 100644 --- a/modules/backlogs/config/locales/crowdin/hu.yml +++ b/modules/backlogs/config/locales/crowdin/hu.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ hu: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ hu: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ hu: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ hu: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ hu: remaining_hours: Hátralévő munka sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ hu: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ hu: header_backlogs: Várólista modul work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ hu: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ hu: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ hu: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ hu: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/hy.yml b/modules/backlogs/config/locales/crowdin/hy.yml index 15ec01e460d4..b1b5c15b8cef 100644 --- a/modules/backlogs/config/locales/crowdin/hy.yml +++ b/modules/backlogs/config/locales/crowdin/hy.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ hy: project: allow_multiple_active_sprints: Թույլատրել մի քանի ակտիվ սպրինտներ backlog_excluded_types: Բացառված աշխատանքային փաթեթների տեսակներ + estimation_unit: Unit sprint_sharing: Սպրինտների համօգտագործում statuses_considered_closed: Փակված համարվող կարգավիճակներ sprint: @@ -72,8 +73,8 @@ hy: base: format: "%{message}" unfinished_work_packages: - one: Այս սպրինտում մեկ աշխատանքային փաթեթ չի ավարտվել։ - other: Այս սպրինտում %{count} աշխատանքային փաթեթ չի ավարտվել։ + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: ակտիվ չէ, ուստի չի կարող փակվել։ sprint_goal: @@ -134,9 +135,18 @@ hy: details: "'%{name}' բեքլոգի բաժինը կջնջվի, և բոլոր աշխատանքային փաթեթները կտեղափոխվեն բեքլոգի մուտքային արկղ։ Ոչ մի աշխատանքային փաթեթ չի ջնջվի։" title: Ջնջե՞լ բեքլոգի բաժինը burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Այրման գծապատկեր ստեղծելու համար սահմանեք սպրինտի սկզբի և ավարտի ամսաթիվը։ blankslate_title: Այրման տվյալներ առկա չեն + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Ընտրեք, թե աշխատանքային փաթեթների որ տեսակները թաքցնել բեքլոգից։ Ընտրված տեսակների տարրերն ավտոմատ կերպով չեն հայտնվի բեքլոգում, ինչը թույլ կտա այն կենտրոնացած պահել Ձեր թիմի համար կարևոր աշխատանքի վրա։ Օրինակ՝ ավելի բարձր մակարդակում կառավարվող տեսակները, ինչպիսիք են Epic-ները կամ Հանգրվանները, կարող են թաքցվել, որպեսզի բեքլոգը կենտրոնացած մնա գործողության ենթակա տարրերի վրա։ ' @@ -159,8 +169,8 @@ hy: drop_zone_label: Այս տարրն ավելացնելու համար թողեք այստեղ label_actions: Մուտքային արկղի գործողություններ show_more: - one: Ցուցադրել ևս 1 տարր - other: Ցուցադրել ևս %{count} տարր + one: Show %{count} more item + other: Show %{count} more items title: Մուտքային արկղ index_subheader_component: label_search_by_subject: Search work packages by subject @@ -184,6 +194,8 @@ hy: remaining_hours: Մնացած աշխատանք sharing: Սպրինտների համօգտագործում show_burndown_chart: Այրման գծապատկեր + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Ավելացնել առկա աշխատանքային փաթեթ @@ -206,9 +218,37 @@ hy: shared_sprint_info_banner: Սա համօգտագործվող սպրինտ է։ Փոփոխությունները կարտացոլվեն այն օգտագործող բոլոր նախագծերում։ shared_sprint_warning_banner: Սա համօգտագործվող սպրինտ է։ Դուք չունեք այն խմբագրելու համար անհրաժեշտ թույլտվություններ։ sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Հաշվետվություն title: "%{sprint}-ի հաշվետվություն" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ hy: header_backlogs: Բեքլոգների մոդուլ work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Պատճենել URL-ը փոխանակման բուֆերում copy_work_package_id: Պատճենել աշխատանքային փաթեթի ID-ն move_menu: Տեղափոխել դիրք move_to_backlog_bucket: Տեղափոխել բեքլոգի բաժին @@ -249,14 +288,25 @@ hy: add_existing_dialog: invalid_target: Թիրախը, որին փորձում եք ավելացնել, անվավեր է։ target_not_found: Սպրինտը կամ բեքլոգը, որին փորձում եք ավելացնել, չի գտնվել։ + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} տեղափոխվեց %{list}, դիրք %{position} %{total}-ից" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: list_type-ը պետք է լինի հետևյալներից մեկը՝ list_id-ով backlog_bucket, list_id-ով sprint կամ առանց list_id-ի inbox։ missing_target: list_type-ը կամ list_id-ը պետք է առկա լինի։ - burndown: - story_points: Պատմության միավորներ - story_points_ideal: Պատմության միավորներ (իդեալական) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ hy: notice_unsuccessful_finish_with_reason: Սպրինտը չհաջողվեց ավարտել՝ %{reason} notice_unsuccessful_start: Սպրինտը չհաջողվեց սկսել։ notice_unsuccessful_start_with_reason: Սպրինտը չհաջողվեց սկսել՝ %{reason} - notice_work_package_invisible_after_move: 'Աշխատանքային փաթեթը տեղափոխվել է %{backlog}, սակայն տեսանելի չէ, քանի որ դրա տեսակը կամ կարգավիճակը բացառված է բեքլոգից։ + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Ստեղծել սպրինտներ permission_manage_sprint_items: Կառավարել սպրինտի տարրերը permission_select_backlog_types_and_statuses: Ընտրել բեքլոգի տեսակները և կարգավիճակները @@ -307,6 +359,18 @@ hy: backlog_buckets: Բեքլոգի բաժիններ sprints: Սպրինտներ settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ hy: label: Ենթանախագծեր sprint_sharing: Համօգտագործել սպրինտները backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Կանխադրված դեպքում յուրաքանչյուր նախագծում միաժամանակ կարող է ակտիվ լինել միայն մեկ սպրինտ։ Դուք կարող եք փոխել դա այնպես, որ այս նախագծում մի քանի սպրինտ կարողանա զուգահեռաբար ակտիվ լինել։ heading: Ակտիվ սպրինտների քանակ diff --git a/modules/backlogs/config/locales/crowdin/id.yml b/modules/backlogs/config/locales/crowdin/id.yml index 6f706e439141..c2ce5938adaa 100644 --- a/modules/backlogs/config/locales/crowdin/id.yml +++ b/modules/backlogs/config/locales/crowdin/id.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ id: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -130,9 +131,18 @@ id: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -178,6 +188,8 @@ id: remaining_hours: Pekerjaan yang tersisa sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -200,9 +212,36 @@ id: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ id: header_backlogs: Modul backlog work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -242,14 +280,25 @@ id: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -279,9 +328,8 @@ id: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -300,6 +348,18 @@ id: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ id: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/it.yml b/modules/backlogs/config/locales/crowdin/it.yml index f8de4c5d004f..3a7942eb70ce 100644 --- a/modules/backlogs/config/locales/crowdin/it.yml +++ b/modules/backlogs/config/locales/crowdin/it.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ it: project: allow_multiple_active_sprints: Consenti la presenza di più sprint attivi backlog_excluded_types: Tipi di macro-attività esclusi + estimation_unit: Unit sprint_sharing: Condivisione dello sprint statuses_considered_closed: Stati considerati chiusi sprint: @@ -72,8 +73,8 @@ it: base: format: "%{message}" unfinished_work_packages: - one: C'è una macro-attività che non è stata completata in questo sprint. - other: Ci sono %{count} macro-attività che non sono state completate in questo sprint. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: non è attivo, quindi non può essere chiuso. sprint_goal: @@ -134,9 +135,18 @@ it: details: Il bucket del backlog '%{name}' verrà eliminato e tutte le macro-attività verranno spostate nella posta in arrivo del backlog. Nessuna macro-attività verrà eliminata. title: Eliminare il bucket del backlog? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Imposta la data di inizio e di fine dello sprint per generare un grafico di burndown. blankslate_title: Non sono disponibili dati di burndown + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Scegli quali tipi di macro-attività nascondere dal backlog. Gli elementi dei tipi selezionati non compariranno automaticamente nel backlog, mantenendolo concentrato sulle attività rilevanti per il tuo team. Ad esempio, tipi come Epic o Traguardo, gestiti a un livello superiore, possono essere nascosti per mantenere il backlog focalizzato sugli elementi operativi. ' @@ -159,8 +169,8 @@ it: drop_zone_label: Trascina qui per aggiungere questo elemento label_actions: Azioni nella Posta in arrivo show_more: - one: Mostra 1 altro elemento - other: Mostra altri %{count} elementi + one: Show %{count} more item + other: Show %{count} more items title: Posta in arrivo index_subheader_component: label_search_by_subject: Cerca macro-attività per oggetto @@ -184,6 +194,8 @@ it: remaining_hours: Lavoro residuo sharing: Condivisione dello sprint show_burndown_chart: Grafico Burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Macro-attività nello sprint sprint_component: action_menu: add_existing_work_package: Aggiungi macro-attività esistente @@ -206,9 +218,37 @@ it: shared_sprint_info_banner: Questo è uno sprint condiviso. Le modifiche saranno applicate a tutti i progetti che lo utilizzano. shared_sprint_warning_banner: Questo è uno sprint condiviso. Non hai i permessi necessari per modificarlo. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: Report %{sprint} + widgets: + work_package_graph: + title: Grafico delle macro-attività + work_package_overview: + blankslate: + description: Imposta le date di inizio e fine dello sprint per generare la panoramica delle macro-attività. + heading: Non sono disponibili dati relativi allo sprint + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Cambio di ambito + story_points_change: "+%{added} / -%{removed} story point" + completed: + heading: Completate + initially_planned: + heading: Pianificate inizialmente + unfinished: + heading: Non completate + breakdown_block: + blocks: + show_all: Vedi tutto + closed_work_packages: Macro-attività chiuse + resolved_summary: + one: "%{percentage}% (%{resolved} di %{total} macro attività)" + other: "%{percentage}% (%{resolved} di %{total} macro attività)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ it: header_backlogs: Modulo backlog work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copia URL negli appunti copy_work_package_id: Copia ID macro-attività move_menu: Sposta alla posizione move_to_backlog_bucket: Sposta nel bucket del backlog @@ -249,14 +288,25 @@ it: add_existing_dialog: invalid_target: La destinazione selezionata per l'aggiunta non è valida. target_not_found: Lo sprint o il backlog a cui stai tentando di aggiungere l'elemento non è stato trovato. + batch_update_service: + mixed_projects: Tutte le macro-attività di un gruppo devono appartenere allo stesso progetto. + stale_batch: Almeno una macro-attività è stata modificata durante la preparazione dello spostamento. Controlla le posizioni attuali e riprova. + stale_predecessor: La macro-attività dopo la quale eseguire l'inserimento è stata spostata altrove. Controlla le posizioni attuali e riprova. + unavailable_target: L'elenco di destinazione non è più disponibile. Ricarica la pagina e riprova. + unexpected_failure: Non è stato possibile spostare le macro-attività. Riprova. move: moved_announcement: "%{label} spostato in %{list}, posizione %{position} di %{total}" + move_collection: + invalid_ids: L'elenco delle macro-attività da spostare non è valido. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Non è possibile spostare più di %{max} macro-attività alla volta. + work_packages_not_found: Almeno una macro-attività non è stata trovata in questo progetto. update_service: invalid_target_type: 'list_type deve essere uno dei seguenti valori: backlog_bucket con un list_id, sprint con un list_id oppure inbox senza list_id.' missing_target: È necessario che sia presente list_type o list_id. - burndown: - story_points: Punti story - story_points_ideal: Punti story (ideali) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Più sprint attivi @@ -286,9 +336,11 @@ it: notice_unsuccessful_finish_with_reason: 'Impossibile completare lo sprint: %{reason}' notice_unsuccessful_start: Impossibile avviare lo sprint. notice_unsuccessful_start_with_reason: 'Impossibile avviare lo sprint: %{reason}' - notice_work_package_invisible_after_move: 'La macro-attività è stata spostata in %{backlog}, ma non è visibile perché il suo tipo o stato è escluso dal backlog. + notice_work_package_invisible_after_move: + one: 'La macro-attività è stata spostata in %{backlog}, ma non è visibile perché il tipo o lo stato è escluso dal backlog. - ' + ' + other: "%{count} macro-attività sono state spostate in %{backlog}, ma non sono visibili perché il tipo o lo stato è escluso dal backlog.\n" permission_create_sprints: Crea gli sprint permission_manage_sprint_items: Gestisci gli elementi dello sprint permission_select_backlog_types_and_statuses: Seleziona tipi e stati del backlog @@ -307,6 +359,18 @@ it: backlog_buckets: Bucket del backlog sprints: Sprint settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ it: label: Sottoprogetti sprint_sharing: Condividi sprint backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Per impostazione predefinita, per ogni progetto può essere attivo un solo sprint alla volta. È possibile modificare questa impostazione in modo che in tale progetto possano essere attivi più sprint in parallelo. heading: Numero di sprint attivi diff --git a/modules/backlogs/config/locales/crowdin/ja.yml b/modules/backlogs/config/locales/crowdin/ja.yml index 958513f662f4..e3bd85db42ba 100644 --- a/modules/backlogs/config/locales/crowdin/ja.yml +++ b/modules/backlogs/config/locales/crowdin/ja.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ja: project: allow_multiple_active_sprints: 複数のスプリントを同時に実行できるようにする backlog_excluded_types: 除外されるワークパッケージの種類 + estimation_unit: Unit sprint_sharing: スプリントの共有 statuses_considered_closed: "「完了」とみなされるステータス" sprint: @@ -72,7 +73,7 @@ ja: base: format: "%{message}" unfinished_work_packages: - other: 今回のスプリントで完了しなかったワークパッケージが %{count} 個あります。 + other: There are %{count} work packages that were not completed in this sprint. status: not_active: アクティブではないため、閉じることができません。 sprint_goal: @@ -85,7 +86,7 @@ ja: can_only_contain_work_packages_of_current_sprint: 現在のスプリント内のワークパッケージIDのみを含めることができます。 must_block_at_least_one_work_package: は少なくとも 1つのチケットIDを含める必要があります。 sprint: - not_assignable: is not assignable since it is either not shared with the project or already finished. + not_assignable: プロジェクトと共有されていないか、すでに完了しているため、割り当てることができません。 not_eligible_for_moving: そのワークパッケージが移動元のプロジェクトにおいて、現在アクティブなスプリントではない。 version_id: task_version_must_be_the_same_as_story_version: 親ストーリーのバージョンと同じでなければなりません。 @@ -99,7 +100,7 @@ ja: other: Sprint goals backlogs: add_existing_work_package_dialog_component: - title_without_container: Add existing work package + title_without_container: 既存のワークパッケージを追加する administration_blankslate: text: 現在、「バックログ」モジュールの再設計を進めています。スプリントおよびバックログに関する管理設定は、近いうちにこちらで表示されるようになります。プロジェクトレベルの設定については、引き続きご利用いただけます。 title: バックログの管理設定は進化を続けています @@ -130,9 +131,18 @@ ja: details: バックログ・バケット「%{name}」が削除され、すべてのワークパッケージがバックログ・インボックスに移動されます。ワークパッケージが削除されることはありません。 title: バックログ・バケットを削除しますか? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: スプリントの開始日と終了日を設定して、バーンダウンチャートを生成します。 blankslate_title: バーンダウンデータはありません + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'バックログから非表示にするワークパッケージの種類を選択してください。選択した種類のアイテムはバックログに自動的に表示されなくなるため、チームにとって重要な作業に焦点を絞ることができます。たとえば、より上位のレベルで管理される「エピック」や「マイルストーン」といった種類を非表示にすることで、バックログを実行可能なアイテムに集中させることができます。 ' @@ -155,7 +165,7 @@ ja: drop_zone_label: このアイテムを追加するには、ここにドラッグしてください label_actions: 受信トレイでの操作 show_more: - other: "「 %{count} 」のその他の商品を表示" + other: Show %{count} more items title: 受信箱 index_subheader_component: label_search_by_subject: Search work packages by subject @@ -178,6 +188,8 @@ ja: remaining_hours: 残時間 sharing: スプリントの共有 show_burndown_chart: バーンダウンチャート + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: 既存のワークパッケージを追加する @@ -200,9 +212,36 @@ ja: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ ja: header_backlogs: バックログモジュール work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -242,26 +280,37 @@ ja: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: ストーリーポイント - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: - multiple_active_sprints: Multiple active sprints + multiple_active_sprints: 複数のアクティブなスプリント sprint_sharing: Sprint sharing upsell: multiple_active_sprints: - description: Run multiple sprints in parallel for different teams in your project for more control and flexibility. + description: プロジェクト内の異なるチームで複数のスプリントを並行して実行することで、管理性と柔軟性を高めることができます。 sprint_sharing: description: Share sprints across projects to align teams and coordinate work in scaled agile setups (SAFe). label_all_sprints: All sprints label_backlog: Backlog - label_backlog_and_sprints: Backlog and sprints + label_backlog_and_sprints: バックログとスプリント label_backlog_bucket_edit: Edit backlog bucket label_backlog_bucket_new: New backlog bucket label_backlogs: バックログ @@ -279,9 +328,8 @@ ja: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: バックログの種類とステータスを選択する @@ -300,6 +348,18 @@ ja: backlog_buckets: バックログ・バケット sprints: スプリント settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ ja: label: サブプロジェクト sprint_sharing: スプリントを共有する backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: 進行中のスプリントの数 diff --git a/modules/backlogs/config/locales/crowdin/js-af.yml b/modules/backlogs/config/locales/crowdin/js-af.yml index 7878b362eca0..f3d5af169027 100644 --- a/modules/backlogs/config/locales/crowdin/js-af.yml +++ b/modules/backlogs/config/locales/crowdin/js-af.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- af: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Storie Punte diff --git a/modules/backlogs/config/locales/crowdin/js-ar.yml b/modules/backlogs/config/locales/crowdin/js-ar.yml index 8945f5d2bedd..bf29f3e6dd19 100644 --- a/modules/backlogs/config/locales/crowdin/js-ar.yml +++ b/modules/backlogs/config/locales/crowdin/js-ar.yml @@ -16,15 +16,58 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ar: js: - burndown: - day: يوم - points: نِقَاط + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: " " + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + zero: Could not extend the range. %{count} work packages selected. + one: Could not extend the range. %{count} work package selected. + two: Could not extend the range. %{count} work packages selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + zero: "%{count} work packages selected." + one: "%{count} work package selected." + two: "%{count} work packages selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: نقاط القصة diff --git a/modules/backlogs/config/locales/crowdin/js-az.yml b/modules/backlogs/config/locales/crowdin/js-az.yml index 0b2b88fd56d1..6d0a36c48f93 100644 --- a/modules/backlogs/config/locales/crowdin/js-az.yml +++ b/modules/backlogs/config/locales/crowdin/js-az.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- az: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-be.yml b/modules/backlogs/config/locales/crowdin/js-be.yml index 2e468a8e16b4..30329a64f7f7 100644 --- a/modules/backlogs/config/locales/crowdin/js-be.yml +++ b/modules/backlogs/config/locales/crowdin/js-be.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- be: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-bg.yml b/modules/backlogs/config/locales/crowdin/js-bg.yml index 33e40dbbb0cb..424b4d1291ef 100644 --- a/modules/backlogs/config/locales/crowdin/js-bg.yml +++ b/modules/backlogs/config/locales/crowdin/js-bg.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- bg: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Точки на история diff --git a/modules/backlogs/config/locales/crowdin/js-ca.yml b/modules/backlogs/config/locales/crowdin/js-ca.yml index 16bdb65782b9..16feb5a72ba1 100644 --- a/modules/backlogs/config/locales/crowdin/js-ca.yml +++ b/modules/backlogs/config/locales/crowdin/js-ca.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ca: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Punts d'història diff --git a/modules/backlogs/config/locales/crowdin/js-ckb-IR.yml b/modules/backlogs/config/locales/crowdin/js-ckb-IR.yml index e58e7a166ec3..7145c5a7cba3 100644 --- a/modules/backlogs/config/locales/crowdin/js-ckb-IR.yml +++ b/modules/backlogs/config/locales/crowdin/js-ckb-IR.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ckb-IR: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-cs.yml b/modules/backlogs/config/locales/crowdin/js-cs.yml index be6490947a3f..8c28e010ffdf 100644 --- a/modules/backlogs/config/locales/crowdin/js-cs.yml +++ b/modules/backlogs/config/locales/crowdin/js-cs.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- cs: js: - burndown: - day: Den - points: Body + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Body příběhu diff --git a/modules/backlogs/config/locales/crowdin/js-da.yml b/modules/backlogs/config/locales/crowdin/js-da.yml index 4eee2fda5e86..eb5b968e8be7 100644 --- a/modules/backlogs/config/locales/crowdin/js-da.yml +++ b/modules/backlogs/config/locales/crowdin/js-da.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- da: js: - burndown: - day: Dag - points: Point + backlogs: + announcements: + batch_too_large: "%{count} arbejdspakker kan ikke flyttes på én gang. Vælg højst %{max}." + fallback_item_label: Arbejdspakke + fallback_list_name: en anden liste + move_failed_check_position: Flytningen mislykkedes. Tjek arbejdspakkens nuværende placering. + move_failed_check_positions_batch: + other: Flytningen mislykkedes. Tjek arbejdspakkernes nuværende placeringer. + move_failed_rolled_back: Flytningen mislykkedes. %{label} er sat tilbage på sin tidligere placering. + move_failed_rolled_back_batch: + other: Flytningen mislykkedes. %{count} arbejdspakker er sat tilbage på deres tidligere placeringer. + moved: "%{label} er flyttet til placering %{position} af %{total}" + moved_batch: + other: "%{count} arbejdspakker er flyttet til placering %{first} til %{last} af %{total}" + moved_batch_to_list: + other: "%{count} arbejdspakker er flyttet til %{list}, placering %{first} til %{last} af %{total}" + moved_to_list: "%{label} er flyttet til %{list}, placering %{position} af %{total}" + selection: + card_state: Valgt + cleared: Markeringen er ryddet. + not_selectable: Markeringen er uændret. Arbejdspakken indgår ikke i listens rækkefølge. + range_blocked: Markeringen er uændret. Området indeholder en arbejdspakke, der ikke indgår i listens rækkefølge. + range_restarted: + one: Området kunne ikke udvides. %{count} arbejdspakke valgt. + other: Området kunne ikke udvides. %{count} arbejdspakker valgt. + range_unavailable: Markeringen er uændret. Fold listen ud for at vælge området. + selected: + one: "%{count} arbejdspakke valgt." + other: "%{count} arbejdspakker valgt." + burndown_chart: + chart_day: 'Dag %{day}: %{values}' + chart_label: Burndown-diagram + chart_summary: 'Data i burndown-diagrammet: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Arbejdsfri dag + story_points: Story points + created_resolved: + work_packages: Arbejdspakker work_packages: properties: storyPoints: Historiepoint diff --git a/modules/backlogs/config/locales/crowdin/js-de.yml b/modules/backlogs/config/locales/crowdin/js-de.yml index 61ff9934a84b..9fe95b90b957 100644 --- a/modules/backlogs/config/locales/crowdin/js-de.yml +++ b/modules/backlogs/config/locales/crowdin/js-de.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- de: js: - burndown: - day: Tag - points: Punkte + backlogs: + announcements: + batch_too_large: Es ist nicht möglich, %{count} Arbeitspakete auf einmal zu verschieben. Wählen Sie nicht mehr als %{max} aus. + fallback_item_label: Arbeitspaket + fallback_list_name: andere Liste + move_failed_check_position: Verschieben fehlgeschlagen. Überprüfen Sie die aktuelle Position des Arbeitspakets. + move_failed_check_positions_batch: + other: Verschieben fehlgeschlagen. Überprüfen Sie die aktuelle Position des Arbeitspakets. + move_failed_rolled_back: Verschieben fehlgeschlagen. %{label} ist wieder an seiner vorherigen Position. + move_failed_rolled_back_batch: + other: Die Verschiebung ist fehlgeschlagen. %{count} Arbeitspakete wurden an ihre ursprünglichen Positionen zurückgesetzt. + moved: "%{label} verschoben auf Position %{position} von %{total}" + moved_batch: + other: "%{count} Arbeitspakete auf die Positionen %{first} bis %{last} von %{total} verschoben" + moved_batch_to_list: + other: "%{count} Arbeitspakete zu %{list} auf die Positionen %{first} bis %{last} von %{total} verschoben" + moved_to_list: "%{label} verschoben zu %{list}, Position %{position} von %{total}" + selection: + card_state: Ausgewählt + cleared: Auswahl aufgehoben. + not_selectable: Auswahl unverändert. Dieses Arbeitspaket hat keinen Einfluss auf die Reihenfolge dieser Liste. + range_blocked: Auswahl unverändert. Sie enthält ein Arbeitspaket ohne Einfluss auf die Reihenfolge dieser Liste. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Auswahl unverändert. Erweitern Sie diese Liste, um diesen Bereich auszuwählen. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Punkte diff --git a/modules/backlogs/config/locales/crowdin/js-el.yml b/modules/backlogs/config/locales/crowdin/js-el.yml index d3ab9da7827b..0c932089efe1 100644 --- a/modules/backlogs/config/locales/crowdin/js-el.yml +++ b/modules/backlogs/config/locales/crowdin/js-el.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- el: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Πόντοι Ιστορίας diff --git a/modules/backlogs/config/locales/crowdin/js-eo.yml b/modules/backlogs/config/locales/crowdin/js-eo.yml index 529a38534b36..3b4e6bf32f7b 100644 --- a/modules/backlogs/config/locales/crowdin/js-eo.yml +++ b/modules/backlogs/config/locales/crowdin/js-eo.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- eo: js: - burndown: - day: Tago - points: Poentoj + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Rakontaj poentoj diff --git a/modules/backlogs/config/locales/crowdin/js-es.yml b/modules/backlogs/config/locales/crowdin/js-es.yml index 6f44936f541f..1ece125e83fe 100644 --- a/modules/backlogs/config/locales/crowdin/js-es.yml +++ b/modules/backlogs/config/locales/crowdin/js-es.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- es: js: - burndown: - day: Día - points: Puntos + backlogs: + announcements: + batch_too_large: No se pueden trasladar %{count} paquetes de trabajo a la vez. Seleccione no más de %{max}. + fallback_item_label: Paquete de trabajo + fallback_list_name: otra lista + move_failed_check_position: No se pudo trasladar. Compruebe la posición actual del paquete de trabajo. + move_failed_check_positions_batch: + other: No se pudo trasladar. Compruebe las posiciones actuales de los paquetes de trabajo. + move_failed_rolled_back: No se pudo trasladar. %{label} regresó a su posición anterior. + move_failed_rolled_back_batch: + other: No se pudo trasladar. %{count} paquetes de trabajo regresaron a sus posiciones anteriores. + moved: "%{label} se trasladó a la posición %{position} de %{total}" + moved_batch: + other: "%{count} paquetes de trabajo se han trasladado a las posiciones %{first}-%{last} de %{total}" + moved_batch_to_list: + other: "%{count} paquetes de trabajo se han trasladado a %{list}, a las posiciones %{first}-%{last} de %{total}" + moved_to_list: "%{label} se trasladó a %{list}, a la posición %{position} de %{total}" + selection: + card_state: Seleccionado + cleared: Selección eliminada. + not_selectable: La selección no ha cambiado. Este paquete de trabajo no influye en el orden de esta lista. + range_blocked: La selección no ha cambiado. Ese rango contiene un paquete de trabajo que no influye en el orden de esta lista. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: La selección no ha cambiado. Amplíe esta lista para seleccionar ese rango. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Puntos de Historia diff --git a/modules/backlogs/config/locales/crowdin/js-et.yml b/modules/backlogs/config/locales/crowdin/js-et.yml index f3ed0e2dfc26..30da26400f93 100644 --- a/modules/backlogs/config/locales/crowdin/js-et.yml +++ b/modules/backlogs/config/locales/crowdin/js-et.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- et: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-eu.yml b/modules/backlogs/config/locales/crowdin/js-eu.yml index db8e8ea65d62..e30b2d9228c7 100644 --- a/modules/backlogs/config/locales/crowdin/js-eu.yml +++ b/modules/backlogs/config/locales/crowdin/js-eu.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- eu: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-fa.yml b/modules/backlogs/config/locales/crowdin/js-fa.yml index 7b222ec45880..ebee5f897428 100644 --- a/modules/backlogs/config/locales/crowdin/js-fa.yml +++ b/modules/backlogs/config/locales/crowdin/js-fa.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- fa: js: - burndown: - day: روز - points: امتیاز ها + backlogs: + announcements: + batch_too_large: امکان جابه‌جایی %{count} بسته کاری به‌صورت هم‌زمان وجود ندارد. حداکثر %{max} مورد را انتخاب کنید. + fallback_item_label: بسته کاری + fallback_list_name: فهرست دیگری + move_failed_check_position: جابه‌جایی ناموفق بود. موقعیت فعلی بسته کاری را بررسی کنید. + move_failed_check_positions_batch: + other: جابه‌جایی ناموفق بود. موقعیت فعلی بسته‌های کاری را بررسی کنید. + move_failed_rolled_back: جابه‌جایی ناموفق بود. %{label} به موقعیت قبلی خود بازگشت. + move_failed_rolled_back_batch: + other: جابه‌جایی ناموفق بود. %{count} بسته کاری به موقعیت‌های قبلی خود بازگشتند. + moved: "%{label} به موقعیت %{position} از %{total} منتقل شد" + moved_batch: + other: "%{count} بسته کاری به موقعیت‌های %{first} تا %{last} از %{total} منتقل شدند" + moved_batch_to_list: + other: "%{count} بسته کاری به %{list}، موقعیت‌های %{first} تا %{last} از %{total} منتقل شدند" + moved_to_list: "%{label} به %{list}، موقعیت %{position} از %{total} منتقل شد" + selection: + card_state: انتخاب‌شده + cleared: انتخاب پاک شد. + not_selectable: انتخاب بدون تغییر ماند. این بسته کاری در ترتیب این فهرست نقشی ندارد. + range_blocked: انتخاب بدون تغییر ماند. این بازه شامل بسته کاری‌ای است که در ترتیب این فهرست نقشی ندارد. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: انتخاب بدون تغییر ماند. برای انتخاب آن بازه، این فهرست را گسترش دهید. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: امتیاز داستان diff --git a/modules/backlogs/config/locales/crowdin/js-fi.yml b/modules/backlogs/config/locales/crowdin/js-fi.yml index ee82b96e7c68..8256065fa608 100644 --- a/modules/backlogs/config/locales/crowdin/js-fi.yml +++ b/modules/backlogs/config/locales/crowdin/js-fi.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- fi: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Tarinapisteet diff --git a/modules/backlogs/config/locales/crowdin/js-fil.yml b/modules/backlogs/config/locales/crowdin/js-fil.yml index 596ecb5d733b..8e4171fbb7dc 100644 --- a/modules/backlogs/config/locales/crowdin/js-fil.yml +++ b/modules/backlogs/config/locales/crowdin/js-fil.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- fil: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-fr.yml b/modules/backlogs/config/locales/crowdin/js-fr.yml index 4ba5e550cad0..f679e3522710 100644 --- a/modules/backlogs/config/locales/crowdin/js-fr.yml +++ b/modules/backlogs/config/locales/crowdin/js-fr.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- fr: js: - burndown: - day: Jour - points: Points + backlogs: + announcements: + batch_too_large: Impossible de déplacer %{count} lots de travaux à la fois. Sélectionnez-en au maximum %{max}. + fallback_item_label: Lot de travaux + fallback_list_name: une autre liste + move_failed_check_position: Échec du déplacement. Vérifiez la position actuelle du lot de travaux. + move_failed_check_positions_batch: + other: Échec du déplacement. Vérifiez les positions actuelles des lots de travaux. + move_failed_rolled_back: Échec du déplacement. %{label} a retrouvé sa position précédente. + move_failed_rolled_back_batch: + other: Échec du déplacement. %{count} lots de travaux ont retrouvé leurs positions précédentes. + moved: "%{label} déplacé à la position %{position} sur %{total}" + moved_batch: + other: "%{count} lots de travaux déplacés aux positions %{first} à %{last} sur %{total}" + moved_batch_to_list: + other: "%{count} lots de travaux déplacés vers %{list}, aux positions %{first} à %{last} sur %{total}" + moved_to_list: "%{label} déplacé vers %{list}, à la position %{position} sur %{total}" + selection: + card_state: Sélectionné + cleared: Sélection effacée. + not_selectable: Sélection inchangée. Ce lot de travaux n'est pas pris en compte dans l'ordre de cette liste. + range_blocked: Sélection inchangée. Cette plage contient un lot de travaux qui n'est pas pris en compte dans l'ordre de cette liste. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Sélection inchangée. Dépliez cette liste pour sélectionner cette plage. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story points diff --git a/modules/backlogs/config/locales/crowdin/js-he.yml b/modules/backlogs/config/locales/crowdin/js-he.yml index 21b8f5e41de1..7b55f39fbb3c 100644 --- a/modules/backlogs/config/locales/crowdin/js-he.yml +++ b/modules/backlogs/config/locales/crowdin/js-he.yml @@ -16,15 +16,52 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- he: js: - burndown: - day: יום - points: נקודות + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + two: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + two: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-hi.yml b/modules/backlogs/config/locales/crowdin/js-hi.yml index 05848334266f..ec854f1bdec8 100644 --- a/modules/backlogs/config/locales/crowdin/js-hi.yml +++ b/modules/backlogs/config/locales/crowdin/js-hi.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- hi: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: कहानी अंक diff --git a/modules/backlogs/config/locales/crowdin/js-hr.yml b/modules/backlogs/config/locales/crowdin/js-hr.yml index 1e0b0e5c98c5..2d1b860de3e4 100644 --- a/modules/backlogs/config/locales/crowdin/js-hr.yml +++ b/modules/backlogs/config/locales/crowdin/js-hr.yml @@ -16,15 +16,52 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- hr: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Točke priče diff --git a/modules/backlogs/config/locales/crowdin/js-hu.yml b/modules/backlogs/config/locales/crowdin/js-hu.yml index 8c93b1587a4d..058c8c691017 100644 --- a/modules/backlogs/config/locales/crowdin/js-hu.yml +++ b/modules/backlogs/config/locales/crowdin/js-hu.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- hu: js: - burndown: - day: Nap - points: Pontok + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story pontok diff --git a/modules/backlogs/config/locales/crowdin/js-hy.yml b/modules/backlogs/config/locales/crowdin/js-hy.yml index 78f65dbf627d..6407877c28ea 100644 --- a/modules/backlogs/config/locales/crowdin/js-hy.yml +++ b/modules/backlogs/config/locales/crowdin/js-hy.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- hy: js: - burndown: - day: Օր - points: Միավորներ + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Պատմության միավորներ diff --git a/modules/backlogs/config/locales/crowdin/js-id.yml b/modules/backlogs/config/locales/crowdin/js-id.yml index 53a655af0f6c..b456f56d7853 100644 --- a/modules/backlogs/config/locales/crowdin/js-id.yml +++ b/modules/backlogs/config/locales/crowdin/js-id.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- id: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Cerita point diff --git a/modules/backlogs/config/locales/crowdin/js-it.yml b/modules/backlogs/config/locales/crowdin/js-it.yml index d41d196a7375..95761eae9880 100644 --- a/modules/backlogs/config/locales/crowdin/js-it.yml +++ b/modules/backlogs/config/locales/crowdin/js-it.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- it: js: - burndown: - day: Giorno - points: Punti + backlogs: + announcements: + batch_too_large: Non è possibile spostare %{count} macro-attività alla volta. Selezionane al massimo %{max}. + fallback_item_label: Macro-attività + fallback_list_name: un'altra lista + move_failed_check_position: Spostamento non riuscito. Controlla la posizione attuale della macro-attività. + move_failed_check_positions_batch: + other: Spostamento non riuscito. Controlla le posizioni attuali delle macro-attività. + move_failed_rolled_back: Spostamento non riuscito. %{label} è tornata alla posizione precedente. + move_failed_rolled_back_batch: + other: Spostamento non riuscito. %{count} macro-attività sono tornate alle posizioni precedenti. + moved: "%{label} spostata alla posizione %{position} di %{total}" + moved_batch: + other: "%{count} macro-attività spostate nelle posizioni da %{first} a %{last} di %{total}" + moved_batch_to_list: + other: "%{count} macro-attività spostate in %{list}, nelle posizioni da %{first} a %{last} di %{total}" + moved_to_list: "%{label} spostata in %{list}, alla posizione %{position} di %{total}" + selection: + card_state: Selezionato + cleared: Selezione azzerata. + not_selectable: Selezione invariata. Questa macro-attività non partecipa all'ordinamento di questo elenco. + range_blocked: Selezione invariata. L'intervallo contiene una macro-attività che non partecipa all'ordinamento di questo elenco. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selezione invariata. Espandi questo elenco per selezionare l'intervallo. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Punti della storia diff --git a/modules/backlogs/config/locales/crowdin/js-ja.yml b/modules/backlogs/config/locales/crowdin/js-ja.yml index e68d4686e008..374a3113d7ce 100644 --- a/modules/backlogs/config/locales/crowdin/js-ja.yml +++ b/modules/backlogs/config/locales/crowdin/js-ja.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ja: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: ストーリーポイント diff --git a/modules/backlogs/config/locales/crowdin/js-ka.yml b/modules/backlogs/config/locales/crowdin/js-ka.yml index 8fc5a0d99978..a6e3191ffdb3 100644 --- a/modules/backlogs/config/locales/crowdin/js-ka.yml +++ b/modules/backlogs/config/locales/crowdin/js-ka.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ka: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: ისტორიული წერტილები diff --git a/modules/backlogs/config/locales/crowdin/js-kk.yml b/modules/backlogs/config/locales/crowdin/js-kk.yml index 0b83d274abff..bdf9f66c1798 100644 --- a/modules/backlogs/config/locales/crowdin/js-kk.yml +++ b/modules/backlogs/config/locales/crowdin/js-kk.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- kk: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-ko.yml b/modules/backlogs/config/locales/crowdin/js-ko.yml index 5ca38af4f1ef..13cd93ad4291 100644 --- a/modules/backlogs/config/locales/crowdin/js-ko.yml +++ b/modules/backlogs/config/locales/crowdin/js-ko.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ko: js: - burndown: - day: 일 - points: 포인트 + backlogs: + announcements: + batch_too_large: "%{count}개 작업 패키지를 한 번에 이동할 수 없습니다. %{max}개까지만 선택하세요." + fallback_item_label: 작업 패키지 + fallback_list_name: 다른 목록 + move_failed_check_position: 이동하지 못했습니다. 작업 패키지의 현재 위치를 확인하세요. + move_failed_check_positions_batch: + other: 이동하지 못했습니다. 작업 패키지의 현재 위치를 확인하세요. + move_failed_rolled_back: 이동하지 못했습니다. %{label}이(가) 이전 위치로 돌아갔습니다. + move_failed_rolled_back_batch: + other: 이동하지 못했습니다. %{count}개 작업 패키지가 이전 위치로 돌아갔습니다. + moved: "%{label}이(가) %{total}개 중 %{position} 위치로 이동됨" + moved_batch: + other: "%{count}개 작업 패키지가 %{total}개 중 %{first} ~ %{last} 위치로 이동됨" + moved_batch_to_list: + other: "%{count}개 작업 패키지가 %{list}(으)로 이동됨, 위치 %{first} ~ %{last}/%{total}" + moved_to_list: "%{label}이(가) %{list}(으)로 이동됨, 위치 %{position}/%{total}" + selection: + card_state: 선택됨 + cleared: 선택 항목이 지워졌습니다. + not_selectable: 선택 항목이 변경되지 않았습니다. 이 작업 패키지는 해당 목록의 순서 지정에 영향을 미치지 않습니다. + range_blocked: 선택 항목이 변경되지 않았습니다. 해당 범위에는 이 목록의 순서 지정에 영향을 미치지 않는 작업 패키지가 포함되어 있습니다. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: 선택 항목이 변경되지 않았습니다. 이 목록을 확장하여 해당 범위를 선택하세요. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: 스토리 포인트 diff --git a/modules/backlogs/config/locales/crowdin/js-li.yml b/modules/backlogs/config/locales/crowdin/js-li.yml index 266bfbd9d3b2..4304f8b98515 100644 --- a/modules/backlogs/config/locales/crowdin/js-li.yml +++ b/modules/backlogs/config/locales/crowdin/js-li.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- li: js: - burndown: - day: Daag - points: Punte + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Werkpakket + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Geselecteerd + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story punte diff --git a/modules/backlogs/config/locales/crowdin/js-lt.yml b/modules/backlogs/config/locales/crowdin/js-lt.yml index f5f6aa2cd0f6..bbf9a6312bee 100644 --- a/modules/backlogs/config/locales/crowdin/js-lt.yml +++ b/modules/backlogs/config/locales/crowdin/js-lt.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- lt: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Istorijos taškai diff --git a/modules/backlogs/config/locales/crowdin/js-lv.yml b/modules/backlogs/config/locales/crowdin/js-lv.yml index e77366a80f93..cc2d8c341efd 100644 --- a/modules/backlogs/config/locales/crowdin/js-lv.yml +++ b/modules/backlogs/config/locales/crowdin/js-lv.yml @@ -16,15 +16,52 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- lv: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + zero: Could not extend the range. %{count} work packages selected. + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + zero: "%{count} work packages selected." + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Novērtējums diff --git a/modules/backlogs/config/locales/crowdin/js-mn.yml b/modules/backlogs/config/locales/crowdin/js-mn.yml index f9384afdea11..1b3e457bfe70 100644 --- a/modules/backlogs/config/locales/crowdin/js-mn.yml +++ b/modules/backlogs/config/locales/crowdin/js-mn.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- mn: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Гүйцэтгэлийн оноо diff --git a/modules/backlogs/config/locales/crowdin/js-ms.yml b/modules/backlogs/config/locales/crowdin/js-ms.yml index 2c3ac8924305..e18339d93f1f 100644 --- a/modules/backlogs/config/locales/crowdin/js-ms.yml +++ b/modules/backlogs/config/locales/crowdin/js-ms.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ms: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Titik Cerita diff --git a/modules/backlogs/config/locales/crowdin/js-ne.yml b/modules/backlogs/config/locales/crowdin/js-ne.yml index 1a20d97e98b7..1d587d999b33 100644 --- a/modules/backlogs/config/locales/crowdin/js-ne.yml +++ b/modules/backlogs/config/locales/crowdin/js-ne.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ne: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-nl.yml b/modules/backlogs/config/locales/crowdin/js-nl.yml index 8ec7ccc1425c..8c85a297fb6f 100644 --- a/modules/backlogs/config/locales/crowdin/js-nl.yml +++ b/modules/backlogs/config/locales/crowdin/js-nl.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- nl: js: - burndown: - day: Dag - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story points diff --git a/modules/backlogs/config/locales/crowdin/js-no.yml b/modules/backlogs/config/locales/crowdin/js-no.yml index 157563bd911c..11ce372997f9 100644 --- a/modules/backlogs/config/locales/crowdin/js-no.yml +++ b/modules/backlogs/config/locales/crowdin/js-no.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- 'no': js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Historiepoeng diff --git a/modules/backlogs/config/locales/crowdin/js-pl.yml b/modules/backlogs/config/locales/crowdin/js-pl.yml index ade0739fd65e..174633ab8798 100644 --- a/modules/backlogs/config/locales/crowdin/js-pl.yml +++ b/modules/backlogs/config/locales/crowdin/js-pl.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- pl: js: - burndown: - day: Dzień - points: Punkty + backlogs: + announcements: + batch_too_large: Nie można przenieść %{count} pakietów roboczych naraz. Wybierz nie więcej niż %{max}. + fallback_item_label: Pakiet roboczy + fallback_list_name: inna lista + move_failed_check_position: Przeniesienie nie powiodło się. Sprawdź bieżącą pozycję pakietu roboczego. + move_failed_check_positions_batch: + other: Przeniesienie nie powiodło się. Sprawdź bieżące pozycje pakietów roboczych. + move_failed_rolled_back: Przeniesienie nie powiodło się. Przywrócono poprzednią pozycję %{label}. + move_failed_rolled_back_batch: + other: Przeniesienie nie powiodło się. Pakiety robocze (%{count}) powróciły na swoje poprzednie pozycje. + moved: "%{label} przeniesiono do pozycji %{position} z %{total}" + moved_batch: + other: "%{count} pakiety robocze przeniesiono do pozycji od %{first} do %{last} z %{total}" + moved_batch_to_list: + other: Pakiety robocze (%{count}) przeniesiono do %{list}, pozycje od %{first} do %{last} z %{total} + moved_to_list: "%{label} przeniesiono do %{list}, pozycja %{position} z %{total}" + selection: + card_state: Wybrana + cleared: Wyczyszczono wybór. + not_selectable: Wybór pozostaje bez zmian. Ten pakiet roboczy nie ma wpływu na kolejność pozycji na tej liście. + range_blocked: Wybór pozostaje bez zmian. Ten zakres zawiera pakiet roboczy, który nie ma wpływu na kolejność pozycji na tej liście. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Wybór pozostaje bez zmian. Rozwiń tę listę, aby wybrać ten zakres. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Historia Punktów diff --git a/modules/backlogs/config/locales/crowdin/js-pt-BR.yml b/modules/backlogs/config/locales/crowdin/js-pt-BR.yml index d03ca81ff421..eb46a28e4266 100644 --- a/modules/backlogs/config/locales/crowdin/js-pt-BR.yml +++ b/modules/backlogs/config/locales/crowdin/js-pt-BR.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- pt-BR: js: - burndown: - day: Dia - points: Pontos + backlogs: + announcements: + batch_too_large: Não é possível mover %{count} pacotes de trabalho de uma só vez. Selecione no máximo %{max}. + fallback_item_label: Pacote de trabalho + fallback_list_name: outra lista + move_failed_check_position: Falha ao mover. Verifique a posição atual do pacote de trabalho. + move_failed_check_positions_batch: + other: Erro ao Mover. Verifique as posições atuais dos pacotes de trabalho. + move_failed_rolled_back: Falha ao mover. %{label} retornou à sua posição anterior. + move_failed_rolled_back_batch: + other: Falha ao mover. %{count} itens retornaram às suas posições anteriores. + moved: "%{label} foi movido para a posição %{position} de %{total}" + moved_batch: + other: "%{count} pacotes de trabalho movidos para as posições %{first} a %{last} de %{total}" + moved_batch_to_list: + other: "%{count} pacotes de trabalho movidos para %{list}, posições %{first} a %{last} de %{total}" + moved_to_list: "%{label} movido para %{list}, posição %{position} de %{total}" + selection: + card_state: Selecionado + cleared: Seleção removida. + not_selectable: Seleção inalterada. Este pacote de trabalho não faz parte da ordenação desta lista. + range_blocked: Seleção inalterada. Esse intervalo contém um pacote de trabalho que não faz parte da ordenação desta lista. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Seleção inalterada. Expanda a lista para selecionar todo o intervalo. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Pontos de História diff --git a/modules/backlogs/config/locales/crowdin/js-pt-PT.yml b/modules/backlogs/config/locales/crowdin/js-pt-PT.yml index 80b18dbe6241..9bf15fe38469 100644 --- a/modules/backlogs/config/locales/crowdin/js-pt-PT.yml +++ b/modules/backlogs/config/locales/crowdin/js-pt-PT.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- pt-PT: js: - burndown: - day: Dia - points: Pontos + backlogs: + announcements: + batch_too_large: Não é possível mover %{count} pacotes de trabalho de uma só vez. Selecione, no máximo, %{max}. + fallback_item_label: Pacote de trabalho + fallback_list_name: outra lista + move_failed_check_position: Erro ao mover. Verifique a posição atual do pacote de trabalho. + move_failed_check_positions_batch: + other: Erro ao mover. Verifique as posições atuais dos pacotes de trabalho. + move_failed_rolled_back: Erro ao mover. %{label} voltou à sua posição anterior. + move_failed_rolled_back_batch: + other: Erro ao mover. %{count} pacotes de trabalho voltaram às suas posições anteriores. + moved: "%{label} movido para a posição %{position} de %{total}" + moved_batch: + other: "%{count} pacotes de trabalho foram transferidos para as posições %{first} até %{last} de %{total}" + moved_batch_to_list: + other: "%{count} pacotes de trabalho transferidos para %{list}, posições %{first} até %{last} de %{total}" + moved_to_list: "%{label} transferido para %{list}, cargo %{position} de %{total}" + selection: + card_state: Selecionado + cleared: Seleção limpa. + not_selectable: Seleção inalterada. Este pacote de trabalho não tem qualquer influência na ordenação desta lista. + range_blocked: Seleção inalterada. Esse intervalo contém um pacote de trabalho que não intervém na ordenação desta lista. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Seleção inalterada. Expanda esta lista para selecionar esse intervalo. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Pontos da história diff --git a/modules/backlogs/config/locales/crowdin/js-ro.yml b/modules/backlogs/config/locales/crowdin/js-ro.yml index 2574dd0f1103..ba28c8425595 100644 --- a/modules/backlogs/config/locales/crowdin/js-ro.yml +++ b/modules/backlogs/config/locales/crowdin/js-ro.yml @@ -16,15 +16,52 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ro: js: - burndown: - day: Zi - points: Puncte + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Puncte cerință diff --git a/modules/backlogs/config/locales/crowdin/js-ru.yml b/modules/backlogs/config/locales/crowdin/js-ru.yml index b0b3912f7fc7..4520276571a5 100644 --- a/modules/backlogs/config/locales/crowdin/js-ru.yml +++ b/modules/backlogs/config/locales/crowdin/js-ru.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- ru: js: - burndown: - day: День - points: Точки + backlogs: + announcements: + batch_too_large: Невозможно переместить сразу несколько пакетов работ %{count}. Выберите не более %{max}. + fallback_item_label: Пакет работ + fallback_list_name: другой список + move_failed_check_position: Перемещение не удалось. Проверьте текущую позицию пакета работ. + move_failed_check_positions_batch: + other: Перемещение не удалось. Проверьте текущие позиции пакетов работ. + move_failed_rolled_back: Перемещение не удалось. %{label} остался на прежней позиции. + move_failed_rolled_back_batch: + other: Перемещение не удалось. %{count} пакетов работ осталось на прежней позиции. + moved: "%{label} перемещен на позицию %{position} %{total}" + moved_batch: + other: "%{count} пакетов работ перемещено на позиции с %{first} по %{last} из %{total}" + moved_batch_to_list: + other: "%{count} пакетов работ перемещено в %{list}, позиции с %{first} по %{last} из %{total}" + moved_to_list: "%{label} перемещен в %{list}, на позицию %{position} из %{total}" + selection: + card_state: Выбрано + cleared: Выбор очищен. + not_selectable: Выборка осталась без изменений. Данный пакет работ не влияет на порядок элементов в этом списке. + range_blocked: Выборка осталась без изменений. Данный диапазон содержит пакет работ, который не влияет на порядок элементов в этом списке. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Выборка не изменена. Разверните этот список, чтобы выбрать этот диапазон. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Исторические точки diff --git a/modules/backlogs/config/locales/crowdin/js-rw.yml b/modules/backlogs/config/locales/crowdin/js-rw.yml index 869701149b73..c0b5510e585b 100644 --- a/modules/backlogs/config/locales/crowdin/js-rw.yml +++ b/modules/backlogs/config/locales/crowdin/js-rw.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- rw: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-si.yml b/modules/backlogs/config/locales/crowdin/js-si.yml index 051f54580352..3dc99d21aeb4 100644 --- a/modules/backlogs/config/locales/crowdin/js-si.yml +++ b/modules/backlogs/config/locales/crowdin/js-si.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- si: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: කතන්දර කරුණු diff --git a/modules/backlogs/config/locales/crowdin/js-sk.yml b/modules/backlogs/config/locales/crowdin/js-sk.yml index 853806d63eca..6e6fedbae069 100644 --- a/modules/backlogs/config/locales/crowdin/js-sk.yml +++ b/modules/backlogs/config/locales/crowdin/js-sk.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- sk: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: História bodov diff --git a/modules/backlogs/config/locales/crowdin/js-sl.yml b/modules/backlogs/config/locales/crowdin/js-sl.yml index 611388072557..4367e374ae7f 100644 --- a/modules/backlogs/config/locales/crowdin/js-sl.yml +++ b/modules/backlogs/config/locales/crowdin/js-sl.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- sl: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + two: Could not extend the range. %{count} work packages selected. + few: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + two: "%{count} work packages selected." + few: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Točke v zgodbi diff --git a/modules/backlogs/config/locales/crowdin/js-sr.yml b/modules/backlogs/config/locales/crowdin/js-sr.yml index 97cc752e2156..7b7268ad04b8 100644 --- a/modules/backlogs/config/locales/crowdin/js-sr.yml +++ b/modules/backlogs/config/locales/crowdin/js-sr.yml @@ -16,15 +16,52 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- sr: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Poeni Priče diff --git a/modules/backlogs/config/locales/crowdin/js-sv.yml b/modules/backlogs/config/locales/crowdin/js-sv.yml index b69b477d4437..d6d2774c64e3 100644 --- a/modules/backlogs/config/locales/crowdin/js-sv.yml +++ b/modules/backlogs/config/locales/crowdin/js-sv.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- sv: js: - burndown: - day: Dag - points: Poäng + backlogs: + announcements: + batch_too_large: Det går inte att flytta %{count} arbetspaket samtidigt. Välj högst %{max}. + fallback_item_label: Arbetspaket + fallback_list_name: en annan lista + move_failed_check_position: Flytten misslyckades. Kontrollera arbetspaketets aktuella position. + move_failed_check_positions_batch: + other: Flytten misslyckades. Kontrollera arbetspaketens aktuella positioner. + move_failed_rolled_back: Flytten misslyckades. %{label} återställdes till sin tidigare position. + move_failed_rolled_back_batch: + other: Flytten misslyckades. %{count} arbetspaket återställdes till sina tidigare positioner. + moved: "%{label} flyttades till position %{position} av %{total}" + moved_batch: + other: "%{count} arbetspaket flyttades till positionerna %{first} till %{last} av %{total}" + moved_batch_to_list: + other: "%{count} arbetspaket flyttades till %{list}, positionerna %{first} till %{last} av %{total}" + moved_to_list: "%{label} flyttades till %{list}, position %{position} av %{total}" + selection: + card_state: Vald + cleared: Markeringen har rensats. + not_selectable: Markeringen är oförändrad. Det här arbetspaketet ingår inte i listans sorteringsordning. + range_blocked: Markeringen är oförändrad. Intervallet innehåller ett arbetspaket som inte ingår i listans sorteringsordning. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Markeringen är oförändrad. Expandera listan för att markera intervallet. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Berättelsepoäng diff --git a/modules/backlogs/config/locales/crowdin/js-th.yml b/modules/backlogs/config/locales/crowdin/js-th.yml index 1c52c5622f24..64c7a4348a3e 100644 --- a/modules/backlogs/config/locales/crowdin/js-th.yml +++ b/modules/backlogs/config/locales/crowdin/js-th.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- th: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-tr.yml b/modules/backlogs/config/locales/crowdin/js-tr.yml index 7ddcace707fc..b48592c3f5e6 100644 --- a/modules/backlogs/config/locales/crowdin/js-tr.yml +++ b/modules/backlogs/config/locales/crowdin/js-tr.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- tr: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Hikaye Puanları diff --git a/modules/backlogs/config/locales/crowdin/js-uk.yml b/modules/backlogs/config/locales/crowdin/js-uk.yml index 60340763c9a8..965292f8d08a 100644 --- a/modules/backlogs/config/locales/crowdin/js-uk.yml +++ b/modules/backlogs/config/locales/crowdin/js-uk.yml @@ -16,15 +16,54 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- uk: js: - burndown: - day: День - points: Одиниці + backlogs: + announcements: + batch_too_large: Неможливо перемістити всі пакети робіт (%{count}) одночасно. Максимальна кількість — %{max}. + fallback_item_label: Пакет робіт + fallback_list_name: інший список + move_failed_check_position: Не вдалося перемістити. Перегляньте поточну позицію пакета робіт. + move_failed_check_positions_batch: + other: Не вдалося перемістити. Перегляньте поточні позиції пакетів робіт. + move_failed_rolled_back: Не вдалося перемістити. Об’єкт %{label} повернувся на попередню позицію. + move_failed_rolled_back_batch: + other: Не вдалося перемістити. Пакети робіт (%{count}) повернулися на попередні позиції. + moved: "%{label}: переміщено на позицію %{position} з %{total}" + moved_batch: + other: Пакети робіт (%{count}) переміщено на позиції з %{first} по %{last} з %{total} + moved_batch_to_list: + other: Пакети робіт (%{count}) переміщено в список «%{list}», позиції з %{first} по %{last} з %{total} + moved_to_list: "%{label}: переміщено в список «%{list}» на позицію %{position} з %{total}" + selection: + card_state: Вибрано + cleared: Вибір скасовано. + not_selectable: Вибір залишився незмінним. Цей пакет робіт не впливає на порядок у цьому списку. + range_blocked: Вибір залишився незмінним. Діапазон містить пакет робіт, що не впливає на порядок у цьому списку. + range_restarted: + one: Could not extend the range. %{count} work package selected. + few: Could not extend the range. %{count} work packages selected. + many: Could not extend the range. %{count} work packages selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Вибір залишився незмінним. Щоб вибрати потрібний діапазон, розгорніть цей список. + selected: + one: "%{count} work package selected." + few: "%{count} work packages selected." + many: "%{count} work packages selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Сторі-поінти diff --git a/modules/backlogs/config/locales/crowdin/js-uz.yml b/modules/backlogs/config/locales/crowdin/js-uz.yml index 2235a1f4af7f..05e42f485ef6 100644 --- a/modules/backlogs/config/locales/crowdin/js-uz.yml +++ b/modules/backlogs/config/locales/crowdin/js-uz.yml @@ -16,15 +16,50 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- uz: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + one: Could not extend the range. %{count} work package selected. + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + one: "%{count} work package selected." + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Story Points diff --git a/modules/backlogs/config/locales/crowdin/js-vi.yml b/modules/backlogs/config/locales/crowdin/js-vi.yml index cedce395a1bd..fc5db97af00b 100644 --- a/modules/backlogs/config/locales/crowdin/js-vi.yml +++ b/modules/backlogs/config/locales/crowdin/js-vi.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- vi: js: - burndown: - day: Day - points: Points + backlogs: + announcements: + batch_too_large: Cannot move %{count} work packages at once. Select no more than %{max}. + fallback_item_label: Work package + fallback_list_name: another list + move_failed_check_position: Move failed. Check the work package's current position. + move_failed_check_positions_batch: + other: Move failed. Check the work packages' current positions. + move_failed_rolled_back: Move failed. %{label} returned to its previous position. + move_failed_rolled_back_batch: + other: Move failed. %{count} work packages returned to their previous positions. + moved: "%{label} moved to position %{position} of %{total}" + moved_batch: + other: "%{count} work packages moved to positions %{first} through %{last} of %{total}" + moved_batch_to_list: + other: "%{count} work packages moved to %{list}, positions %{first} through %{last} of %{total}" + moved_to_list: "%{label} moved to %{list}, position %{position} of %{total}" + selection: + card_state: Selected + cleared: Selection cleared. + not_selectable: Selection unchanged. This work package takes no part in this list's ordering. + range_blocked: Selection unchanged. That range contains a work package that takes no part in this list's ordering. + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: Selection unchanged. Expand this list to select that range. + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: Điểm cốt truyện diff --git a/modules/backlogs/config/locales/crowdin/js-zh-CN.yml b/modules/backlogs/config/locales/crowdin/js-zh-CN.yml index aa2519fc111d..0375444a0f65 100644 --- a/modules/backlogs/config/locales/crowdin/js-zh-CN.yml +++ b/modules/backlogs/config/locales/crowdin/js-zh-CN.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- zh-CN: js: - burndown: - day: 天 - points: 点 + backlogs: + announcements: + batch_too_large: 无法一次性移动 %{count} 个工作包。选择的工作包数量不得超过 %{max} 个。 + fallback_item_label: 工作包 + fallback_list_name: 另一个列表 + move_failed_check_position: 移动失败。请检查工作包的当前位置。 + move_failed_check_positions_batch: + other: 移动失败。请检查工作包的当前位置。 + move_failed_rolled_back: 移动失败。%{label} 已回到其先前位置。 + move_failed_rolled_back_batch: + other: 移动失败。%{count} 个工作包已回到其先前位置。 + moved: "%{label} 已被移至位置 %{position},总计 %{total}" + moved_batch: + other: "%{count} 个工作包已被移至位置 %{first} 到 %{last},总计 %{total}" + moved_batch_to_list: + other: "%{count} 个工作包已被移至 %{list} 的位置 %{first} 到 %{last},总计 %{total}" + moved_to_list: "%{label} 已被移至 %{list} 的位置 %{position},总计 %{total}" + selection: + card_state: 已选择 + cleared: 选择已清除。 + not_selectable: 选择未更改。此工作包不参与此列表的排序。 + range_blocked: 选择未更改。该范围包含不参与此列表排序的工作包。 + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: 选择未更改。扩展此列表,以选择该范围。 + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: 故事点 diff --git a/modules/backlogs/config/locales/crowdin/js-zh-TW.yml b/modules/backlogs/config/locales/crowdin/js-zh-TW.yml index 5f474425c332..f8aec3edd963 100644 --- a/modules/backlogs/config/locales/crowdin/js-zh-TW.yml +++ b/modules/backlogs/config/locales/crowdin/js-zh-TW.yml @@ -16,15 +16,48 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- zh-TW: js: - burndown: - day: 日 - points: 燃盡點 + backlogs: + announcements: + batch_too_large: 無法一次移動 %{count} 的工作包。請選擇不超過 %{max} 個。 + fallback_item_label: 工作項目 + fallback_list_name: 另一份清單 + move_failed_check_position: 移動失敗。請檢查工作項目的當前位置。 + move_failed_check_positions_batch: + other: 移動失敗。請檢查工作項目的當前位置。 + move_failed_rolled_back: 移動失敗。 %{label} 已恢復至原先的位置。 + move_failed_rolled_back_batch: + other: 移動失敗。 %{count} 工作項目已恢復至原先的位置。 + moved: "%{label} 已移動至位置 %{position} 的 %{total}" + moved_batch: + other: "%{count} 已移至位置 %{first} 至 %{last} 的工作項目 %{total}" + moved_batch_to_list: + other: "%{count} 已移至 %{list}的工作項目,以及 %{first} 至 %{last} 之間的職位 %{total}" + moved_to_list: "%{label} 已移至 %{list},位置 %{position} 的 %{total}" + selection: + card_state: 已選取 + cleared: 已清除選取項目。 + not_selectable: 選項維持不變。此工作包不參與此清單的排序。 + range_blocked: 選取範圍未變更。該範圍內包含一個工作包,該工作包不參與此清單的排序。 + range_restarted: + other: Could not extend the range. %{count} work packages selected. + range_unavailable: 選取範圍未變更。展開此清單以選取該範圍。 + selected: + other: "%{count} work packages selected." + burndown_chart: + chart_day: 'Day %{day}: %{values}' + chart_label: Burndown chart + chart_summary: 'Burndown chart data: %{days}.' + chart_value: "%{label}: %{value}" + non_working_day: Non-working day + story_points: Story points + created_resolved: + work_packages: Work packages work_packages: properties: storyPoints: 故事點數 diff --git a/modules/backlogs/config/locales/crowdin/ka.yml b/modules/backlogs/config/locales/crowdin/ka.yml index b64d54d37cc3..17e5bac6f4e5 100644 --- a/modules/backlogs/config/locales/crowdin/ka.yml +++ b/modules/backlogs/config/locales/crowdin/ka.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ka: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ ka: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ ka: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ ka: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ ka: remaining_hours: დარჩენილი სამუშაო sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ ka: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ ka: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ ka: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ ka: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ ka: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ ka: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/kk.yml b/modules/backlogs/config/locales/crowdin/kk.yml index 69f68aa67705..46be7e3a1643 100644 --- a/modules/backlogs/config/locales/crowdin/kk.yml +++ b/modules/backlogs/config/locales/crowdin/kk.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ kk: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ kk: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ kk: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ kk: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ kk: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ kk: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ kk: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ kk: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ kk: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ kk: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ kk: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ko.yml b/modules/backlogs/config/locales/crowdin/ko.yml index 6debaf3cbf22..866bfdfe4d72 100644 --- a/modules/backlogs/config/locales/crowdin/ko.yml +++ b/modules/backlogs/config/locales/crowdin/ko.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ko: project: allow_multiple_active_sprints: 여러 활성 스프린트 허용 backlog_excluded_types: 제외된 작업 패키지 유형 + estimation_unit: Unit sprint_sharing: 스프린트 공유 statuses_considered_closed: 마감됨으로 간주되는 상태 sprint: @@ -72,7 +73,7 @@ ko: base: format: "%{message}" unfinished_work_packages: - other: 이 스프린트에서 완료되지 않은 %{count}개 작업 패키지가 있습니다. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: "- 활성화되어 있지 않으므로 닫을 수 없습니다." sprint_goal: @@ -130,9 +131,18 @@ ko: details: 백로그 버킷 '%{name}'이(가) 삭제되고 모든 작업 패키지가 백로그 받은 편지함으로 이동됩니다. 작업 패키지는 삭제되지 않습니다. title: 백로그 버킷을 삭제하시겠습니까? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: 스프린트의 시작 날짜와 종료 날짜를 설정하여 번다운 차트를 생성합니다. blankslate_title: 사용 가능한 번다운 데이터 없음 + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: '백로그에서 숨길 작업 패키지 유형을 선택합니다. 선택한 유형의 항목은 백로그에 자동으로 표시되지 않으므로 팀에 중요한 작업에 집중할 수 있습니다. 예를 들어, 상위 수준에서 관리되는 에픽이나 마일스톤과 같은 유형은 백로그를 실행 가능한 항목에 집중할 수 있도록 숨길 수 있습니다. ' @@ -155,7 +165,7 @@ ko: drop_zone_label: 이 항목을 추가하려면 여기에 놓으세요 label_actions: 받은 편지함 액션 show_more: - other: "%{count}개 항목 더 보기" + other: Show %{count} more items title: 받은 편지함 index_subheader_component: label_search_by_subject: 주제별로 작업 패키지 검색 @@ -178,6 +188,8 @@ ko: remaining_hours: 남은 작업 sharing: 스프린트 공유 show_burndown_chart: 번다운 차트 + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: 스프린트 내의 작업 패키지 sprint_component: action_menu: add_existing_work_package: 기존 작업 패키지 추가 @@ -200,9 +212,36 @@ ko: shared_sprint_info_banner: 공유 스프린트입니다. 수정 사항은 이 스프린트를 사용하는 모든 프로젝트에 반영됩니다. shared_sprint_warning_banner: 공유 스프린트입니다. 이 스프린트를 편집하는 데 필요한 권한이 없습니다. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: 보고서 title: "%{sprint} 보고서" + widgets: + work_package_graph: + title: 작업 패키지 그래프 + work_package_overview: + blankslate: + description: 스프린트의 시작 날짜와 종료 날짜를 설정하여 작업 패키지 개요를 생성합니다. + heading: 사용 가능한 스프린트 데이터 없음 + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: 범위 변경 + story_points_change: "+%{added} / -%{removed} 스토리 포인트" + completed: + heading: 완료 + initially_planned: + heading: 초기 계획 + unfinished: + heading: 미완료 + breakdown_block: + blocks: + show_all: 모두 보기  + closed_work_packages: 마감된 작업 패키지 + resolved_summary: + other: "%{percentage}%(%{resolved}/%{total} 작업 패키지)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ ko: header_backlogs: 백로그 모듈 work_package_card_menu_component: action_menu: - copy_url_to_clipboard: 클립보드에 URL 복사 copy_work_package_id: 작업 패키지 ID 복사 move_menu: 위치로 이동 move_to_backlog_bucket: 백로그 버킷으로 이동 @@ -242,14 +280,25 @@ ko: add_existing_dialog: invalid_target: 추가하려는 대상이 유효하지 않습니다. target_not_found: 추가하려는 스프린트 또는 백로그를 찾을 수 없습니다. + batch_update_service: + mixed_projects: 배치에 포함된 모든 작업 패키지는 동일한 프로젝트에 속해야 합니다. + stale_batch: 이동을 준비하는 동안 하나 이상의 작업 패키지가 변경되었습니다. 현재 위치를 확인하고 다시 시도해 주세요. + stale_predecessor: 뒤에 삽입할 작업 패키지가 다른 곳으로 이동되었습니다. 현재 위치를 확인하고 다시 시도해 주세요. + unavailable_target: 대상 목록을 더 이상 사용할 수 없습니다. 페이지를 다시 로드하고 다시 시도해 주세요. + unexpected_failure: 작업 패키지를 이동할 수 없습니다. 다시 시도해 주세요. move: moved_announcement: "%{label}이(가) %{list}(으)로 이동됨, 위치 %{position}/%{total}" + move_collection: + invalid_ids: 이동할 작업 패키지 목록이 유효하지 않습니다. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: 한 번에 이동할 수 있는 작업 패키지는 %{max}개를 초과할 수 없습니다. + work_packages_not_found: 이 프로젝트에서 하나 이상의 작업 패키지를 찾을 수 없습니다. update_service: invalid_target_type: 'list_type은 다음 중 하나여야 합니다: list_id가 있는 backlog_bucket, list_id가 있는 sprint 또는 list_id가 없는 inbox.' missing_target: list_type 또는 list_id가 있어야 합니다. - burndown: - story_points: 스토리 포인트 - story_points_ideal: 스토리 포인트(적합함) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: 여러 활성 스프린트 @@ -279,9 +328,8 @@ ko: notice_unsuccessful_finish_with_reason: '스프린트를 완료할 수 없습니다: %{reason}' notice_unsuccessful_start: 스프린트를 시작할 수 없습니다. notice_unsuccessful_start_with_reason: '스프린트를 시작할 수 없습니다: %{reason}' - notice_work_package_invisible_after_move: '작업 패키지가 %{backlog}(으)로 이동되었지만 해당 유형이나 상태가 백로그에서 제외되었으므로 표시되지 않습니다. - - ' + notice_work_package_invisible_after_move: + other: "%{count}개 작업 패키지가 %{backlog}(으)로 이동되었지만 해당 유형이나 상태가 백로그에서 제외되었으므로 표시되지 않습니다.\n" permission_create_sprints: 스프린트 만들기 permission_manage_sprint_items: 스프린트 항목 관리 permission_select_backlog_types_and_statuses: 백로그 유형 및 상태 선택 @@ -300,6 +348,18 @@ ko: backlog_buckets: 백로그 버킷 sprints: 스프린트 settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ ko: label: 하위 프로젝트 sprint_sharing: 스프린트 공유 backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: 기본적으로 프로젝트당 한 번에 하나의 스프린트만 활성 상태일 수 있습니다. 해당 프로젝트에서 병렬로 여러 스프린트를 활성 상태로 유지할 수 있도록 이 설정을 변경할 수 있습니다. heading: 활성 스프린트 수 diff --git a/modules/backlogs/config/locales/crowdin/li.yml b/modules/backlogs/config/locales/crowdin/li.yml index 8b1b6205ec01..fb7195604179 100644 --- a/modules/backlogs/config/locales/crowdin/li.yml +++ b/modules/backlogs/config/locales/crowdin/li.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ li: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint deile statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ li: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ li: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ li: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Nog 1 item weergaeve + one: Show %{count} more item other: Show %{count} more items title: Posvak in index_subheader_component: @@ -184,6 +194,8 @@ li: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ li: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} rapport" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Aafgeslaote + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: Bekiek alles + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ li: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ li: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story punte - story_points_ideal: Story punte (ideaal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ li: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Maak sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ li: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: Gen + story_points: + caption: The cards and charts will display story points. + label: Story punte + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ li: label: Subprojekte sprint_sharing: Deil sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/lt.yml b/modules/backlogs/config/locales/crowdin/lt.yml index 62fe1fa0fc54..92735cdbab05 100644 --- a/modules/backlogs/config/locales/crowdin/lt.yml +++ b/modules/backlogs/config/locales/crowdin/lt.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ lt: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ lt: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. many: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. @@ -142,9 +143,18 @@ lt: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -167,7 +177,7 @@ lt: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items many: Show %{count} more items other: Show %{count} more items @@ -196,6 +206,8 @@ lt: remaining_hours: Liko darbo sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -218,9 +230,39 @@ lt: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + many: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ lt: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -263,14 +304,25 @@ lt: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -300,9 +352,13 @@ lt: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + many: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -321,6 +377,18 @@ lt: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ lt: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/lv.yml b/modules/backlogs/config/locales/crowdin/lv.yml index aed122784af3..4fa13e906c41 100644 --- a/modules/backlogs/config/locales/crowdin/lv.yml +++ b/modules/backlogs/config/locales/crowdin/lv.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ lv: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -73,7 +74,7 @@ lv: format: "%{message}" unfinished_work_packages: zero: There are %{count} work packages that were not completed in this sprint. - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -138,9 +139,18 @@ lv: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -164,7 +174,7 @@ lv: label_actions: Inbox actions show_more: zero: Show %{count} more items - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -190,6 +200,8 @@ lv: remaining_hours: Atlikušie darbi sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -212,9 +224,38 @@ lv: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + zero: "%{percentage}% (%{resolved} of %{total} work packages)" + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -245,7 +286,6 @@ lv: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -256,14 +296,25 @@ lv: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -293,9 +344,12 @@ lv: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + zero: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -314,6 +368,18 @@ lv: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -334,6 +400,9 @@ lv: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/mn.yml b/modules/backlogs/config/locales/crowdin/mn.yml index c37b8176866d..7c2df815bbe5 100644 --- a/modules/backlogs/config/locales/crowdin/mn.yml +++ b/modules/backlogs/config/locales/crowdin/mn.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ mn: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ mn: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ mn: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ mn: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ mn: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ mn: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ mn: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ mn: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ mn: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ mn: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ mn: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ms.yml b/modules/backlogs/config/locales/crowdin/ms.yml index ea6fcca646eb..a25c4ad248ff 100644 --- a/modules/backlogs/config/locales/crowdin/ms.yml +++ b/modules/backlogs/config/locales/crowdin/ms.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ms: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -130,9 +131,18 @@ ms: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -178,6 +188,8 @@ ms: remaining_hours: Kerja yang berbaki sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -200,9 +212,36 @@ ms: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ ms: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -242,14 +280,25 @@ ms: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -279,9 +328,8 @@ ms: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -300,6 +348,18 @@ ms: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ ms: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ne.yml b/modules/backlogs/config/locales/crowdin/ne.yml index 0e6f1c77e6cc..47393d1318f5 100644 --- a/modules/backlogs/config/locales/crowdin/ne.yml +++ b/modules/backlogs/config/locales/crowdin/ne.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ne: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ ne: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ ne: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ ne: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ ne: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ ne: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ ne: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ ne: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ ne: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ ne: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ ne: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/nl.yml b/modules/backlogs/config/locales/crowdin/nl.yml index d9b8e3746282..dc9f4599f1e2 100644 --- a/modules/backlogs/config/locales/crowdin/nl.yml +++ b/modules/backlogs/config/locales/crowdin/nl.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ nl: project: allow_multiple_active_sprints: Meerdere actieve sprints toestaan backlog_excluded_types: Uitgesloten werkpakket types + estimation_unit: Unit sprint_sharing: Sprint delen statuses_considered_closed: Statussen die als gesloten worden beschouwd sprint: @@ -72,7 +73,7 @@ nl: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is niet actief en kan dus niet worden gesloten. @@ -134,9 +135,18 @@ nl: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Voorraadbakje verwijderen? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: Geen burndown data beschikbaar + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,8 +169,8 @@ nl: drop_zone_label: Drop here to add this item label_actions: Acties in postvak in show_more: - one: Nog 1 item weergeven - other: Nog %{count} items weergeven + one: Show %{count} more item + other: Show %{count} more items title: Postvak in index_subheader_component: label_search_by_subject: Search work packages by subject @@ -184,6 +194,8 @@ nl: remaining_hours: Resterend werk sharing: Sprint delen show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ nl: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Rapport title: "%{sprint} rapport" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Voltooid + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ nl: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Verplaats naar positie move_to_backlog_bucket: Verplaats naar voorraadbakje @@ -249,14 +288,25 @@ nl: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story punten - story_points_ideal: Story punten (ideaal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ nl: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: De sprint kan niet gestart worden. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Maak sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ nl: backlog_buckets: Werkvoorraad bakje sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ nl: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/no.yml b/modules/backlogs/config/locales/crowdin/no.yml index fd92f82dbb01..f574c855f3b8 100644 --- a/modules/backlogs/config/locales/crowdin/no.yml +++ b/modules/backlogs/config/locales/crowdin/no.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ remaining_hours: Gjenstående arbeid sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/pl.yml b/modules/backlogs/config/locales/crowdin/pl.yml index daebc88abfce..57b142e0d478 100644 --- a/modules/backlogs/config/locales/crowdin/pl.yml +++ b/modules/backlogs/config/locales/crowdin/pl.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ pl: project: allow_multiple_active_sprints: Zezwalaj na wiele aktywnych sprintów backlog_excluded_types: Wykluczone typy pakietów roboczych + estimation_unit: Unit sprint_sharing: Udostępnianie sprintu statuses_considered_closed: Statusy uznane za zamknięte sprint: @@ -72,10 +73,10 @@ pl: base: format: "%{message}" unfinished_work_packages: - one: Jednego pakietu roboczego nie ukończono w tym sprincie. - few: "%{count} pakietów roboczych nie ukończono w tym sprincie." - many: "%{count} pakietów roboczych nie ukończono w tym sprincie." - other: "%{count} pakietu roboczego nie ukończono w tym sprincie." + one: There is %{count} work package that was not completed in this sprint. + few: There are %{count} work packages that were not completed in this sprint. + many: There are %{count} work packages that were not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: jest nieaktywny, więc nie można go zamknąć. sprint_goal: @@ -142,9 +143,18 @@ pl: details: Kategoria backlogu „%{name}” zostanie usunięta, a wszystkie pakiety robocze zostaną przeniesione do skrzynki odbiorczej backlogu. Nie zostanie usunięty żaden pakiet roboczy. title: Usunąć kategorię backlogu? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Ustaw datę rozpoczęcia i zakończenia sprintu, aby wygenerować wykres spalania. blankslate_title: Brak dostępnych danych spalania + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Wybierz typy pakietów roboczych do ukrycia w backlogu. Elementy wybranych typów nie pojawią się automatycznie w backlogu, dzięki czemu bcklog skupiać się będzie się na pracy, która ma znaczenie dla Twojego zespołu. Na przykład typy takie jak Wydarzenia lub Kamienie milowe, zarządzane na wyższym poziomie, mogą być ukryte w celu utrzymania koncentracji backlogu na pozycjach umożliwiających działanie. ' @@ -167,10 +177,10 @@ pl: drop_zone_label: Aby dodać ten element, upuść go tutaj label_actions: Działania skrzynki odbiorczej show_more: - one: Pokaż jeszcze 1 element - few: Pokaż jeszcze %{count} elementy - many: Pokaż jeszcze %{count} elementów - other: Pokaż jeszcze %{count} elementu + one: Show %{count} more item + few: Show %{count} more items + many: Show %{count} more items + other: Show %{count} more items title: Skrzynka odbiorcza index_subheader_component: label_search_by_subject: Wyszukaj pakiety robocze według tematu @@ -196,6 +206,8 @@ pl: remaining_hours: Pozostała praca sharing: Udostępnianie sprintu show_burndown_chart: Wykres spalania (burndown) + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Pakiety robocze w ramach sprintu sprint_component: action_menu: add_existing_work_package: Dodaj istniejący pakiet roboczy @@ -218,9 +230,39 @@ pl: shared_sprint_info_banner: To jest udostępniony sprint. Wprowadzone zmiany zostaną uwzględnione we wszystkich projektach, w których jest on używany. shared_sprint_warning_banner: Jest to udostępniony sprint. Nie masz uprawnień niezbędnych do jego edycji. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Raport title: Raport dotyczący %{sprint} + widgets: + work_package_graph: + title: Wykres pakietów roboczych + work_package_overview: + blankslate: + description: Ustaw datę rozpoczęcia i zakończenia sprintu, aby wygenerować przegląd pakietów roboczych. + heading: Brak dostępnych danych sprintu + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Zmiana zakresu + story_points_change: "+%{added} / -%{removed} pkt. historii" + completed: + heading: Ukończone + initially_planned: + heading: Pierwotnie planowano + unfinished: + heading: Niedokończone + breakdown_block: + blocks: + show_all: Wyświetl wszystkie + closed_work_packages: Zamknięte pakiety robocze + resolved_summary: + one: "%{percentage}% (Pakiet roboczy %{resolved} z %{total})" + few: "%{percentage}% (%{resolved} z %{total} pakietów roboczych)" + many: "%{percentage}% (%{resolved} z %{total} pakietów roboczych)" + other: "%{percentage}% (%{resolved} z %{total} pakietu roboczego)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ pl: header_backlogs: Moduł backlogów work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Skopiuj adres URL do schowka copy_work_package_id: Skopiuj identyfikator pakietu roboczego move_menu: Przenieś do pozycji move_to_backlog_bucket: Przenieś do kategorii backlogu @@ -263,14 +304,25 @@ pl: add_existing_dialog: invalid_target: Cel, do którego próbujesz dodać, jest nieprawidłowy. target_not_found: Nie znaleziono sprint lub backlogu, do którego próbujesz dodać. + batch_update_service: + mixed_projects: Wszystkie pakiety robocze wsadu muszą należeć do tego samego projektu. + stale_batch: Podczas przygotowań do przeniesienia nastąpiła zmiana co najmniej jednego pakietu roboczego. Sprawdź bieżące pozycje i spróbuj ponownie. + stale_predecessor: Pakiet roboczy do wstawienia po przeniesieniu w inne miejsce. Sprawdź bieżące pozycje i spróbuj ponownie. + unavailable_target: Lista miejsc docelowych nie jest już dostępna. Załaduj ponownie stronę i ponów próbę. + unexpected_failure: Nie udało się przenieść pakietów roboczych. Spróbuj ponownie. move: moved_announcement: "%{label} przeniesiono do %{list}, pozycja %{position} z %{total}" + move_collection: + invalid_ids: Lista pakietów roboczych do przeniesienia jest nieprawidłowa. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Jednorazowo można przenieść nie więcej pakietów roboczych niż %{max}. + work_packages_not_found: W tym projekcie nie udało się znaleźć co najmniej jednego pakietu roboczego. update_service: invalid_target_type: 'Atrybut list_type musi mieć jedną z następujących wartości: backlog_bucket z list_id, sprint z list_id lub inbox bez list_id.' missing_target: Atrybut list_type lub list_id muszą być obecne. - burndown: - story_points: Punkty historii - story_points_ideal: Punkty historii (idealne) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Wiele aktywnych sprintów @@ -300,9 +352,13 @@ pl: notice_unsuccessful_finish_with_reason: 'Nie można ukończyć sprintu: %{reason}' notice_unsuccessful_start: Nie można rozpocząć sprintu. notice_unsuccessful_start_with_reason: 'Nie można rozpocząć sprintu: %{reason}' - notice_work_package_invisible_after_move: 'Pakiet roboczy został przeniesiony do %{backlog}, ale nie jest widoczny, ponieważ jego typ lub status są wykluczone z backlogu. + notice_work_package_invisible_after_move: + one: 'Pakiet roboczy został przeniesiony do %{backlog}, ale nie jest widoczny, ponieważ jego typ lub status są wykluczone z backlogu. - ' + ' + few: "%{count} pakiety robocze zostały przeniesione do %{backlog}, ale nie są widoczne, ponieważ ich typ lub status są wykluczone z backlogu.\n" + many: "%{count} pakietów roboczych zostało przeniesionych do %{backlog}, ale nie są widoczne, ponieważ ich typ lub status są wykluczone z backlogu.\n" + other: "%{count} pakietu roboczego zostało przeniesione do %{backlog}, ale nie jest widoczne, ponieważ ich typ lub status są wykluczone z backlogu.\n" permission_create_sprints: Utwórz sprinty permission_manage_sprint_items: Zarządzaj elementami sprintu permission_select_backlog_types_and_statuses: Wybierz typy i statusy backlogu @@ -321,6 +377,18 @@ pl: backlog_buckets: Kategorie backlogu sprints: Sprinty settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ pl: label: Podprojekty sprint_sharing: Udostępnij sprinty backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Domyślnie w ramach jednego projektu może być aktywny tylko jeden sprint. Można to zmienić, aby w ramach tego projektu mogło być aktywnych jednocześnie wiele sprintów. heading: Liczba aktywnych sprintów diff --git a/modules/backlogs/config/locales/crowdin/pt-BR.yml b/modules/backlogs/config/locales/crowdin/pt-BR.yml index 60e215c0bc47..c272b1fc2e82 100644 --- a/modules/backlogs/config/locales/crowdin/pt-BR.yml +++ b/modules/backlogs/config/locales/crowdin/pt-BR.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ pt-BR: project: allow_multiple_active_sprints: Permitir vários sprints ativos backlog_excluded_types: Tipos de pacote de trabalho excluídos + estimation_unit: Unidade sprint_sharing: Compartilhamento de sprints statuses_considered_closed: Estados considerados fechados sprint: @@ -72,8 +73,8 @@ pt-BR: base: format: "%{message}" unfinished_work_packages: - one: Há um pacote de trabalho que não foi concluído nesta sprint. - other: Há %{count} pacotes de trabalho que não foram concluídos nesta sprint. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: não está ativo, portanto não pode ser concluído. sprint_goal: @@ -134,9 +135,18 @@ pt-BR: details: O grupo de backlog “%{name}” será excluído e todos os pacotes de trabalho serão movidos para a caixa de entrada do backlog. Nenhum pacote de trabalho será excluído. title: Excluir grupo de backlog? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Defina a data de início e término da sprint para gerar o gráfico de burndown. blankslate_title: Nenhum dado de burndown disponível + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Unidades excluded_work_package_types_caption: 'Escolha quais tipos de pacote de trabalho ocultar do backlog. Itens dos tipos selecionados não aparecerão automaticamente no backlog, mantendo o foco no trabalho que importa para sua equipe. Por exemplo, tipos como épicos ou marcos, que são gerenciados em um nível mais alto, podem ser ocultados para manter o backlog focado em itens acionáveis. ' @@ -159,8 +169,8 @@ pt-BR: drop_zone_label: Solte aqui para adicionar este item label_actions: Ações da caixa de entrada show_more: - one: Mostrar mais 1 item - other: Mostrar mais %{count} itens + one: Show %{count} more item + other: Show %{count} more items title: Caixa de entrada index_subheader_component: label_search_by_subject: Pesquisar pacotes de trabalho por assunto @@ -184,6 +194,8 @@ pt-BR: remaining_hours: Trabalho restante sharing: Compartilhamento de sprints show_burndown_chart: Gráfico de burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Pacotes de trabalho na sprint sprint_component: action_menu: add_existing_work_package: Adicionar pacote de trabalho existente @@ -206,9 +218,37 @@ pt-BR: shared_sprint_info_banner: Esta é uma sprint compartilhada. As alterações serão refletidas em todos os projetos que a utilizam. shared_sprint_warning_banner: Esta é uma sprint compartilhada. Você não tem as permissões necessárias para editá-la. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Relatório title: "%{sprint} relatório" + widgets: + work_package_graph: + title: Gráfico de pacotes de trabalho + work_package_overview: + blankslate: + description: Defina as datas de início e término da sprint para gerar a visão geral dos pacotes de trabalho. + heading: Nenhum dado de sprint disponível + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Mudança de escopo + story_points_change: "+%{added} / -%{removed} pontos da história" + completed: + heading: Concluída + initially_planned: + heading: Planejado inicialmente + unfinished: + heading: Não finalizado + breakdown_block: + blocks: + show_all: Ver tudo + closed_work_packages: Pacotes de trabalho fechados + resolved_summary: + one: "%{percentage}% (%{resolved} de %{total} pacote de trabalho)" + other: "%{percentage}% (%{resolved} de %{total} pacotes de trabalho)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ pt-BR: header_backlogs: Módulo de backlogs work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copiar URL para a área de transferência copy_work_package_id: Copiar ID do pacotes de trabalho move_menu: Mover de posição move_to_backlog_bucket: Mover para grupo de backlog @@ -249,14 +288,25 @@ pt-BR: add_existing_dialog: invalid_target: O destino ao qual você está tentando adicionar é inválido. target_not_found: O sprint ou backlog ao qual você está tentando adicionar não foi encontrado. + batch_update_service: + mixed_projects: Todos os pacotes de trabalho de um lote devem pertencer ao mesmo projeto. + stale_batch: Pelo menos um pacote de trabalho foi alterado enquanto a movimentação estava sendo preparada. Verifique as posições atuais e tente novamente. + stale_predecessor: O pacote de trabalho após o qual a inserção seria feita foi movido para outro local. Verifique as posições atuais e tente novamente. + unavailable_target: A lista de destino não está mais disponível. Recarregue a página e tente novamente. + unexpected_failure: Os pacotes de trabalho não puderam ser movidos. Tente novamente. move: moved_announcement: "%{label} foi movido para %{list}, na posição %{position} de %{total}" + move_collection: + invalid_ids: A lista de pacotes de trabalho a serem movidos é inválida. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No máximo %{max} pacotes de trabalho podem ser movidos de uma só vez. + work_packages_not_found: Pelo menos um dos pacotes de trabalho não está disponível neste projeto. update_service: invalid_target_type: 'list_type deve ser um dos seguintes: backlog_bucket com um list_id, sprint com um list_id ou inbox sem um list_id.' missing_target: list_type ou list_id deve estar presente. - burndown: - story_points: Pontos de história - story_points_ideal: Pontos de história (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Vários sprints ativos @@ -286,9 +336,11 @@ pt-BR: notice_unsuccessful_finish_with_reason: 'Não foi possível concluir a sprint: %{reason}' notice_unsuccessful_start: Não foi possível iniciar a sprint. notice_unsuccessful_start_with_reason: 'Não foi possível iniciar a sprint: %{reason}' - notice_work_package_invisible_after_move: 'O pacote de trabalho foi movido para %{backlog}, mas não está visível porque seu tipo ou estado está excluído do backlog. + notice_work_package_invisible_after_move: + one: 'O pacote de trabalho foi movido para %{backlog}, mas não está visível porque seu tipo ou estado está excluído do backlog. - ' + ' + other: "%{count} pacotes de trabalho foram movidos para %{backlog}, mas não estão visíveis porque seu tipo ou estado está excluído do backlog.\n" permission_create_sprints: Criar sprints permission_manage_sprint_items: Gerenciar itens da sprint permission_select_backlog_types_and_statuses: Selecionar tipos e estados do backlog @@ -307,6 +359,18 @@ pt-BR: backlog_buckets: Grupos de backlog sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unidade + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: Nenhum + story_points: + caption: The cards and charts will display story points. + label: Pontos de história + time: + caption: The cards and charts will display work time estimates. + label: Tempo trabalho estimado backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ pt-BR: label: Subprojetos sprint_sharing: Compartilhar sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Por padrão, apenas um sprint pode ficar ativo por vez em cada projeto. Você pode alterar essa configuração para permitir que vários sprints fiquem ativos em paralelo neste projeto. heading: Número de sprints ativos diff --git a/modules/backlogs/config/locales/crowdin/pt-PT.yml b/modules/backlogs/config/locales/crowdin/pt-PT.yml index 2158874df37c..e86485cbcde8 100644 --- a/modules/backlogs/config/locales/crowdin/pt-PT.yml +++ b/modules/backlogs/config/locales/crowdin/pt-PT.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ pt-PT: project: allow_multiple_active_sprints: Permitir a existência de vários sprints ativos backlog_excluded_types: Tipos de pacotes de trabalho excluídos + estimation_unit: Unit sprint_sharing: Partilha de sprint statuses_considered_closed: Estados considerados encerrados sprint: @@ -72,8 +73,8 @@ pt-PT: base: format: "%{message}" unfinished_work_packages: - one: Existe um pacote de trabalho que não foi concluído neste sprint. - other: Existem %{count} pacotes de trabalho que não foram concluídos neste sprint. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: não está ativo, portanto não pode ser concluído. sprint_goal: @@ -134,9 +135,18 @@ pt-PT: details: O grupo de backlog '%{name}' será eliminado e todos os pacotes de trabalho serão movidos para a caixa de entrada de backlogs. Nenhum pacote de trabalho será eliminado. title: Eliminar grupo de backlog? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Defina a data de início e de fim do sprint para gerar um gráfico de burndown. blankslate_title: Não há dados de burndown disponíveis + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Escolha os tipos de pacotes de trabalho que pretende ocultar do backlog. Os elementos dos tipos selecionados não aparecerão automaticamente no backlog, mantendo o seu foco no trabalho que é importante para a sua equipa. Por exemplo, tipos como Épicos ou Marcos, que são geridos a um nível superior, podem ser ocultados para manter o backlog focado em elementos passíveis de ação. ' @@ -159,8 +169,8 @@ pt-PT: drop_zone_label: Arraste para aqui para adicionar este elemento label_actions: Ações na caixa de entrada show_more: - one: Mostrar mais 1 elemento - other: Mostrar mais %{count} elementos + one: Show %{count} more item + other: Show %{count} more items title: Caixa de entrada index_subheader_component: label_search_by_subject: Pesquisar pacotes de trabalho por assunto @@ -184,6 +194,8 @@ pt-PT: remaining_hours: Trabalho restante sharing: Partilha de sprint show_burndown_chart: Gráfico de burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Pacotes de trabalho dentro do sprint sprint_component: action_menu: add_existing_work_package: Adicionar um pacote de trabalho existente @@ -206,9 +218,37 @@ pt-PT: shared_sprint_info_banner: É um sprint partilhado. As alterações serão refletidas em todos os projetos que o utilizam. shared_sprint_warning_banner: É um sprint partilhado. Não dispõe das permissões necessárias para o editar. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Relatório title: "%{sprint} relatório" + widgets: + work_package_graph: + title: Gráfico de pacotes de trabalho + work_package_overview: + blankslate: + description: Defina as datas de início e fim do sprint para gerar a síntese do pacote de trabalho. + heading: Não há dados de sprint disponíveis + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Alteração de âmbito + story_points_change: "+%{added} / -%{removed} pontos de história" + completed: + heading: Concluído + initially_planned: + heading: Inicialmente previsto + unfinished: + heading: Inacabado + breakdown_block: + blocks: + show_all: Ver tudo + closed_work_packages: Pacotes de trabalho fechados + resolved_summary: + one: "%{percentage}% (%{resolved} de %{total} pacote de trabalho)" + other: "%{percentage}% (%{resolved} de %{total} pacotes de trabalho)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ pt-PT: header_backlogs: Módulo de backlogs work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copiar URL para a área de transferência copy_work_package_id: Copiar ID do pacote de trabalho move_menu: Mover para a posição move_to_backlog_bucket: Mover para o grupo de backlog @@ -249,14 +288,25 @@ pt-PT: add_existing_dialog: invalid_target: O destino a que está a tentar adicionar não é válido. target_not_found: O sprint ou backlog a que está a tentar adicionar não foi encontrado. + batch_update_service: + mixed_projects: Todos os pacotes de trabalho de um lote devem pertencer ao mesmo projeto. + stale_batch: Pelo menos um pacote de trabalho sofreu alterações enquanto se preparava a mudança. Verifique as posições atuais e tente novamente. + stale_predecessor: O pacote de trabalho a inserir a seguir foi movido para outro local. Verifique as posições atuais e tente novamente. + unavailable_target: A lista de destinos já não está disponível. Recarregue a página e tente novamente. + unexpected_failure: Não foi possível mover os pacotes de trabalho. Tente novamente. move: moved_announcement: "%{label} transferido para %{list}, cargo %{position} de %{total}" + move_collection: + invalid_ids: A lista de pacotes de trabalho a mover não é válida. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Não é possível transferir mais do que %{max} pacotes de trabalho de uma só vez. + work_packages_not_found: Não foi possível encontrar pelo menos um pacote de trabalho neste projeto. update_service: invalid_target_type: 'list_type deve ser um de: backlog_bucket com um list_id, sprint com um list_id, ou caixa de entrada sem um list_id.' missing_target: list_type ou list_id deve estar presente. - burndown: - story_points: Pontos de história - story_points_ideal: Pontos de história (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Vários sprints ativos @@ -286,9 +336,11 @@ pt-PT: notice_unsuccessful_finish_with_reason: 'Não foi possível concluir o sprint: %{reason}' notice_unsuccessful_start: Não foi possível iniciar o sprint. notice_unsuccessful_start_with_reason: 'Não foi possível iniciar o sprint: %{reason}' - notice_work_package_invisible_after_move: 'O pacote de trabalho foi movido para %{backlog}, mas não é visível porque o seu tipo ou estado está excluído do backlog. + notice_work_package_invisible_after_move: + one: 'O pacote de trabalho foi movido para %{backlog}, mas não é visível porque o seu tipo ou estado está excluído do backlog. - ' + ' + other: "%{count} pacotes de trabalho foram movidos para %{backlog}, mas não são visíveis porque o seu tipo ou estado está excluído do backlog.\n" permission_create_sprints: Criar sprints permission_manage_sprint_items: Gerir elementos de sprint permission_select_backlog_types_and_statuses: Selecionar tipos e estados de backlog @@ -307,6 +359,18 @@ pt-PT: backlog_buckets: Grupos de backlog sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ pt-PT: label: Subprojetos sprint_sharing: Partilhar sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: Por padrão, só um sprint pode estar ativo de cada vez por projeto. Pode alterar esta definição para que vários sprints possam estar ativos em paralelo neste projeto. heading: Número de sprints ativos diff --git a/modules/backlogs/config/locales/crowdin/ro.yml b/modules/backlogs/config/locales/crowdin/ro.yml index 619b3d67cb3d..96aa41e622fe 100644 --- a/modules/backlogs/config/locales/crowdin/ro.yml +++ b/modules/backlogs/config/locales/crowdin/ro.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ro: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Tipuri de pachete de lucru excluse + estimation_unit: Unit sprint_sharing: Partajarea Sprint statuses_considered_closed: Statusuri considerate închise sprint: @@ -44,7 +45,7 @@ ro: work_package: backlog_bucket: Backlog bucket backlog_inbox: Backlog inbox - backlogs_work_package_type: Tipul de restante + backlogs_work_package_type: Tip restanță position: Poziție sprint: Sprint story_points: Puncte @@ -72,7 +73,7 @@ ro: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: @@ -138,9 +139,18 @@ ro: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -163,7 +173,7 @@ ro: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items other: Show %{count} more items title: Mesaje @@ -190,6 +200,8 @@ ro: remaining_hours: Muncă rămasă sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -212,9 +224,38 @@ ro: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Raport title: "%{sprint} raport" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -245,7 +286,6 @@ ro: header_backlogs: Modul Backlog-uri work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -256,14 +296,25 @@ ro: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -293,9 +344,12 @@ ro: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -314,6 +368,18 @@ ro: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -334,6 +400,9 @@ ro: label: Subproiecte sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/ru.yml b/modules/backlogs/config/locales/crowdin/ru.yml index 319a639a5113..c8600f3b0b7c 100644 --- a/modules/backlogs/config/locales/crowdin/ru.yml +++ b/modules/backlogs/config/locales/crowdin/ru.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ ru: project: allow_multiple_active_sprints: Разрешить несколько активных спринтов backlog_excluded_types: Исключенные типы пакетов работ + estimation_unit: Unit sprint_sharing: Совместное использование спринта statuses_considered_closed: Статусы, считающиеся закрытыми sprint: @@ -72,10 +73,10 @@ ru: base: format: "%{message}" unfinished_work_packages: - one: Есть один пакет работ, который не был завершен в этом спринте. - few: Есть %{count} пакета работ, которые не были завершены в этом спринте. - many: Есть %{count} пакетов работ, которые не были завершены в этом спринте. - other: Есть %{count} пакетов работ, которые не были завершены в этом спринте. + one: There is %{count} work package that was not completed in this sprint. + few: There are %{count} work packages that were not completed in this sprint. + many: There are %{count} work packages that were not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: не активен, поэтому не может быть закрыт. sprint_goal: @@ -142,9 +143,18 @@ ru: details: Раздел бэклога '%{name}' будет удален и все пакеты работ будут перемещены во входящие бэклога. Пакеты работ не будут удалены. title: Удалить раздел бэклога? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Установите дату начала и окончания спринта для создания диаграммы выгорания. blankslate_title: Нет данных о выгорании + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Выберите типы пакетов работ для скрытия из бэклога. Пакеты работ выбранных типов не будут отображаться в бэклоге автоматически, оставляя при этом основное внимание на работе, имеющей отношение к вашей команде. Например, такие типы, как "Эпик" или "Веха", которым управляется на более высоком уровне, могут быть скрыты, чтобы оставить бэклог сфокусирован на актуальных задачах. ' @@ -167,10 +177,10 @@ ru: drop_zone_label: Перетащите сюда, чтобы добавить этот элемент label_actions: Действия со входящими show_more: - one: Показать еще 1 элемент - few: Показать еще %{count} элементов - many: Показать еще %{count} элементов - other: Показать еще %{count} элементов + one: Show %{count} more item + few: Show %{count} more items + many: Show %{count} more items + other: Show %{count} more items title: Входящие index_subheader_component: label_search_by_subject: Поиск пакетов работ по теме @@ -196,6 +206,8 @@ ru: remaining_hours: Оставшиеся часы sharing: Совместное использование спринта show_burndown_chart: Диаграмма выгорания + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Пакеты работ в рамках спринта sprint_component: action_menu: add_existing_work_package: Добавить существующий пакет работ @@ -218,9 +230,39 @@ ru: shared_sprint_info_banner: Это общий спринт. Изменения будут отражены во всех проектах, использующих его. shared_sprint_warning_banner: Это общий спринт. У вас нет необходимых прав для его редактирования. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Отчет title: Отчёт %{sprint} + widgets: + work_package_graph: + title: График пакетов работ + work_package_overview: + blankslate: + description: Укажите даты начала и окончания спринта, чтобы сформировать обзор пакетов работ. + heading: Данные о спринте отсутствуют + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Изменение охвата + story_points_change: "+%{added} / -%{removed} стори поинтов" + completed: + heading: Завершено + initially_planned: + heading: Первоначально планировалось + unfinished: + heading: Не завершено + breakdown_block: + blocks: + show_all: Показать все + closed_work_packages: Закрытые пакеты работ + resolved_summary: + one: "%{percentage}% (решено %{resolved} из %{total} пакетов работ)" + few: "%{percentage}% (решено %{resolved} из %{total} пакетов работ)" + many: "%{percentage}% (решено %{resolved} из %{total} пакетов работ)" + other: "%{percentage}% (решено %{resolved} из %{total} пакетов работ)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ ru: header_backlogs: Модуль бэклогов work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Скопировать URL в буфер обмена copy_work_package_id: Скопировать ID пакета работ move_menu: Переместить на позицию move_to_backlog_bucket: Перенести в раздел бэклога @@ -263,14 +304,25 @@ ru: add_existing_dialog: invalid_target: Цель которую вы пытаетесь добавить является недействительной. target_not_found: Спринт или бэклог, в который вы пытаетесь внести запись, не найден. + batch_update_service: + mixed_projects: Все пакеты работ партии должны принадлежать одному проекту. + stale_batch: Во время подготовки перемещения по крайней мере один пакет работ изменился. Проверьте текущие позиции и повторите попытку. + stale_predecessor: Пакет работ для вставки был перемещен в другое место. Пожалуйста, проверьте текущие позиции и повторите попытку. + unavailable_target: Целевой список больше не доступен. Пожалуйста, перезагрузите страницу и повторите попытку. + unexpected_failure: Не удалось переместить пакеты работ. Пожалуйста, попробуйте еще раз. move: moved_announcement: "%{label} перемещен в %{list}, на позицию %{position} из %{total}" + move_collection: + invalid_ids: Недопустимый список пакетов работ для перемещения. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Одновременно можно переместить не более %{max} пакетов работ. + work_packages_not_found: Не удалось найти по крайней мере один пакет работ в этом проекте. update_service: invalid_target_type: 'list_type должен быть одним из следующих: backlog_bucket с list_id, sprint с list_id, inbox без list_id.' missing_target: list_type или list_id должны присутствовать. - burndown: - story_points: Стори-поинты - story_points_ideal: Стори-поинты (идеально) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Несколько активных спринтов @@ -300,9 +352,13 @@ ru: notice_unsuccessful_finish_with_reason: 'Спринт не может быть завершён: %{reason}' notice_unsuccessful_start: Спринт не может быть запущен. notice_unsuccessful_start_with_reason: 'Спринт не может быть запущен: %{reason}' - notice_work_package_invisible_after_move: 'Данный пакет работ был перемещен в раздел « %{backlog} », однако он не отображается, поскольку его тип или статус исключены из списка задач. + notice_work_package_invisible_after_move: + one: 'Пакет работ был перемещен в раздел %{backlog}, однако он не отображается, поскольку его тип или статус исключены из бэклога. - ' + ' + few: "%{count} пакета работ было перемещено в раздел %{backlog}, однако они не отображаются, поскольку их тип или статус исключены из бэклога.\n" + many: "%{count} пакетов работ было перемещено в раздел %{backlog}, однако они не отображаются, поскольку их тип или статус исключены из бэклога.\n" + other: "%{count} пакетов работ было перемещено в раздел %{backlog}, однако они не отображаются, поскольку их тип или статус исключены из бэклога.\n" permission_create_sprints: Создание спринтов permission_manage_sprint_items: Управление пунктами спринта permission_select_backlog_types_and_statuses: Выберите типы и статусы бэклога @@ -321,6 +377,18 @@ ru: backlog_buckets: Разделы бэклога sprints: Спринты settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ ru: label: Подпроекты sprint_sharing: Поделиться спринтами backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: По умолчанию в рамках одного проекта одновременно может быть активен только один спринт. Вы можете изменить это, чтобы в данном проекте одновременно могли быть активны несколько спринтов. heading: Количество активных спринтов diff --git a/modules/backlogs/config/locales/crowdin/rw.yml b/modules/backlogs/config/locales/crowdin/rw.yml index d741321bfb57..9268f3cc3e00 100644 --- a/modules/backlogs/config/locales/crowdin/rw.yml +++ b/modules/backlogs/config/locales/crowdin/rw.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ rw: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ rw: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ rw: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ rw: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ rw: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ rw: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ rw: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ rw: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ rw: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ rw: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ rw: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/si.yml b/modules/backlogs/config/locales/crowdin/si.yml index e47ae76e4f63..3415f6d2989f 100644 --- a/modules/backlogs/config/locales/crowdin/si.yml +++ b/modules/backlogs/config/locales/crowdin/si.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ si: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ si: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ si: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ si: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ si: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ si: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ si: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ si: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ si: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ si: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ si: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/sk.yml b/modules/backlogs/config/locales/crowdin/sk.yml index 2ecde4ae22cc..a7cb1b799737 100644 --- a/modules/backlogs/config/locales/crowdin/sk.yml +++ b/modules/backlogs/config/locales/crowdin/sk.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ sk: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ sk: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. many: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. @@ -142,9 +143,18 @@ sk: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -167,7 +177,7 @@ sk: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items many: Show %{count} more items other: Show %{count} more items @@ -196,6 +206,8 @@ sk: remaining_hours: Zostávajúca práca sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -218,9 +230,39 @@ sk: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + many: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ sk: header_backlogs: Modul nevyriešených úloh work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -263,14 +304,25 @@ sk: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -300,9 +352,13 @@ sk: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + many: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -321,6 +377,18 @@ sk: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ sk: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/sl.yml b/modules/backlogs/config/locales/crowdin/sl.yml index 6ccd240fd1c3..8da0212013e4 100644 --- a/modules/backlogs/config/locales/crowdin/sl.yml +++ b/modules/backlogs/config/locales/crowdin/sl.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ sl: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ sl: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. two: There are %{count} work packages that were not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. @@ -142,9 +143,18 @@ sl: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -167,7 +177,7 @@ sl: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item two: Show %{count} more items few: Show %{count} more items other: Show %{count} more items @@ -196,6 +206,8 @@ sl: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -218,9 +230,39 @@ sl: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + two: "%{percentage}% (%{resolved} of %{total} work packages)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ sl: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -263,14 +304,25 @@ sl: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -300,9 +352,13 @@ sl: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + two: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -321,6 +377,18 @@ sl: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ sl: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/sr.yml b/modules/backlogs/config/locales/crowdin/sr.yml index 48405b3f5a8e..eaa5209e60c5 100644 --- a/modules/backlogs/config/locales/crowdin/sr.yml +++ b/modules/backlogs/config/locales/crowdin/sr.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ sr: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ sr: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. few: There are %{count} work packages that were not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: @@ -138,9 +139,18 @@ sr: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -163,7 +173,7 @@ sr: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item few: Show %{count} more items other: Show %{count} more items title: Inbox @@ -190,6 +200,8 @@ sr: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -212,9 +224,38 @@ sr: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + few: "%{percentage}% (%{resolved} of %{total} work packages)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -245,7 +286,6 @@ sr: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -256,14 +296,25 @@ sr: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -293,9 +344,12 @@ sr: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + few: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -314,6 +368,18 @@ sr: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -334,6 +400,9 @@ sr: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/sv.yml b/modules/backlogs/config/locales/crowdin/sv.yml index 158ca55455f8..058cec2650d5 100644 --- a/modules/backlogs/config/locales/crowdin/sv.yml +++ b/modules/backlogs/config/locales/crowdin/sv.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ sv: project: allow_multiple_active_sprints: Tillåt flera aktiva sprintar backlog_excluded_types: Undantagna arbetspaketstyper + estimation_unit: Enhet sprint_sharing: Delning av sprintar statuses_considered_closed: Statusar som betraktas som stängda sprint: @@ -72,8 +73,8 @@ sv: base: format: "%{message}" unfinished_work_packages: - one: Det finns ett arbetspaket som inte slutfördes i den här sprinten. - other: Det finns %{count} arbetspaket som inte slutfördes i den här sprinten. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: är inte aktiv och kan därför inte stängas. sprint_goal: @@ -134,9 +135,18 @@ sv: details: Backlogggruppen ”%{name}” tas bort och alla arbetspaket flyttas till backloggens inkorg. Inget arbetspaket tas bort. title: Ta bort backlogggruppen? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Ange start- och slutdatum för sprinten för att skapa ett burndown-diagram. blankslate_title: Inga burndown-data tillgängliga + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Enheter excluded_work_package_types_caption: 'Välj vilka arbetspaketstyper som ska döljas från backloggen. Objekt av de valda typerna visas inte automatiskt i backloggen, så att den kan fokusera på det arbete som är relevant för teamet. Till exempel kan typer som epics eller milstolpar, som hanteras på en högre nivå, döljas så att backloggen fokuserar på åtgärdbara objekt. ' @@ -159,8 +169,8 @@ sv: drop_zone_label: Släpp här för att lägga till objektet label_actions: Inkorgsåtgärder show_more: - one: Visa 1 objekt till - other: Visa %{count} objekt till + one: Show %{count} more item + other: Show %{count} more items title: Inkorg index_subheader_component: label_search_by_subject: Sök arbetspaket efter ämne @@ -184,6 +194,8 @@ sv: remaining_hours: Återstående arbete sharing: Delning av sprintar show_burndown_chart: Burndown-diagram + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Arbetspaket i sprinten sprint_component: action_menu: add_existing_work_package: Lägg till befintligt arbetspaket @@ -206,9 +218,37 @@ sv: shared_sprint_info_banner: Det här är en delad sprint. Ändringar återspeglas i alla projekt som använder den. shared_sprint_warning_banner: Det här är en delad sprint. Du har inte de behörigheter som krävs för att redigera den. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Rapport title: Rapport för %{sprint} + widgets: + work_package_graph: + title: Graf för arbetspaket + work_package_overview: + blankslate: + description: Ange start- och slutdatum för sprinten för att skapa översikten över arbetspaket. + heading: Inga sprintdata tillgängliga + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Omfattningsändring + story_points_change: "+%{added} / -%{removed} berättelsepoäng" + completed: + heading: Slutförd + initially_planned: + heading: Ursprungligen planerat + unfinished: + heading: Inte slutfört + breakdown_block: + blocks: + show_all: Visa alla + closed_work_packages: Stängda arbetspaket + resolved_summary: + one: "%{percentage}% (%{resolved} av %{total} arbetspaket)" + other: "%{percentage}% (%{resolved} av %{total} arbetspaket)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ sv: header_backlogs: Backlogmodul work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Kopiera URL till urklipp copy_work_package_id: Kopiera arbetspakets-ID move_menu: Flytta till position move_to_backlog_bucket: Flytta till backlogggrupp @@ -249,14 +288,25 @@ sv: add_existing_dialog: invalid_target: Målet du försöker lägga till i är ogiltigt. target_not_found: Sprinten eller backloggen som du försöker lägga till i hittades inte. + batch_update_service: + mixed_projects: Alla arbetspaket i en grupp som flyttas samtidigt måste tillhöra samma projekt. + stale_batch: Minst ett arbetspaket ändrades medan flytten förbereddes. Kontrollera de aktuella positionerna och försök igen. + stale_predecessor: Arbetspaketet som de andra skulle infogas efter har flyttats någon annanstans. Kontrollera de aktuella positionerna och försök igen. + unavailable_target: Mållistan är inte längre tillgänglig. Läs in sidan på nytt och försök igen. + unexpected_failure: Det gick inte att flytta arbetspaketen. Försök igen. move: moved_announcement: "%{label} flyttades till %{list}, position %{position} av %{total}" + move_collection: + invalid_ids: Listan över arbetspaket som ska flyttas är ogiltig. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Högst %{max} arbetspaket kan flyttas samtidigt. + work_packages_not_found: Minst ett arbetspaket kunde inte hittas i det här projektet. update_service: invalid_target_type: 'list_type måste vara något av följande: backlog_bucket med ett list_id, sprint med ett list_id eller inbox utan ett list_id.' missing_target: list_type eller list_id måste anges. - burndown: - story_points: Berättelsepoäng - story_points_ideal: Berättelsepoäng (idealiskt) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Flera aktiva sprintar @@ -286,9 +336,11 @@ sv: notice_unsuccessful_finish_with_reason: 'Sprinten kunde inte slutföras: %{reason}' notice_unsuccessful_start: Sprinten kunde inte startas. notice_unsuccessful_start_with_reason: 'Sprinten kunde inte startas: %{reason}' - notice_work_package_invisible_after_move: 'Arbetspaketet flyttades till %{backlog} men är inte synligt eftersom dess typ eller status är undantagen från backloggen. + notice_work_package_invisible_after_move: + one: 'Arbetspaketet flyttades till %{backlog} men är inte synligt eftersom dess typ eller status är undantagen från backloggen. - ' + ' + other: "%{count} arbetspaket flyttades till %{backlog} men visas inte eftersom deras typ eller status är undantagen från backloggen.\n" permission_create_sprints: Skapa sprintar permission_manage_sprint_items: Hantera sprintobjekt permission_select_backlog_types_and_statuses: Välj backloggtyper och statusar @@ -307,6 +359,18 @@ sv: backlog_buckets: Backlogggrupper sprints: Sprintar settings: + backlog_estimation_unit: + estimation_unit: Enhet + options: + none: + caption: Antalet arbetspaket används som standardenhet i diagram. Vissa diagram i sprintrapporter visas inte. + label: Ingen + story_points: + caption: Korten och diagrammen visar berättelsepoäng. + label: Berättelsepoäng + time: + caption: Korten och diagrammen visar uppskattad arbetstid. + label: Uppskattad arbetstid backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ sv: label: Delprojekt sprint_sharing: Dela sprintar backlogs: + estimation_unit_form_component: + description: Välj en standardenhet för arbetsinsats, arbetstakt och kapacitet som passar det agila teamets arbetssätt. Enheten visas i backloggen och i sprintrapporterna. + heading: Standardenhet för arbetstakt, arbetsinsats och kapacitet multiple_active_sprints: description: Som standard kan endast en sprint åt gången vara aktiv per projekt. Du kan ändra detta så att flera sprintar kan vara aktiva parallellt i det här projektet. heading: Antal aktiva sprintar diff --git a/modules/backlogs/config/locales/crowdin/th.yml b/modules/backlogs/config/locales/crowdin/th.yml index 0d890b5087b6..c797a7d7ab89 100644 --- a/modules/backlogs/config/locales/crowdin/th.yml +++ b/modules/backlogs/config/locales/crowdin/th.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ th: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: การแชร์สปรินต์ statuses_considered_closed: Statuses considered closed sprint: @@ -130,9 +131,18 @@ th: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -178,6 +188,8 @@ th: remaining_hours: งานที่เหลือ sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -200,9 +212,36 @@ th: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ th: header_backlogs: โมดูลรายการงานคงค้าง work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -242,14 +280,25 @@ th: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: คะแนนสตอรี่ - story_points_ideal: คะแนนสตอรี่ (ตามอุดมคติ) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -279,9 +328,8 @@ th: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: สร้างสปรินท์ permission_manage_sprint_items: จัดการรายการในสปรินท์ permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -300,6 +348,18 @@ th: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ th: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/tr.yml b/modules/backlogs/config/locales/crowdin/tr.yml index 058f5e90cce2..07f5b3b5ec75 100644 --- a/modules/backlogs/config/locales/crowdin/tr.yml +++ b/modules/backlogs/config/locales/crowdin/tr.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ tr: project: allow_multiple_active_sprints: Birden fazla aktif sprint'e izin ver backlog_excluded_types: Hariç tutulan iş paketi türleri + estimation_unit: Unit sprint_sharing: Koşu paylaşımı statuses_considered_closed: Kapatılmış sayılan durumlar sprint: @@ -72,8 +73,8 @@ tr: base: format: "%{message}" unfinished_work_packages: - one: Bu sprintte tamamlanmayan bir iş paketi var. - other: Bu sprint bünyesinde tamamlanmamış %{count} adet iş paketi bulunmaktadır. + one: There is %{count} work package that was not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: etkin değil, bu yüzden kapatılamaz. sprint_goal: @@ -134,9 +135,18 @@ tr: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Bir burndown grafiği oluşturmak için sprint için başlangıç ve bitiş tarihi belirleyin. blankslate_title: Burndown verisi yok + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,8 +169,8 @@ tr: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: 1 ürün daha göster - other: "%{count} ürün daha göster" + one: Show %{count} more item + other: Show %{count} more items title: Gelen kutusu index_subheader_component: label_search_by_subject: Search work packages by subject @@ -184,6 +194,8 @@ tr: remaining_hours: Kalan çalışma sharing: Sprint sharing show_burndown_chart: Burndown grafiği + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ tr: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: Tümünü görüntüle + closed_work_packages: Kapatılmış iş paketleri + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ tr: header_backlogs: Birikmiş İşler Modülü work_package_card_menu_component: action_menu: - copy_url_to_clipboard: URL'yi panoya kopyala copy_work_package_id: İş paketi kimliğini kopyala move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ tr: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Hikaye noktaları - story_points_ideal: Hikaye noktaları (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ tr: notice_unsuccessful_finish_with_reason: 'Sprint tamamlanamadı: %{reason}' notice_unsuccessful_start: Sprint başlatılamadı. notice_unsuccessful_start_with_reason: 'Sprint başlatılamadı: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Sprintler oluşturma permission_manage_sprint_items: Sprint öğelerini yönetme permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ tr: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ tr: label: Alt Projeler sprint_sharing: Sprintleri paylaş backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/uk.yml b/modules/backlogs/config/locales/crowdin/uk.yml index 9e9b844b59a9..b0b66eecaf09 100644 --- a/modules/backlogs/config/locales/crowdin/uk.yml +++ b/modules/backlogs/config/locales/crowdin/uk.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ uk: project: allow_multiple_active_sprints: Дозволити кілька активних спринтів backlog_excluded_types: Виключені типи пакетів робіт + estimation_unit: Unit sprint_sharing: Спільний доступ до спринту statuses_considered_closed: Статуси, що вважаються закритими sprint: @@ -72,10 +73,10 @@ uk: base: format: "%{message}" unfinished_work_packages: - one: У цьому спринті не завершено один пакет робіт. - few: У цьому спринті не завершено %{count} пакети робіт. - many: У цьому спринті не завершено %{count} пакетів робіт. - other: У цьому спринті не завершено %{count} пакета робіт. + one: There is %{count} work package that was not completed in this sprint. + few: There are %{count} work packages that were not completed in this sprint. + many: There are %{count} work packages that were not completed in this sprint. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: не є активним, тому його не можна закрити. sprint_goal: @@ -142,9 +143,18 @@ uk: details: Сегмент беклогу «%{name}» буде видалено, а всі пакети робіт — переміщено у вхідні завдання беклогу. Пакети робіт не видаляться. title: Видалити сегмент беклогу? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Визначте дату початку й завершення спринту, щоб згенерувати діаграму згорання завдань. blankslate_title: Немає даних про згорання завдань + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Виберіть, які типи пакетів робіт слід приховати в беклогу. Елементи вибраних типів не відображатимуться в беклогу автоматично, що дає змогу зосередитися на завданнях своєї команди. Наприклад, ви можете приховати такі типи, як епіки чи віхи, якими керують на вищому рівні, щоб переглядати лише ті завдання, з якими можна працювати. ' @@ -167,10 +177,10 @@ uk: drop_zone_label: Щоб додати елемент, перетягніть його сюди label_actions: Дії з вхідними show_more: - one: Показати ще 1 елемент - few: Показати ще %{count} елементи - many: Показати ще %{count} елементів - other: Показати ще %{count} елемента + one: Show %{count} more item + few: Show %{count} more items + many: Show %{count} more items + other: Show %{count} more items title: Вхідні index_subheader_component: label_search_by_subject: Пошук пакетів робіт за темою @@ -196,6 +206,8 @@ uk: remaining_hours: Залишок роботи sharing: Спільний доступ до спринту show_burndown_chart: Діаграма згорання завдань + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Пакети робіт у межах спринту sprint_component: action_menu: add_existing_work_package: Додати наявний пакет робіт @@ -218,9 +230,39 @@ uk: shared_sprint_info_banner: Це спільний спринт. Внесені зміни відображатимуться в усіх проєктах, які його використовують. shared_sprint_warning_banner: Це спільний спринт. У вас немає необхідних прав для його редагування. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Звіт title: Звіт про %{sprint} + widgets: + work_package_graph: + title: Графік пакетів робіт + work_package_overview: + blankslate: + description: Визначте дату початку й завершення спринту, щоб згенерувати огляд пакетів робіт. + heading: Немає даних про спринт + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Зміна обсягу + story_points_change: "+%{added} / -%{removed} сторі-пойнтів" + completed: + heading: Завершено + initially_planned: + heading: Спочатку заплановано + unfinished: + heading: Незавершено + breakdown_block: + blocks: + show_all: Переглянути всі + closed_work_packages: Закриті пакети робіт + resolved_summary: + one: "%{percentage}% (вирішено %{resolved} у межах %{total} пакету робіт)" + few: "%{percentage}% (вирішено %{resolved} у межах %{total} пакетів робіт)" + many: "%{percentage}% (вирішено %{resolved} у межах %{total} пакетів робіт)" + other: "%{percentage}% (вирішено %{resolved} у межах %{total} пакета робіт)" sprints: row_component: action_menu: @@ -252,7 +294,6 @@ uk: header_backlogs: Модуль невиконаних завдань work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Скопіювати URL-адресу в буфер обміну copy_work_package_id: Скопіювати ідентифікатор пакета робіт move_menu: Перемістити в позицію move_to_backlog_bucket: Перемістити в сегмент беклогу @@ -263,14 +304,25 @@ uk: add_existing_dialog: invalid_target: Ціль, яку ви намагаєтеся додати, недійсна. target_not_found: Спринт або беклог, у який ви намагаєтеся додати елемент, не знайдено. + batch_update_service: + mixed_projects: Усі пакети робіт партії повинні належати до одного й того самого проєкту. + stale_batch: Під час підготовки до переміщення змінився принаймні один пакет робіт. Перевірте поточні позиції та спробуйте ще раз. + stale_predecessor: Пакет робіт, який слід вставити після цього, було переміщено в інше місце. Перевірте поточні позиції та спробуйте ще раз. + unavailable_target: Список призначення більше недоступний. Перезавантажте сторінку та спробуйте ще раз. + unexpected_failure: Пакети робіт вдалося перемістити. Спробуйте ще раз. move: moved_announcement: "%{label}: переміщено в список «%{list}» на позицію %{position} з %{total}" + move_collection: + invalid_ids: Список пакетів робіт для переміщення є неприпустимим. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: Максимальна кількість пакетів робіт для одночасного переміщення — %{max}. + work_packages_not_found: У цьому проєкті не вдалося знайти принаймні один пакет робіт. update_service: invalid_target_type: 'list_type має бути одним із таких значень: backlog_bucket із list_id, sprint із list_id або inbox без list_id.' missing_target: Має бути вказано list_type або list_id. - burndown: - story_points: Сторі-поінти - story_points_ideal: Сторі-поінти (ідеально) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Кілька активних спринтів @@ -300,9 +352,13 @@ uk: notice_unsuccessful_finish_with_reason: 'Спринт не вдалося завершити: %{reason}' notice_unsuccessful_start: Спринт не вдалося розпочати. notice_unsuccessful_start_with_reason: 'Спринт не вдалося розпочати: %{reason}' - notice_work_package_invisible_after_move: 'Пакет робіт було переміщено в беклог (%{backlog}), але він там не відображається, оскільки його тип або статус виключено з беклогу. + notice_work_package_invisible_after_move: + one: 'Пакет робіт було переміщено в беклог (%{backlog}), але він там не відображається, оскільки його тип або статус виключено з беклогу. - ' + ' + few: "%{count} пакети робіт було переміщено в беклог (%{backlog}), але він там не відображається, оскільки його тип або статус виключено з беклогу.\n" + many: "%{count} пакетів робіт було переміщено в беклог (%{backlog}), але він там не відображається, оскільки його тип або статус виключено з беклогу.\n" + other: "%{count} пакета робіт було переміщено в беклог (%{backlog}), але він там не відображається, оскільки його тип або статус виключено з беклогу.\n" permission_create_sprints: Створення спринтів permission_manage_sprint_items: Керування елементами спринтів permission_select_backlog_types_and_statuses: Вибір типів і статусів беклогу @@ -321,6 +377,18 @@ uk: backlog_buckets: Сегменти беклогу sprints: Спринти settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -341,6 +409,9 @@ uk: label: Підпроєкти sprint_sharing: Надання доступу до спринтів backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: За замовчуванням у кожному проєкті може бути активний лише один спринт. Це можна змінити, щоб у цьому проєкті одночасно могли бути активними кілька спринтів. heading: Кількість активних спринтів diff --git a/modules/backlogs/config/locales/crowdin/uz.yml b/modules/backlogs/config/locales/crowdin/uz.yml index a68ffb21bd9e..25557abe13ea 100644 --- a/modules/backlogs/config/locales/crowdin/uz.yml +++ b/modules/backlogs/config/locales/crowdin/uz.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ uz: project: allow_multiple_active_sprints: Allow multiple active sprints backlog_excluded_types: Excluded work package types + estimation_unit: Unit sprint_sharing: Sprint sharing statuses_considered_closed: Statuses considered closed sprint: @@ -72,7 +73,7 @@ uz: base: format: "%{message}" unfinished_work_packages: - one: There is one work package that was not completed in this sprint. + one: There is %{count} work package that was not completed in this sprint. other: There are %{count} work packages that were not completed in this sprint. status: not_active: is not active so it cannot be closed. @@ -134,9 +135,18 @@ uz: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Delete backlog bucket? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Set start and end date for the sprint to generate a burndown chart. blankslate_title: No burndown data available + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Choose which work package types to hide from the backlog. Items of the selected types will not appear in the backlog automatically, keeping it focused on the work that matters to your team. For example, types like Epics or Milestones that are managed at a higher level can be hidden to keep the backlog focused on actionable items. ' @@ -159,7 +169,7 @@ uz: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - one: Show 1 more item + one: Show %{count} more item other: Show %{count} more items title: Inbox index_subheader_component: @@ -184,6 +194,8 @@ uz: remaining_hours: Remaining work sharing: Sprint sharing show_burndown_chart: Burndown chart + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -206,9 +218,37 @@ uz: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + one: "%{percentage}% (%{resolved} of %{total} work package)" + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -238,7 +278,6 @@ uz: header_backlogs: Backlogs module work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy work package ID move_menu: Move to position move_to_backlog_bucket: Move to backlog bucket @@ -249,14 +288,25 @@ uz: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -286,9 +336,11 @@ uz: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. + notice_work_package_invisible_after_move: + one: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - ' + ' + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -307,6 +359,18 @@ uz: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -327,6 +391,9 @@ uz: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/vi.yml b/modules/backlogs/config/locales/crowdin/vi.yml index b8d9b5c2fa6b..9e4330efc13c 100644 --- a/modules/backlogs/config/locales/crowdin/vi.yml +++ b/modules/backlogs/config/locales/crowdin/vi.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ vi: project: allow_multiple_active_sprints: Cho phép nhiều print hoạt động đồng thời backlog_excluded_types: Các loại gói công việc bị loại trừ khỏi Backlog + estimation_unit: Đơn vị sprint_sharing: Chia sẻ Sprint statuses_considered_closed: Các trạng thái được xem là đã đóng sprint: @@ -72,7 +73,7 @@ vi: base: format: "%{message}" unfinished_work_packages: - other: Có %{count} gói công việc chưa hoàn thành trong Sprint này. + other: There are %{count} work packages that were not completed in this sprint. status: not_active: không hoạt động nên không thể đóng. sprint_goal: @@ -132,9 +133,18 @@ vi: details: The backlog bucket '%{name}' will be deleted and all work packages will be moved to the backlog inbox. No work package will be deleted. title: Xóa nhóm Backlog (bucket)? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: Thiết lập ngày bắt đầu và kết thúc cho Sprint để tạo biểu đồ burndown. blankslate_title: Không có dữ liệu biểu đồ burndown + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: 'Chọn các loại gói công việc muốn ẩn khỏi Backlog. Các mục thuộc loại được chọn sẽ không tự động xuất hiện trong Backlog, giúp đội ngũ tập trung vào những phần việc quan trọng hơn. Ví dụ: các loại như Epic hoặc Milestone được quản lý ở cấp cao hơn có thể được ẩn đi để giữ Backlog tập trung vào các hạng mục có thể thực hiện ngay. ' @@ -157,7 +167,7 @@ vi: drop_zone_label: Drop here to add this item label_actions: Inbox actions show_more: - other: Hiển thị thêm %{count} mục + other: Show %{count} more items title: Hộp thư đến index_subheader_component: label_search_by_subject: Search work packages by subject @@ -180,6 +190,8 @@ vi: remaining_hours: Công việc còn lại sharing: Sprint sharing show_burndown_chart: Biểu đồ Burndown + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: Work packages within the sprint sprint_component: action_menu: add_existing_work_package: Add existing work package @@ -202,9 +214,36 @@ vi: shared_sprint_info_banner: This is a shared sprint. Modifications will be reflected in all projects using it. shared_sprint_warning_banner: This is a shared sprint. You do not have the necessary permissions to edit it. sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: Report title: "%{sprint} report" + widgets: + work_package_graph: + title: Work packages graph + work_package_overview: + blankslate: + description: Set start and end date for the sprint to generate the work package overview. + heading: No sprint data available + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: Scope change + story_points_change: "+%{added} / -%{removed} story points" + completed: + heading: Completed + initially_planned: + heading: Initially planned + unfinished: + heading: Unfinished + breakdown_block: + blocks: + show_all: View all + closed_work_packages: Closed work packages + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -233,7 +272,6 @@ vi: header_backlogs: Mô-đun Backlogs work_package_card_menu_component: action_menu: - copy_url_to_clipboard: Copy URL to clipboard copy_work_package_id: Copy gói công việc (work package) ID move_menu: Di chuyển đến vị trí move_to_backlog_bucket: Move to backlog bucket @@ -244,14 +282,25 @@ vi: add_existing_dialog: invalid_target: The target you are trying to add to is invalid. target_not_found: The sprint or backlog you are trying to add to was not found. + batch_update_service: + mixed_projects: All work packages of a batch must belong to the same project. + stale_batch: At least one work package changed while the move was being prepared. Please check the current positions and try again. + stale_predecessor: The work package to insert after has been moved elsewhere. Please check the current positions and try again. + unavailable_target: The destination list is no longer available. Please reload the page and try again. + unexpected_failure: The work packages could not be moved. Please try again. move: moved_announcement: "%{label} moved to %{list}, position %{position} of %{total}" + move_collection: + invalid_ids: The list of work packages to move is invalid. + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: No more than %{max} work packages can be moved at once. + work_packages_not_found: At least one work package could not be found in this project. update_service: invalid_target_type: 'list_type must be one of: backlog_bucket with a list_id, sprint with a list_id, or inbox without a list_id.' missing_target: list_type or list_id must be present. - burndown: - story_points: Story points - story_points_ideal: Story points (ideal) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: Multiple active sprints @@ -281,9 +330,8 @@ vi: notice_unsuccessful_finish_with_reason: 'The sprint could not be completed: %{reason}' notice_unsuccessful_start: The sprint could not be started. notice_unsuccessful_start_with_reason: 'The sprint could not be started: %{reason}' - notice_work_package_invisible_after_move: 'The work package was moved to %{backlog} but is not visible because its type or status is excluded from the backlog. - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: Create sprints permission_manage_sprint_items: Manage sprint items permission_select_backlog_types_and_statuses: Select backlog types and statuses @@ -302,6 +350,18 @@ vi: backlog_buckets: Backlog buckets sprints: Sprints settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -322,6 +382,9 @@ vi: label: Subprojects sprint_sharing: Share sprints backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: By default, only one sprint can be active at a time per project. You can change this so that multiple sprints can be active in parallel in this project. heading: Number of active sprints diff --git a/modules/backlogs/config/locales/crowdin/zh-CN.yml b/modules/backlogs/config/locales/crowdin/zh-CN.yml index 1ee4141c4570..231a336149fe 100644 --- a/modules/backlogs/config/locales/crowdin/zh-CN.yml +++ b/modules/backlogs/config/locales/crowdin/zh-CN.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ zh-CN: project: allow_multiple_active_sprints: 允许多个处于有效状态的冲刺 backlog_excluded_types: 排除的工作包类型 + estimation_unit: Unit sprint_sharing: 冲刺共享 statuses_considered_closed: 被视为已关闭的状态 sprint: @@ -72,7 +73,7 @@ zh-CN: base: format: "%{message}" unfinished_work_packages: - other: 此冲刺中有 %{count} 个未完成的工作包。 + other: There are %{count} work packages that were not completed in this sprint. status: not_active: 未处于有效状态,因此无法关闭。 sprint_goal: @@ -130,9 +131,18 @@ zh-CN: details: 积压工作存储桶“%{name}”将被删除,所有工作包将移至积压工作收件箱。不会删除任何工作包。 title: 是否删除积压工作存储桶? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: 设置冲刺的开始和结束日期,以生成燃尽图。 blankslate_title: 没有可用的燃尽数据 + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: Units excluded_work_package_types_caption: '选择要从积压工作中隐藏的工作包类型。所选类型的项目不会自动出现在积压工作中,从而聚焦于对您团队真正重要的工作。例如,可以隐藏长篇故事或里程碑等在更高级别管理的类型,使积压工作聚焦于可执行的项目。 ' @@ -155,7 +165,7 @@ zh-CN: drop_zone_label: 拖放到此处以添加此条目 label_actions: 收件箱操作 show_more: - other: 显示其他 %{count} 个条目 + other: Show %{count} more items title: 收件箱 index_subheader_component: label_search_by_subject: 按主题搜索工作包 @@ -178,6 +188,8 @@ zh-CN: remaining_hours: 剩余工时 sharing: 冲刺共享 show_burndown_chart: 燃尽图 + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: 冲刺内的工作包 sprint_component: action_menu: add_existing_work_package: 添加现有工作包 @@ -200,9 +212,36 @@ zh-CN: shared_sprint_info_banner: 这是共享冲刺。所做的修改将反映在所有使用该冲刺的项目中。 shared_sprint_warning_banner: 这是共享冲刺。您没有编辑该冲刺的必要权限。 sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: 报告 title: "%{sprint}报告" + widgets: + work_package_graph: + title: 工作包图表 + work_package_overview: + blankslate: + description: 设置冲刺的开始和结束日期,以生成工作包概述。 + heading: 没有可用的冲刺数据 + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: 范围更改 + story_points_change: "+%{added} / -%{removed} 故事点" + completed: + heading: 已完成 + initially_planned: + heading: 已初步规划 + unfinished: + heading: 未完成 + breakdown_block: + blocks: + show_all: 查看全部 + closed_work_packages: 已关闭的工作包 + resolved_summary: + other: "%{percentage}% (%{resolved} of %{total} work packages)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ zh-CN: header_backlogs: 积压工作模块 work_package_card_menu_component: action_menu: - copy_url_to_clipboard: 将 URL 复制到剪贴板 copy_work_package_id: 复制工作包 ID move_menu: 移至指定位置 move_to_backlog_bucket: 移至积压工作存储桶 @@ -242,14 +280,25 @@ zh-CN: add_existing_dialog: invalid_target: 您尝试添加到的目标无效。 target_not_found: 您尝试添加到的冲刺或积压工作未找到。 + batch_update_service: + mixed_projects: 一个批次的所有工作包必须属于同一个项目。 + stale_batch: 在准备移动时,至少有一个工作包发生了变化。请检查当前位置并重试。 + stale_predecessor: 要插入到后方的工作包已移至其他位置。请检查当前位置并重试。 + unavailable_target: 目标列表不再可用。 请重新加载页面并重试。 + unexpected_failure: 无法移动工作包。请重试。 move: moved_announcement: "%{label} 已移至 %{list},位置 %{position},总计 %{total}" + move_collection: + invalid_ids: 要移动的工作包列表无效。 + member_failed: "%{work_package}:%{reason}" + too_many_work_packages: 一次移动的工作包数量不能超过 %{max} 个。 + work_packages_not_found: 至少有一个工作包在此项目中无法找到。 update_service: invalid_target_type: list_type 必须是下列一项:带有 list_id 的 backlog_bucket、带有 list_id 的 sprint,或者不带 list_id 的 inbox。 missing_target: list_type 或 list_id 必须存在。 - burndown: - story_points: 故事点 - story_points_ideal: 故事点(理想) + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: 多个处于有效状态的冲刺 @@ -279,9 +328,8 @@ zh-CN: notice_unsuccessful_finish_with_reason: 无法完成该冲刺:%{reason} notice_unsuccessful_start: 无法开始该冲刺。 notice_unsuccessful_start_with_reason: 无法开始该冲刺:%{reason} - notice_work_package_invisible_after_move: '工作包已移至 %{backlog} ,但不可见,因为其类型或状态已从积压工作中排除。 - - ' + notice_work_package_invisible_after_move: + other: "%{count} work packages were moved to %{backlog} but are not visible because their type or status is excluded from the backlog.\n" permission_create_sprints: 创建冲刺 permission_manage_sprint_items: 管理冲刺条目 permission_select_backlog_types_and_statuses: 选择积压工作类型和状态 @@ -300,6 +348,18 @@ zh-CN: backlog_buckets: 积压工作存储桶 sprints: 冲刺 settings: + backlog_estimation_unit: + estimation_unit: Unit + options: + none: + caption: The number of work packages will be used as the default unit in charts. Some sprint report charts won't be displayed. + label: None + story_points: + caption: The cards and charts will display story points. + label: Story points + time: + caption: The cards and charts will display work time estimates. + label: Work time estimate backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ zh-CN: label: 子项目 sprint_sharing: 共享冲刺 backlogs: + estimation_unit_form_component: + description: Select the default unit of measuring effort, velocity and capacity that matches the workflow of your agile team. They will be shown in the backlog and sprint reports. + heading: Default unit of velocity, effort and capacity multiple_active_sprints: description: 默认情况下,每个项目中一次只能有一个冲刺处于有效状态。您可以更改此设置,使此项目中能够同时有多个冲刺处于有效状态。 heading: 有效冲刺的数量 diff --git a/modules/backlogs/config/locales/crowdin/zh-TW.yml b/modules/backlogs/config/locales/crowdin/zh-TW.yml index 85bdacde2a1d..e1e0005039bb 100644 --- a/modules/backlogs/config/locales/crowdin/zh-TW.yml +++ b/modules/backlogs/config/locales/crowdin/zh-TW.yml @@ -16,7 +16,7 @@ #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. +#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ --- @@ -26,6 +26,7 @@ zh-TW: project: allow_multiple_active_sprints: 允許多個活躍的衝刺 backlog_excluded_types: 不包含的工作包類型 + estimation_unit: 單位 sprint_sharing: Sprint 共用 statuses_considered_closed: 被視為已關閉的狀態 sprint: @@ -72,7 +73,7 @@ zh-TW: base: format: "%{message}" unfinished_work_packages: - other: 本衝刺中尚有 %{count} 個工作包尚未完成。 + other: There are %{count} work packages that were not completed in this sprint. status: not_active: 目前處於非活躍狀態,因此無法關閉。 sprint_goal: @@ -130,9 +131,18 @@ zh-TW: details: 待辦事項桶「%{name}」將被刪除,所有工作包將移至待辦事項收件匣。不會刪除任何工作包。 title: 刪除積壓桶? burndown_chart: + series: + guideline: Guideline + projection: Remaining story points (projection) + remaining: Remaining story points show: blankslate_description: 設定衝刺的開始和結束日期,以產生燃盡圖表。 blankslate_title: 沒有可用的燃盡圖資料 + created_resolved_chart: + show: + blankslate_description: Set start and end date for the sprint to generate a created vs resolved chart. + blankslate_title: No created vs resolved chart data available + estimation_unit: 單位 excluded_work_package_types_caption: '選擇要從待辦清單中隱藏哪些工作包類型。所選類型的項目將不會自動出現在待辦清單中,使待辦清單能專注於對您的團隊至關重要的工作。例如,可將「史詩」或「里程碑」這類在更高層級管理的類型隱藏起來,讓待辦清單專注於可執行的項目。 ' @@ -155,7 +165,7 @@ zh-TW: drop_zone_label: 將此項目拖放至此處以新增 label_actions: 收件匣操作 show_more: - other: 再顯示 %{count} 項 + other: Show %{count} more items title: 收件匣 index_subheader_component: label_search_by_subject: 依主題搜尋工作項目 @@ -178,6 +188,8 @@ zh-TW: remaining_hours: 剩餘工時 sharing: 共用衝刺 show_burndown_chart: 未完成圖 + show_created_resolved_chart: Created vs resolved work packages + show_work_package_overview: 衝刺中的工作包 sprint_component: action_menu: add_existing_work_package: 新增現有的工作套件 @@ -200,9 +212,36 @@ zh-TW: shared_sprint_info_banner: 這是個共用衝刺。所做的修改將會反映在所有使用此衝刺的專案中。 shared_sprint_warning_banner: 這是個共享的衝刺。您沒有編輯它的必要權限。 sprint_reports: + navigation_component: + next: Next + previous: Previous page_header_component: breadcrumb: 報告 title: "%{sprint} 報告" + widgets: + work_package_graph: + title: 工作套件圖表 + work_package_overview: + blankslate: + description: 設定衝刺的開始與結束日期,以產生工作項目概覽。 + heading: 沒有衝刺數據 + blocks: + changed_after_start: + count_change_html: "+%{added} %{divider} -%{removed}" + heading: 範圍變更 + story_points_change: "+%{added} / -%{removed} 故事點數" + completed: + heading: 已完成 + initially_planned: + heading: 最初的計畫是 + unfinished: + heading: 未完成 + breakdown_block: + blocks: + show_all: 查看全部 + closed_work_packages: 已關閉的工作項目 + resolved_summary: + other: "%{percentage}% (%{resolved} 佔 %{total} 工作項目)" sprints: row_component: action_menu: @@ -231,7 +270,6 @@ zh-TW: header_backlogs: 待辦清單模組 work_package_card_menu_component: action_menu: - copy_url_to_clipboard: 複製網址到剪貼簿 copy_work_package_id: 複製工作項目 ID move_menu: 移動至該位置 move_to_backlog_bucket: 移至待辦事項區 @@ -242,14 +280,25 @@ zh-TW: add_existing_dialog: invalid_target: 您嘗試新增的目標無效。 target_not_found: 找不到您嘗試新增的衝刺或待辦事項清單。 + batch_update_service: + mixed_projects: 同一批次中的所有工作包必須屬於同一個專案。 + stale_batch: 在籌備搬遷期間,至少有一個工作包發生了變更。請確認目前的狀態,並請重新嘗試。 + stale_predecessor: 原本應插入於此處後的工作包已移至其他位置。請確認當前位置並重新嘗試。 + unavailable_target: 目的地清單已無法使用。請重新載入頁面並再次嘗試。 + unexpected_failure: 無法移動這些工作包。請重試。 move: moved_announcement: "%{label} 已移至 %{list},位置 %{position} 的 %{total}" + move_collection: + invalid_ids: 待移轉的工作包清單無效。 + member_failed: "%{work_package}: %{reason}" + too_many_work_packages: 一次最多只能移動 %{max} 個工作包。 + work_packages_not_found: 在此專案中,至少有一個工作包無法找到。 update_service: invalid_target_type: list_type 必須為以下其中一種:帶有 list_id 的 backlog_bucket、帶有 list_id 的 sprint,或不帶有 list_id 的 inbox。 missing_target: 必須包含 list_type 或 list_id。 - burndown: - story_points: 故事點 - story_points_ideal: 理想估算故事點數 + created_resolved: + wp_created: Created + wp_resolved: Resolved ee: features: multiple_active_sprints: 多個正在進行的衝刺 @@ -279,9 +328,8 @@ zh-TW: notice_unsuccessful_finish_with_reason: 無法完成該衝刺: %{reason} notice_unsuccessful_start: 無法啟動衝刺。 notice_unsuccessful_start_with_reason: 無法完成該衝刺: %{reason} - notice_work_package_invisible_after_move: '該工作包已移至 %{backlog},但因其類型或狀態被排除在待辦清單之外,因此無法顯示。 - - ' + notice_work_package_invisible_after_move: + other: "%{count} 工作包已移至 %{backlog},但由於其類型或狀態被排除在待辦清單之外,因此無法顯示。\n" permission_create_sprints: 建立衝刺 permission_manage_sprint_items: 管理衝刺項目 permission_select_backlog_types_and_statuses: 選擇待辦事項類型與狀態 @@ -293,13 +341,25 @@ zh-TW: permission_view_sprints: 檢視衝刺 plugin_openproject_backlogs: description: 此模組新增了讓敏捷團隊能夠在 Scrum 專案中使用 OpenProject 的功能。 - name: OpenProject待辦事項 + name: OpenProject代辦事項 project_module_backlogs: 待辦事項 projects: copy: backlog_buckets: 待處理事項區 sprints: 衝刺 settings: + backlog_estimation_unit: + estimation_unit: 單位 + options: + none: + caption: 工作包的數量將作為圖表中的預設單位。部分衝刺報告圖表將不會顯示。 + label: 無 + story_points: + caption: 這些卡片和圖表將顯示故事點數。 + label: 故事點數 + time: + caption: 這些卡片和圖表將顯示工作時間的預估值。 + label: 預計工時 backlog_sharing: options: no_sharing: @@ -320,6 +380,9 @@ zh-TW: label: 子專案 sprint_sharing: 共享衝刺 backlogs: + estimation_unit_form_component: + description: 請選擇與您敏捷團隊工作流程相符的「工作量」、「速度」及「產能」預設單位。這些單位將顯示於待辦事項清單和衝刺報告中。 + heading: 速度、功和容量的預設單位 multiple_active_sprints: description: 預設情況下,每個專案一次只能有一個衝刺處於活躍狀態。您可以變更此設定,讓該專案中能同時有多個衝刺處於活躍狀態。 heading: 正在進行的衝刺數量 diff --git a/modules/bim/config/locales/crowdin/af.seeders.yml b/modules/bim/config/locales/crowdin/af.seeders.yml index a0fcc8302da8..bbb5833c5c50 100644 --- a/modules/bim/config/locales/crowdin/af.seeders.yml +++ b/modules/bim/config/locales/crowdin/af.seeders.yml @@ -61,7 +61,7 @@ af: item_2: name: BIM Bestuurders item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Hoof BIM koördineerders item_5: @@ -513,17 +513,17 @@ af: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling van aanvanklike BIM-model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Aanvanklike, interne model nagaan en hersiening @@ -540,7 +540,7 @@ af: subject: Indiening van aanvanklike BIM-model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modellering, eerste siklus + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -553,10 +553,10 @@ af: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -604,19 +604,19 @@ af: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modellering en koördinering, tweede siklus + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modellering en koördinering, ... siklus + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modellering en koördinering, (n-de minus 1) siklus + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modellering en koördinering van n-de siklus + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Afronding van modellering en koördinering, n-de siklus + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Gebruik model vir konstruksiefase diff --git a/modules/bim/config/locales/crowdin/af.yml b/modules/bim/config/locales/crowdin/af.yml index 8186271df720..6b51a51f34fc 100644 --- a/modules/bim/config/locales/crowdin/af.yml +++ b/modules/bim/config/locales/crowdin/af.yml @@ -106,7 +106,7 @@ af: not_recommended: nie aanbeveel nie recommended: aanbeveelde x_bcf_issues: - one: Een BSF-kwessie + one: "%{count} BCF issue" other: "%{count} BSF kwessies" zero: Geen BSF-kwessies bim: diff --git a/modules/bim/config/locales/crowdin/ar.seeders.yml b/modules/bim/config/locales/crowdin/ar.seeders.yml index 3a6c51bdfcea..186440a560a4 100644 --- a/modules/bim/config/locales/crowdin/ar.seeders.yml +++ b/modules/bim/config/locales/crowdin/ar.seeders.yml @@ -61,7 +61,7 @@ ar: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ ar: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ ar: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ar: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ ar: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ar.yml b/modules/bim/config/locales/crowdin/ar.yml index 27060b9180ef..734ac333d146 100644 --- a/modules/bim/config/locales/crowdin/ar.yml +++ b/modules/bim/config/locales/crowdin/ar.yml @@ -122,7 +122,7 @@ ar: not_recommended: غير موصى بها recommended: موصى بها x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: لا توجد مشاكل BCF bim: diff --git a/modules/bim/config/locales/crowdin/az.seeders.yml b/modules/bim/config/locales/crowdin/az.seeders.yml index 78a9aa91e572..5b759baeb04f 100644 --- a/modules/bim/config/locales/crowdin/az.seeders.yml +++ b/modules/bim/config/locales/crowdin/az.seeders.yml @@ -61,7 +61,7 @@ az: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ az: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ az: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ az: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ az: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/az.yml b/modules/bim/config/locales/crowdin/az.yml index da863ff316c4..42c061e454a7 100644 --- a/modules/bim/config/locales/crowdin/az.yml +++ b/modules/bim/config/locales/crowdin/az.yml @@ -106,7 +106,7 @@ az: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/be.seeders.yml b/modules/bim/config/locales/crowdin/be.seeders.yml index a95fd6f723b6..56a69afa6052 100644 --- a/modules/bim/config/locales/crowdin/be.seeders.yml +++ b/modules/bim/config/locales/crowdin/be.seeders.yml @@ -61,7 +61,7 @@ be: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ be: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ be: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ be: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ be: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/be.yml b/modules/bim/config/locales/crowdin/be.yml index 556e4c7c7fcd..dee29b860f97 100644 --- a/modules/bim/config/locales/crowdin/be.yml +++ b/modules/bim/config/locales/crowdin/be.yml @@ -114,7 +114,7 @@ be: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/bg.seeders.yml b/modules/bim/config/locales/crowdin/bg.seeders.yml index e039c86dc6d6..17a7b9a13194 100644 --- a/modules/bim/config/locales/crowdin/bg.seeders.yml +++ b/modules/bim/config/locales/crowdin/bg.seeders.yml @@ -61,7 +61,7 @@ bg: item_2: name: Бим Мениджъри item_3: - name: БИМ Моделисти + name: BIM Modelers item_4: name: Водещи БИМ координатори item_5: @@ -511,17 +511,17 @@ bg: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ bg: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ bg: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ bg: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/bg.yml b/modules/bim/config/locales/crowdin/bg.yml index 34fd646f56c9..7fd93187ff0d 100644 --- a/modules/bim/config/locales/crowdin/bg.yml +++ b/modules/bim/config/locales/crowdin/bg.yml @@ -106,7 +106,7 @@ bg: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: Един брой на BCF + one: "%{count} BCF issue" other: "%{count} проблеми с BCF" zero: Няма проблеми с BCF bim: diff --git a/modules/bim/config/locales/crowdin/ca.seeders.yml b/modules/bim/config/locales/crowdin/ca.seeders.yml index 6eed8a25b58e..d7097371aa5a 100644 --- a/modules/bim/config/locales/crowdin/ca.seeders.yml +++ b/modules/bim/config/locales/crowdin/ca.seeders.yml @@ -61,7 +61,7 @@ ca: item_2: name: Caps BIM item_3: - name: Modelador BIM + name: BIM Modelers item_4: name: Líders coordinadors BIM item_5: @@ -511,17 +511,17 @@ ca: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ ca: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ca: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ ca: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ca.yml b/modules/bim/config/locales/crowdin/ca.yml index 6c886a1a214d..4bc75fb0cfc5 100644 --- a/modules/bim/config/locales/crowdin/ca.yml +++ b/modules/bim/config/locales/crowdin/ca.yml @@ -110,7 +110,7 @@ ca: not_recommended: no recomanat recommended: recomanat x_bcf_issues: - one: Un element BCF + one: "%{count} BCF issue" other: "%{count} elements BCF" zero: Sense elements de BCF bim: diff --git a/modules/bim/config/locales/crowdin/ckb-IR.seeders.yml b/modules/bim/config/locales/crowdin/ckb-IR.seeders.yml index 0964499314f4..3c9bbe925521 100644 --- a/modules/bim/config/locales/crowdin/ckb-IR.seeders.yml +++ b/modules/bim/config/locales/crowdin/ckb-IR.seeders.yml @@ -61,7 +61,7 @@ ckb-IR: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ ckb-IR: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ ckb-IR: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ckb-IR: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ ckb-IR: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ckb-IR.yml b/modules/bim/config/locales/crowdin/ckb-IR.yml index 0cb78e6ad01e..c3d14580934c 100644 --- a/modules/bim/config/locales/crowdin/ckb-IR.yml +++ b/modules/bim/config/locales/crowdin/ckb-IR.yml @@ -106,7 +106,7 @@ ckb-IR: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/cs.seeders.yml b/modules/bim/config/locales/crowdin/cs.seeders.yml index a3914c006e76..06cf632c06c3 100644 --- a/modules/bim/config/locales/crowdin/cs.seeders.yml +++ b/modules/bim/config/locales/crowdin/cs.seeders.yml @@ -61,7 +61,7 @@ cs: item_2: name: Manažeři BIM item_3: - name: BIM modeláři + name: BIM Modelers item_4: name: Hlavní koordinátoři BIM item_5: @@ -501,17 +501,17 @@ cs: description: Tento typ je hierarchicky nadřazený typům "Clash" a "Request", představuje tedy obecnou poznámku. children: item_0: - subject: Modelování počátečního modelu BIM + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Poćáteční, interní kontrola modelu a revize @@ -528,7 +528,7 @@ cs: subject: Odesílání počátečního modelu BIM description: Tento typ je hierarchicky nadřazený typům "Clash" a "Request", představuje tedy obecnou poznámku. item_4: - subject: Modelování, první cyklus + subject: Modeling, first cycle description: Tento typ je hierarchicky nadřazený typům "Clash" a "Request", představuje tedy obecnou poznámku. children: item_0: @@ -541,10 +541,10 @@ cs: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelování modelu BIM + subject: Modeling the BIM model description: |- # Goal @@ -592,19 +592,19 @@ cs: subject: Dokončování koordinace, první cyklus description: Tento typ je hierarchicky nadřazeným typem "Clash" a "Request", proto představuje obecnou poznámku. item_6: - subject: Modelování a koordinace, druhý cyklus + subject: Modeling & coordinating, second cycle description: "## Cíl\r\n\r\n* ...\r\n\r\n## Popis\r\n\r\n* \\ ..." item_7: - subject: Modelování a koordinace, ... cyklus + subject: Modeling & coordinating, ... cycle description: Tento typ je hierarchicky nadřazeným typem "Clash" a "Request", proto představuje obecnou poznámku. item_8: - subject: Modelování a koordinace (n-tého -1) cyklu + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Cíl\r\n\r\n* ...\r\n\r\n## Popis\r\n\r\n* \\ ..." item_9: - subject: Modelování a koordinace n-tého cyklu + subject: Modeling & coordinating n-th cycle description: Tento typ je hierarchicky nadřazeným typem "Clash" a "Request", proto představuje obecnou poznámku. item_10: - subject: Modelování a koordinace n-tého cyklu + subject: Finishing modeling & coordinating, n-th cycle description: Tento typ je hierarchicky nadřazeným typem "Clash" a "Request", proto představuje obecnou poznámku. item_11: subject: Použití modelu pro fázi výstavby diff --git a/modules/bim/config/locales/crowdin/cs.yml b/modules/bim/config/locales/crowdin/cs.yml index 1a255ca3b51d..55ba1357ffd5 100644 --- a/modules/bim/config/locales/crowdin/cs.yml +++ b/modules/bim/config/locales/crowdin/cs.yml @@ -114,7 +114,7 @@ cs: not_recommended: nedoporučeno recommended: doporučeno x_bcf_issues: - one: Jeden problém s BCFF + one: "%{count} BCF issue" other: "%{count} Problémy s BCF" zero: Žádné problémy s BCF bim: diff --git a/modules/bim/config/locales/crowdin/da.seeders.yml b/modules/bim/config/locales/crowdin/da.seeders.yml index b3ec957713f2..5e0aeb4f158b 100644 --- a/modules/bim/config/locales/crowdin/da.seeders.yml +++ b/modules/bim/config/locales/crowdin/da.seeders.yml @@ -61,7 +61,7 @@ da: item_2: name: BIM-ledere item_3: - name: BIM-Modelbyggere + name: BIM-modellører item_4: name: Ledende BIM-koordinatorer item_5: @@ -515,14 +515,14 @@ da: description: |- # Mål - * Modellering af den oprindelige BIM-model - * Oprettelse af en BIM-model for hele projektteamet + * Modellering af den indledende BIM-model + * Oprettelse af en BIM-model til hele projektteamet # Beskrivelse - * Ifølge de indsamlede data fra kunden vil den oprindelige model blive modelleret - * Modellen skal modelleres i henhold til LOD-matricerne og indeholde de nødvendige oplysninger - * ... + * Den indledende model modelleres ud fra de data, der er indsamlet hos kunden + * Modellen skal modelleres efter LOD-matricerne og indeholde de nødvendige oplysninger + * ... item_1: subject: Indledende, intern modelkontrol og revision description: |- @@ -546,13 +546,13 @@ da: description: |- # Mål - * At have et grundlag for at udvikle den interne model/ tilbyde svar - * At bruge den eksterne model til at udvikle den interne model + * Et grundlag for at udvikle den interne model / give svar + * Brug af den eksterne model til at udvikle den interne model # Beskrivelse - * Den eksterne model vil blive refereret i BIM-platformen og dermed brugt til modellering af den interne model - * ... + * Der henvises til den eksterne model på BIM-platformen, og den bruges dermed til at modellere den interne model + * ... item_1: subject: Modellering af BIM-modellen description: |- @@ -611,10 +611,10 @@ da: subject: Modellering og koordinering, (n-te minus 1) cyklus description: "## Mål\r\n\r\n* ...\r\n\r\n## Beskrivelse\r\n\r\n* \\ ..." item_9: - subject: Modellering og koordinering af n-te cyklus + subject: Modellering og koordinering, n-te cyklus description: Denne type er hierarkisk overordnet typerne "Clash" og "Request", og repræsenterer således en generel note. item_10: - subject: Færdiggørelse af modellering og koordinering, n'te cyklus + subject: Afsluttende modellering og koordinering, n-te cyklus description: Denne type er hierarkisk overordnet typerne "Clash" og "Request", og repræsenterer således en generel note. item_11: subject: Brug modellen til byggefasen diff --git a/modules/bim/config/locales/crowdin/da.yml b/modules/bim/config/locales/crowdin/da.yml index f4be52de7e40..6e718acdcb3a 100644 --- a/modules/bim/config/locales/crowdin/da.yml +++ b/modules/bim/config/locales/crowdin/da.yml @@ -106,7 +106,7 @@ da: not_recommended: ikke anbefalet recommended: anbefalet x_bcf_issues: - one: Et BCF- problem + one: "%{count} BCF-sag" other: "%{count} BCF sager" zero: Ingen BCF-sager bim: diff --git a/modules/bim/config/locales/crowdin/de.seeders.yml b/modules/bim/config/locales/crowdin/de.seeders.yml index 3c3cc6cc47ac..9353e2bb7887 100644 --- a/modules/bim/config/locales/crowdin/de.seeders.yml +++ b/modules/bim/config/locales/crowdin/de.seeders.yml @@ -61,7 +61,7 @@ de: item_2: name: BIM Manager item_3: - name: BIM Modellierer + name: BIM Modelers item_4: name: Leitende BIM-Koordinatoren item_5: @@ -513,18 +513,18 @@ de: description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. children: item_0: - subject: Initiales BIM-Modell modellieren + subject: Modeling initial BIM model description: |- - # Ziel + # Goal - * Modellierung des BIM-Modells - * Erstellen eines ersten BIM-Modells für das gesamte Projektteam + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Beschreibung + # Description - * Entsprechend den gesammelten Daten des Kunden, das ursprüngliche Modell wird nach dem Modell - * Das Modell soll nach den LOD Matritzen modelliert werden und die Informationen enthalten - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Initiale, interne Modellprüfung und Überarbeitung description: |- @@ -540,23 +540,23 @@ de: subject: Erstes BIM-Modell einreichen description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. item_4: - subject: Erster Modellierungsdurchlauf + subject: Modeling, first cycle description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. children: item_0: subject: Verweise auf externe BIM-Modelle description: |- - # Ziel + # Goal - * Ein Fundament für die Entwicklung des internen Modells/Antworten - * Verwendung des externen Modells zur Entwicklung des internen Modells + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Beschreibung + # Description - * Das externe Modell wird in der BIM-Plattform referenziert und zum Modellieren des internen Modells verwendet - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modellierung des BIM-Modells + subject: Modeling the BIM model description: |- # Ziel @@ -604,7 +604,7 @@ de: subject: Erster Koordinierungsabschluss description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. item_6: - subject: Modellierung & Koordinierung, zweiter Durchlauf + subject: Modeling & coordinating, second cycle description: |- ## Ziel @@ -614,10 +614,10 @@ de: * ... item_7: - subject: Modellierung & Koordinierung, zweiter Durchlauf + subject: Modeling & coordinating, ... cycle description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. item_8: - subject: Modellierung & Koordinierung, (n - 1ter) Durchlauf + subject: Modeling & coordinating, (n-th minus 1) cycle description: |- ## Ziel @@ -627,10 +627,10 @@ de: * ... item_9: - subject: Modellierung & Koordinierung, (n - 1ter) Durchlauf + subject: Modeling & coordinating n-th cycle description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. item_10: - subject: Modellierung & Koordinierung, (n-ter) Durchlauf + subject: Finishing modeling & coordinating, n-th cycle description: Dieser Typ ist hierarchisch ein Elternteil der Typen "Konflikt" und "Anfrage", stellt also eine allgemeine Notiz dar. item_11: subject: Modell für die Bauphase verwenden diff --git a/modules/bim/config/locales/crowdin/de.yml b/modules/bim/config/locales/crowdin/de.yml index 08096b49596e..149e4aa6b1e1 100644 --- a/modules/bim/config/locales/crowdin/de.yml +++ b/modules/bim/config/locales/crowdin/de.yml @@ -106,7 +106,7 @@ de: not_recommended: nicht empfohlen recommended: empfohlen x_bcf_issues: - one: Ein BCF-Fall + one: "%{count} BCF issue" other: "%{count} BCF-Fälle" zero: Keine BCF-Fälle bim: diff --git a/modules/bim/config/locales/crowdin/el.seeders.yml b/modules/bim/config/locales/crowdin/el.seeders.yml index ca0be1cb0c39..eb3bffec8169 100644 --- a/modules/bim/config/locales/crowdin/el.seeders.yml +++ b/modules/bim/config/locales/crowdin/el.seeders.yml @@ -61,7 +61,7 @@ el: item_2: name: Διαχειριστές BIM item_3: - name: Μοντελοποιητές BIM + name: BIM Modelers item_4: name: Επικεφαλής συντονιστές BIM item_5: @@ -511,17 +511,17 @@ el: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ el: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ el: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ el: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/el.yml b/modules/bim/config/locales/crowdin/el.yml index 22695a1eb52e..fc9c9b3dbf9e 100644 --- a/modules/bim/config/locales/crowdin/el.yml +++ b/modules/bim/config/locales/crowdin/el.yml @@ -106,7 +106,7 @@ el: not_recommended: δεν συνιστάται recommended: προτεινόμενο x_bcf_issues: - one: Ένα BCF ζήτημα + one: "%{count} BCF issue" other: "%{count} BCF ζητήματα" zero: Δεν υπάρχουν ζητήματα BCF bim: diff --git a/modules/bim/config/locales/crowdin/eo.seeders.yml b/modules/bim/config/locales/crowdin/eo.seeders.yml index 9100e094fc3e..54e88e84b1e3 100644 --- a/modules/bim/config/locales/crowdin/eo.seeders.yml +++ b/modules/bim/config/locales/crowdin/eo.seeders.yml @@ -61,7 +61,7 @@ eo: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ eo: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ eo: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ eo: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ eo: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/eo.yml b/modules/bim/config/locales/crowdin/eo.yml index b33ec6efb472..17bc9e7b0bba 100644 --- a/modules/bim/config/locales/crowdin/eo.yml +++ b/modules/bim/config/locales/crowdin/eo.yml @@ -106,7 +106,7 @@ eo: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: Unu BCF problemo + one: "%{count} BCF issue" other: "%{count} BCF problemoj" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/es.seeders.yml b/modules/bim/config/locales/crowdin/es.seeders.yml index 2f65020f2204..becc19d0d899 100644 --- a/modules/bim/config/locales/crowdin/es.seeders.yml +++ b/modules/bim/config/locales/crowdin/es.seeders.yml @@ -61,7 +61,7 @@ es: item_2: name: Gestores BIM item_3: - name: Modeladores BIM + name: BIM Modelers item_4: name: Coordinadores BIM principales item_5: @@ -511,18 +511,18 @@ es: description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. children: item_0: - subject: Modelado del modelo BIM inicial + subject: Modeling initial BIM model description: |- - # Objetivo + # Goal - * Modelar el modelo BIM inicial - # Crear un modelo BIM para todo el equipo del proyecto + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Descripción + # Description - * De acuerdo con los datos recopilados del cliente, se modelará el modelo inicial - * El modelo se modelará según las matrices LOD y contendrá la información necesaria - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Comprobación y revisión inicial e interna del modelo description: |- @@ -538,23 +538,23 @@ es: subject: Envío del modelo BIM inicial description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. item_4: - subject: Modelado primer ciclo + subject: Modeling, first cycle description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. children: item_0: subject: Referencia a modelos BIM externos description: |- - # Objetivo + # Goal - * Disponer de una base para desarrollar el modelo interno/ ofrecer respuestas - * Utilizar el modelo externo para desarrollar el modelo interno + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Descripción + # Description - * El modelo externo se referenciará en la plataforma BIM, por lo que se utilizará para modelar el modelo interno - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modelado del modelo BIM + subject: Modeling the BIM model description: |- # Objetivo @@ -602,19 +602,19 @@ es: subject: Coordinación de acabado, primer ciclo description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. item_6: - subject: Modelización y coordinación, segundo ciclo + subject: Modeling & coordinating, second cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descripción\r\n\r\n* \\ ..." item_7: - subject: Modelización y coordinación, ... ciclo + subject: Modeling & coordinating, ... cycle description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. item_8: - subject: Modelización y coordinación, ciclo (n-ésimo menos 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descripción\r\n\r\n* \\ ..." item_9: - subject: Modelización y coordinación del n-ésimo ciclo + subject: Modeling & coordinating n-th cycle description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. item_10: - subject: Acabado de modelado y coordinación, n-ésimo ciclo + subject: Finishing modeling & coordinating, n-th cycle description: Este tipo es jerárquicamente principal de los tipos "Choque" y "Solicitud", por lo que representa una nota general. item_11: subject: Usar modelo para la fase de construcción diff --git a/modules/bim/config/locales/crowdin/es.yml b/modules/bim/config/locales/crowdin/es.yml index 1a99122d0944..6e41a7b212b3 100644 --- a/modules/bim/config/locales/crowdin/es.yml +++ b/modules/bim/config/locales/crowdin/es.yml @@ -106,7 +106,7 @@ es: not_recommended: no recomendado recommended: recomendado x_bcf_issues: - one: Una incidencia de BCF + one: "%{count} BCF issue" other: "%{count} incidencias de BCF" zero: No hay incidencias de BCF bim: diff --git a/modules/bim/config/locales/crowdin/et.seeders.yml b/modules/bim/config/locales/crowdin/et.seeders.yml index 84591822e77d..b2b82418635c 100644 --- a/modules/bim/config/locales/crowdin/et.seeders.yml +++ b/modules/bim/config/locales/crowdin/et.seeders.yml @@ -61,7 +61,7 @@ et: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ et: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ et: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ et: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ et: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/et.yml b/modules/bim/config/locales/crowdin/et.yml index cb94bc9b2827..6d6320e86eea 100644 --- a/modules/bim/config/locales/crowdin/et.yml +++ b/modules/bim/config/locales/crowdin/et.yml @@ -106,7 +106,7 @@ et: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/eu.seeders.yml b/modules/bim/config/locales/crowdin/eu.seeders.yml index 957a61b961c8..61476258ca0a 100644 --- a/modules/bim/config/locales/crowdin/eu.seeders.yml +++ b/modules/bim/config/locales/crowdin/eu.seeders.yml @@ -61,7 +61,7 @@ eu: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ eu: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ eu: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ eu: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ eu: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/eu.yml b/modules/bim/config/locales/crowdin/eu.yml index 65a1a001677b..4ced948effff 100644 --- a/modules/bim/config/locales/crowdin/eu.yml +++ b/modules/bim/config/locales/crowdin/eu.yml @@ -106,7 +106,7 @@ eu: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/fa.seeders.yml b/modules/bim/config/locales/crowdin/fa.seeders.yml index ba1ce4040093..1bd306092e22 100644 --- a/modules/bim/config/locales/crowdin/fa.seeders.yml +++ b/modules/bim/config/locales/crowdin/fa.seeders.yml @@ -61,7 +61,7 @@ fa: item_2: name: مدیران BIM item_3: - name: شکل‌دهندگان BIM + name: BIM Modelers item_4: name: هماهنگ کنندگان ارشد BIM item_5: @@ -513,17 +513,17 @@ fa: description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. children: item_0: - subject: مدل‌سازی مدل اولیهٔ BIM + subject: Modeling initial BIM model description: |- - # هدف + # Goal - * مدل‌سازی مدل اولیهٔ BIM - * ایجاد مدل BIM برای کل تیم پروژه + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # توضیحات + # Description - * بر اساس داده‌های جمع‌آوری‌شده از مشتری، مدل اولیه ساخته خواهد شد - * مدل باید مطابق ماتریس‌های LOD ساخته شود و اطلاعات موردنیاز را در بر داشته باشد + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: بازبینی و اصلاح داخلی مدل اولیه @@ -540,23 +540,23 @@ fa: subject: تحویل مدل اولیهٔ BIM description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. item_4: - subject: مدل‌سازی، چرخهٔ اول + subject: Modeling, first cycle description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. children: item_0: subject: ارجاع به مدل‌های BIM خارجی description: |- - # هدف + # Goal - * ایجاد پایه‌ای برای توسعهٔ مدل داخلی / ارائهٔ پاسخ‌ها - * استفاده از مدل خارجی برای توسعهٔ مدل داخلی + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # توضیحات + # Description - * مدل خارجی در پلتفرم BIM مرجع قرار می‌گیرد و برای مدل‌سازی مدل داخلی استفاده می‌شود + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: مدل‌سازی مدل BIM + subject: Modeling the BIM model description: |- # هدف @@ -604,7 +604,7 @@ fa: subject: پایان هماهنگی، چرخهٔ اول description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. item_6: - subject: مدل‌سازی و هماهنگی، چرخهٔ دوم + subject: Modeling & coordinating, second cycle description: |- ## هدف @@ -614,10 +614,10 @@ fa: * \ ... item_7: - subject: مدل‌سازی و هماهنگی، چرخهٔ ... + subject: Modeling & coordinating, ... cycle description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. item_8: - subject: مدل‌سازی و هماهنگی، چرخهٔ (n-1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: |- ## هدف @@ -627,10 +627,10 @@ fa: * \ ... item_9: - subject: مدل‌سازی و هماهنگی، چرخهٔ nام + subject: Modeling & coordinating n-th cycle description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. item_10: - subject: پایان مدل‌سازی و هماهنگی، چرخهٔ nام + subject: Finishing modeling & coordinating, n-th cycle description: این نوع از نظر سلسله‌مراتبی والد نوع‌های "Clash" و "Request" است و بنابراین یک یادداشت عمومی را نمایش می‌دهد. item_11: subject: استفاده از مدل در مرحلهٔ ساخت diff --git a/modules/bim/config/locales/crowdin/fa.yml b/modules/bim/config/locales/crowdin/fa.yml index ffb08af4fc1d..4a4d4afe27bf 100644 --- a/modules/bim/config/locales/crowdin/fa.yml +++ b/modules/bim/config/locales/crowdin/fa.yml @@ -108,7 +108,7 @@ fa: not_recommended: پیشنهاد نشده recommended: پیشنهادی x_bcf_issues: - one: یک مشکل BCF + one: "%{count} BCF issue" other: "%{count} مشکل BCF" zero: بدون مشکل BCF bim: diff --git a/modules/bim/config/locales/crowdin/fi.seeders.yml b/modules/bim/config/locales/crowdin/fi.seeders.yml index 0616f03b58d4..944e80945554 100644 --- a/modules/bim/config/locales/crowdin/fi.seeders.yml +++ b/modules/bim/config/locales/crowdin/fi.seeders.yml @@ -61,7 +61,7 @@ fi: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ fi: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ fi: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ fi: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ fi: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/fi.yml b/modules/bim/config/locales/crowdin/fi.yml index ac2c3e3800f0..fdc9743c48ad 100644 --- a/modules/bim/config/locales/crowdin/fi.yml +++ b/modules/bim/config/locales/crowdin/fi.yml @@ -106,7 +106,7 @@ fi: not_recommended: not recommended recommended: suositellut x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/fil.seeders.yml b/modules/bim/config/locales/crowdin/fil.seeders.yml index 8b1d13710d4f..20ac88e8fe35 100644 --- a/modules/bim/config/locales/crowdin/fil.seeders.yml +++ b/modules/bim/config/locales/crowdin/fil.seeders.yml @@ -61,7 +61,7 @@ fil: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ fil: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ fil: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ fil: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ fil: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/fil.yml b/modules/bim/config/locales/crowdin/fil.yml index a2cec0f22d8d..7ae952bfa13b 100644 --- a/modules/bim/config/locales/crowdin/fil.yml +++ b/modules/bim/config/locales/crowdin/fil.yml @@ -106,7 +106,7 @@ fil: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/fr.seeders.yml b/modules/bim/config/locales/crowdin/fr.seeders.yml index e263783aa154..99bb503c4fdd 100644 --- a/modules/bim/config/locales/crowdin/fr.seeders.yml +++ b/modules/bim/config/locales/crowdin/fr.seeders.yml @@ -61,7 +61,7 @@ fr: item_2: name: Gestionnaires BIM item_3: - name: Modélisateurs BIM + name: BIM Modelers item_4: name: Coordonnateurs principaux BIM item_5: @@ -511,18 +511,18 @@ fr: description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. children: item_0: - subject: Modélisation du modèle BIM initial + subject: Modeling initial BIM model description: |- - # Objectif + # Goal - * Modélisation du modèle BIM initial - * Création d'un modèle BIM pour toute l'équipe de projet + * Modeling the initial BIM model + * Creating a BIM model for the whole project team # Description - * Selon les données collectées du client, le modèle initial sera modélisé - * Le modèle doit être modélisé selon les matrices LOD et contenir les informations nécessaires - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Initial, contrôle et révision du modèle interne description: |- @@ -538,23 +538,23 @@ fr: subject: Soumission du modèle BIM initial description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. item_4: - subject: Modélisation, premier cycle + subject: Modeling, first cycle description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. children: item_0: subject: Référencement des modèles BIM externes description: |- - # Objectif + # Goal - * Avoir une base pour développer le modèle interne/offrir des réponses - * Utiliser le modèle externe pour développer le modèle interne + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model # Description - * Le modèle externe sera référencé dans la plateforme BIM, et utilisé pour modéliser le modèle interne - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modélisation du modèle BIM + subject: Modeling the BIM model description: |- # Objectif @@ -602,19 +602,19 @@ fr: subject: Finalisation de la coordination, premier cycle description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. item_6: - subject: Modélisation et coordination, deuxième cycle + subject: Modeling & coordinating, second cycle description: "## Objectif\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modélisation et coordination, ... cycle + subject: Modeling & coordinating, ... cycle description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. item_8: - subject: Modélisation et coordination, (n-ème moins 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Objectif\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modélisation et coordination du n-ième cycle + subject: Modeling & coordinating n-th cycle description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. item_10: - subject: Fin de la modélisation et de la coordination, n-ième cycle + subject: Finishing modeling & coordinating, n-th cycle description: Ce type est hiérarchiquement un parent des types "Conflit" et "Requête", et représente donc une note générale. item_11: subject: Utiliser le modèle pour la phase de construction diff --git a/modules/bim/config/locales/crowdin/fr.yml b/modules/bim/config/locales/crowdin/fr.yml index 4bdb56cd51a0..beb96ff26c02 100644 --- a/modules/bim/config/locales/crowdin/fr.yml +++ b/modules/bim/config/locales/crowdin/fr.yml @@ -84,7 +84,7 @@ fr: replace_with_system_user: Les remplacer par l'utilisateur "Système" unknown_emails_found: Des adresses e-mail inconnues ont été trouvées unknown_property: Propriété inconnue - what_to_do: Que voulez-vous faire ? + what_to_do: Que voulez-vous faire? work_package_has_newer_changes: Obsolète ! Ce sujet n'a pas été mis à jour, car les derniers changements sur le serveur étaient plus récents que la "ModifiedDate" du sujet importé. Toutefois, les commentaires sur le sujet ont été importés. import_canceled: Importation BCF-XML annulée. import_failed: 'Impossible d''importer le fichier BCF : %{error}' @@ -106,7 +106,7 @@ fr: not_recommended: déconseillé recommended: recommandé x_bcf_issues: - one: Un problème BCF + one: "%{count} BCF issue" other: "%{count} problèmes BCF" zero: Aucun problème BCF bim: diff --git a/modules/bim/config/locales/crowdin/he.seeders.yml b/modules/bim/config/locales/crowdin/he.seeders.yml index ae4b8c1bbe98..b395f0b46044 100644 --- a/modules/bim/config/locales/crowdin/he.seeders.yml +++ b/modules/bim/config/locales/crowdin/he.seeders.yml @@ -61,7 +61,7 @@ he: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ he: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ he: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ he: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ he: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/he.yml b/modules/bim/config/locales/crowdin/he.yml index 197142c4aee3..d1a1f96c4495 100644 --- a/modules/bim/config/locales/crowdin/he.yml +++ b/modules/bim/config/locales/crowdin/he.yml @@ -110,7 +110,7 @@ he: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/hi.seeders.yml b/modules/bim/config/locales/crowdin/hi.seeders.yml index ce23d9b52d37..1532d65c36d1 100644 --- a/modules/bim/config/locales/crowdin/hi.seeders.yml +++ b/modules/bim/config/locales/crowdin/hi.seeders.yml @@ -61,7 +61,7 @@ hi: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ hi: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ hi: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ hi: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ hi: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/hi.yml b/modules/bim/config/locales/crowdin/hi.yml index 9b54c59da3ca..6dc55ed33d24 100644 --- a/modules/bim/config/locales/crowdin/hi.yml +++ b/modules/bim/config/locales/crowdin/hi.yml @@ -106,7 +106,7 @@ hi: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/hr.seeders.yml b/modules/bim/config/locales/crowdin/hr.seeders.yml index 46e43344be60..67c0fe4a5bd3 100644 --- a/modules/bim/config/locales/crowdin/hr.seeders.yml +++ b/modules/bim/config/locales/crowdin/hr.seeders.yml @@ -61,7 +61,7 @@ hr: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ hr: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ hr: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ hr: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ hr: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/hr.yml b/modules/bim/config/locales/crowdin/hr.yml index ae7339bd3425..48db739a450d 100644 --- a/modules/bim/config/locales/crowdin/hr.yml +++ b/modules/bim/config/locales/crowdin/hr.yml @@ -110,7 +110,7 @@ hr: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/hu.seeders.yml b/modules/bim/config/locales/crowdin/hu.seeders.yml index 69af3a787319..4a7f7b842459 100644 --- a/modules/bim/config/locales/crowdin/hu.seeders.yml +++ b/modules/bim/config/locales/crowdin/hu.seeders.yml @@ -61,7 +61,7 @@ hu: item_2: name: BIM menedzserek item_3: - name: BIM modellezők + name: BIM Modelers item_4: name: Vezető BIM koordinátorok item_5: @@ -508,17 +508,17 @@ hu: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -535,7 +535,7 @@ hu: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -548,10 +548,10 @@ hu: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -599,19 +599,19 @@ hu: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/hu.yml b/modules/bim/config/locales/crowdin/hu.yml index 0498467ae9f5..c6b305678f92 100644 --- a/modules/bim/config/locales/crowdin/hu.yml +++ b/modules/bim/config/locales/crowdin/hu.yml @@ -106,7 +106,7 @@ hu: not_recommended: nem ajánlott recommended: Ajánlott x_bcf_issues: - one: Egy BCF probléma + one: "%{count} BCF issue" other: "%{count} BCF probléma" zero: Nincs BCF feladat bim: diff --git a/modules/bim/config/locales/crowdin/hy.seeders.yml b/modules/bim/config/locales/crowdin/hy.seeders.yml index c6c387093043..e541d135f1a4 100644 --- a/modules/bim/config/locales/crowdin/hy.seeders.yml +++ b/modules/bim/config/locales/crowdin/hy.seeders.yml @@ -61,7 +61,7 @@ hy: item_2: name: BIM ղեկավարներ item_3: - name: BIM մոդելավորողներ + name: BIM Modelers item_4: name: Գլխավոր BIM համակարգողներ item_5: @@ -511,17 +511,17 @@ hy: description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ children: item_0: - subject: Նախնական BIM մոդելի մոդելավորում + subject: Modeling initial BIM model description: |- - # Նպատակ + # Goal - * Նախնական BIM մոդելի մոդելավորում - * BIM մոդելի ստեղծում ողջ նախագծային թիմի համար + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Նկարագրություն + # Description - * Պատվիրատուից հավաքագրված տվյալներին համապատասխան կմոդելավորվի նախնական մոդելը - * Մոդելը պետք է մոդելավորվի ըստ LOD մատրիցների և պարունակի անհրաժեշտ տեղեկությունները + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Նախնական, ներքին մոդելի ստուգում և վերանայում @@ -538,23 +538,23 @@ hy: subject: Նախնական BIM մոդելի ներկայացում description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ item_4: - subject: Մոդելավորում, առաջին ցիկլ + subject: Modeling, first cycle description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ children: item_0: subject: Արտաքին BIM մոդելների հղում description: |- - # Նպատակ + # Goal - * Ներքին մոդելի մշակման/ պատասխանների տրամադրման հիմքի ապահովում - * Արտաքին մոդելի օգտագործում ներքին մոդելը մշակելու համար + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Նկարագրություն + # Description - * Արտաքին մոդելը կհղվի BIM հարթակում և այդպիսով կօգտագործվի ներքին մոդելի մոդելավորման համար + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: BIM մոդելի մոդելավորում + subject: Modeling the BIM model description: |- # Նպատակ @@ -602,19 +602,19 @@ hy: subject: Համակարգման ավարտ, առաջին ցիկլ description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ item_6: - subject: Մոդելավորում և համակարգում, երկրորդ ցիկլ + subject: Modeling & coordinating, second cycle description: "## Նպատակ\r\n\r\n* ...\r\n\r\n## Նկարագրություն\r\n\r\n* \\ ..." item_7: - subject: Մոդելավորում և համակարգում, ... ցիկլ + subject: Modeling & coordinating, ... cycle description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ item_8: - subject: Մոդելավորում և համակարգում, (n-րդ հանած 1) ցիկլ + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Նպատակ\r\n\r\n* ...\r\n\r\n## Նկարագրություն\r\n\r\n* \\ ..." item_9: - subject: Մոդելավորում և համակարգում n-րդ ցիկլ + subject: Modeling & coordinating n-th cycle description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ item_10: - subject: Մոդելավորման և համակարգման ավարտ, n-րդ ցիկլ + subject: Finishing modeling & coordinating, n-th cycle description: Այս տեսակը հիերարխիկորեն "Բախում" և "Հարցում" տեսակների ծնողն է, հետևաբար ներկայացնում է ընդհանուր նշում։ item_11: subject: Մոդելի օգտագործում շինարարության փուլում diff --git a/modules/bim/config/locales/crowdin/hy.yml b/modules/bim/config/locales/crowdin/hy.yml index 0829fc322668..e66e601076cd 100644 --- a/modules/bim/config/locales/crowdin/hy.yml +++ b/modules/bim/config/locales/crowdin/hy.yml @@ -106,7 +106,7 @@ hy: not_recommended: խորհուրդ չի տրվում recommended: խորհուրդ է տրվում x_bcf_issues: - one: Մեկ BCF խնդիր + one: "%{count} BCF issue" other: "%{count} BCF խնդիր" zero: BCF խնդիրներ չկան bim: diff --git a/modules/bim/config/locales/crowdin/id.seeders.yml b/modules/bim/config/locales/crowdin/id.seeders.yml index b605618493c4..4a9c5c603213 100644 --- a/modules/bim/config/locales/crowdin/id.seeders.yml +++ b/modules/bim/config/locales/crowdin/id.seeders.yml @@ -61,7 +61,7 @@ id: item_2: name: Manajer BIM item_3: - name: Pembangun Model BIM + name: BIM Modelers item_4: name: Koordinator Utama BIM item_5: @@ -511,17 +511,17 @@ id: description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. children: item_0: - subject: Penyusunan model awal BIM + subject: Modeling initial BIM model description: |- - # Tujuan + # Goal - * Membuat model awal BIM - * Membuat model BIM untuk seluruh tim proyek + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Deskripsi + # Description - * Berdasarkan data yang dikumpulkan dari pelanggan, model awal akan dibuat - * Model tersebut akan dibuat sesuai dengan Matriks LOD dan mengandung informasi yang diperlukan + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Pemeriksaan model internal awal dan revisi @@ -538,23 +538,23 @@ id: subject: Pengajuan model awal BIM description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. item_4: - subject: Penyusunan, siklus pertama + subject: Modeling, first cycle description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. children: item_0: subject: Pengacuan pada model BIM eksternal description: |- - # Tujuan + # Goal - * Memiliki dasar untuk mengembangkan model internal/memberikan jawaban - * Menggunakan model eksternal untuk mengembangkan model internal + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Deskripsi + # Description - * Model eksternal akan dirujuk dalam platform BIM, sehingga digunakan untuk memodelkan model internal + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Penyusunan model BIM + subject: Modeling the BIM model description: |- # Tujuan @@ -602,19 +602,19 @@ id: subject: Koordinasi penyelesaian, siklus pertama description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. item_6: - subject: Modelling & koordinasi, siklus kedua + subject: Modeling & coordinating, second cycle description: "## Tujuan\r\n\r\n* ...\r\n\r\n## Deskripsi\r\n\r\n* \\ ..." item_7: - subject: Modelling & koordinasi, siklus ... + subject: Modeling & coordinating, ... cycle description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. item_8: - subject: Modelling & koordinasi, siklus (n kurang 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Tujuan\r\n\r\n* ...\r\n\r\n## Deskripsi\r\n\r\n* \\ ..." item_9: - subject: Modelling & koordinasi, siklus n-th + subject: Modeling & coordinating n-th cycle description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. item_10: - subject: Penyelesaian pemodelan & koordinasi, siklus ke-n + subject: Finishing modeling & coordinating, n-th cycle description: Jenis ini secara hierarkis merupakan induk dari jenis "Clash" dan "Request", sehingga mewakili catatan umum. item_11: subject: Gunakan model untuk fase konstruksi diff --git a/modules/bim/config/locales/crowdin/id.yml b/modules/bim/config/locales/crowdin/id.yml index 023b5a8d5db5..43dd3615594a 100644 --- a/modules/bim/config/locales/crowdin/id.yml +++ b/modules/bim/config/locales/crowdin/id.yml @@ -102,7 +102,7 @@ id: not_recommended: Tidak disarankan recommended: Disarankan x_bcf_issues: - one: Satu masalah BCF + one: "%{count} BCF issue" other: Terdapat %{count} masalah BCF zero: Tidak ada masalah BCF bim: diff --git a/modules/bim/config/locales/crowdin/it.seeders.yml b/modules/bim/config/locales/crowdin/it.seeders.yml index 6f53fe11d27a..400f47e1e3ba 100644 --- a/modules/bim/config/locales/crowdin/it.seeders.yml +++ b/modules/bim/config/locales/crowdin/it.seeders.yml @@ -61,7 +61,7 @@ it: item_2: name: Gestori BIM item_3: - name: Progettisti BIM + name: BIM Modelers item_4: name: Capi coordinatori BIM item_5: @@ -499,17 +499,17 @@ it: description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. children: item_0: - subject: Progettazione del modello BIM iniziale + subject: Modeling initial BIM model description: |- - # Obiettivo + # Goal - * Progettazione del modello BIM iniziale - * Creazione di un modello BIM per l'intero team di progetto + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Descrizione + # Description - * In base ai dati raccolti dal cliente, verrà modellato il modello iniziale - * Il modello deve essere modellato secondo le matrici LOD e contenere le informazioni necessarie + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Verifica e revisione iniziale del modello interno @@ -526,23 +526,23 @@ it: subject: Invio del modello BIM iniziale description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. item_4: - subject: Modellazione, primo ciclo + subject: Modeling, first cycle description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. children: item_0: subject: Riferimento a modelli BIM esterni description: |- - # Obiettivo + # Goal - * Avere una base per sviluppare il modello interno e offrire risposte - * Utilizzo del modello esterno per sviluppare il modello interno + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Descrizione + # Description - * Il modello esterno sarà referenziato nella piattaforma BIM, quindi utilizzato per la progettazione del modello interno + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Progettazione del modello BIM + subject: Modeling the BIM model description: |- # Obiettivo @@ -590,19 +590,19 @@ it: subject: Coordinamento finale, primo ciclo description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. item_6: - subject: Modellazione e coordinamento, secondo ciclo + subject: Modeling & coordinating, second cycle description: "## Obiettivo\r\n\r\n* ...\r\n\r\n## Descrizione\r\n\r\n* \\ ..." item_7: - subject: Modellazione e coordinamento, ... ciclo + subject: Modeling & coordinating, ... cycle description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. item_8: - subject: Modellazione e coordinamento, (n-1esimo) ciclo + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Obiettivo\r\n\r\n* ...\r\n\r\n## Descrizione\r\n\r\n* \\ ..." item_9: - subject: Modellazione e coordinamento, n-esimo ciclo + subject: Modeling & coordinating n-th cycle description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. item_10: - subject: Finitura modellazione e coordinamento, n-esimo ciclo + subject: Finishing modeling & coordinating, n-th cycle description: Questo tipo è gerarchicamente un genitore dei tipi "Scontro" e "Richiesta", quindi rappresenta una nota generale. item_11: subject: Uso del modello per la fase di costruzione diff --git a/modules/bim/config/locales/crowdin/it.yml b/modules/bim/config/locales/crowdin/it.yml index 6b80d15d2581..735e68e905bd 100644 --- a/modules/bim/config/locales/crowdin/it.yml +++ b/modules/bim/config/locales/crowdin/it.yml @@ -106,7 +106,7 @@ it: not_recommended: non consigliato recommended: consigliato x_bcf_issues: - one: Un problema BCF + one: "%{count} BCF issue" other: "%{count} problemi BCF" zero: Nessun problema BCF bim: diff --git a/modules/bim/config/locales/crowdin/ja.seeders.yml b/modules/bim/config/locales/crowdin/ja.seeders.yml index 6b1abdf7cb91..b53366a5c453 100644 --- a/modules/bim/config/locales/crowdin/ja.seeders.yml +++ b/modules/bim/config/locales/crowdin/ja.seeders.yml @@ -61,7 +61,7 @@ ja: item_2: name: BIMマネージャー item_3: - name: BIMモデラー + name: BIM Modelers item_4: name: リードBIMコーディネーター item_5: @@ -513,17 +513,17 @@ ja: description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -540,21 +540,23 @@ ja: subject: Submitting initial BIM model description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 children: item_0: subject: Referencing external BIM models description: |- - # ゴール - * 内部モデルを開発するために外部モデルを使用する + # Goal - # 説明 + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - * 外部モデルはBIMプラットフォームで参照されるため、内部モデルのモデリングに使用される - * … + # Description + + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +604,19 @@ ja: subject: Finishing coordination, first cycle description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: この型は階層的に "Clash" と "Request"型の親であるため、一般的なノートを表します。 item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ja.yml b/modules/bim/config/locales/crowdin/ja.yml index b5dfd4ab9318..4861a331537c 100644 --- a/modules/bim/config/locales/crowdin/ja.yml +++ b/modules/bim/config/locales/crowdin/ja.yml @@ -102,7 +102,7 @@ ja: not_recommended: 非推奨 recommended: 推奨 x_bcf_issues: - one: 1 件の BCF チケット + one: "%{count} BCF issue" other: "%{count} 件 BCF チケット" zero: BCF チケットがありません bim: diff --git a/modules/bim/config/locales/crowdin/ka.seeders.yml b/modules/bim/config/locales/crowdin/ka.seeders.yml index 710a37861764..524b7e5bbcbc 100644 --- a/modules/bim/config/locales/crowdin/ka.seeders.yml +++ b/modules/bim/config/locales/crowdin/ka.seeders.yml @@ -61,7 +61,7 @@ ka: item_2: name: BIM მმართველები item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ ka: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ ka: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ka: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ ka: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ka.yml b/modules/bim/config/locales/crowdin/ka.yml index 306e0d2781f8..cabaf9ae3536 100644 --- a/modules/bim/config/locales/crowdin/ka.yml +++ b/modules/bim/config/locales/crowdin/ka.yml @@ -106,7 +106,7 @@ ka: not_recommended: not recommended recommended: რეკომენდებულია x_bcf_issues: - one: 1 BCF პრობლემა + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: BCF-ის პრობლემების გარეშე bim: diff --git a/modules/bim/config/locales/crowdin/kk.seeders.yml b/modules/bim/config/locales/crowdin/kk.seeders.yml index 99efbc98a52e..43b89656292a 100644 --- a/modules/bim/config/locales/crowdin/kk.seeders.yml +++ b/modules/bim/config/locales/crowdin/kk.seeders.yml @@ -61,7 +61,7 @@ kk: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ kk: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ kk: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ kk: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ kk: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/kk.yml b/modules/bim/config/locales/crowdin/kk.yml index 584bf1a717d7..6986376d7a7a 100644 --- a/modules/bim/config/locales/crowdin/kk.yml +++ b/modules/bim/config/locales/crowdin/kk.yml @@ -106,7 +106,7 @@ kk: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/ko.seeders.yml b/modules/bim/config/locales/crowdin/ko.seeders.yml index a5fd4a5d9ae2..43a8f6664a06 100644 --- a/modules/bim/config/locales/crowdin/ko.seeders.yml +++ b/modules/bim/config/locales/crowdin/ko.seeders.yml @@ -61,7 +61,7 @@ ko: item_2: name: BIM 관리자 item_3: - name: BIM 모델러 + name: BIM Modelers item_4: name: 리드 BIM 코디네이터 item_5: @@ -511,17 +511,17 @@ ko: description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. children: item_0: - subject: 초기 BIM 모델 모델링 + subject: Modeling initial BIM model description: |- - # 목표 + # Goal - * 초기 BIM 모델 모델링 - * 전체 프로젝트 팀을 위한 BIM 모델 만들기 + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # 설명 + # Description - * 고객으로부터 수집된 데이터에 따라 초기 모델이 모델링됩니다. - * 모델은 LOD 매트릭스에 따라 모델링되며 필요한 정보를 포함합니다. + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: 초기, 내부 모델 확인 및 수정 @@ -538,23 +538,23 @@ ko: subject: 초기 BIM 모델 제출 description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. item_4: - subject: 모델링, 첫 번째 사이클 + subject: Modeling, first cycle description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. children: item_0: subject: 외부 BIM 모델 참조 description: |- - # 목표 + # Goal - * 내부 모델 개발/해답 제시를 위한 토대 마련 - * 외부 모델을 사용하여 내부 모델 개발 + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # 설명 + # Description - * 외부 모델은 BIM 플랫폼에서 참조되므로 내부 모델 모델링에 사용됩니다. + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: BIM 모델 모델링 + subject: Modeling the BIM model description: |- # 목표 @@ -602,19 +602,19 @@ ko: subject: 조정 완료, 첫 번째 사이클 description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. item_6: - subject: 모델링 및 조정, 두 번째 사이클 + subject: Modeling & coordinating, second cycle description: "## 목표\r\n\r\n* ...\r\n\r\n## 설명\r\n\r\n* \\ ..." item_7: - subject: 모델링 및 조정, ... 사이클 + subject: Modeling & coordinating, ... cycle description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. item_8: - subject: 모델링 및 조정, (n - 1) 사이클 + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## 목표\r\n\r\n* ...\r\n\r\n## 설명\r\n\r\n* \\ ..." item_9: - subject: 모델링 및 조정, n번째 사이클 + subject: Modeling & coordinating n-th cycle description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. item_10: - subject: 모델링 및 조정 완료, n번째 사이클 + subject: Finishing modeling & coordinating, n-th cycle description: 이 유형은 계층적으로 "충돌" 및 "요청" 유형의 부모이므로 일반 메모를 나타냅니다. item_11: subject: 건설 단계의 모델 사용 diff --git a/modules/bim/config/locales/crowdin/ko.yml b/modules/bim/config/locales/crowdin/ko.yml index 6748852236cd..07d9282f9b68 100644 --- a/modules/bim/config/locales/crowdin/ko.yml +++ b/modules/bim/config/locales/crowdin/ko.yml @@ -102,7 +102,7 @@ ko: not_recommended: 추천하지 않음 recommended: 추천 x_bcf_issues: - one: '1개 BCF 이슈 ' + one: "%{count} BCF issue" other: "%{count}개 BCF 이슈" zero: BCF 이슈 없음 bim: diff --git a/modules/bim/config/locales/crowdin/li.seeders.yml b/modules/bim/config/locales/crowdin/li.seeders.yml index 7fa50ff9a2a0..63488f25269c 100644 --- a/modules/bim/config/locales/crowdin/li.seeders.yml +++ b/modules/bim/config/locales/crowdin/li.seeders.yml @@ -61,7 +61,7 @@ li: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ li: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ li: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ li: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ li: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/li.yml b/modules/bim/config/locales/crowdin/li.yml index 1f90dac41288..96a79ed85555 100644 --- a/modules/bim/config/locales/crowdin/li.yml +++ b/modules/bim/config/locales/crowdin/li.yml @@ -106,7 +106,7 @@ li: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/lt.seeders.yml b/modules/bim/config/locales/crowdin/lt.seeders.yml index ad15658d6078..1ef1c2d70d54 100644 --- a/modules/bim/config/locales/crowdin/lt.seeders.yml +++ b/modules/bim/config/locales/crowdin/lt.seeders.yml @@ -61,7 +61,7 @@ lt: item_2: name: BIM valdytojai item_3: - name: BIM modeliuotojai + name: BIM Modelers item_4: name: Įkelti BIM koordinatorius item_5: @@ -511,17 +511,17 @@ lt: description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. children: item_0: - subject: Modeliuojamas pradinis BIM modelis + subject: Modeling initial BIM model description: |- - # Tikslas + # Goal - * Modeliuoti pradinį BIM modelį - * Kurti BIM modelį visai projekto komandai + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Aprašymas + # Description - * Pagal iš kliento surinktus duomenis sumodeliuojamas pradinis modelis - * Modelis turi būti modeliuojamas pagal LOD matricas ir turėti reikiamą informaciją + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Pradinio, vidinio modelio tikrinimas ir peržiūra @@ -538,23 +538,23 @@ lt: subject: Pateikiamas pradinis BIM modelis description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. item_4: - subject: Modeliavimas, pirmas ciklas + subject: Modeling, first cycle description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. children: item_0: subject: Nuorodos į išorinius BIM modelius description: |- - # Tikslas + # Goal - * Turėti pagrindą pradinio modelio kūrimui bei galimus atsakymus į klausimus - * Išorinio modelio naudojimas kuriant vidinį modelį + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Aprašymas + # Description - * Išorinis modelis bus naudojamas BIM platformoje, taigi naudojamas modeliuojant vidinį modelį + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: BIM modelio modeliavimas + subject: Modeling the BIM model description: |- # Tikslas @@ -602,19 +602,19 @@ lt: subject: Baigiamoji koordinacija, pirmas ciklas description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. item_6: - subject: Modeliavimas ir koordinavimas, antras ciklas + subject: Modeling & coordinating, second cycle description: "## Tikslas\r\n\r\n* ...\r\n\r\n## Aprašymas\r\n\r\n* \\ ..." item_7: - subject: Modeliavimas ir koordinavimas, ... ciklas + subject: Modeling & coordinating, ... cycle description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. item_8: - subject: Modeliavimas ir koordinavimas, (n-tasis minus 1) ciklas + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Tikslas\r\n\r\n* ...\r\n\r\n## Aprašymas\r\n\r\n* \\ ..." item_9: - subject: Modeliavimas ir koordinavimas, n-tasis ciklas + subject: Modeling & coordinating n-th cycle description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. item_10: - subject: Modeliavimo ir koordinavimo užbaigimas, n-tasis ciklas + subject: Finishing modeling & coordinating, n-th cycle description: Šis tipas hierarchiškai yra tėvas tipų "Susidūrimas" ir "Užklausa", taigi reprezentuoja bendrą pastabą. item_11: subject: Naudoti modelį statybos fazėje diff --git a/modules/bim/config/locales/crowdin/lt.yml b/modules/bim/config/locales/crowdin/lt.yml index 9bf31bb8d049..8e0f12fb9b05 100644 --- a/modules/bim/config/locales/crowdin/lt.yml +++ b/modules/bim/config/locales/crowdin/lt.yml @@ -114,7 +114,7 @@ lt: not_recommended: nerekomenduojama recommended: rekomenduojama x_bcf_issues: - one: Viena BCF problema + one: "%{count} BCF issue" other: "%{count} BCF problemos" zero: Nėra BCF trūkumų bim: diff --git a/modules/bim/config/locales/crowdin/lv.seeders.yml b/modules/bim/config/locales/crowdin/lv.seeders.yml index e0be36342144..138ab0ba5106 100644 --- a/modules/bim/config/locales/crowdin/lv.seeders.yml +++ b/modules/bim/config/locales/crowdin/lv.seeders.yml @@ -61,7 +61,7 @@ lv: item_2: name: BIM pārvaldītāji item_3: - name: BIM modelētāji + name: BIM Modelers item_4: name: Vadošie BIM koordinatori item_5: @@ -511,17 +511,17 @@ lv: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ lv: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ lv: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ lv: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/lv.yml b/modules/bim/config/locales/crowdin/lv.yml index ab246ef91908..ee81fd7e0495 100644 --- a/modules/bim/config/locales/crowdin/lv.yml +++ b/modules/bim/config/locales/crowdin/lv.yml @@ -110,7 +110,7 @@ lv: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/mn.seeders.yml b/modules/bim/config/locales/crowdin/mn.seeders.yml index 38f7123448a5..dbe252d9c7f6 100644 --- a/modules/bim/config/locales/crowdin/mn.seeders.yml +++ b/modules/bim/config/locales/crowdin/mn.seeders.yml @@ -61,7 +61,7 @@ mn: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ mn: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ mn: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ mn: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ mn: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/mn.yml b/modules/bim/config/locales/crowdin/mn.yml index 7aafa3ddb762..ffba09ac62b1 100644 --- a/modules/bim/config/locales/crowdin/mn.yml +++ b/modules/bim/config/locales/crowdin/mn.yml @@ -106,7 +106,7 @@ mn: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/ms.seeders.yml b/modules/bim/config/locales/crowdin/ms.seeders.yml index 884bfe6bfc50..c6a85e6bb760 100644 --- a/modules/bim/config/locales/crowdin/ms.seeders.yml +++ b/modules/bim/config/locales/crowdin/ms.seeders.yml @@ -61,7 +61,7 @@ ms: item_2: name: Pengurus BIM item_3: - name: Pemodel BIM + name: BIM Modelers item_4: name: Ketua Koordinator BIM item_5: @@ -475,17 +475,17 @@ ms: description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. children: item_0: - subject: Pemodelan model BIM awal + subject: Modeling initial BIM model description: |- - # Matlamat + # Goal - * Pemodelan model BIM awal - * Mencipta model BIM untuk seluruh pasukan projek + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Deskripsi + # Description - * Berdasarkan data yang dikumpulkan daripada pelanggan, model awal akan dimodelkan - * Model tersebut akan dimodelkan mengikut matriks LOD dan mengandungi maklumat yang diperlukan + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Semakan model awal dalaman dan pembetulan @@ -502,23 +502,23 @@ ms: subject: Menghantar model BIM awal description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. item_4: - subject: Pemodelan, kitaran pertama + subject: Modeling, first cycle description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. children: item_0: subject: Merujuk model BIM luaran description: |- - # Matlamat + # Goal - * Mempunyai asas untuk membangunkan model dalaman/ menawarkan jawapan - * Menggunakan model luaran untuk menghasilkan model dalaman + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Deskripsi + # Description - * Model luaran akan dirujuk dalam platform BIM, kemudian digunakan untuk pemodelan dalaman + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Pemodelan model BIM + subject: Modeling the BIM model description: |- # Matlamat @@ -566,19 +566,19 @@ ms: subject: Koordinasi penyelesaian, kitaran pertama description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. item_6: - subject: Pemodelan & koordinasi, kitaran kedua + subject: Modeling & coordinating, second cycle description: "## Matlamat\r\n\r\n* ...\r\n\r\n## Deskripsi\r\n\r\n* \\ ..." item_7: - subject: Pemodelan & koordinasi, kitaran ... + subject: Modeling & coordinating, ... cycle description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. item_8: - subject: Pemodelan & koordinasi, kitaran (n-th minus 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Matlamat\r\n\r\n* ...\r\n\r\n## Deskripsi\r\n\r\n* \\ ..." item_9: - subject: Pemodelan & koordinasikan kitaran n-th + subject: Modeling & coordinating n-th cycle description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. item_10: - subject: Penyelesaian pemodelan & koordinasi, kitaran n-th + subject: Finishing modeling & coordinating, n-th cycle description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. item_11: subject: Guna model untuk fasa pembinaan diff --git a/modules/bim/config/locales/crowdin/ms.yml b/modules/bim/config/locales/crowdin/ms.yml index 5fe20a79f694..c23cd4e2608f 100644 --- a/modules/bim/config/locales/crowdin/ms.yml +++ b/modules/bim/config/locales/crowdin/ms.yml @@ -102,7 +102,7 @@ ms: not_recommended: tidak disarankan recommended: disarankan x_bcf_issues: - one: Satu isu BCF + one: "%{count} BCF issue" other: "%{count} Isu-isu BCF" zero: Tiada isu-isu BCF bim: diff --git a/modules/bim/config/locales/crowdin/ne.seeders.yml b/modules/bim/config/locales/crowdin/ne.seeders.yml index d09c20e5b02e..a4bc648713cb 100644 --- a/modules/bim/config/locales/crowdin/ne.seeders.yml +++ b/modules/bim/config/locales/crowdin/ne.seeders.yml @@ -61,7 +61,7 @@ ne: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ ne: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ ne: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ne: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ ne: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/ne.yml b/modules/bim/config/locales/crowdin/ne.yml index eb1ae8f316a5..3218e64e69ae 100644 --- a/modules/bim/config/locales/crowdin/ne.yml +++ b/modules/bim/config/locales/crowdin/ne.yml @@ -106,7 +106,7 @@ ne: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/nl.seeders.yml b/modules/bim/config/locales/crowdin/nl.seeders.yml index 665eb80df596..1454af88e416 100644 --- a/modules/bim/config/locales/crowdin/nl.seeders.yml +++ b/modules/bim/config/locales/crowdin/nl.seeders.yml @@ -61,7 +61,7 @@ nl: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ nl: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ nl: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ nl: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ nl: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Doel\r\n\r\n* ...\r\n\r\n## Beschrijving\r\n\r\n* ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Doel\r\n\r\n* ...\r\n\r\n## Beschrijving\r\n\r\n* ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/nl.yml b/modules/bim/config/locales/crowdin/nl.yml index f28b26b594d8..8368efebee9b 100644 --- a/modules/bim/config/locales/crowdin/nl.yml +++ b/modules/bim/config/locales/crowdin/nl.yml @@ -106,7 +106,7 @@ nl: not_recommended: niet aanbevolen recommended: aanbevolen x_bcf_issues: - one: Één BCF-probleem + one: "%{count} BCF issue" other: "%{count} BCF problemen" zero: Geen BCF-kwesties bim: diff --git a/modules/bim/config/locales/crowdin/no.seeders.yml b/modules/bim/config/locales/crowdin/no.seeders.yml index 4f7b5adb8791..5d6f38d3a2c5 100644 --- a/modules/bim/config/locales/crowdin/no.seeders.yml +++ b/modules/bim/config/locales/crowdin/no.seeders.yml @@ -61,7 +61,7 @@ item_2: name: BIM -ledere item_3: - name: BIM utviklere + name: BIM Modelers item_4: name: Ledende BIM-koordinatorer item_5: @@ -515,18 +515,18 @@ description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. children: item_0: - subject: Modellere innledende BIM-modell + subject: Modeling initial BIM model description: |- - # Mål + # Goal - * Modellering av den innledende BIM-modellen - * Opprette en BIM-modell for hele prosjektteamet + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Beskrivelse + # Description - * Ifølge innsamlede data fra kunden vil den innledende modellen modelleres - * Modellen skal modelleres etter LOD-matrisene og inneholde informasjonen som trengs - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Innledende, intern modellkontroll og revisjon description: |- @@ -542,23 +542,23 @@ subject: Send innledende BIM-modell description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. item_4: - subject: Modellering, første syklus + subject: Modeling, first cycle description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. children: item_0: subject: Referere eksterne BIM-modeller description: |- - # Mål + # Goal - * Ha et fundament for å utvikle den interne modellen/ tilby løsninger - * Bruke den eskterne modellen til å utvikle den interne modellen + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - ## Beskrivelse + # Description - * Den eskterne modellen vil bli referert i BIM-plattformen, slik at den kan bli brukt til å lage den interne modellen - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Utvikle BIM-modellen + subject: Modeling the BIM model description: |- # Mål @@ -606,19 +606,19 @@ subject: Fullfører koordinasjon, første syklus description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. item_6: - subject: Modellering & koordinering, andre syklus + subject: Modeling & coordinating, second cycle description: "## Mål\r\n\r\n* ...\r\n\r\n## Beskrivelse\r\n\r\n* \\ ..." item_7: - subject: Modellering og koordinering, ... syklus + subject: Modeling & coordinating, ... cycle description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. item_8: - subject: Modellering & koordinering, (n-th minus 1) syklus + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Mål\r\n\r\n* ...\r\n\r\n## Beskrivelse\r\n\r\n* \\ ..." item_9: - subject: Modellering & koordinering, n-th syklus + subject: Modeling & coordinating n-th cycle description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. item_10: - subject: Sluttføre modellering & koordinering, n-th syklus + subject: Finishing modeling & coordinating, n-th cycle description: Denne typen er hierarkisk overordnet typene "Konflikt" og "Forespørsel", og representerer dermed en generell merknad. item_11: subject: Bruke modell for byggefase diff --git a/modules/bim/config/locales/crowdin/no.yml b/modules/bim/config/locales/crowdin/no.yml index 8f9d44d38adc..bd7855517e1e 100644 --- a/modules/bim/config/locales/crowdin/no.yml +++ b/modules/bim/config/locales/crowdin/no.yml @@ -106,7 +106,7 @@ not_recommended: ikke anbefalt recommended: anbefalt x_bcf_issues: - one: Ett BCF problem + one: "%{count} BCF issue" other: "%{count} BCF-problemer" zero: Ingen BCF problemer bim: diff --git a/modules/bim/config/locales/crowdin/pl.seeders.yml b/modules/bim/config/locales/crowdin/pl.seeders.yml index a2793c8433dc..3c613d22d144 100644 --- a/modules/bim/config/locales/crowdin/pl.seeders.yml +++ b/modules/bim/config/locales/crowdin/pl.seeders.yml @@ -61,7 +61,7 @@ pl: item_2: name: Menedżerowie BIM item_3: - name: Modelarze BIM + name: BIM Modelers item_4: name: Główni koordynatorzy BIM item_5: @@ -498,18 +498,18 @@ pl: description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. children: item_0: - subject: Modelowanie początkowego modelu BIM + subject: Modeling initial BIM model description: |- - # Cel + # Goal - * Modelowanie początkowego modelu BIM - * Tworzenie modelu BIM dla całego zespołu projektu + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Opis + # Description - * Zgodnie z danymi zebranymi od klienta, model początkowy będzie modelowany - * Model będzie modelowany zgodnie z matrycami LOD i zawiera niezbędne informacje - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Wstępne, wewnętrzne sprawdzenie i korekta modelu description: |- @@ -525,23 +525,23 @@ pl: subject: Przesyłanie początkowego modelu BIM description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. item_4: - subject: Modelowanie, pierwszy cykl + subject: Modeling, first cycle description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. children: item_0: subject: Odwoływanie się do zewnętrznych modeli BIM description: |- - # Cel + # Goal - * Stworzenie podstaw do opracowania modelu wewnętrznego / oferowanie odpowiedzi - * Wykorzystanie modelu zewnętrznego do opracowania modelu wewnętrznego + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Opis + # Description - * Odwołania do modelu zewnętrznego będą wykonywane na platformie BIM, w ten sposób będą używane do modelowania modelu wewnętrznego - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modelowanie modelu BIM + subject: Modeling the BIM model description: |- # Cel @@ -589,19 +589,19 @@ pl: subject: Kończenie koordynacji, pierwszy cykl description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. item_6: - subject: Modelowanie i koordynacja, drugi cykl + subject: Modeling & coordinating, second cycle description: "## Cel\r\n\r\n* ...\r\n\r\n## Opis\r\n\r\n* \\ ..." item_7: - subject: Modelowanie i koordynacja, ... cykl + subject: Modeling & coordinating, ... cycle description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. item_8: - subject: Modelowanie i koordynacja, cykl (n-ty minus 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Cel\r\n\r\n* ...\r\n\r\n## Opis\r\n\r\n* \\ ..." item_9: - subject: Modelowanie i koordynacja, n-ty cykl + subject: Modeling & coordinating n-th cycle description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. item_10: - subject: Kończenie modelowania i koordynacji, n-ty cykl + subject: Finishing modeling & coordinating, n-th cycle description: Ten typ jest hierarchicznie nadrzędny dla typów „Starcie” i „Żądanie”, w ten sposób reprezentuje ogólną notatkę. item_11: subject: Zastosuj model do fazy budowy diff --git a/modules/bim/config/locales/crowdin/pl.yml b/modules/bim/config/locales/crowdin/pl.yml index 7f2ddd154d7c..1d1a24b3c710 100644 --- a/modules/bim/config/locales/crowdin/pl.yml +++ b/modules/bim/config/locales/crowdin/pl.yml @@ -114,7 +114,7 @@ pl: not_recommended: niezalecane recommended: zalecane x_bcf_issues: - one: Jeden problem BCF + one: "%{count} BCF issue" other: 'Liczba problemów BCF: %{count}' zero: Brak problemów BCF bim: diff --git a/modules/bim/config/locales/crowdin/pt-BR.seeders.yml b/modules/bim/config/locales/crowdin/pt-BR.seeders.yml index d0b417a0e56f..04fb60d8b302 100644 --- a/modules/bim/config/locales/crowdin/pt-BR.seeders.yml +++ b/modules/bim/config/locales/crowdin/pt-BR.seeders.yml @@ -61,7 +61,7 @@ pt-BR: item_2: name: Gerentes BIM item_3: - name: Modelos BIM + name: BIM Modelers item_4: name: Coordenadores BIM Líderes item_5: @@ -511,18 +511,18 @@ pt-BR: description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. children: item_0: - subject: Modelagem de modelo inicial BIM + subject: Modeling initial BIM model description: |- - # Objetivo + # Goal - * Modelagem do modelo BIM inicial - * Criação de um modelo BIM para toda a equipe do projeto + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Descrição + # Description - * De acordo com os dados coletados do cliente, o modelo inicial será modelado - * O modelo deve ser modelado de acordo com as Matrizes LOD e deve conter as informações necessárias - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Verificações iniciais e internas de modelo e revisão description: |- @@ -538,23 +538,23 @@ pt-BR: subject: Envio de modelo inicial BIM description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. item_4: - subject: Modelagem, primeiro ciclo + subject: Modeling, first cycle description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. children: item_0: subject: Fazer referência a modelos BIM externos description: |- - # Objetivo + # Goal - * Ter uma base para desenvolver o modelo interno/ oferecer respostas - * Usar o modelo externo para desenvolver o modelo interno + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Descrição + # Description - * O modelo externo será referenciado na plataforma BIM, sendo assim utilizado para modelagem do modelo interno - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Modelagem do modelo BIM + subject: Modeling the BIM model description: |- # Objetivo @@ -602,19 +602,19 @@ pt-BR: subject: Finalização de coordenação, primeiro ciclo description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. item_6: - subject: Modelagem e coordenação, segundo ciclo + subject: Modeling & coordinating, second cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." item_7: - subject: Modelagem e coordenação, ... ciclo + subject: Modeling & coordinating, ... cycle description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. item_8: - subject: Modelagem e coordenação, (n-th minus 1) ciclo + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." item_9: - subject: Modelagem e coordenação, n-th ciclo + subject: Modeling & coordinating n-th cycle description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. item_10: - subject: Finalização de modelagem e coordenação, n-th ciclo + subject: Finishing modeling & coordinating, n-th cycle description: Este tipo é hierarquicamente um primário dos tipos "Clash" e "Solicitação", portanto, representa uma nota geral. item_11: subject: Usar modelo para fase de construção diff --git a/modules/bim/config/locales/crowdin/pt-BR.yml b/modules/bim/config/locales/crowdin/pt-BR.yml index aed450222ff1..0d6ad6f9e1a8 100644 --- a/modules/bim/config/locales/crowdin/pt-BR.yml +++ b/modules/bim/config/locales/crowdin/pt-BR.yml @@ -106,7 +106,7 @@ pt-BR: not_recommended: não recomendado recommended: recomendado x_bcf_issues: - one: Um problema BCF + one: "%{count} BCF issue" other: "%{count} problemas BCF" zero: Sem problemas no BCF bim: diff --git a/modules/bim/config/locales/crowdin/pt-PT.seeders.yml b/modules/bim/config/locales/crowdin/pt-PT.seeders.yml index 85ae675a1de7..4cdb24cde9d4 100644 --- a/modules/bim/config/locales/crowdin/pt-PT.seeders.yml +++ b/modules/bim/config/locales/crowdin/pt-PT.seeders.yml @@ -61,7 +61,7 @@ pt-PT: item_2: name: Gerentes BIM item_3: - name: Modeladores BIM + name: BIM Modelers item_4: name: Coordinadores BIM principais item_5: @@ -493,17 +493,17 @@ pt-PT: description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. children: item_0: - subject: Modelar o modelo inicial BIM + subject: Modeling initial BIM model description: |- - # Objetivo + # Goal - * Modelar o modelo inicial BIM - * Criar um modelo BIM para toda a equipa do projeto + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Descrição + # Description - * De acordo com os dados recolhidos junto do cliente, o modelo inicial será modelado - * O modelo deve ser modelado de acordo com as matrizes LOD e conter as informações necessárias + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Verificação e revisão inicial e interna do modelo @@ -520,23 +520,23 @@ pt-PT: subject: Enviar o modelo inicial BIM description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. item_4: - subject: Modelagem, primeiro ciclo + subject: Modeling, first cycle description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. children: item_0: subject: Referência a modelos BIM externos description: |- - # Objetivo + # Goal - * Ter uma base para desenvolver o modelo interno/oferecer respostas - * Utilizar o modelo externo para desenvolver o modelo interno + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Descrição + # Description - * O modelo externo será referenciado na plataforma BIM, sendo assim utilizado para modelar o modelo interno + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelar o modelo BIM + subject: Modeling the BIM model description: |- # Objetivo @@ -584,19 +584,19 @@ pt-PT: subject: Coordenação concluída, primeiro ciclo description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. item_6: - subject: Modelagem e coordenação, segundo ciclo + subject: Modeling & coordinating, second cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." item_7: - subject: Modelagem e coordenação, ... ciclo + subject: Modeling & coordinating, ... cycle description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. item_8: - subject: Modelagem e coordenação, ciclo (n-ésimo menos 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Objetivo\r\n\r\n* ...\r\n\r\n## Descrição\r\n\r\n* \\ ..." item_9: - subject: Modelagem e coordenação do n-ésimo ciclo + subject: Modeling & coordinating n-th cycle description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. item_10: - subject: Finalizar a modelagem e coordenação, n-ésimo ciclo + subject: Finishing modeling & coordinating, n-th cycle description: Este tipo é hierarquicamente um pai dos tipos "Choque" e "Pedido", representa assim uma nota geral. item_11: subject: Usar modelo para fase de construção diff --git a/modules/bim/config/locales/crowdin/pt-PT.yml b/modules/bim/config/locales/crowdin/pt-PT.yml index 09bd8ef561d8..3896965b6169 100644 --- a/modules/bim/config/locales/crowdin/pt-PT.yml +++ b/modules/bim/config/locales/crowdin/pt-PT.yml @@ -106,7 +106,7 @@ pt-PT: not_recommended: não recomendado recommended: recomendado x_bcf_issues: - one: Um problema BCF + one: "%{count} BCF issue" other: "%{count} problemas BCF" zero: Sem problemas no BCF bim: diff --git a/modules/bim/config/locales/crowdin/ro.seeders.yml b/modules/bim/config/locales/crowdin/ro.seeders.yml index a03356058cf3..6d40448a1ffe 100644 --- a/modules/bim/config/locales/crowdin/ro.seeders.yml +++ b/modules/bim/config/locales/crowdin/ro.seeders.yml @@ -61,7 +61,7 @@ ro: item_2: name: Manageri BIM item_3: - name: Modelatori BIM + name: BIM Modelers item_4: name: Coordonatori BIM principali item_5: @@ -511,18 +511,18 @@ ro: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Realizare modelului BIM inițial + subject: Modeling initial BIM model description: |- - # Obiectiv + # Goal - * Realizarea modelului BIM inițial - * Crearea unui model BIM pentru întreaga echipă de proiect + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Descriere + # Description - * Modelul inițial va fi realizat conform datelor colectate de la client - * Modelul va fi realizat în conformitate cu matricele LOD și va conține informațiile necesare - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Initial, internal model check and revising description: |- @@ -538,7 +538,7 @@ ro: subject: Trimiterea modelului BIM inițial description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ ro: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Realizare modelului BIM inițial + subject: Modeling the BIM model description: |- # Obiectiv @@ -602,19 +602,19 @@ ro: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Utilizează model pentru faza construcție diff --git a/modules/bim/config/locales/crowdin/ro.yml b/modules/bim/config/locales/crowdin/ro.yml index a07dcafc42b7..f20172e55850 100644 --- a/modules/bim/config/locales/crowdin/ro.yml +++ b/modules/bim/config/locales/crowdin/ro.yml @@ -110,7 +110,7 @@ ro: not_recommended: Recomandat recommended: recomandat x_bcf_issues: - one: O problemă BCF + one: "%{count} BCF issue" other: "%{count} Probleme BCF" zero: Nu există probleme legate de BCF bim: diff --git a/modules/bim/config/locales/crowdin/ru.seeders.yml b/modules/bim/config/locales/crowdin/ru.seeders.yml index d5095afc710d..2ac0b65d6773 100644 --- a/modules/bim/config/locales/crowdin/ru.seeders.yml +++ b/modules/bim/config/locales/crowdin/ru.seeders.yml @@ -61,7 +61,7 @@ ru: item_2: name: Менеджеры BIM item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Ведущие BIM координаты item_5: @@ -451,18 +451,18 @@ ru: description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. children: item_0: - subject: Моделирование исходной BIM-модели + subject: Modeling initial BIM model description: |- - # Цель + # Goal - * Моделирование начальной модели BIM - * Создание модели BIM для всей команды проекта + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Описание + # Description - * По собранным данным от клиента, начальная модель будет смоделирована - * Модель должна быть смоделирована в соответствии с матрицами LOD и содержать необходимую информацию - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Первоначальная внутренняя проверка и пересмотр модели description: |- @@ -478,23 +478,23 @@ ru: subject: Отправка исходной BIM-модели description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. item_4: - subject: Моделирование, первый цикл + subject: Modeling, first cycle description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. children: item_0: subject: Ссылки на внешние BIM-модели description: |- - # Цель + # Goal - * Создание основы для разработки внутренней модели/предложение ответов - * Использование внешней модели для разработки внутренней модели + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Описание + # Description - * На внешнюю модель будут ссылаться в BIM-платформе, что позволит использовать ее для моделирования внутренней модели - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Моделирование BIM-модели + subject: Modeling the BIM model description: |- # Цель @@ -542,19 +542,19 @@ ru: subject: Завершение координации, первый цикл description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. item_6: - subject: Моделирование и координация, второй цикл + subject: Modeling & coordinating, second cycle description: "## Цель\r\n\r\n* ...\r\n\r\n## Описание\r\n\r\n* \\ ..." item_7: - subject: Моделирование и координация, ... цикл + subject: Modeling & coordinating, ... cycle description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. item_8: - subject: Моделирование и координация, (n-й минус 1) цикл + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Цель\r\n\r\n* ...\r\n\r\n## Описание\r\n\r\n* \\ ..." item_9: - subject: Моделирование и координация n-го цикла + subject: Modeling & coordinating n-th cycle description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. item_10: - subject: Завершение моделирования и координации, n-й цикл + subject: Finishing modeling & coordinating, n-th cycle description: Этот тип иерархически является родителем типов "Clash" и "Request", таким образом представляет общую заметку. item_11: subject: Использовать модель для этапа конструирования diff --git a/modules/bim/config/locales/crowdin/ru.yml b/modules/bim/config/locales/crowdin/ru.yml index 9ed4de684247..e729ad965cb6 100644 --- a/modules/bim/config/locales/crowdin/ru.yml +++ b/modules/bim/config/locales/crowdin/ru.yml @@ -114,7 +114,7 @@ ru: not_recommended: не рекомендуется recommended: рекомендуется x_bcf_issues: - one: Одна проблема BCF + one: "%{count} BCF issue" other: "%{count} проблем BCF" zero: Нет проблем BCF bim: diff --git a/modules/bim/config/locales/crowdin/rw.seeders.yml b/modules/bim/config/locales/crowdin/rw.seeders.yml index 8d639bf8f49e..ac6c9da82bef 100644 --- a/modules/bim/config/locales/crowdin/rw.seeders.yml +++ b/modules/bim/config/locales/crowdin/rw.seeders.yml @@ -61,7 +61,7 @@ rw: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ rw: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ rw: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ rw: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ rw: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/rw.yml b/modules/bim/config/locales/crowdin/rw.yml index 70cd1778dd70..408f65e3563e 100644 --- a/modules/bim/config/locales/crowdin/rw.yml +++ b/modules/bim/config/locales/crowdin/rw.yml @@ -106,7 +106,7 @@ rw: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/si.seeders.yml b/modules/bim/config/locales/crowdin/si.seeders.yml index 469e0dd831b1..354b18e49449 100644 --- a/modules/bim/config/locales/crowdin/si.seeders.yml +++ b/modules/bim/config/locales/crowdin/si.seeders.yml @@ -61,7 +61,7 @@ si: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ si: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ si: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ si: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ si: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/si.yml b/modules/bim/config/locales/crowdin/si.yml index 84c9ecc92c8f..b34ba528d2a9 100644 --- a/modules/bim/config/locales/crowdin/si.yml +++ b/modules/bim/config/locales/crowdin/si.yml @@ -106,7 +106,7 @@ si: not_recommended: නිර්දේශ කර නැත recommended: නිර්දේශ x_bcf_issues: - one: එක් BCF ප්රශ්නයක් + one: "%{count} BCF issue" other: "%{count} BCF ගැටළු" zero: BCF ගැටළු නොමැත bim: diff --git a/modules/bim/config/locales/crowdin/sk.seeders.yml b/modules/bim/config/locales/crowdin/sk.seeders.yml index 856d0da5dea0..48ab164ca0bd 100644 --- a/modules/bim/config/locales/crowdin/sk.seeders.yml +++ b/modules/bim/config/locales/crowdin/sk.seeders.yml @@ -61,7 +61,7 @@ sk: item_2: name: Manažéri BIM item_3: - name: Modelári BIM + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ sk: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ sk: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ sk: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ sk: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/sk.yml b/modules/bim/config/locales/crowdin/sk.yml index 6d6320621c3e..3e40cd1e1284 100644 --- a/modules/bim/config/locales/crowdin/sk.yml +++ b/modules/bim/config/locales/crowdin/sk.yml @@ -114,7 +114,7 @@ sk: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/sl.seeders.yml b/modules/bim/config/locales/crowdin/sl.seeders.yml index 2cfabebdd689..15c02147c1a6 100644 --- a/modules/bim/config/locales/crowdin/sl.seeders.yml +++ b/modules/bim/config/locales/crowdin/sl.seeders.yml @@ -61,7 +61,7 @@ sl: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ sl: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ sl: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ sl: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ sl: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/sl.yml b/modules/bim/config/locales/crowdin/sl.yml index b3d8f559e835..29bc03da94c2 100644 --- a/modules/bim/config/locales/crowdin/sl.yml +++ b/modules/bim/config/locales/crowdin/sl.yml @@ -116,7 +116,7 @@ sl: not_recommended: ni priporočeno recommended: Priporočeno x_bcf_issues: - one: Ena BCF napaka + one: "%{count} BCF issue" other: "%{count} BCF napake" zero: Ni BCF napak bim: diff --git a/modules/bim/config/locales/crowdin/sr.seeders.yml b/modules/bim/config/locales/crowdin/sr.seeders.yml index f1c7167d9049..7c35ae427a5b 100644 --- a/modules/bim/config/locales/crowdin/sr.seeders.yml +++ b/modules/bim/config/locales/crowdin/sr.seeders.yml @@ -61,7 +61,7 @@ sr: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ sr: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ sr: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ sr: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ sr: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/sr.yml b/modules/bim/config/locales/crowdin/sr.yml index 95120a5ff459..e584882a9cea 100644 --- a/modules/bim/config/locales/crowdin/sr.yml +++ b/modules/bim/config/locales/crowdin/sr.yml @@ -110,7 +110,7 @@ sr: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/sv.seeders.yml b/modules/bim/config/locales/crowdin/sv.seeders.yml index a878ece21c20..feeb43c2df3c 100644 --- a/modules/bim/config/locales/crowdin/sv.seeders.yml +++ b/modules/bim/config/locales/crowdin/sv.seeders.yml @@ -61,7 +61,7 @@ sv: item_2: name: BIM-chefer item_3: - name: BIM-modellerare + name: BIM Modelers item_4: name: Ledande BIM-samordnare item_5: @@ -511,17 +511,17 @@ sv: description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. children: item_0: - subject: Modellera inledande BIM-modell + subject: Modeling initial BIM model description: |- - # Mål + # Goal - * Modellera den inledande BIM-modellen - * Skapa en BIM-modell för hela projektteamet + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Beskrivning + # Description - * Utifrån insamlade kunddata modelleras den inledande modellen - * Modellen ska utformas enligt LOD-matriserna och innehålla nödvändig information + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Inledande intern modellkontroll och revidering @@ -538,23 +538,23 @@ sv: subject: Skicka inledande BIM-modell description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. item_4: - subject: Modellering, första cykeln + subject: Modeling, first cycle description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. children: item_0: subject: Referera externa BIM-modeller description: |- - # Mål + # Goal - * Ha en grund för att utveckla den interna modellen/ge svar - * Använda den externa modellen för att utveckla den interna modellen + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Beskrivning + # Description - * Den externa modellen refereras i BIM-plattformen och används därmed för att modellera den interna modellen + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modellera BIM-modellen + subject: Modeling the BIM model description: |- # Mål @@ -602,19 +602,19 @@ sv: subject: Koordinering av slutbearbetning, första cykeln description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. item_6: - subject: Modellering och samordning, andra cykeln + subject: Modeling & coordinating, second cycle description: "## Mål\r\n\r\n* ...\r\n\r\n## Beskrivning\r\n\r\n* \\ ..." item_7: - subject: Modellering och samordning, ... cykel + subject: Modeling & coordinating, ... cycle description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. item_8: - subject: Modellering och samordning, (n-te minus 1) cykel + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Mål\r\n\r\n* ...\r\n\r\n## Beskrivning\r\n\r\n* \\ ..." item_9: - subject: Modellering & koordinering av n-te cykel + subject: Modeling & coordinating n-th cycle description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. item_10: - subject: Slutför modellering och samordning, n:te cykeln + subject: Finishing modeling & coordinating, n-th cycle description: Denna typ är hierarkiskt överordnad typerna "Clash" och "Request", och utgör således en allmän anmärkning. item_11: subject: Använd modellen för byggfasen diff --git a/modules/bim/config/locales/crowdin/sv.yml b/modules/bim/config/locales/crowdin/sv.yml index e95fdd0e63ee..9d4aff1fc4ac 100644 --- a/modules/bim/config/locales/crowdin/sv.yml +++ b/modules/bim/config/locales/crowdin/sv.yml @@ -106,7 +106,7 @@ sv: not_recommended: rekommenderas inte recommended: rekommenderad x_bcf_issues: - one: Ett BCF-ärende + one: "%{count} BCF issue" other: "%{count} BCF-ärenden" zero: Inga BCF-problem bim: diff --git a/modules/bim/config/locales/crowdin/th.seeders.yml b/modules/bim/config/locales/crowdin/th.seeders.yml index 8be5b812b10a..fec4726b6c4d 100644 --- a/modules/bim/config/locales/crowdin/th.seeders.yml +++ b/modules/bim/config/locales/crowdin/th.seeders.yml @@ -61,7 +61,7 @@ th: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ th: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ th: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ th: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ th: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/th.yml b/modules/bim/config/locales/crowdin/th.yml index 043d580193ca..d975ee856762 100644 --- a/modules/bim/config/locales/crowdin/th.yml +++ b/modules/bim/config/locales/crowdin/th.yml @@ -102,7 +102,7 @@ th: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/tr.seeders.yml b/modules/bim/config/locales/crowdin/tr.seeders.yml index 465ab70aacda..2cd4f1eb7739 100644 --- a/modules/bim/config/locales/crowdin/tr.seeders.yml +++ b/modules/bim/config/locales/crowdin/tr.seeders.yml @@ -61,7 +61,7 @@ tr: item_2: name: BIM Yöneticileri item_3: - name: BIM Modelleyicileri + name: BIM Modelers item_4: name: Baş BIM Koordinatörleri item_5: @@ -511,18 +511,18 @@ tr: description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. children: item_0: - subject: İlk BIM modelinin oluşturulması + subject: Modeling initial BIM model description: |- - # Hedef + # Goal - * İlk BIM modelinin modellenmesi - * Tüm proje ekibi için bir BIM modeli oluşturulması + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Açıklama + # Description - * Müşteriden toplanan verilere göre ilk model modellenecektir - * Model, LOD Matrislerine göre modellenecek ve ihtiyaç duyulan bilgileri içerecektir - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Başlangıç, dahili model kontrolü ve revizyonu description: |- @@ -538,23 +538,23 @@ tr: subject: İlk BIM modelinin oluşturulması description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. item_4: - subject: Modelleme, ilk döngü + subject: Modeling, first cycle description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. children: item_0: subject: Harici BIM modellerine referans verme description: |- - # Hedef + # Goal - * Dahili modeli geliştirmek için bir temele sahip olmak / cevaplar sunmak - * Dahili modeli geliştirmek için harici modeli kullanmak + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Açıklama + # Description - * Harici model BIM platformunda referans alınacak, böylece dahili modelin modellenmesi için kullanılacaktır - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: İlk BIM modelinin oluşturulması + subject: Modeling the BIM model description: |- # Hedef @@ -602,19 +602,19 @@ tr: subject: Koordinasyonun sonlanması, ilk döngü description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. item_6: - subject: Modelleme ve koordinasyon, ikinci döngü + subject: Modeling & coordinating, second cycle description: "## Hedef\r\n\r\n* ...\r\n\r\n## Açıklama\r\n\r\n* \\ ..." item_7: - subject: Modelleme ve koordinasyon, ... döngü + subject: Modeling & coordinating, ... cycle description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. item_8: - subject: Modelleme ve koordinasyon, (n'inci eksi 1) döngü + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Hedef\r\n\r\n* ...\r\n\r\n## Açıklama\r\n\r\n* \\ ..." item_9: - subject: Modelleme ve koordinasyon (n'inci) döngü + subject: Modeling & coordinating n-th cycle description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. item_10: - subject: Modelleme ve koordinasyon tamamlanıyor (n'inci) döngü + subject: Finishing modeling & coordinating, n-th cycle description: Bu tür hiyerarşik olarak "Clash" ve "Request"türlerinin bir üstüdür, dolayısıyla genel bir notu temsil eder. item_11: subject: İnşaat aşaması için model kullanın diff --git a/modules/bim/config/locales/crowdin/tr.yml b/modules/bim/config/locales/crowdin/tr.yml index 489cf5c48180..c9b1f7e48aeb 100644 --- a/modules/bim/config/locales/crowdin/tr.yml +++ b/modules/bim/config/locales/crowdin/tr.yml @@ -106,7 +106,7 @@ tr: not_recommended: tavsiye edilmez recommended: Tavsiye edilen x_bcf_issues: - one: Bir BCF sorunu + one: "%{count} BCF issue" other: "%{count} BCF sorunu" zero: BCF sorunu yok bim: diff --git a/modules/bim/config/locales/crowdin/uk.seeders.yml b/modules/bim/config/locales/crowdin/uk.seeders.yml index 986be7f14285..3ed320298111 100644 --- a/modules/bim/config/locales/crowdin/uk.seeders.yml +++ b/modules/bim/config/locales/crowdin/uk.seeders.yml @@ -61,7 +61,7 @@ uk: item_2: name: Керівники BIM item_3: - name: Моделювальники BIM + name: BIM Modelers item_4: name: Головні координатори BIM item_5: @@ -510,17 +510,17 @@ uk: description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. children: item_0: - subject: Розробка початкової моделі BIM + subject: Modeling initial BIM model description: |- - # Ціль + # Goal - * Розробка початкової моделі BIM - * Створення моделі BIM для цілої команди проєкту + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Опис + # Description - * На основі даних, отриманих від клієнта, буде розроблено початкову модель - * Модель буде створено відповідно до матриць LOD Matrices і міститиме необхідну інформацію + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Початкова перевірка й перегляд внутрішньої моделі @@ -537,23 +537,23 @@ uk: subject: Надсилання початкової моделі BIM description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. item_4: - subject: Моделювання, перший цикл + subject: Modeling, first cycle description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. children: item_0: subject: Посилання на зовнішні моделі BIM description: |- - # Ціль + # Goal - * Наявність основи для розробки початкової моделі / відповіді на запитання - * Використання зовнішньої моделі для розробки початкової моделі + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Опис + # Description - * Зовнішня модель згадуватиметься на платформі BIM, а отже, використовуватиметься для створення початкової моделі + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Розробка моделі BIM + subject: Modeling the BIM model description: |- # Ціль @@ -601,19 +601,19 @@ uk: subject: Завершення координації, перший цикл description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. item_6: - subject: Моделювання й координація, другий цикл + subject: Modeling & coordinating, second cycle description: "## Ціль\r\n\r\n* ...\r\n\r\n## Опис\r\n\r\n* \\ ..." item_7: - subject: Моделювання й координація, ... цикл + subject: Modeling & coordinating, ... cycle description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. item_8: - subject: Моделювання й координація, (n-й мінус 1) цикл + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Ціль\r\n\r\n* ...\r\n\r\n## Опис\r\n\r\n* \\ ..." item_9: - subject: Моделювання й координація, n-й цикл + subject: Modeling & coordinating n-th cycle description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. item_10: - subject: Завершення моделювання й координації, n-й цикл + subject: Finishing modeling & coordinating, n-th cycle description: Цей тип належить до батьківських елементів ієрархії для типів "Конфлікт" і "Запит", а отже, представляє загальну нотатку. item_11: subject: Використання моделі на етапі будівництва diff --git a/modules/bim/config/locales/crowdin/uk.yml b/modules/bim/config/locales/crowdin/uk.yml index 566a30fc0355..935e38f4764f 100644 --- a/modules/bim/config/locales/crowdin/uk.yml +++ b/modules/bim/config/locales/crowdin/uk.yml @@ -114,7 +114,7 @@ uk: not_recommended: не рекомендується recommended: рекомендовано x_bcf_issues: - one: Одна проблема BCF + one: "%{count} BCF issue" other: 'Помилок BCF: %{count}' zero: Немає проблем BCF bim: diff --git a/modules/bim/config/locales/crowdin/uz.seeders.yml b/modules/bim/config/locales/crowdin/uz.seeders.yml index f09e5f65cdaf..55d60044e513 100644 --- a/modules/bim/config/locales/crowdin/uz.seeders.yml +++ b/modules/bim/config/locales/crowdin/uz.seeders.yml @@ -61,7 +61,7 @@ uz: item_2: name: BIM Managers item_3: - name: BIM Modellers + name: BIM Modelers item_4: name: Lead BIM Coordinators item_5: @@ -511,17 +511,17 @@ uz: description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Modelling initial BIM model + subject: Modeling initial BIM model description: |- # Goal - * Modelling the initial BIM model + * Modeling the initial BIM model * Creating a BIM model for the whole project team # Description - * According to the gathered data from the customer, the initial model will be modelled - * The model shall be modelled according to the LOD Matrices and contain the information needed + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed * ... item_1: subject: Initial, internal model check and revising @@ -538,7 +538,7 @@ uz: subject: Submitting initial BIM model description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: - subject: Modelling, first cycle + subject: Modeling, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: @@ -551,10 +551,10 @@ uz: # Description - * The external model will be referenced in the BIM platform, thus used for modelling the internal model + * The external model will be referenced in the BIM platform, thus used for modeling the internal model * ... item_1: - subject: Modelling the BIM model + subject: Modeling the BIM model description: |- # Goal @@ -602,19 +602,19 @@ uz: subject: Finishing coordination, first cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_6: - subject: Modelling & coordinating, second cycle + subject: Modeling & coordinating, second cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_7: - subject: Modelling & coordinating, ... cycle + subject: Modeling & coordinating, ... cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_8: - subject: Modelling & coordinating, (n-th minus 1) cycle + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Goal\r\n\r\n* ...\r\n\r\n## Description\r\n\r\n* \\ ..." item_9: - subject: Modelling & coordinating n-th cycle + subject: Modeling & coordinating n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_10: - subject: Finishing modelling & coordinating, n-th cycle + subject: Finishing modeling & coordinating, n-th cycle description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_11: subject: Use model for construction phase diff --git a/modules/bim/config/locales/crowdin/uz.yml b/modules/bim/config/locales/crowdin/uz.yml index 396b5ed57b14..442905d41177 100644 --- a/modules/bim/config/locales/crowdin/uz.yml +++ b/modules/bim/config/locales/crowdin/uz.yml @@ -106,7 +106,7 @@ uz: not_recommended: not recommended recommended: recommended x_bcf_issues: - one: One BCF issue + one: "%{count} BCF issue" other: "%{count} BCF issues" zero: No BCF issues bim: diff --git a/modules/bim/config/locales/crowdin/vi.seeders.yml b/modules/bim/config/locales/crowdin/vi.seeders.yml index 80dd70af65a4..767184537cae 100644 --- a/modules/bim/config/locales/crowdin/vi.seeders.yml +++ b/modules/bim/config/locales/crowdin/vi.seeders.yml @@ -61,7 +61,7 @@ vi: item_2: name: Người quản lý BIM item_3: - name: Người lập mô hình BIM + name: BIM Modelers item_4: name: Điều phối viên BIM chính item_5: @@ -511,18 +511,18 @@ vi: description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. children: item_0: - subject: Lập mô hình mô hình BIM ban đầu + subject: Modeling initial BIM model description: |- - # mục tiêu + # Goal - * Lập mô hình mô hình BIM ban đầu - * Tạo mô hình BIM cho toàn bộ nhóm dự án + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # Mô tả + # Description - * Theo dữ liệu thu thập được từ khách hàng, mô hình ban đầu sẽ được mô hình hóa - * Mô hình phải được mô hình hóa theo Ma trận LOD và chứa thông tin cần thiết - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: Kiểm tra và sửa đổi mô hình ban đầu, nội bộ description: |- @@ -538,23 +538,23 @@ vi: subject: Gửi mô hình BIM ban đầu description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. item_4: - subject: Lập mô hình, chu kỳ đầu tiên + subject: Modeling, first cycle description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. children: item_0: subject: Tham khảo các mô hình BIM bên ngoài description: |- - # mục tiêu + # Goal - * Có nền tảng phát triển mô hình nội bộ/ đưa ra câu trả lời - * Sử dụng mô hình bên ngoài để phát triển mô hình bên trong + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # Mô tả + # Description - * Mô hình bên ngoài sẽ được tham chiếu trong nền tảng BIM, do đó được sử dụng để mô hình hóa mô hình bên trong - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: Lập mô hình mô hình BIM + subject: Modeling the BIM model description: |- # mục tiêu @@ -602,19 +602,19 @@ vi: subject: Kết thúc phối hợp, chu kỳ đầu tiên description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. item_6: - subject: Lập mô hình & điều phối, chu kỳ thứ hai + subject: Modeling & coordinating, second cycle description: "## Mục tiêu\r\n\r\n* ...\r\n\r\n## Mô tả\r\n\r\n* \\ ..." item_7: - subject: Lập mô hình & điều phối, ... chu trình + subject: Modeling & coordinating, ... cycle description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. item_8: - subject: Lập mô hình & điều phối, chu trình (n-th trừ 1) + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## Mục tiêu\r\n\r\n* ...\r\n\r\n## Mô tả\r\n\r\n* \\ ..." item_9: - subject: Lập mô hình và điều phối chu kỳ thứ n + subject: Modeling & coordinating n-th cycle description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. item_10: - subject: Hoàn thiện mô hình hóa và điều phối, chu kỳ thứ n + subject: Finishing modeling & coordinating, n-th cycle description: Loại này được phân cấp theo cấp bậc cha của các loại "Clash" và "Request", do đó đại diện cho một ghi chú chung. item_11: subject: Sử dụng mô hình cho giai đoạn xây dựng diff --git a/modules/bim/config/locales/crowdin/vi.yml b/modules/bim/config/locales/crowdin/vi.yml index f6953ca86d59..acb0012aad93 100644 --- a/modules/bim/config/locales/crowdin/vi.yml +++ b/modules/bim/config/locales/crowdin/vi.yml @@ -102,7 +102,7 @@ vi: not_recommended: không khuyến nghị recommended: khuyến nghị x_bcf_issues: - one: Một vấn đề về BCF + one: "%{count} BCF issue" other: "%{count} vấn đề về BCF" zero: Không có vấn đề BCF bim: diff --git a/modules/bim/config/locales/crowdin/zh-CN.seeders.yml b/modules/bim/config/locales/crowdin/zh-CN.seeders.yml index 236724421507..723e2ae467de 100644 --- a/modules/bim/config/locales/crowdin/zh-CN.seeders.yml +++ b/modules/bim/config/locales/crowdin/zh-CN.seeders.yml @@ -61,7 +61,7 @@ zh-CN: item_2: name: BIM管理器 item_3: - name: BIM 模式器 + name: BIM Modelers item_4: name: 导入BIM协调器 item_5: @@ -519,18 +519,18 @@ zh-CN: description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 children: item_0: - subject: 对初始 BIM 模型建模 + subject: Modeling initial BIM model description: |- - # 目标 + # Goal - * 对初始 BIM 模型建模 - * 为整个项目团队创建 BIM 模型 + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # 说明 + # Description - * 根据向客户收集的数据,将对初始模型进行建模 - * 模型应根据 LOD 矩阵进行建模,并包含所需信息 - * … + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: 初始、内部模型检查和修改 description: |- @@ -546,23 +546,23 @@ zh-CN: subject: 提交初始 BIM 模型 description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 item_4: - subject: 建模,第一轮 + subject: Modeling, first cycle description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 children: item_0: subject: 引用外部 BIM 模型 description: |- - # 目标 + # Goal - * 拥有开发内部模型的基础/提供答案 - * 使用外部模型开发内部模型 + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # 说明 + # Description - * 将在 BIM 平台中引用该外部模型,进而使用它对内部模型进行建模 - * … + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: 对 BIM 模型建模 + subject: Modeling the BIM model description: |- # 目标 @@ -610,19 +610,19 @@ zh-CN: subject: 完成协调,第一轮 description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 item_6: - subject: 建模和协调,第二轮 + subject: Modeling & coordinating, second cycle description: "## 目标\r\n\r\n* …\r\n\r\n## 说明\r\n\r\n* \\ …" item_7: - subject: 建模和协调,第…轮 + subject: Modeling & coordinating, ... cycle description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 item_8: - subject: 建模和协调,第 (n-1) 轮 + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## 目标\r\n\r\n* …\r\n\r\n## 说明\r\n\r\n* \\ …" item_9: - subject: 第 n 轮建模和协调 + subject: Modeling & coordinating n-th cycle description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 item_10: - subject: 完成建模和协调,第 n 轮 + subject: Finishing modeling & coordinating, n-th cycle description: 此类型在层次结构上是“冲突”和“请求”类型的父项,因此表示一般注释。 item_11: subject: 在施工阶段使用模型 diff --git a/modules/bim/config/locales/crowdin/zh-CN.yml b/modules/bim/config/locales/crowdin/zh-CN.yml index df9b12d5dfd3..c88d9428cd37 100644 --- a/modules/bim/config/locales/crowdin/zh-CN.yml +++ b/modules/bim/config/locales/crowdin/zh-CN.yml @@ -102,7 +102,7 @@ zh-CN: not_recommended: 不推荐 recommended: 推荐 x_bcf_issues: - one: 一个 BCF 问题 + one: "%{count} BCF issue" other: "%{count} 个 BCF 问题" zero: 无 BCF 问题 bim: diff --git a/modules/bim/config/locales/crowdin/zh-TW.seeders.yml b/modules/bim/config/locales/crowdin/zh-TW.seeders.yml index 1e5e6b5c671f..3018de8effb8 100644 --- a/modules/bim/config/locales/crowdin/zh-TW.seeders.yml +++ b/modules/bim/config/locales/crowdin/zh-TW.seeders.yml @@ -61,7 +61,7 @@ zh-TW: item_2: name: BIM管理者 item_3: - name: BIM建模者 + name: BIM Modelers item_4: name: 主BIM協調者 item_5: @@ -508,18 +508,18 @@ zh-TW: description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 children: item_0: - subject: 建模初始 BIM 模型 + subject: Modeling initial BIM model description: |- - # 目標 + # Goal - * 對初始 BIM 模型進行建模 - * 為整個專案團隊建立 BIM 模型 + * Modeling the initial BIM model + * Creating a BIM model for the whole project team - # 描述 + # Description - * 根據客戶收集的數據,建立初始模型 - * 模型應根據LOD矩陣建模並包含所需的信息 - * ... + * According to the gathered data from the customer, the initial model will be modeled + * The model shall be modeled according to the LOD Matrices and contain the information needed + * ... item_1: subject: 初始、內部模型檢查與修改 description: |- @@ -535,23 +535,23 @@ zh-TW: subject: 提交初始 BIM 模型 description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 item_4: - subject: 建模,第一個週期 + subject: Modeling, first cycle description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 children: item_0: subject: 參照外部 BIM 模型 description: |- - # 目標 + # Goal - * 為發展內部模型/提供答案奠定基礎 - * 使用外部模型開發內部模型 + * Having a foundation for developing the internal model/ offering answers + * Using the external model to develop the internal model - # 描述 + # Description - * 外部模型將在BIM平台中引用,用於內部模型的建模 - * ... + * The external model will be referenced in the BIM platform, thus used for modeling the internal model + * ... item_1: - subject: 建模 BIM 模型 + subject: Modeling the BIM model description: |- # 目標 @@ -599,19 +599,19 @@ zh-TW: subject: 完成協調整合,第一個週期 description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 item_6: - subject: 建模&協調整合,第二個週期 + subject: Modeling & coordinating, second cycle description: "## 目標\r\n\r\n* ...\r\n\r\n## 描述\r\n\r\n* \\ ..." item_7: - subject: 建模&協調整合,... 週期 + subject: Modeling & coordinating, ... cycle description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 item_8: - subject: 建模&協調整合,(n-th minus 1) 週期 + subject: Modeling & coordinating, (n-th minus 1) cycle description: "## 目標\r\n\r\n* ...\r\n\r\n## 描述\r\n\r\n* \\ ..." item_9: - subject: 建模&協調整合,n-th 週期 + subject: Modeling & coordinating n-th cycle description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 item_10: - subject: 完成 建模&協調整合,n-th 週期 + subject: Finishing modeling & coordinating, n-th cycle description: 此類型在層級上是「衝突"」類型"的父代。因此,「請求"」和「請求"」代表一般註釋。 item_11: subject: 施工階段使用模型 diff --git a/modules/bim/config/locales/crowdin/zh-TW.yml b/modules/bim/config/locales/crowdin/zh-TW.yml index 860fca1710a0..649ca8d48440 100644 --- a/modules/bim/config/locales/crowdin/zh-TW.yml +++ b/modules/bim/config/locales/crowdin/zh-TW.yml @@ -102,7 +102,7 @@ zh-TW: not_recommended: 不推薦 recommended: 推薦 x_bcf_issues: - one: 一個 BCF 問題 + one: "%{count} BCF issue" other: "%{count} BCF 問題集" zero: 無 BCF 問題 bim: diff --git a/modules/budgets/config/locales/crowdin/af.yml b/modules/budgets/config/locales/crowdin/af.yml index a2e10292e561..c4b10c1d2a6a 100644 --- a/modules/budgets/config/locales/crowdin/af.yml +++ b/modules/budgets/config/locales/crowdin/af.yml @@ -61,6 +61,8 @@ af: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ af: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ar.yml b/modules/budgets/config/locales/crowdin/ar.yml index 569b0f6df8a3..024dbbf0f879 100644 --- a/modules/budgets/config/locales/crowdin/ar.yml +++ b/modules/budgets/config/locales/crowdin/ar.yml @@ -73,6 +73,8 @@ ar: attributes: budget: الميزانية budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -118,7 +120,7 @@ ar: events: budget: تم تعديل الميزانية help_click_to_edit: اضغط هنا للتعديل. - help_currency_format: شكل قِيَم العملة المعروضة. %n تم إبداله بقيمة العملة، %u تم إبداله بوحدة العملة. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: أدخل قيمة هنا لتجاهل المعدل الافتراضي. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/az.yml b/modules/budgets/config/locales/crowdin/az.yml index 287004af506e..326f24ce9500 100644 --- a/modules/budgets/config/locales/crowdin/az.yml +++ b/modules/budgets/config/locales/crowdin/az.yml @@ -61,6 +61,8 @@ az: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ az: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/be.yml b/modules/budgets/config/locales/crowdin/be.yml index 0852fc6fd38a..75461c85e2ac 100644 --- a/modules/budgets/config/locales/crowdin/be.yml +++ b/modules/budgets/config/locales/crowdin/be.yml @@ -67,6 +67,8 @@ be: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ be: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/bg.yml b/modules/budgets/config/locales/crowdin/bg.yml index 0c237840ee83..72b7a70cee26 100644 --- a/modules/budgets/config/locales/crowdin/bg.yml +++ b/modules/budgets/config/locales/crowdin/bg.yml @@ -61,6 +61,8 @@ bg: attributes: budget: Бюджет budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ bg: events: budget: Бюджетът е редактиран help_click_to_edit: Натисни, за да редактираш - help_currency_format: Формат на показваните валутни стойности. %n се заменя с валутната стойност, %u се заменя с валутната единица. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Въведете стойност тук, за да отмените ставката по подразбиране. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ca.yml b/modules/budgets/config/locales/crowdin/ca.yml index d7592f1c7a9f..a9acf85efb48 100644 --- a/modules/budgets/config/locales/crowdin/ca.yml +++ b/modules/budgets/config/locales/crowdin/ca.yml @@ -61,6 +61,8 @@ ca: attributes: budget: Pressupost budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ ca: events: budget: Pressupost editat help_click_to_edit: Feu clic per editar. - help_currency_format: Format de valor de divisa actual. %n és substituït amb el valor de divisa, %u és substituït amb la unitat de divisa. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Entra un valor aquí per substituir la ràtio per defecte. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ckb-IR.yml b/modules/budgets/config/locales/crowdin/ckb-IR.yml index c52b99fec66a..ddde8efcc156 100644 --- a/modules/budgets/config/locales/crowdin/ckb-IR.yml +++ b/modules/budgets/config/locales/crowdin/ckb-IR.yml @@ -61,6 +61,8 @@ ckb-IR: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ ckb-IR: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/cs.yml b/modules/budgets/config/locales/crowdin/cs.yml index 99f7d29bd82f..1a5d101f4f16 100644 --- a/modules/budgets/config/locales/crowdin/cs.yml +++ b/modules/budgets/config/locales/crowdin/cs.yml @@ -27,7 +27,7 @@ cs: author: Autor available: Dostupné base_amount: Základní částka - budget: Plánované + budget: Rozpočet budget_ratio: Stráveno (poměr) description: Popis labor_budget: Plánované mzdové náklady @@ -67,6 +67,8 @@ cs: attributes: budget: Rozpočet budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ cs: events: budget: Rozpočet editován help_click_to_edit: Klikněte zde pro úpravu. - help_currency_format: Formát zobrazených hodnot měn. %n je nahrazen hodnotou měny, %u je nahrazen jednotkou měny. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Zadejte hodnotu zde pro přepsání výchozí sazby. label_budget_available: Dostupný rozpočet label_budget_details: Podrobnosti o rozpočtu diff --git a/modules/budgets/config/locales/crowdin/da.yml b/modules/budgets/config/locales/crowdin/da.yml index b003c6236e60..d8676c4e14d6 100644 --- a/modules/budgets/config/locales/crowdin/da.yml +++ b/modules/budgets/config/locales/crowdin/da.yml @@ -61,6 +61,8 @@ da: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: Ingen timesats pr. %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ da: events: budget: Budget redigeret help_click_to_edit: Klik her for at redigere. - help_currency_format: Format for viste valutaværdier. %n erstattes med valutaværdien, %u erstattes med valutaenheden. + help_currency_format: Format for viste valutabeløb. %n erstattes af beløbet, %u af valutaenheden. help_override_rate: Angiv en værdi for at tilsidesætte standardsatsen. label_budget_available: Tilgængeligt budget label_budget_details: Detaljer om budgettet diff --git a/modules/budgets/config/locales/crowdin/de.yml b/modules/budgets/config/locales/crowdin/de.yml index 88aaf8c9eae0..e7e927940a5f 100644 --- a/modules/budgets/config/locales/crowdin/de.yml +++ b/modules/budgets/config/locales/crowdin/de.yml @@ -61,6 +61,8 @@ de: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: Kein Stundensatz für %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ de: events: budget: Budget bearbeitet help_click_to_edit: Hier Klicken zum bearbeiten. - help_currency_format: Format der angezeigten Währungswerte. %n wird mit dem Zahlenwert ersetzt, %u mit der Währung. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Hier einen Wert eingeben um den Standardwert zu Überschreiben. label_budget_available: Verfügbares Budget label_budget_details: Budgetdetails diff --git a/modules/budgets/config/locales/crowdin/el.yml b/modules/budgets/config/locales/crowdin/el.yml index 0a32952d18f6..0baf578cf264 100644 --- a/modules/budgets/config/locales/crowdin/el.yml +++ b/modules/budgets/config/locales/crowdin/el.yml @@ -61,6 +61,8 @@ el: attributes: budget: Προϋπολογισμός budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ el: events: budget: Ο προϋπολογισμός επεξεργάστηκε help_click_to_edit: Κάντε κλικ εδώ για επεξεργασία. - help_currency_format: Μορφοποίηση των νομισματικών τιμών που εμφανίζονται. %n αντικαθίσταται με την τρέχουσα τιμή, %u αντικαθίσταται με την τρέχουσα μονάδα. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Εισάγετε μια τιμή εδώ για να αντικαταστήσετε την τρέχουσα αμοιβή. label_budget_available: Διαθέσιμος προϋπολογισμός label_budget_details: Λεπτομέρειες προϋπολογισμού diff --git a/modules/budgets/config/locales/crowdin/eo.yml b/modules/budgets/config/locales/crowdin/eo.yml index 864ed150bef2..ff19d7937d77 100644 --- a/modules/budgets/config/locales/crowdin/eo.yml +++ b/modules/budgets/config/locales/crowdin/eo.yml @@ -61,6 +61,8 @@ eo: attributes: budget: Budĝeto budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ eo: events: budget: Budget edited help_click_to_edit: Klaku ĉi tie por redakti. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/es.yml b/modules/budgets/config/locales/crowdin/es.yml index 2af03d302d88..64f28ae155bb 100644 --- a/modules/budgets/config/locales/crowdin/es.yml +++ b/modules/budgets/config/locales/crowdin/es.yml @@ -61,6 +61,8 @@ es: attributes: budget: Presupuesto budgets: + labor_budget_items: + no_rate_at_fixed_date: No se aplica ninguna tarifa por hora el %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ es: events: budget: Presupuesto editado help_click_to_edit: Haga clic aquí para editar. - help_currency_format: Formato de muestra de valores de divisas. %n se sustituye por el valor de la moneda, %u es reemplazada por la unidad monetaria. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Introduzca un valor para anular la morisidad. label_budget_available: Presupuesto disponible label_budget_details: Detalles de presupuesto diff --git a/modules/budgets/config/locales/crowdin/et.yml b/modules/budgets/config/locales/crowdin/et.yml index 11131116cb2a..b872756b55e1 100644 --- a/modules/budgets/config/locales/crowdin/et.yml +++ b/modules/budgets/config/locales/crowdin/et.yml @@ -61,6 +61,8 @@ et: attributes: budget: Eelarve budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ et: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/eu.yml b/modules/budgets/config/locales/crowdin/eu.yml index c1d4e008d258..d3275c6ce502 100644 --- a/modules/budgets/config/locales/crowdin/eu.yml +++ b/modules/budgets/config/locales/crowdin/eu.yml @@ -61,6 +61,8 @@ eu: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ eu: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/fa.yml b/modules/budgets/config/locales/crowdin/fa.yml index bc6795244250..e479a2e6b412 100644 --- a/modules/budgets/config/locales/crowdin/fa.yml +++ b/modules/budgets/config/locales/crowdin/fa.yml @@ -61,6 +61,8 @@ fa: attributes: budget: بودجه budgets: + labor_budget_items: + no_rate_at_fixed_date: در %{date} نرخ ساعتی وجود ندارد widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ fa: events: budget: بودجه ویرایش شد help_click_to_edit: برای ویرایش اینجا کلیک کنید. - help_currency_format: فرمت مقادیر واحدهای پولی نمایش داده شده به این صورت است که %n با مقدار واحد پولی جایگزین می‌شود و %u با واحد پولی جایگزین می‌شود. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: در صورت ورود یک مقدار در قسمت، نرخ (ضریب پرداختی) پیش‌فرض نادیده گرفته می شود. label_budget_available: بودجه موجود label_budget_details: جزئیات بودجه diff --git a/modules/budgets/config/locales/crowdin/fi.yml b/modules/budgets/config/locales/crowdin/fi.yml index 95bbcbdd8570..980983c389c6 100644 --- a/modules/budgets/config/locales/crowdin/fi.yml +++ b/modules/budgets/config/locales/crowdin/fi.yml @@ -61,6 +61,8 @@ fi: attributes: budget: Budjetti budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ fi: events: budget: Budjettia muokattu help_click_to_edit: Muokkaa napsauttamalla tätä. - help_currency_format: Käytetty valuuttamuoto. %n korvataan arvolla, %u korvataan valuuttayksiköllä. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Anna tähän arvo ohittaaksesi vakiohinnan. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/fil.yml b/modules/budgets/config/locales/crowdin/fil.yml index 065f24b41e5a..b607cf2f87a4 100644 --- a/modules/budgets/config/locales/crowdin/fil.yml +++ b/modules/budgets/config/locales/crowdin/fil.yml @@ -61,6 +61,8 @@ fil: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ fil: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/fr.yml b/modules/budgets/config/locales/crowdin/fr.yml index b48a4e082b81..497719f897f4 100644 --- a/modules/budgets/config/locales/crowdin/fr.yml +++ b/modules/budgets/config/locales/crowdin/fr.yml @@ -61,6 +61,8 @@ fr: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: Aucun taux horaire au %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ fr: events: budget: Budget modifié help_click_to_edit: Cliquez ici pour modifier. - help_currency_format: Format des valeurs monétaires affichées. %n est remplacé par le montant, %u est remplacé par l'unité monétaire. + help_currency_format: Format des valeurs monétaires affichées. %n est remplacé par la valeur monétaire, %u est remplacé par l'unité monétaire. help_override_rate: Entrez une valeur ici pour outrepasser les tarifs de défaut. label_budget_available: Budget disponible label_budget_details: Détails du budget diff --git a/modules/budgets/config/locales/crowdin/he.yml b/modules/budgets/config/locales/crowdin/he.yml index 40f983569c5b..2efc6f31e498 100644 --- a/modules/budgets/config/locales/crowdin/he.yml +++ b/modules/budgets/config/locales/crowdin/he.yml @@ -64,6 +64,8 @@ he: attributes: budget: תקציב budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -109,7 +111,7 @@ he: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/hi.yml b/modules/budgets/config/locales/crowdin/hi.yml index e12c8d08b2d7..7c46f59c540f 100644 --- a/modules/budgets/config/locales/crowdin/hi.yml +++ b/modules/budgets/config/locales/crowdin/hi.yml @@ -61,6 +61,8 @@ hi: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ hi: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/hr.yml b/modules/budgets/config/locales/crowdin/hr.yml index 5f544a399a4a..040ae9afe5cf 100644 --- a/modules/budgets/config/locales/crowdin/hr.yml +++ b/modules/budgets/config/locales/crowdin/hr.yml @@ -64,6 +64,8 @@ hr: attributes: budget: Budžet budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -109,7 +111,7 @@ hr: events: budget: Proračun uređen help_click_to_edit: Kliknite ovdje za uređivanje. - help_currency_format: Format prikazanih novčanih valuta. %n je zamijenjen s novčanom valum, %u je zmijenjen s jedinicom vlute. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Unesite vrijednost ovdje za prepravljanje postavljene vrijednosti. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/hu.yml b/modules/budgets/config/locales/crowdin/hu.yml index 79a6c69cff3f..318eaf65ca6e 100644 --- a/modules/budgets/config/locales/crowdin/hu.yml +++ b/modules/budgets/config/locales/crowdin/hu.yml @@ -61,6 +61,8 @@ hu: attributes: budget: Költségvetés budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ hu: events: budget: Szerkesztett költségvetés help_click_to_edit: Szerkesztéshez kattintson ide. - help_currency_format: Megjelenített pénznem-értékek megjelenítési formátuma. %n helyébe a pénznem értéke, %u helyébe a neve kerül. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Adjon meg egy értéket az alapértelmezett díj felülírásához. label_budget_available: Rendelkezésre álló költségvetés label_budget_details: Költségvetés részletei diff --git a/modules/budgets/config/locales/crowdin/hy.yml b/modules/budgets/config/locales/crowdin/hy.yml index 42abeed6b75b..e96e7af67250 100644 --- a/modules/budgets/config/locales/crowdin/hy.yml +++ b/modules/budgets/config/locales/crowdin/hy.yml @@ -61,6 +61,8 @@ hy: attributes: budget: Բյուջե budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ hy: events: budget: Բյուջեն խմբագրվել է help_click_to_edit: Սեղմեք այստեղ խմբագրելու համար։ - help_currency_format: Ցուցադրվող արժույթի արժեքների ձևաչափը։ %n-ը փոխարինվում է արժույթի արժեքով, %u-ը՝ արժույթի միավորով։ + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Մուտքագրեք այստեղ արժեք՝ կանխադրված դրույքը վերասահմանելու համար։ label_budget_available: Հասանելի բյուջե label_budget_details: Բյուջեի մանրամասներ diff --git a/modules/budgets/config/locales/crowdin/id.yml b/modules/budgets/config/locales/crowdin/id.yml index d50c6a88fde6..899b431a6eb6 100644 --- a/modules/budgets/config/locales/crowdin/id.yml +++ b/modules/budgets/config/locales/crowdin/id.yml @@ -58,6 +58,8 @@ id: attributes: budget: Anggaran budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ id: events: budget: Buget telah di-edit help_click_to_edit: Klik untuk edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Masukkan nilai untuk mengubah rate default. label_budget_available: Anggaran yang tersedia label_budget_details: Rincian anggaran diff --git a/modules/budgets/config/locales/crowdin/it.yml b/modules/budgets/config/locales/crowdin/it.yml index 626263a136b8..818418ccd9df 100644 --- a/modules/budgets/config/locales/crowdin/it.yml +++ b/modules/budgets/config/locales/crowdin/it.yml @@ -61,6 +61,8 @@ it: attributes: budget: Bilancio budgets: + labor_budget_items: + no_rate_at_fixed_date: Nessuna tariffa oraria per il giorno %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ it: events: budget: Bilancio modificato help_click_to_edit: Clicca qui per modificare. - help_currency_format: Formato di visualizzazione dei valori in valuta. %n viene sostituito con il valore della valuta, %u viene sostituito con l'unità di valuta. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Immettere qui un valore per ignorare la tariffa di default. label_budget_available: Budget disponibile label_budget_details: Dettagli del budget diff --git a/modules/budgets/config/locales/crowdin/ja.yml b/modules/budgets/config/locales/crowdin/ja.yml index 9c5a87ea96b4..3f9c5d9dc62b 100644 --- a/modules/budgets/config/locales/crowdin/ja.yml +++ b/modules/budgets/config/locales/crowdin/ja.yml @@ -58,6 +58,8 @@ ja: attributes: budget: 予算 budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ ja: events: budget: 予算の編集 help_click_to_edit: 編集するにはここをクリックしてください。 - help_currency_format: 表示される通貨値の形式です。 %n は通貨の値に置き換えられ、%u は通貨の単位に置き換えられます。 + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: デフォルトレートを上書きするにはここに値を入力します。 label_budget_available: 利用可能な予算 label_budget_details: 予算の詳細 diff --git a/modules/budgets/config/locales/crowdin/ka.yml b/modules/budgets/config/locales/crowdin/ka.yml index 086a0f83f1b2..4a725fa989d3 100644 --- a/modules/budgets/config/locales/crowdin/ka.yml +++ b/modules/budgets/config/locales/crowdin/ka.yml @@ -61,6 +61,8 @@ ka: attributes: budget: ბიუჯეტი budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ ka: events: budget: ბიუჯეტი ჩასწორდა help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/kk.yml b/modules/budgets/config/locales/crowdin/kk.yml index bed730c7740e..d3dedec1390e 100644 --- a/modules/budgets/config/locales/crowdin/kk.yml +++ b/modules/budgets/config/locales/crowdin/kk.yml @@ -61,6 +61,8 @@ kk: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ kk: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ko.yml b/modules/budgets/config/locales/crowdin/ko.yml index c8315b8116d6..61fff0b323ea 100644 --- a/modules/budgets/config/locales/crowdin/ko.yml +++ b/modules/budgets/config/locales/crowdin/ko.yml @@ -58,6 +58,8 @@ ko: attributes: budget: 예산 budgets: + labor_budget_items: + no_rate_at_fixed_date: "%{date}에 시간당 요금 없음" widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ ko: events: budget: 예산 편집됨 help_click_to_edit: 편집하려면 여기를 클릭하세요. - help_currency_format: 표시된 통화 값의 형식입니다. %n은(는) 통화 값으로 바뀌고, %u은(는) 통화 단위로 바뀝니다. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: 기본 요금을 재정의하려면 여기에 값을 입력하세요. label_budget_available: 사용 가능한 예산 label_budget_details: 예산 세부 정보 diff --git a/modules/budgets/config/locales/crowdin/li.yml b/modules/budgets/config/locales/crowdin/li.yml index 038238595c77..6cae2ac270ed 100644 --- a/modules/budgets/config/locales/crowdin/li.yml +++ b/modules/budgets/config/locales/crowdin/li.yml @@ -61,6 +61,8 @@ li: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ li: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/lt.yml b/modules/budgets/config/locales/crowdin/lt.yml index 1c1f63e9b630..288cb6411ef6 100644 --- a/modules/budgets/config/locales/crowdin/lt.yml +++ b/modules/budgets/config/locales/crowdin/lt.yml @@ -67,6 +67,8 @@ lt: attributes: budget: Biudžetas budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ lt: events: budget: Biudžetas redaguotas help_click_to_edit: Spauskite čia norėdami redaguoti. - help_currency_format: Rodomos valiutos formatas. %n yra pakeičiamas valiutos reikšme, %u yra pakeičiamas valiutos vienetu. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Įveskite reikšmę, kad pakeistumėte numatytąjį koeficientą. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/lv.yml b/modules/budgets/config/locales/crowdin/lv.yml index ff2c2758b487..d836f7d24ec8 100644 --- a/modules/budgets/config/locales/crowdin/lv.yml +++ b/modules/budgets/config/locales/crowdin/lv.yml @@ -64,6 +64,8 @@ lv: attributes: budget: Budžets budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -109,7 +111,7 @@ lv: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/mn.yml b/modules/budgets/config/locales/crowdin/mn.yml index fbfbdf153e6c..3b5ede28df7b 100644 --- a/modules/budgets/config/locales/crowdin/mn.yml +++ b/modules/budgets/config/locales/crowdin/mn.yml @@ -61,6 +61,8 @@ mn: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ mn: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ms.yml b/modules/budgets/config/locales/crowdin/ms.yml index a7b23e8d0fc6..3a3bcf5c7d83 100644 --- a/modules/budgets/config/locales/crowdin/ms.yml +++ b/modules/budgets/config/locales/crowdin/ms.yml @@ -58,6 +58,8 @@ ms: attributes: budget: Anggaran budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ ms: events: budget: Anggaran yang telah diedit help_click_to_edit: Klik sini untuk mengedit. - help_currency_format: Format nilai mata wang yang dipaparkan. %n digantikan dengan nilai mata wang, %u digantikan dengan unit mata wang. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Masukkan nilai disini untuk gantikan kadar default. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/ne.yml b/modules/budgets/config/locales/crowdin/ne.yml index dabd9202336c..976355626b9f 100644 --- a/modules/budgets/config/locales/crowdin/ne.yml +++ b/modules/budgets/config/locales/crowdin/ne.yml @@ -61,6 +61,8 @@ ne: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ ne: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/nl.yml b/modules/budgets/config/locales/crowdin/nl.yml index 7237738696d9..2d276714d75d 100644 --- a/modules/budgets/config/locales/crowdin/nl.yml +++ b/modules/budgets/config/locales/crowdin/nl.yml @@ -61,6 +61,8 @@ nl: attributes: budget: Begroting budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ nl: events: budget: Begroting bewerkt help_click_to_edit: Klik hier om te bewerken. - help_currency_format: Formaat van getoonde valuta waarden. %n wordt vervangen door de valuta waarde, %u is vervangen door de valuta eenheid. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Voer hier een waarde in om de standaardkoers te overschrijven. label_budget_available: Beschikbaar budget label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/no.yml b/modules/budgets/config/locales/crowdin/no.yml index 29f846794abe..a4bb43fa4d2c 100644 --- a/modules/budgets/config/locales/crowdin/no.yml +++ b/modules/budgets/config/locales/crowdin/no.yml @@ -61,6 +61,8 @@ attributes: budget: Budsjett budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ events: budget: Budsjett endret help_click_to_edit: Klikk her for å redigere. - help_currency_format: Formatet på vist valuta. %n erstattes med valutaverdien, %u ertsattes av valutaenheten. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Skriv inn en verdi her for å overstyre standard sats. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/pl.yml b/modules/budgets/config/locales/crowdin/pl.yml index 4967b7a66617..3613d93fd805 100644 --- a/modules/budgets/config/locales/crowdin/pl.yml +++ b/modules/budgets/config/locales/crowdin/pl.yml @@ -67,6 +67,8 @@ pl: attributes: budget: Budżet budgets: + labor_budget_items: + no_rate_at_fixed_date: Brak stawki godzinowej w dniu %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ pl: events: budget: Budżet edytowany help_click_to_edit: Kliknij tutaj aby edytować. - help_currency_format: Format wyświetlanej waluty %n jest zastąpiony przez wartość waluty, %u którą jest zastąpiony jednostką walutową. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Podaj wartość tutaj aby zastąpić domyślną stawkę. label_budget_available: Dostępny budżet label_budget_details: Szczegóły budżetu diff --git a/modules/budgets/config/locales/crowdin/pt-BR.yml b/modules/budgets/config/locales/crowdin/pt-BR.yml index 54ec457af854..81568abf8c5c 100644 --- a/modules/budgets/config/locales/crowdin/pt-BR.yml +++ b/modules/budgets/config/locales/crowdin/pt-BR.yml @@ -61,6 +61,8 @@ pt-BR: attributes: budget: Orçamento budgets: + labor_budget_items: + no_rate_at_fixed_date: Nenhuma taxa horária em %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ pt-BR: events: budget: Orçamento editado help_click_to_edit: Clique aqui para editar. - help_currency_format: Formato exibidos de valores de moeda. %n é substituído com o valor da moeda, %u é substituído com a unidade da moeda. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Insira um valor aqui para substituir a taxa padrão. label_budget_available: Orçamento disponível label_budget_details: Detalhes de orçamento diff --git a/modules/budgets/config/locales/crowdin/pt-PT.yml b/modules/budgets/config/locales/crowdin/pt-PT.yml index 9901c3c3f674..c102a47a2b1a 100644 --- a/modules/budgets/config/locales/crowdin/pt-PT.yml +++ b/modules/budgets/config/locales/crowdin/pt-PT.yml @@ -61,6 +61,8 @@ pt-PT: attributes: budget: Orçamento budgets: + labor_budget_items: + no_rate_at_fixed_date: Não existe tarifa horária para %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ pt-PT: events: budget: Orçamento editado help_click_to_edit: Clique aqui para editar. - help_currency_format: Formato de valores de moedas exibidos. %n é substituído com o valor da moeda, %u é substituído com a unidade de moeda. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Insira um valor aqui para substituir a taxa por defeito. label_budget_available: Orçamento disponível label_budget_details: Detalhes do orçamento diff --git a/modules/budgets/config/locales/crowdin/ro.yml b/modules/budgets/config/locales/crowdin/ro.yml index f236c89a433b..f89ddb8892e8 100644 --- a/modules/budgets/config/locales/crowdin/ro.yml +++ b/modules/budgets/config/locales/crowdin/ro.yml @@ -64,6 +64,8 @@ ro: attributes: budget: Buget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -109,7 +111,7 @@ ro: events: budget: Buget editat help_click_to_edit: Câmpul %s este gol. Click aici pentru a-l edita. - help_currency_format: Formatul valorilor valutare afișate. %n este înlocuit cu valoarea monedei, %u este înlocuit cu unitatea monetară. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Introdu o valoare aici pentru a înlocui rata implicită. label_budget_available: Buget disponibil label_budget_details: Detalii buget diff --git a/modules/budgets/config/locales/crowdin/ru.yml b/modules/budgets/config/locales/crowdin/ru.yml index 8c50ba20c482..6020a162c4b2 100644 --- a/modules/budgets/config/locales/crowdin/ru.yml +++ b/modules/budgets/config/locales/crowdin/ru.yml @@ -67,6 +67,8 @@ ru: attributes: budget: Бюджет budgets: + labor_budget_items: + no_rate_at_fixed_date: Нет почасовой ставки на %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ ru: events: budget: Бюджет изменен help_click_to_edit: Нажмите здесь, чтобы править. - help_currency_format: Формат отображения денежных значений. %n заменяется значением валюты, %u заменяется денежной единицой. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Введите значение здесь для переопределения тарифа по умолчанию. label_budget_available: Доступный бюджет label_budget_details: Детали бюджета diff --git a/modules/budgets/config/locales/crowdin/rw.yml b/modules/budgets/config/locales/crowdin/rw.yml index f0c81cf30d4a..8834598ac76e 100644 --- a/modules/budgets/config/locales/crowdin/rw.yml +++ b/modules/budgets/config/locales/crowdin/rw.yml @@ -61,6 +61,8 @@ rw: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ rw: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/si.yml b/modules/budgets/config/locales/crowdin/si.yml index 3bceab3d8cf7..115e3415be16 100644 --- a/modules/budgets/config/locales/crowdin/si.yml +++ b/modules/budgets/config/locales/crowdin/si.yml @@ -61,6 +61,8 @@ si: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ si: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/sk.yml b/modules/budgets/config/locales/crowdin/sk.yml index 5877bde3150c..9f1e72246e22 100644 --- a/modules/budgets/config/locales/crowdin/sk.yml +++ b/modules/budgets/config/locales/crowdin/sk.yml @@ -67,6 +67,8 @@ sk: attributes: budget: Rozpočet budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ sk: events: budget: Rozpočet bol upravený help_click_to_edit: Kliknite tu pre editáciu. - help_currency_format: Formát zobrazených hodnôt mien. %n sa nahradí hodnotou meny, %u sa nahradí jednotkou meny. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Tu zadajte hodnotu, ak chcete zmeniť predvolenú sadzbu. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/sl.yml b/modules/budgets/config/locales/crowdin/sl.yml index 798a652a4e6b..9973dda843c1 100644 --- a/modules/budgets/config/locales/crowdin/sl.yml +++ b/modules/budgets/config/locales/crowdin/sl.yml @@ -67,6 +67,8 @@ sl: attributes: budget: Proračun budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ sl: events: budget: Proračun urejen help_click_to_edit: Kliknite tukaj, za urejanje - help_currency_format: Oblika prikazanih vrednosti valut. %n se nadomesti z vrednostjo valute, %u je zamenjan z enoto valute. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Vnesite vrednost, da nadomestite privzeto stopnjo. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/sr.yml b/modules/budgets/config/locales/crowdin/sr.yml index 6312ecab4e2a..2b9bc665da45 100644 --- a/modules/budgets/config/locales/crowdin/sr.yml +++ b/modules/budgets/config/locales/crowdin/sr.yml @@ -64,6 +64,8 @@ sr: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -109,7 +111,7 @@ sr: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/sv.yml b/modules/budgets/config/locales/crowdin/sv.yml index f2c41c8346e8..b32645e05dfb 100644 --- a/modules/budgets/config/locales/crowdin/sv.yml +++ b/modules/budgets/config/locales/crowdin/sv.yml @@ -61,6 +61,8 @@ sv: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: Inget timpris den %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ sv: events: budget: Budget redigerad help_click_to_edit: Klicka här för att redigera. - help_currency_format: Format på visade valutavärden. %n ersätts med valutavärdet, %u ersätts med valutaenheten. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Ange ett värde här om du vill åsidosätta standardtimpriset. label_budget_available: Budget tillgänglig label_budget_details: Detaljer om budgeten diff --git a/modules/budgets/config/locales/crowdin/th.yml b/modules/budgets/config/locales/crowdin/th.yml index 3d3781f31d34..9a5f68a9865d 100644 --- a/modules/budgets/config/locales/crowdin/th.yml +++ b/modules/budgets/config/locales/crowdin/th.yml @@ -58,6 +58,8 @@ th: attributes: budget: งบประมาณ budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ th: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/tr.yml b/modules/budgets/config/locales/crowdin/tr.yml index bf2a26d150b5..1e2dfdb05b80 100644 --- a/modules/budgets/config/locales/crowdin/tr.yml +++ b/modules/budgets/config/locales/crowdin/tr.yml @@ -61,6 +61,8 @@ tr: attributes: budget: Bütçe budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ tr: events: budget: Bütçe düzenlendi help_click_to_edit: Düzenlemek için buraya tıklayın. - help_currency_format: Görüntülenen para birimi değerlerinin biçimi. % n, para birimi değeri ile değiştirilir,% u ist para birimi yerine geçer.%u%n + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Varsayılan oranı geçersiz kılmak için buraya bir değer girin. label_budget_available: Mevcut bütçe label_budget_details: Bütçe ayrıntıları diff --git a/modules/budgets/config/locales/crowdin/uk.yml b/modules/budgets/config/locales/crowdin/uk.yml index 751f23ff86b1..fb84583d5e4b 100644 --- a/modules/budgets/config/locales/crowdin/uk.yml +++ b/modules/budgets/config/locales/crowdin/uk.yml @@ -67,6 +67,8 @@ uk: attributes: budget: Бюджет budgets: + labor_budget_items: + no_rate_at_fixed_date: 'Не вказано погодинну ставку для цієї дати: %{date}' widgets: budget_by_cost_type: blankslate: @@ -112,7 +114,7 @@ uk: events: budget: Бюджет відредаговано help_click_to_edit: Натисніть тут, щоб редагувати. - help_currency_format: Формат відображених валютних значень. %n замінюється на вартість валюти, %u це замінюється грошовою одиницею. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Введіть тут значення, щоб змінити стандартну швидкість. label_budget_available: Доступний бюджет label_budget_details: Деталі бюджету diff --git a/modules/budgets/config/locales/crowdin/uz.yml b/modules/budgets/config/locales/crowdin/uz.yml index af5d28f7d211..bb442541318c 100644 --- a/modules/budgets/config/locales/crowdin/uz.yml +++ b/modules/budgets/config/locales/crowdin/uz.yml @@ -61,6 +61,8 @@ uz: attributes: budget: Budget budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -106,7 +108,7 @@ uz: events: budget: Budget edited help_click_to_edit: Click here to edit. - help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Enter a value here to override the default rate. label_budget_available: Budget available label_budget_details: Budget details diff --git a/modules/budgets/config/locales/crowdin/vi.yml b/modules/budgets/config/locales/crowdin/vi.yml index 928674a7ea39..fbce7206c06c 100644 --- a/modules/budgets/config/locales/crowdin/vi.yml +++ b/modules/budgets/config/locales/crowdin/vi.yml @@ -58,6 +58,8 @@ vi: attributes: budget: Ngân sách budgets: + labor_budget_items: + no_rate_at_fixed_date: No hourly rate on %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ vi: events: budget: Đã chỉnh sửa ngân sách help_click_to_edit: Nhấn vào đây để chỉnh sửa. - help_currency_format: Định dạng của giá trị tiền tệ được hiển thị. %n được thay thế bằng giá trị tiền tệ, %u được thay thế bằng đơn vị tiền tệ. + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: Nhập một giá trị vào đây để ghi đè tỷ lệ mặc định. label_budget_available: Ngân sách có sẵn label_budget_details: Chi tiết ngân sách diff --git a/modules/budgets/config/locales/crowdin/zh-CN.yml b/modules/budgets/config/locales/crowdin/zh-CN.yml index 33d9e3d8b941..a4e8734cb842 100644 --- a/modules/budgets/config/locales/crowdin/zh-CN.yml +++ b/modules/budgets/config/locales/crowdin/zh-CN.yml @@ -58,6 +58,8 @@ zh-CN: attributes: budget: 预算 budgets: + labor_budget_items: + no_rate_at_fixed_date: "%{date}没有小时费率" widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ zh-CN: events: budget: 预算已编辑 help_click_to_edit: 单击此处进行编辑。 - help_currency_format: 已显示的货币值的格式。%n 替换为货币值,%u 替换为货币单位。 + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: 在此处输入值覆盖基本费率。 label_budget_available: 可用预算 label_budget_details: 预算详细信息 diff --git a/modules/budgets/config/locales/crowdin/zh-TW.yml b/modules/budgets/config/locales/crowdin/zh-TW.yml index ca4f2f2a4e8c..51b564960ea8 100644 --- a/modules/budgets/config/locales/crowdin/zh-TW.yml +++ b/modules/budgets/config/locales/crowdin/zh-TW.yml @@ -58,6 +58,8 @@ zh-TW: attributes: budget: 預算 budgets: + labor_budget_items: + no_rate_at_fixed_date: 未列出每小時費率 %{date} widgets: budget_by_cost_type: blankslate: @@ -103,7 +105,7 @@ zh-TW: events: budget: 預算已編輯 help_click_to_edit: 點擊這裡編輯 - help_currency_format: 已顯示的貨幣值的格式。%n 替換為貨幣值,%u 替換為貨幣單位。 + help_currency_format: Format of displayed currency values. %n is replaced with the currency value, %u is replaced with the currency unit. help_override_rate: 在此輸入一個值以覆蓋預設費率。 label_budget_available: 可用預算 label_budget_details: 預算細節 diff --git a/modules/costs/config/locales/crowdin/af.yml b/modules/costs/config/locales/crowdin/af.yml index 97bace8d102b..b40dcfa305ca 100644 --- a/modules/costs/config/locales/crowdin/af.yml +++ b/modules/costs/config/locales/crowdin/af.yml @@ -72,6 +72,10 @@ af: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ af: button_add_time_entry: Log tyd button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ af: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ af: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Dag label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ af: label_less_or_equal: "<=" label_list: Lys label_log_costs: Log unit costs - label_month: Maand - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Volgende week - label_next_workweek: Next work week label_no: Nee - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opsies label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Vorige week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Wys label_specific_day: Day %{day} @@ -248,15 +246,14 @@ af: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: Ja notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ af: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ af: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/ar.yml b/modules/costs/config/locales/crowdin/ar.yml index 9ace812d6a2b..b687127e7c31 100644 --- a/modules/costs/config/locales/crowdin/ar.yml +++ b/modules/costs/config/locales/crowdin/ar.yml @@ -72,6 +72,10 @@ ar: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -176,7 +180,6 @@ ar: button_add_time_entry: وقت السجل button_log_costs: سجل تكاليف الوحدة button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: حُجِِز على المشروع @@ -210,9 +213,13 @@ ar: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -243,9 +250,9 @@ ar: label_costlog: تكاليف الوحدة المسجلة label_costs: التكاليف label_costs_per_page: التكاليف للصفحة + label_current: Current label_current_default_rate: المعدل الافتراضي الحالي label_date_on: على - label_day: اليوم label_defaults_and_limits: Defaults and limits label_deleted_cost_types: أنواع التكلفة المحذوفة label_display_cost_entries: عرض تكاليف الوحدة @@ -261,21 +268,12 @@ ar: label_less_or_equal: "=>" label_list: القائمة label_log_costs: سجل تكاليف الوحدة - label_month: شهر - label_my_time_tracking: تتبع الوقت الخاص بي label_new_time_entry_activity: New time entry activity - label_next_day: اليوم التالي - label_next_month: الشهر القادم - label_next_week: الأسبوع القادم - label_next_workweek: Next work week label_no: لا - label_no_time: لا يوجد وقت مسجل + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: الخيارات label_overall_costs: التكاليف الإجمالية - label_previous_day: Previous day - label_previous_month: الشهر السابق - label_previous_week: الأسبوع الماضي - label_previous_workweek: Previous work week label_rate_plural: الأسعار label_show: إظهار label_specific_day: Day %{day} @@ -284,15 +282,14 @@ ar: label_status_finished: مكتمل label_time: الوقت label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: اليوم label_units: وحدات التكلفة label_until: حتى + label_using_current_default_rate: Using current default rate label_valid_from: صالح من - label_view_mode_switcher: Change view label_work_package_filter_add: أضِف عامل تصفية لمجموعة العمل - label_workweek: أسبوع العمل label_yes: نعم notice_cost_logged_successfully: تمّ تسجيل تكلفة الوحدة بنجاح. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -308,6 +305,10 @@ ar: permission_edit_rates: تعديل الأسعار permission_log_costs: حجز تكاليف الوحدة permission_log_own_costs: حجز تكاليف الوحدة لنفسه + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: عرض تكاليف الحجز permission_view_cost_rates: عرض معدلات التكلفة permission_view_hourly_rates: عرض جميع الأجور الساعيّة @@ -345,6 +346,11 @@ ar: text_destroy_cost_entries_question: "%{cost_entries} تم الإبلاغ عنها في مجموعات العمل التي توشك أن تلغيها. ماذا تريد أن تفعل؟" text_destroy_time_and_cost_entries: إلغاء الساعات والتكاليف التي تم الإبلاغ عنها text_destroy_time_and_cost_entries_question: "%{hours} ساعات، %{cost_entries} تم الإبلاغ عنها في مجموعات العمل التي توشك على إلغائها. ماذا تريد أن تفعل؟" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'إعادة تعيين الساعات والتكاليف التي تم التبليغ عنها لمجموعة العمل هذه:' text_warning_hidden_elements: من الممكن أنه تمّ استبعاد بعض الإدخالات من التجميع. total_times: diff --git a/modules/costs/config/locales/crowdin/az.yml b/modules/costs/config/locales/crowdin/az.yml index a97536eb6847..1f691ef7e853 100644 --- a/modules/costs/config/locales/crowdin/az.yml +++ b/modules/costs/config/locales/crowdin/az.yml @@ -72,6 +72,10 @@ az: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ az: button_add_time_entry: Jurnal vaxtı button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ az: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ az: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ az: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Seçimlər label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ az: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ az: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ az: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/be.yml b/modules/costs/config/locales/crowdin/be.yml index d639984c996c..999b0332c002 100644 --- a/modules/costs/config/locales/crowdin/be.yml +++ b/modules/costs/config/locales/crowdin/be.yml @@ -72,6 +72,10 @@ be: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -158,7 +162,6 @@ be: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -192,9 +195,13 @@ be: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ be: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -243,21 +250,12 @@ be: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -266,15 +264,14 @@ be: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -290,6 +287,10 @@ be: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -327,6 +328,11 @@ be: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/bg.yml b/modules/costs/config/locales/crowdin/bg.yml index df930a988813..25fa4a77a438 100644 --- a/modules/costs/config/locales/crowdin/bg.yml +++ b/modules/costs/config/locales/crowdin/bg.yml @@ -72,6 +72,10 @@ bg: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ bg: button_add_time_entry: Отчетено време button_log_costs: Разходи за единична регистрация button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Разходи за единична регистрация @@ -174,9 +177,13 @@ bg: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ bg: label_costlog: Регистрирани единични разходи label_costs: Разходи label_costs_per_page: Разходи за страница + label_current: Current label_current_default_rate: Текуща ставка по подразбиране label_date_on: на - label_day: Ден label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Изтрити видове разходи label_display_cost_entries: Показване на единични разходи @@ -225,21 +232,12 @@ bg: label_less_or_equal: "<=" label_list: Списък label_log_costs: Разходи за единична регистрация - label_month: Месец - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Следващата седмица - label_next_workweek: Next work week label_no: Не - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Опции label_overall_costs: Общи разходи - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Предишната седмица - label_previous_workweek: Previous work week label_rate_plural: Цени label_show: Покажи label_specific_day: Day %{day} @@ -248,15 +246,14 @@ bg: label_status_finished: Завършено label_time: Час label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Днес label_units: Разходни единици label_until: докато + label_using_current_default_rate: Using current default rate label_valid_from: Валиден от - label_view_mode_switcher: Change view label_work_package_filter_add: Добавете филтър за работен пакет - label_workweek: Work week label_yes: Да notice_cost_logged_successfully: Единичната цена е регистрирана успешно. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ bg: permission_edit_rates: Редактиране на ставките permission_log_costs: Резервирайте единични разходи permission_log_own_costs: Резервирайте единичните разходи за себе си + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Вижте резервираните разходи permission_view_cost_rates: Преглед на цените permission_view_hourly_rates: Вижте всички почасови тарифи @@ -309,6 +310,11 @@ bg: text_destroy_cost_entries_question: "%{cost_entries} бяха отчетени в работните пакети, които ще изтриете. Какво искаш да правиш?" text_destroy_time_and_cost_entries: Изтрийте отчетените часове и разходи text_destroy_time_and_cost_entries_question: "%{hours} часа, %{cost_entries} бяха отчетени в работните пакети, които предстои да изтриете. Какво искаш да правиш?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Преназначете отчетените часове и разходи към този работен пакет:' text_warning_hidden_elements: Някои записи могат да бъдат изключени от обобщаването. total_times: diff --git a/modules/costs/config/locales/crowdin/ca.yml b/modules/costs/config/locales/crowdin/ca.yml index d028d0dc9bc1..19007d49eb2d 100644 --- a/modules/costs/config/locales/crowdin/ca.yml +++ b/modules/costs/config/locales/crowdin/ca.yml @@ -72,6 +72,10 @@ ca: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ ca: button_add_time_entry: Temps de registre button_log_costs: Registra unitat de costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Registrat a un projecte @@ -174,9 +177,13 @@ ca: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ ca: label_costlog: Costs d'unitat registrats label_costs: Costs label_costs_per_page: Costs per pàgina + label_current: Current label_current_default_rate: Tarifa actual per defecte label_date_on: en - label_day: Dia label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Estils de cost eliminats label_display_cost_entries: Mostra les unitats de cost @@ -225,21 +232,12 @@ ca: label_less_or_equal: "<=" label_list: Llista label_log_costs: 'Registra costs d''unitats ' - label_month: Mes - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Setmana següent - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opcions label_overall_costs: Costs generals - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Setmana anterior - label_previous_workweek: Previous work week label_rate_plural: Tarifes label_show: Mostra label_specific_day: Day %{day} @@ -248,15 +246,14 @@ ca: label_status_finished: Finalitzat label_time: Hora label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Avui label_units: Cost d'unitat label_until: fins a + label_using_current_default_rate: Using current default rate label_valid_from: Vàlid des de - label_view_mode_switcher: Change view label_work_package_filter_add: Afegeix un filtre de paquet de treball - label_workweek: Setmana laboral label_yes: Si notice_cost_logged_successfully: Cost d'unitat registrat correctament. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ ca: permission_edit_rates: Editar tarifes permission_log_costs: Registra costs d'unitat permission_log_own_costs: Registra costs d'unitat per un mateix + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Visualitza costs registrats permission_view_cost_rates: Visualitza tarifes de cost permission_view_hourly_rates: Visualitza totes les tarifes per hora @@ -309,6 +310,11 @@ ca: text_destroy_cost_entries_question: "%{cost_entries} van ser reportades al paquet de treball que vols eliminar. Què vols fer?" text_destroy_time_and_cost_entries: Eliminar hores i costs reportats text_destroy_time_and_cost_entries_question: "%{hours} hores, %{cost_entries} van ser reportades al paquet de treball que vols eliminar. Què vols fer?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassignar les hores i costs reportats a aquest paquet de treball:' text_warning_hidden_elements: Algunes entrades poden ser excloses de l'agregació total_times: diff --git a/modules/costs/config/locales/crowdin/ckb-IR.yml b/modules/costs/config/locales/crowdin/ckb-IR.yml index 8f277b7ad0fa..049f1ef25b8c 100644 --- a/modules/costs/config/locales/crowdin/ckb-IR.yml +++ b/modules/costs/config/locales/crowdin/ckb-IR.yml @@ -72,6 +72,10 @@ ckb-IR: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ ckb-IR: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ ckb-IR: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ ckb-IR: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ ckb-IR: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ ckb-IR: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ ckb-IR: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ ckb-IR: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/cs.yml b/modules/costs/config/locales/crowdin/cs.yml index a514d235d57a..3412d8051308 100644 --- a/modules/costs/config/locales/crowdin/cs.yml +++ b/modules/costs/config/locales/crowdin/cs.yml @@ -72,6 +72,10 @@ cs: attributes: project_ids: blank: Prosím vyberte projekt. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -158,7 +162,6 @@ cs: button_add_time_entry: Vykázat čas button_log_costs: Logovat jednotkové náklady button_log_time: Log - button_stop_timer: Zastavit časovač button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Rezervováno v projektu @@ -192,9 +195,13 @@ cs: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ cs: label_costlog: Logované jednotkové náklady label_costs: Náklady label_costs_per_page: Náklady na stránku + label_current: Current label_current_default_rate: Aktuální výchozí sazba label_date_on: '' - label_day: Den label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Odstraněné typy nákladů label_display_cost_entries: Zobrazit jednotkové náklady @@ -243,21 +250,12 @@ cs: label_less_or_equal: "<=" label_list: Seznam label_log_costs: Logovat jednotkové náklady - label_month: Měsíc - label_my_time_tracking: Sledování mého času label_new_time_entry_activity: Nová časová položka - label_next_day: Následující den - label_next_month: Následující měsíc - label_next_week: Příští týden - label_next_workweek: Příští pracovní týden label_no: Ne - label_no_time: Není zaznamenán žádný čas + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Možnosti label_overall_costs: Celkové náklady - label_previous_day: Předchozí den - label_previous_month: Předchozí měsíc - label_previous_week: Předchozí týden - label_previous_workweek: Předchozí pracovní týden label_rate_plural: Kurzy label_show: Zobrazit label_specific_day: Den %{day} @@ -266,15 +264,14 @@ cs: label_status_finished: Ukončeno label_time: Čas label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Začalo v %{time} label_today_capitalized: Dnes label_units: Jednotky nákladu label_until: do + label_using_current_default_rate: Using current default rate label_valid_from: Platné od - label_view_mode_switcher: Změnit zobrazení label_work_package_filter_add: Přidat filtr pracovního balíčku - label_workweek: Pracovní týden label_yes: Ano notice_cost_logged_successfully: Jednotková cena byla úspěšně zaznamenána. notice_different_time_zones: Tento uživatel má jiné časové pásmo (%{tz}). Čas bude zaznamenán pomocí svého časového pásma. @@ -290,6 +287,10 @@ cs: permission_edit_rates: Upravit sazby permission_log_costs: Jednotkové náklady na knihu permission_log_own_costs: Knihovní jednotkové náklady + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Zobrazit rezervované náklady permission_view_cost_rates: Zobrazit nákladové sazby permission_view_hourly_rates: Zobrazit všechny hodinové sazby @@ -327,6 +328,11 @@ cs: text_destroy_cost_entries_question: "%{cost_entries} byl nahlášen k pracovním balíčkům, které se chystáte odstranit. Co chcete udělat?" text_destroy_time_and_cost_entries: Odstranit nahlášené hodiny a náklady text_destroy_time_and_cost_entries_question: "%{hours} hodin, %{cost_entries} byly nahlášeny v pracovních balíčcích, které se chystáte odstranit. Co chcete udělat?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Přiřadit k tomuto pracovnímu balíčku nahlášené hodiny a náklady:' text_warning_hidden_elements: Některé položky mohly být z agregace vyloučeny. total_times: diff --git a/modules/costs/config/locales/crowdin/da.yml b/modules/costs/config/locales/crowdin/da.yml index 20f27075aa43..1a422a2ca805 100644 --- a/modules/costs/config/locales/crowdin/da.yml +++ b/modules/costs/config/locales/crowdin/da.yml @@ -41,7 +41,7 @@ da: rate: rate: Sats time_entry: - activity: Aktivivtet + activity: Aktivitet comments: Kommentar end_time: Sluttidspunkt entity: Logget til @@ -72,6 +72,10 @@ da: attributes: project_ids: blank: Vælg et projekt. + rate: + attributes: + principal: + invalid: skal være en bruger eller en pladsholder-bruger. time_entry: attributes: entity: @@ -137,10 +141,9 @@ da: valid_from: Gældende fra button_add_activity: Aktivitet button_add_rate: Tilføj sats - button_add_time_entry: Tidsregistrering + button_add_time_entry: Registrer tid button_log_costs: Registrér enhedsomkostninger button_log_time: Registrer - button_stop_timer: Stop stopur button_update_limits: Opdater grænser button_update_start_finish_times: Opdater start- og sluttider caption_booked_on_project: Reservationer til projekt @@ -174,9 +177,13 @@ da: cost_types: for_all_projects_hint: Omkostningstypen er slået til i alle projekter. heading: Omkostningstyper + hint: Vælg, hvilke omkostningstyper der vises i projektet, når medlemmer registrerer omkostninger. in_use_hint: Omkostningstypen kan ikke slås fra, fordi der allerede er registreret omkostninger for den i projektet. none_active: Der er ingen aktive omkostningstyper i projektet i øjeblikket. time_and_costs: Tid og omkostninger + time_entry_activities: + heading: Tidsregistrering + hint: Vælg, hvilke aktiviteter til tidsregistrering der vises i projektet, når medlemmer registrerer tid. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ da: label_costlog: Registrerede enhedsomkostninger label_costs: Omkostninger label_costs_per_page: Omkostninger pr. side + label_current: Nuværende label_current_default_rate: Nuværende standardsats label_date_on: d. - label_day: Dag label_defaults_and_limits: Standarder og grænser label_deleted_cost_types: Slettede omkostningstyper label_display_cost_entries: Vis enhedsomkostninger @@ -225,21 +232,12 @@ da: label_less_or_equal: "<=" label_list: Liste label_log_costs: Registrer enhedsomkostninger - label_month: Måned - label_my_time_tracking: Min tidsregistrering label_new_time_entry_activity: Ny tidsregistreringsaktivitet - label_next_day: Næste dag - label_next_month: Næste måned - label_next_week: Næste uge - label_next_workweek: Næste arbejdsuge label_no: Nej - label_no_time: Ingen tid registreret + label_no_default_rate: Der er ikke angivet nogen standardsats + label_no_project_rate: Der er ikke angivet nogen sats for projektet label_option_plural: Valgmuligheder label_overall_costs: Samlede omkostninger - label_previous_day: Forrige dag - label_previous_month: Forrige måned - label_previous_week: Foregående uge - label_previous_workweek: Forrige arbejdsuge label_rate_plural: Satser label_show: Vis label_specific_day: Dag %{day} @@ -248,15 +246,14 @@ da: label_status_finished: Afsluttet label_time: Tidspunkt label_time_entry_activity_form_description: Ændringer i denne tidsregistreringsaktivitet vil blive afspejlet i alle projekter, hvor den er aktiveret. + label_time_entry_custom_field_plural: Brugerdefinerede felter til tidsregistrering label_time_entry_restrictions: Grænser - label_timer_since: Startede %{time} label_today_capitalized: I dag label_units: Omkostningsenheder label_until: indtil + label_using_current_default_rate: Bruger den nuværende standardsats label_valid_from: Gældende fra - label_view_mode_switcher: Skift visning label_work_package_filter_add: Tilføj arbejdspakkefilter - label_workweek: Arbejdsuge label_yes: Ja notice_cost_logged_successfully: Enhedsomkostningerne er registreret. notice_different_time_zones: Brugeren har en anden tidszone (%{tz}). Tiden registreres i brugerens tidszone. @@ -272,6 +269,10 @@ da: permission_edit_rates: Redigér satser permission_log_costs: Reservationsenhedsomkostninger permission_log_own_costs: Reservationsenhedsomkostninger for sig selv + permission_manage_default_hourly_rates: Administrer standardtimesatser + permission_manage_default_hourly_rates_explanation: 'Giver mulighed for at tilføje, ændre og slette standardtimesatser for brugere og pladsholder-brugere. + + ' permission_view_cost_entries: Se reservationsomkostninger permission_view_cost_rates: Se omostningssatser permission_view_hourly_rates: Se alle timesatser @@ -309,6 +310,11 @@ da: text_destroy_cost_entries_question: "%{cost_entries} blev indberettet for de arbejdspakker, som du er ved at slette. Hvad ønsker du at gøre?" text_destroy_time_and_cost_entries: Slet indberettede timer og omkostninger text_destroy_time_and_cost_entries_question: "%{hours} timer, %{cost_entries} blev indberettet på de arbejdspakker, som du er ved at slette. Hvad ønsker du at gøre?" + text_hourly_rate_destroy_confirmation: Satsen på %{rate} med gyldighed fra %{valid_from} slettes. Omkostninger, der er bogført på den, genberegnes med den sats, der så gælder. + text_hourly_rate_destroy_confirmation_checkbox_label: Jeg forstår, at handlingen ikke kan fortrydes. + text_hourly_rate_recalculation: Satsen gælder fra sin startdato, indtil en senere sats træder i kraft. Hvis du ændrer den, genberegnes også eksisterende tidsregistreringer og budgetter i perioden. + text_no_default_rate: Standardsatsen bruges i alle projekter, hvor brugeren ikke har en bestemt sats. + text_no_project_rate: Projektet bruger den nuværende standardsats. text_reassign_time_and_cost_entries: 'Gentildel indberettede timer og omkostninger til denne arbejdspakke:' text_warning_hidden_elements: Visse angivelser kan været blevet ekskluderet fra sammenlægning. total_times: diff --git a/modules/costs/config/locales/crowdin/de.yml b/modules/costs/config/locales/crowdin/de.yml index cd7ae745d9ca..62b1482b68d0 100644 --- a/modules/costs/config/locales/crowdin/de.yml +++ b/modules/costs/config/locales/crowdin/de.yml @@ -72,6 +72,10 @@ de: attributes: project_ids: blank: Bitte wählen Sie ein Projekt aus. + rate: + attributes: + principal: + invalid: muss ein Benutzer oder ein Platzhalter sein. time_entry: attributes: entity: @@ -140,7 +144,6 @@ de: button_add_time_entry: Zeit buchen button_log_costs: Stückkosten buchen button_log_time: Buchen - button_stop_timer: Timer stoppen button_update_limits: Beschränkungen bearbeiten button_update_start_finish_times: Start- und Endzeiten bearbeiten caption_booked_on_project: Auf das Projekt gebucht @@ -174,9 +177,13 @@ de: cost_types: for_all_projects_hint: Diese Kostenart ist in allen Projekten aktiviert. heading: Kostentypen + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Diese Kostenart kann nicht deaktiviert werden, da in diesem Projekt bereits Kosten dafür erfasst wurden. none_active: In diesem Projekt sind derzeit keine Kostenarten aktiv. time_and_costs: Zeit und Kosten + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ de: label_costlog: Gebuchte Stückkosten label_costs: Kosten label_costs_per_page: Kosten dieser Seite + label_current: Aktuell label_current_default_rate: Aktueller Standardsatz label_date_on: am - label_day: Tag label_defaults_and_limits: Standardwerte und Beschränkungen label_deleted_cost_types: Gelöschte Kostentypen label_display_cost_entries: Stückkosten anzeigen @@ -225,21 +232,12 @@ de: label_less_or_equal: "<=" label_list: Liste label_log_costs: Stückkosten buchen - label_month: Monat - label_my_time_tracking: Meine Zeiterfassung label_new_time_entry_activity: Neue Aktivität für Zeiterfassung - label_next_day: Nächster Tag - label_next_month: Nächster Monat - label_next_week: Woche vor - label_next_workweek: Nächste Arbeitswoche label_no: Nein - label_no_time: Keine Zeit erfasst + label_no_default_rate: Kein Standardsatz festgelegt + label_no_project_rate: Kein Standardsatz für dieses Projekt festgelegt label_option_plural: Optionen label_overall_costs: Gesamtkosten - label_previous_day: Vorheriger Tag - label_previous_month: Vorheriger Monat - label_previous_week: Woche zurück - label_previous_workweek: Vorherige Arbeitswoche label_rate_plural: Sätze label_show: Anzeigen label_specific_day: Tag %{day} @@ -248,15 +246,14 @@ de: label_status_finished: Abgeschlossen label_time: Zeit label_time_entry_activity_form_description: Änderungen an dieser Aktivität für Zeitbuchungen werden in allen verwendenden Projekten sichtbar. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Beschränkungen - label_timer_since: Begonnen um %{time} label_today_capitalized: Heute label_units: Einheiten label_until: bis + label_using_current_default_rate: Unter Verwendung des aktuellen Standardsatzes label_valid_from: Gültig ab - label_view_mode_switcher: Ansicht ändern label_work_package_filter_add: Ticketfilter hinzufügen - label_workweek: Arbeitswoche label_yes: Ja notice_cost_logged_successfully: Stückkosten erfolgreich gebucht. notice_different_time_zones: Diese Person hat eine andere Zeitzone (%{tz}). Die Zeit wird unter Verwendung seiner Zeitzone protokolliert. @@ -272,6 +269,10 @@ de: permission_edit_rates: Stundensätze editieren permission_log_costs: Stückkosten buchen permission_log_own_costs: Eigene Stückkosten buchen + permission_manage_default_hourly_rates: Standard-Stundensätze verwalten + permission_manage_default_hourly_rates_explanation: 'Ermöglicht das Hinzufügen, Ändern und Löschen der Standardstundensätze von Benutzern und Platzhaltern. + + ' permission_view_cost_entries: Gebuchte Kosten ansehen permission_view_cost_rates: Stückkosten ansehen permission_view_hourly_rates: Alle Stundensätze ansehen @@ -292,7 +293,7 @@ de: setting_costs_currency_format_suffix: Nach der Zahl (z.B. 100 EUR) setting_enforce_tracking_start_and_end_times: Start- und Endzeiten erforderlich setting_enforce_tracking_start_and_end_times_caption: Erfordert, dass bei Zeitbuchungen genaue Start- und Endzeiten erfasst werden. - setting_enforce_without_allow: Start- und Endzeiten können nicht verpflichtend erfasst werden, ohne die Erfassung zu erlauben + setting_enforce_without_allow: Start und Endzeiten können nur erforderlich sein, wenn ihre Angabe erlaubt ist setting_time_entries_limit_to_user_working_hours: Auf die Arbeitszeit des Benutzers beschränken setting_time_entries_limit_to_user_working_hours_caption: Begrenzt die Anzahl der buchbaren Stunden auf die hinterlegten Arbeitszeiten des Benutzers. Wenn keine Arbeitszeiten hinterlegt sind, hat diese Einstellung keine Auswirkung. setting_time_entries_max_hours_per_day: Maximale Stundenzahl pro Tag @@ -309,6 +310,11 @@ de: text_destroy_cost_entries_question: Es wurden bereits %{cost_entries} auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen? text_destroy_time_and_cost_entries: Gebuchte Aufwände löschen text_destroy_time_and_cost_entries_question: Es wurden bereits %{hours} Stunden sowie %{cost_entries} auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen? + text_hourly_rate_destroy_confirmation: Der Tarif von %{rate}, der ab %{valid_from} gilt, wird gelöscht. Die darauf verbuchten Kosten werden mit dem dann geltenden Tarif neu berechnet. + text_hourly_rate_destroy_confirmation_checkbox_label: Ich verstehe, dass diese Aktion nicht rückgängig gemacht werden kann. + text_hourly_rate_recalculation: Dieser Satz gilt vom Datum des Inkrafttretens bis zum Inkrafttreten eines späteren Satzes. Bei einer Änderung werden auch die bestehenden Zeiteinträge und Budgets in diesem Zeitraum neu berechnet. + text_no_default_rate: Der Standardsatz wird in allen Projekten verwendet, in denen für den Benutzer kein spezifischer Satz festgelegt ist. + text_no_project_rate: Dieses Projekt wird den aktuellen Standardsatz verwenden. text_reassign_time_and_cost_entries: 'Gebuchte Aufwände diesem Ticket zuweisen:' text_warning_hidden_elements: Es wurden möglicherweise nicht alle Einträge berücksichtigt. total_times: diff --git a/modules/costs/config/locales/crowdin/el.yml b/modules/costs/config/locales/crowdin/el.yml index d27e4eb48316..418de2cb30d7 100644 --- a/modules/costs/config/locales/crowdin/el.yml +++ b/modules/costs/config/locales/crowdin/el.yml @@ -72,6 +72,10 @@ el: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ el: button_add_time_entry: Καταγραφή χρόνου button_log_costs: Καταγραφή κόστους μονάδας button_log_time: Αρχείο καταγραφής - button_stop_timer: Διακοπή χρονόμετρου button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Κλείστηκαν στο έργο @@ -174,9 +177,13 @@ el: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ el: label_costlog: Καταγεγραμμένο κόστος μονάδας label_costs: Κόστος label_costs_per_page: Κόστος ανά σελίδα + label_current: Current label_current_default_rate: Τρέχουσα προεπιλεγμένη αμοιβή label_date_on: σε - label_day: Ημέρα label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Διαγραμμένοι τύποι κόστους label_display_cost_entries: Εμφάνιση μονάδων κόστους @@ -225,21 +232,12 @@ el: label_less_or_equal: "<=" label_list: Προβολή λίστας label_log_costs: Καταγραφή κόστους μονάδας - label_month: Μήνας - label_my_time_tracking: Η παρακολούθηση χρόνου μου label_new_time_entry_activity: New time entry activity - label_next_day: Επόμενη μέρα - label_next_month: Επόμενος μήνας - label_next_week: Επόμενη εβδομάδα - label_next_workweek: Επόμενη εβδομάδα εργασίας label_no: Όχι - label_no_time: Δεν υπάρχει καταχωρημένος χρόνος + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Επιλογές label_overall_costs: Συνολικό κόστος - label_previous_day: Προηγούμενη μέρα - label_previous_month: Προηγούμενος μήνας - label_previous_week: Προηγούμενη εβδομάδα - label_previous_workweek: Προηγούμενη εβδομάδα εργασίας label_rate_plural: Αμοιβές label_show: Εμφάνιση label_specific_day: Day %{day} @@ -248,15 +246,14 @@ el: label_status_finished: Ολοκληρωμένο label_time: Ώρα label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: 'Σήμερα ' label_units: Μονάδες κόστους label_until: μέχρι + label_using_current_default_rate: Using current default rate label_valid_from: Έγκυρο από - label_view_mode_switcher: Change view label_work_package_filter_add: Προσθήκη φίλτρου πακέτου εργασίας - label_workweek: Work week label_yes: Ναι notice_cost_logged_successfully: Η μονάδα κόστους καταγράφηκε επιτυχώς. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ el: permission_edit_rates: Επεξεργασία αμοιβών permission_log_costs: Κράτηση κόστους μονάδας permission_log_own_costs: Κράτηση κόστους μονάδα για τον εαυτό του + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Εμφάνιση κλεισμένου κόστους permission_view_cost_rates: Εμφάνιση κόστους αμοιβών permission_view_hourly_rates: Εμφάνιση όλων των ωριαίων αμοιβών @@ -309,6 +310,11 @@ el: text_destroy_cost_entries_question: "%{cost_entries} αναφέρθηκαν στα πακέτα εργασίας που πρόκειται να διαγράψετε. Τι θέλετε να κάνετε;" text_destroy_time_and_cost_entries: Διαγραφή αναφερόμενων ωρών και κόστους text_destroy_time_and_cost_entries_question: "%{hours} ώρες, %{cost_entries} αναφέρθηκαν στα πακέτα εργασίας που πρόκειται να διαγράψετε. Τι θέλετε να κάνετε;" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Επανάθεση αναφερόμενων ωρών και κόστους σε αυτό το πακέτο εργασίας:' text_warning_hidden_elements: Μερικές καταχωρήσεις μπορεί να έχουν εξαιρεθεί από την συνάθροιση. total_times: diff --git a/modules/costs/config/locales/crowdin/eo.yml b/modules/costs/config/locales/crowdin/eo.yml index a1ef796ad53b..d158617e0f58 100644 --- a/modules/costs/config/locales/crowdin/eo.yml +++ b/modules/costs/config/locales/crowdin/eo.yml @@ -72,6 +72,10 @@ eo: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ eo: button_add_time_entry: Tempoprotokolo button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ eo: cost_types: for_all_projects_hint: Ĉi tiu kostospeco estas ŝaltata en ĉiuj projektoj. heading: Kostospecoj + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: Neniuj kostospecoj estas nuntempe aktivaj en ĉi tiu projekto. time_and_costs: Tempo kaj kostoj + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ eo: label_costlog: Logged unit costs label_costs: Kostoj label_costs_per_page: Kostoj po paĝo + label_current: Current label_current_default_rate: Current default rate label_date_on: je - label_day: Tago label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ eo: label_less_or_equal: "<=" label_list: Listo label_log_costs: Log unit costs - label_month: Monato - label_my_time_tracking: Mia tempospurado label_new_time_entry_activity: New time entry activity - label_next_day: Proksima tago - label_next_month: Proksima monato - label_next_week: Sekva semajno - label_next_workweek: Venonta laborsemajno label_no: Ne - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opcioj label_overall_costs: Entutaj kostoj - label_previous_day: Previous day - label_previous_month: Antaŭa monato - label_previous_week: Antaŭa semajno - label_previous_workweek: Antaŭa laborsemajno label_rate_plural: Rates label_show: Montri label_specific_day: Tago %{day} @@ -248,15 +246,14 @@ eo: label_status_finished: Finita label_time: Tempo label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Hodiaŭ label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Aldoni filtrilon por laborpakaĵoj - label_workweek: Laborsemajno label_yes: Jes notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ eo: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ eo: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/es.yml b/modules/costs/config/locales/crowdin/es.yml index 1c725b8a2d6a..c6ea123ae4df 100644 --- a/modules/costs/config/locales/crowdin/es.yml +++ b/modules/costs/config/locales/crowdin/es.yml @@ -72,6 +72,10 @@ es: attributes: project_ids: blank: Selecciona un proyecto. + rate: + attributes: + principal: + invalid: debe ser un usuario o un usuario comodín. time_entry: attributes: entity: @@ -140,7 +144,6 @@ es: button_add_time_entry: Registro de tiempo button_log_costs: Registrar costos unitarios button_log_time: Registro - button_stop_timer: Detener temporizador button_update_limits: Actualizar límites button_update_start_finish_times: Actualizar horas de inicio y finalización caption_booked_on_project: Reservados en proyecto @@ -174,9 +177,13 @@ es: cost_types: for_all_projects_hint: Este tipo de coste está habilitado en todos los proyectos. heading: Tipos de costos + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Este tipo de coste no se puede desactivar porque los costes ya se han registrado en este proyecto. none_active: Actualmente no hay tipos de coste activos en este proyecto. time_and_costs: Tiempo y costos + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ es: label_costlog: Costos unitarios registrados label_costs: Costes label_costs_per_page: Costos por página + label_current: Actual label_current_default_rate: tasa de morosidad actual label_date_on: en - label_day: Día label_defaults_and_limits: Valores predeterminados y límites label_deleted_cost_types: Eliminar tipos de costo label_display_cost_entries: Mostrar los costos unitarios @@ -225,21 +232,12 @@ es: label_less_or_equal: "<=" label_list: Lista label_log_costs: Registrar costos unitarios - label_month: Mes - label_my_time_tracking: Mi seguimiento del tiempo label_new_time_entry_activity: Nueva actividad de entrada de tiempo - label_next_day: Siguiente día - label_next_month: Próximo mes - label_next_week: La próxima semana - label_next_workweek: Próxima semana laboral label_no: 'No' - label_no_time: No hay tiempo seguido + label_no_default_rate: No se ha establecido ninguna tarifa predeterminada + label_no_project_rate: No se ha establecido ninguna tarifa para este proyecto label_option_plural: Opciones label_overall_costs: Costos totales - label_previous_day: Día anterior - label_previous_month: Mes anterior - label_previous_week: Semana anterior - label_previous_workweek: Semana laboral anterior label_rate_plural: Tasas label_show: Mostrar label_specific_day: Día %{day} @@ -248,15 +246,14 @@ es: label_status_finished: Acabado label_time: Hora label_time_entry_activity_form_description: Los cambios en esta actividad de entrada de tiempo se reflejarán en todos los proyectos en los que esté activada. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Límites - label_timer_since: Comenzó a las %{time} label_today_capitalized: Hoy label_units: Unidades de costo label_until: hasta + label_using_current_default_rate: Utilizando la tarifa predeterminada actual label_valid_from: Válido desde - label_view_mode_switcher: Cambia vista label_work_package_filter_add: Añadir filtro del paquete de trabajo - label_workweek: Semana laboral label_yes: Sí notice_cost_logged_successfully: Costo unitario registrado correctamente. notice_different_time_zones: Este usuario tiene una zona horaria diferente (%{tz}). La hora se registrará utilizando su zona horaria. @@ -272,6 +269,10 @@ es: permission_edit_rates: Editar tasas permission_log_costs: Reservar los costos unitarios permission_log_own_costs: Reservar los costos unitarios para uno mismo + permission_manage_default_hourly_rates: Administrar tarifas por hora predeterminadas + permission_manage_default_hourly_rates_explanation: 'Permite añadir, modificar y eliminar las tarifas por hora predeterminadas de los usuarios y usuarios comodines. + + ' permission_view_cost_entries: Ver los costos reservados permission_view_cost_rates: Ver tasas de costos permission_view_hourly_rates: Ver todas las tarifas por hora @@ -309,6 +310,11 @@ es: text_destroy_cost_entries_question: "%{cost_entries} fueron reportados en los paquetes de trabajo que van a eliminar. ¿Qué quieres hacer?" text_destroy_time_and_cost_entries: Eliminar horas reportadas y costos text_destroy_time_and_cost_entries_question: "%{hours} horas, %{cost_entries} fueron reportados en el paquete de trabajo que va a eliminar.¿Qué quieres hacer?" + text_hourly_rate_destroy_confirmation: Se eliminará la tarifa de %{rate} vigente a partir del %{valid_from}. Los costes contabilizados con dicha tarifa se volverán a calcular según la tarifa vigente en ese momento. + text_hourly_rate_destroy_confirmation_checkbox_label: Entiendo que esta acción es irreversible. + text_hourly_rate_recalculation: Esta tarifa se aplica desde su fecha de entrada en vigor hasta que entre en vigor una tarifa posterior. Si se modifica, también se volverán a calcular las entradas de tiempo y los presupuestos existentes correspondientes a ese periodo. + text_no_default_rate: La tarifa predeterminada se aplica en todos los proyectos en los que el usuario no tenga configurada una tarifa específica. + text_no_project_rate: En este proyecto se utilizará la tarifa predeterminada actual. text_reassign_time_and_cost_entries: 'Reasignar horas y costos reportados para este paquete de trabajo:' text_warning_hidden_elements: Algunas entradas han sido excluidas de la agregación. total_times: diff --git a/modules/costs/config/locales/crowdin/et.yml b/modules/costs/config/locales/crowdin/et.yml index 10a25ffc4d35..35f2f4c6a137 100644 --- a/modules/costs/config/locales/crowdin/et.yml +++ b/modules/costs/config/locales/crowdin/et.yml @@ -72,6 +72,10 @@ et: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ et: button_add_time_entry: Ajakulu button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ et: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ et: label_costlog: Logged unit costs label_costs: Kulud label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Praegune valuutakurss label_date_on: 'on' - label_day: Päev label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Kustutatud kululiigid label_display_cost_entries: Näita ühiku kulusid @@ -225,21 +232,12 @@ et: label_less_or_equal: "<=" label_list: Nimistu label_log_costs: Log unit costs - label_month: Kuu - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Järgmine nädal - label_next_workweek: Next work week label_no: Ei - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Valikud label_overall_costs: Üldised kulud - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Eelmine nädal - label_previous_workweek: Previous work week label_rate_plural: Kursid label_show: Kuva label_specific_day: Day %{day} @@ -248,15 +246,14 @@ et: label_status_finished: Lõpetatud label_time: Aeg label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Täna label_units: Kuluühikud label_until: kuni + label_using_current_default_rate: Using current default rate label_valid_from: Kehtiv alates - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Töönädal label_yes: Jah notice_cost_logged_successfully: Ühiku kulu on logitud. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ et: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ et: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/eu.yml b/modules/costs/config/locales/crowdin/eu.yml index bf0531e1d4eb..52f4ec75e04c 100644 --- a/modules/costs/config/locales/crowdin/eu.yml +++ b/modules/costs/config/locales/crowdin/eu.yml @@ -72,6 +72,10 @@ eu: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ eu: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ eu: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ eu: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Eguna label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ eu: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ eu: label_status_finished: Finished label_time: Ordua label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ eu: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ eu: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/fa.yml b/modules/costs/config/locales/crowdin/fa.yml index c235b6e0bf90..415f0ff6d7fc 100644 --- a/modules/costs/config/locales/crowdin/fa.yml +++ b/modules/costs/config/locales/crowdin/fa.yml @@ -72,6 +72,10 @@ fa: attributes: project_ids: blank: لطفاً یک پروژه انتخاب کنید. + rate: + attributes: + principal: + invalid: باید یک کاربر یا کاربر فرضی باشد. time_entry: attributes: entity: @@ -140,7 +144,6 @@ fa: button_add_time_entry: ثبت زمان button_log_costs: ثبت هزینه‌های واحد button_log_time: گزارش - button_stop_timer: توقف تایمر button_update_limits: به‌روزرسانی محدودیت‌ها button_update_start_finish_times: به‌روزرسانی زمان‌های شروع و پایان caption_booked_on_project: رزرو شده در پروژه @@ -174,9 +177,13 @@ fa: cost_types: for_all_projects_hint: این نوع هزینه در همه پروژه‌ها فعال است. heading: انواع هزینه + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: این نوع هزینه قابل غیرفعال‌کردن نیست، زیرا قبلاً برای آن در این پروژه هزینه ثبت شده است. none_active: در حال حاضر هیچ نوع هزینه‌ای در این پروژه فعال نیست. time_and_costs: زمان و هزینه‌ها + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ fa: label_costlog: هزینه‌های واحد ثبت‌شده label_costs: هزینه‌ها label_costs_per_page: هزینه‌ها در هر صفحه + label_current: فعلی label_current_default_rate: ضریب پرداخت پیشفرض فعلی label_date_on: در - label_day: روز label_defaults_and_limits: پیش‌فرض‌ها و محدودیت‌ها label_deleted_cost_types: انواع هزینه حذف‌شده label_display_cost_entries: نمایش هزینه‌های واحد @@ -225,21 +232,12 @@ fa: label_less_or_equal: "<=" label_list: فهرست label_log_costs: ثبت هزینه‌های واحد - label_month: ماه - label_my_time_tracking: ثبت زمان من label_new_time_entry_activity: فعالیت جدید ثبت زمان - label_next_day: روز بعد - label_next_month: ماه بعد - label_next_week: هفته بعد - label_next_workweek: هفته کاری بعدی label_no: خیر - label_no_time: زمانی ثبت نشده است + label_no_default_rate: نرخ پیش‌فرضی تعیین نشده است + label_no_project_rate: برای این پروژه نرخی تعیین نشده است label_option_plural: گزینه‌ها label_overall_costs: هزینه‌های کل - label_previous_day: روز قبل - label_previous_month: ماه قبل - label_previous_week: هفته قبل - label_previous_workweek: هفته کاری قبل label_rate_plural: نرخ‌ها label_show: نمایش label_specific_day: "%{day} روز" @@ -248,15 +246,14 @@ fa: label_status_finished: پایان‌یافته label_time: زمان label_time_entry_activity_form_description: تغییرات این فعالیت ثبت زمان در همه پروژه‌هایی که در آن‌ها فعال است اعمال خواهد شد. + label_time_entry_custom_field_plural: فیلدهای سفارشی ثبت زمان label_time_entry_restrictions: محدودیت‌ها - label_timer_since: شروع شده از %{time} label_today_capitalized: امروز label_units: واحدهای هزینه label_until: تا + label_using_current_default_rate: استفاده از نرخ پیش‌فرض فعلی label_valid_from: معتبر از - label_view_mode_switcher: تغییر نما label_work_package_filter_add: افزودن فیلتر پکیج‌کاری - label_workweek: هفته کاری label_yes: بله notice_cost_logged_successfully: هزینه واحد با موفقیت ثبت شد. notice_different_time_zones: منطقه زمانی این کاربر متفاوت است (%{tz}). زمان با استفاده از منطقه زمانی او ثبت خواهد شد. @@ -272,6 +269,10 @@ fa: permission_edit_rates: ویرایش نرخ (ضرایب پرداختی) permission_log_costs: رزرو هزینه‌های واحد permission_log_own_costs: رزرو هزینه‌های واحد برای خود + permission_manage_default_hourly_rates: مدیریت نرخ‌های ساعتی پیش‌فرض + permission_manage_default_hourly_rates_explanation: 'اجازه افزودن، تغییر و حذف نرخ‌های ساعتی پیش‌فرض کاربران و کاربران جایگزین را می‌دهد. + + ' permission_view_cost_entries: مشاهده هزینه‌های رزرو شده permission_view_cost_rates: مشاهده نرخ‌های هزینه permission_view_hourly_rates: مشاهده تمامی نرخ‌های ساعتی @@ -309,6 +310,11 @@ fa: text_destroy_cost_entries_question: "%{cost_entries} در بسته‌های کاری که می‌خواهید حذف کنید گزارش شده است. میخوای چیکار کنی؟" text_destroy_time_and_cost_entries: ساعت ها و هزینه های گزارش شده را حذف کنید text_destroy_time_and_cost_entries_question: "%{hours} ,%{cost_entries} در بسته‌های کاری که می‌خواهید حذف کنید گزارش شده است. میخوای چیکار کنی؟" + text_hourly_rate_destroy_confirmation: نرخ %{rate} که از %{valid_from} معتبر است حذف خواهد شد. هزینه‌های ثبت‌شده بر مبنای آن با نرخی که پس از آن اعمال می‌شود دوباره محاسبه خواهند شد. + text_hourly_rate_destroy_confirmation_checkbox_label: می‌دانم که این اقدام قابل بازگشت نیست. + text_hourly_rate_recalculation: این نرخ از تاریخ شروع اعتبار خود تا زمانی که نرخ بعدی اعمال شود معتبر است. تغییر آن همچنین ورودی‌های زمان و بودجه‌های موجود در آن بازه را دوباره محاسبه می‌کند. + text_no_default_rate: نرخ پیش‌فرض در همه پروژه‌هایی استفاده می‌شود که برای کاربر نرخ خاصی تنظیم نشده است. + text_no_project_rate: این پروژه از نرخ پیش‌فرض فعلی استفاده خواهد کرد. text_reassign_time_and_cost_entries: تخصیص ساعت‌ها و هزینه‌های گزارش شده به پروژه text_warning_hidden_elements: ممکن است برخی ورودی‌ها از تجمیع حذف شده باشند. total_times: diff --git a/modules/costs/config/locales/crowdin/fi.yml b/modules/costs/config/locales/crowdin/fi.yml index 0d070ff6a863..9d366435b896 100644 --- a/modules/costs/config/locales/crowdin/fi.yml +++ b/modules/costs/config/locales/crowdin/fi.yml @@ -72,6 +72,10 @@ fi: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ fi: button_add_time_entry: Kirjaa työaika button_log_costs: Kirjaa kustannuksia button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Kirjattu projektille @@ -174,9 +177,13 @@ fi: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ fi: label_costlog: Kirjatut kustannukset label_costs: Kustannukset label_costs_per_page: Kustannuksia sivulla + label_current: Current label_current_default_rate: Nykyinen vakiotuntihinta label_date_on: päälle - label_day: Päivä label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Poistetut kustannuslajit label_display_cost_entries: Näytä yksikkökustannukset @@ -225,21 +232,12 @@ fi: label_less_or_equal: "<=" label_list: Lista label_log_costs: Kirjaa kustannuksia - label_month: Kuukausi - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Seuraava viikko - label_next_workweek: Next work week label_no: Ei - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Valinnat label_overall_costs: Kokonaiskustannukset - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Edellinen viikko - label_previous_workweek: Previous work week label_rate_plural: Tuntihinnat label_show: Näytä label_specific_day: Day %{day} @@ -248,15 +246,14 @@ fi: label_status_finished: Valmis label_time: Aika label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Tänään label_units: Kustannusten yksiköt label_until: saakka + label_using_current_default_rate: Using current default rate label_valid_from: Voimassa - label_view_mode_switcher: Change view label_work_package_filter_add: Lisää tehtävien suodatin - label_workweek: Work week label_yes: Kyllä notice_cost_logged_successfully: Kustannus kirjattu onnistuneesti. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ fi: permission_edit_rates: Tuntihintojen muokkaus permission_log_costs: Kirjaa kustannuksia permission_log_own_costs: Kirjaa kustannuksia itselle + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Kirjattujen kustannusten tarkisteleminen permission_view_cost_rates: Hintojen tarkisteleminen permission_view_hourly_rates: Kaikkien tuntihintojen tarkiseleminen @@ -309,6 +310,11 @@ fi: text_destroy_cost_entries_question: "%{cost_entries} on raportoitu projektille, jota olet poistamassa. Mitä haluat tehdä?" text_destroy_time_and_cost_entries: Poista raportoidut tunnit ja kustannukset text_destroy_time_and_cost_entries_question: "%{hours} tuntia, %{cost_entries} on raportoitu tehtäville, joita olet poistamassa. Haluatko?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Raportoitujen tunti- ja kustannuskirjausten siirto tehtävälle:' text_warning_hidden_elements: Joitain merkintöjä on voitu jättää yhdistämisen ulkopuolelle. total_times: diff --git a/modules/costs/config/locales/crowdin/fil.yml b/modules/costs/config/locales/crowdin/fil.yml index 6e8abb805642..90444a910c1d 100644 --- a/modules/costs/config/locales/crowdin/fil.yml +++ b/modules/costs/config/locales/crowdin/fil.yml @@ -72,6 +72,10 @@ fil: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ fil: button_add_time_entry: Ang oras ng tala button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ fil: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ fil: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: sa - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ fil: label_less_or_equal: "<=" label_list: Listahan label_log_costs: Log unit costs - label_month: Buwan - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Susunod na linggo - label_next_workweek: Next work week label_no: Hindi - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Mga opsyon label_overall_costs: Kabuuang gastos - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Nakaraang linggo - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Ipakita label_specific_day: Day %{day} @@ -248,15 +246,14 @@ fil: label_status_finished: Finished label_time: Oras label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: Oo notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ fil: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ fil: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/fr.yml b/modules/costs/config/locales/crowdin/fr.yml index 38d4fca759ff..e3dadd0f272f 100644 --- a/modules/costs/config/locales/crowdin/fr.yml +++ b/modules/costs/config/locales/crowdin/fr.yml @@ -72,6 +72,10 @@ fr: attributes: project_ids: blank: Veuillez sélectionner un projet. + rate: + attributes: + principal: + invalid: doit être un utilisateur ou un utilisateur fictif. time_entry: attributes: entity: @@ -140,7 +144,6 @@ fr: button_add_time_entry: Consigner du temps button_log_costs: Consigner des coûts unitaires button_log_time: Consigner - button_stop_timer: Arrêter le suivi du temps button_update_limits: Mettre à jour les limites button_update_start_finish_times: Mettre à jour les heures de début et de fin caption_booked_on_project: Réservé pour le projet @@ -174,9 +177,13 @@ fr: cost_types: for_all_projects_hint: Ce type de coût est activé dans tous les projets. heading: Types de coûts + hint: Sélectionnez les types de coûts qui s'affichent dans votre projet lorsque les collaborateurs saisissent leurs coûts. in_use_hint: Ce type de coût ne peut pas être désactivé, car des coûts ont déjà été enregistrés pour celui-ci dans ce projet. none_active: Aucun type de coût n'est actuellement actif dans ce projet. time_and_costs: Temps et coûts + time_entry_activities: + heading: Journal + hint: Sélectionnez les activités de suivi du temps qui s'affichent dans votre projet lorsque les membres saisissent leur temps. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ fr: label_costlog: Coûts unitaires consignés label_costs: Coûts label_costs_per_page: Coûts par page + label_current: Actuel label_current_default_rate: Taux par défaut actuel label_date_on: le - label_day: Jour label_defaults_and_limits: Valeurs par défaut et limites label_deleted_cost_types: Types de coût effacés label_display_cost_entries: Afficher les coûts unitaires @@ -225,21 +232,12 @@ fr: label_less_or_equal: "<=" label_list: Liste label_log_costs: Consigner des coûts unitaires - label_month: Mois - label_my_time_tracking: Mon suivi du temps label_new_time_entry_activity: Nouvelle activité de saisie de temps - label_next_day: Jour suivant - label_next_month: Mois suivant - label_next_week: Semaine suivante - label_next_workweek: Prochaine semaine de travail label_no: Non - label_no_time: Aucun temps saisi + label_no_default_rate: Aucun taux par défaut défini + label_no_project_rate: Aucun taux défini pour ce projet label_option_plural: Options label_overall_costs: Coûts globaux - label_previous_day: Jour précédent - label_previous_month: Mois précédent - label_previous_week: Semaine précédente - label_previous_workweek: Semaine de travail précédente label_rate_plural: Tarifs label_show: Afficher label_specific_day: Jour %{day} @@ -248,15 +246,14 @@ fr: label_status_finished: Terminé label_time: Heure  label_time_entry_activity_form_description: Les modifications apportées à cette activité de saisie de temps seront répercutées dans tous les projets où elle est activée. + label_time_entry_custom_field_plural: Champs personnalisés de saisie de temps label_time_entry_restrictions: Limites - label_timer_since: Commencé à %{time} label_today_capitalized: Aujourd'hui label_units: Unités de coût label_until: jusque + label_using_current_default_rate: Utilisation du taux par défaut actuel label_valid_from: Valable à partir du - label_view_mode_switcher: Changer la vue label_work_package_filter_add: Ajouter filtre de lot de travaux - label_workweek: Semaine de travail label_yes: Oui notice_cost_logged_successfully: Coût unitaire enregistré avec succès. notice_different_time_zones: Cet utilisateur a un fuseau horaire différent (%{tz}). Le temps sera saisi selon son fuseau horaire. @@ -272,6 +269,10 @@ fr: permission_edit_rates: Éditer les tarifs permission_log_costs: Réserver des coûts unitaires permission_log_own_costs: Réserver coûts unitaires propres + permission_manage_default_hourly_rates: Gérer les taux horaires par défaut + permission_manage_default_hourly_rates_explanation: 'Permet d''ajouter, de modifier et de supprimer les taux horaires par défaut des utilisateurs et des utilisateurs fictifs. + + ' permission_view_cost_entries: Afficher coûts réservés permission_view_cost_rates: Voir les coûts horaires permission_view_hourly_rates: Voir tous les tarifs horaires @@ -309,6 +310,11 @@ fr: text_destroy_cost_entries_question: "%{cost_entries} ont été consignés sur les lots de travaux que vous êtes sur le point de supprimer. Que voulez-vous faire ?" text_destroy_time_and_cost_entries: Supprimer les heures et coûts consignés text_destroy_time_and_cost_entries_question: "%{hours} heures, %{cost_entries} ont été consignés sur les lots de travaux que vous êtes sur le point de supprimer. Que voulez-vous faire ?" + text_hourly_rate_destroy_confirmation: Le taux de %{rate}, valable à partir du %{valid_from}, sera supprimé. Les coûts comptabilisés sur cette base seront recalculés avec le taux alors applicable. + text_hourly_rate_destroy_confirmation_checkbox_label: Je comprends que cette action est irréversible. + text_hourly_rate_recalculation: Ce taux s'applique à partir de sa date de début de validité jusqu'à ce qu'un taux ultérieur entre en vigueur. Le modifier recalculera également les saisies de temps et les budgets existants pour cette période. + text_no_default_rate: Le taux par défaut est utilisé dans tous les projets pour lesquels aucun taux spécifique n'est défini pour l'utilisateur. + text_no_project_rate: Ce projet utilisera le taux par défaut actuel. text_reassign_time_and_cost_entries: 'Réassigner les heures et coûts consignés à ce lot de travaux :' text_warning_hidden_elements: Certaines entrées peuvent avoir été exclues de l'agrégation. total_times: diff --git a/modules/costs/config/locales/crowdin/he.yml b/modules/costs/config/locales/crowdin/he.yml index 9bdaf89859bb..0ea32bbd22ec 100644 --- a/modules/costs/config/locales/crowdin/he.yml +++ b/modules/costs/config/locales/crowdin/he.yml @@ -72,6 +72,10 @@ he: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -149,7 +153,6 @@ he: button_add_time_entry: נרשם ביומן button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -183,9 +186,13 @@ he: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -216,9 +223,9 @@ he: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: פועל - label_day: ימים label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -234,21 +241,12 @@ he: label_less_or_equal: "<=" label_list: רשימה label_log_costs: Log unit costs - label_month: חודש - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: שבוע הבא - label_next_workweek: Next work week label_no: לא - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: אפשריות label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: הצג label_specific_day: Day %{day} @@ -257,15 +255,14 @@ he: label_status_finished: הסתיים label_time: זמן label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: כן notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -281,6 +278,10 @@ he: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -318,6 +319,11 @@ he: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/hi.yml b/modules/costs/config/locales/crowdin/hi.yml index 8c8c9b14ad1b..b0b689895e41 100644 --- a/modules/costs/config/locales/crowdin/hi.yml +++ b/modules/costs/config/locales/crowdin/hi.yml @@ -72,6 +72,10 @@ hi: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ hi: button_add_time_entry: लॉग समय button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ hi: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ hi: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: पर - label_day: दिन label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ hi: label_less_or_equal: "<=" label_list: सूची label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: अगले सप्ताह - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: विकल्प label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: पिछला सप्ताह - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: दिखाएँ label_specific_day: Day %{day} @@ -248,15 +246,14 @@ hi: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ hi: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ hi: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/hr.yml b/modules/costs/config/locales/crowdin/hr.yml index bf57a2a18493..5352d735ad42 100644 --- a/modules/costs/config/locales/crowdin/hr.yml +++ b/modules/costs/config/locales/crowdin/hr.yml @@ -72,6 +72,10 @@ hr: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -149,7 +153,6 @@ hr: button_add_time_entry: Vrijeme pristupa button_log_costs: Evidentiraj jedinice troškova button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Na projektu @@ -183,9 +186,13 @@ hr: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -216,9 +223,9 @@ hr: label_costlog: Zabilježeni jedinični troškovi label_costs: Troškovi label_costs_per_page: Troškova po stranici + label_current: Current label_current_default_rate: Trenutno zadana stopa label_date_on: na - label_day: Dan label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Izbrisane tipovi troškova label_display_cost_entries: Prikaži jedinice troškova @@ -234,21 +241,12 @@ hr: label_less_or_equal: "<=" label_list: Popis label_log_costs: Evidentiraj jedinice troškova - label_month: Mjesec - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Sljedeći tjedan - label_next_workweek: Next work week label_no: Ne - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Mogućnosti label_overall_costs: Ukupni troškovi - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Prethodni tjedan - label_previous_workweek: Previous work week label_rate_plural: Satnice label_show: Prikaži label_specific_day: Day %{day} @@ -257,15 +255,14 @@ hr: label_status_finished: Završeno label_time: Vrijeme label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Jedinice troška label_until: do + label_using_current_default_rate: Using current default rate label_valid_from: Vrijedi od - label_view_mode_switcher: Change view label_work_package_filter_add: Dodaj filter radnog zadatka - label_workweek: Work week label_yes: Da notice_cost_logged_successfully: Jedinični trošak uspješno zabilježen. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -281,6 +278,10 @@ hr: permission_edit_rates: Uređivanje satnica permission_log_costs: Zabilježite jedinice troškova permission_log_own_costs: Zabilježite jedinice troškova za sebe + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Pogledajte zabilježene troškove permission_view_cost_rates: Pogledaj troškove satnica permission_view_hourly_rates: Pogledaj sve cijene po satu @@ -318,6 +319,11 @@ hr: text_destroy_cost_entries_question: "%{cost_entries} su prikazani na radnim paketima koje želite izbrisati. Što zapravo želite napraviti?" text_destroy_time_and_cost_entries: Izbriši prijavljene sate i troškove text_destroy_time_and_cost_entries_question: "%{hours} sati, %{cost_entries} su prikazani na radnim paketima koje želite izbrisati. Što zapravo želite napraviti?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Dodijeli prijavljene sate i troškove ovom radnom paketu:' text_warning_hidden_elements: Pojedine stavke su izuzete iz agregacije. total_times: diff --git a/modules/costs/config/locales/crowdin/hu.yml b/modules/costs/config/locales/crowdin/hu.yml index 7f59863779ec..9fa31b7ae13e 100644 --- a/modules/costs/config/locales/crowdin/hu.yml +++ b/modules/costs/config/locales/crowdin/hu.yml @@ -72,6 +72,10 @@ hu: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ hu: button_add_time_entry: Eltöltött idő rögzítése button_log_costs: Költségek naplózása button_log_time: Napló - button_stop_timer: Időzítő leállítása button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Foglalt projekt @@ -174,9 +177,13 @@ hu: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Ez a költségtípus nem kapcsolható ki, mivel ehhez a projekthez már rögzítettek költségeket. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ hu: label_costlog: Naplózott fajlagos költségek label_costs: Költségek label_costs_per_page: Költések oldalanként + label_current: Current label_current_default_rate: Jelenlegi alapértelmezett díj label_date_on: mikor - label_day: Nap label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Törölt költségnemek label_display_cost_entries: Fajlagos költségek megjelenítése @@ -225,21 +232,12 @@ hu: label_less_or_equal: "<=" label_list: Lista label_log_costs: Költségek naplózása - label_month: Havi - label_my_time_tracking: Időnaplóm label_new_time_entry_activity: Új időrögzítési tevékenység - label_next_day: Holnap - label_next_month: Következő hónap - label_next_week: A jövő héten - label_next_workweek: Következő munkahét label_no: Nem - label_no_time: Nincs naplózott idő + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Beállítások label_overall_costs: Összes költség - label_previous_day: Tegnap - label_previous_month: Előző hónap - label_previous_week: Előző héten - label_previous_workweek: Előző munkahét label_rate_plural: Díjak label_show: Mutat label_specific_day: Nap %{day} @@ -248,15 +246,14 @@ hu: label_status_finished: Kész label_time: Idő label_time_entry_activity_form_description: A munkaidő-nyilvántartási tevékenység változásai minden olyan projektben tükröződnek, ahol ez engedélyezve van. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Elkezdődött %{time}-kor label_today_capitalized: Ma label_units: Költség egységek label_until: "-ig" + label_using_current_default_rate: Using current default rate label_valid_from: Innentől érvényes - label_view_mode_switcher: Nézet módosítása label_work_package_filter_add: Munkacsomag szűrő hozzáadása - label_workweek: Munkahét label_yes: Igen notice_cost_logged_successfully: Egységköltség sikeresen naplózva. notice_different_time_zones: 'Ez a felhasználó más időzónában van: (%{tz}). Az idő az ő időzónájával lesz naplózva.' @@ -272,6 +269,10 @@ hu: permission_edit_rates: Díjak szerkeztése permission_log_costs: Egységre könyvelt költségek permission_log_own_costs: Egységköltség könyvelése magadnak + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Könyvelt költségek permission_view_cost_rates: Költség díjak megtekintése permission_view_hourly_rates: Minden óradíj megtekintése @@ -309,6 +310,11 @@ hu: text_destroy_cost_entries_question: A work package-hez rögzített %{cost_entries} törlése. Mit szeretnél tenni? text_destroy_time_and_cost_entries: Idők és költségek törlése text_destroy_time_and_cost_entries_question: A work package-hez rögzített %{hours} óra és %{cost_entries} törlése. Mit szeretnél tenni? + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'A work packege-hez jelentett órák és költségek újrafelvitele:' text_warning_hidden_elements: Néhány bejegyzés lehet, hogy kimaradt az összesítésből. total_times: diff --git a/modules/costs/config/locales/crowdin/hy.yml b/modules/costs/config/locales/crowdin/hy.yml index e4164ec28ca1..eebda1a7f64c 100644 --- a/modules/costs/config/locales/crowdin/hy.yml +++ b/modules/costs/config/locales/crowdin/hy.yml @@ -72,6 +72,10 @@ hy: attributes: project_ids: blank: Խնդրում ենք ընտրել նախագիծ։ + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ hy: button_add_time_entry: Գրանցել ժամանակ button_log_costs: Գրանցել միավորի ծախսեր button_log_time: Գրանցել - button_stop_timer: Դադարեցնել ժամաչափը button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Հաշվառված է նախագծում @@ -174,9 +177,13 @@ hy: cost_types: for_all_projects_hint: Այս ծախսի տեսակը միացված է բոլոր նախագծերում։ heading: Ծախսի տեսակներ + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Այս ծախսի տեսակը հնարավոր չէ անջատել, քանի որ այս նախագծում դրա համար արդեն գրանցվել են ծախսեր։ none_active: Այս նախագծում ներկայումս ակտիվ ծախսի տեսակներ չկան։ time_and_costs: Ժամանակ և ծախսեր + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ hy: label_costlog: Գրանցված միավորի ծախսեր label_costs: Ծախսեր label_costs_per_page: Ծախսեր մեկ էջում + label_current: Current label_current_default_rate: Ընթացիկ կանխադրված դրույք label_date_on: նշված օրը - label_day: Օր label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Ջնջված ծախսի տեսակներ label_display_cost_entries: Ցուցադրել միավորի ծախսերը @@ -225,21 +232,12 @@ hy: label_less_or_equal: "<=" label_list: Ցուցակ label_log_costs: Գրանցել միավորի ծախսեր - label_month: Ամիս - label_my_time_tracking: Իմ ժամանակի հաշվառում label_new_time_entry_activity: Ժամանակի հաշվառման նոր գործունեություն - label_next_day: Հաջորդ օր - label_next_month: Հաջորդ ամիս - label_next_week: Հաջորդ շաբաթ - label_next_workweek: Հաջորդ աշխատանքային շաբաթ label_no: Ոչ - label_no_time: Ժամանակ չի հաշվառվել + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Ընտրանքներ label_overall_costs: Ընդհանուր ծախսեր - label_previous_day: Նախորդ օր - label_previous_month: Նախորդ ամիս - label_previous_week: Նախորդ շաբաթ - label_previous_workweek: Նախորդ աշխատանքային շաբաթ label_rate_plural: Դրույքներ label_show: Ցուցադրել label_specific_day: Օր %{day} @@ -248,15 +246,14 @@ hy: label_status_finished: Ավարտված label_time: Ժամ label_time_entry_activity_form_description: Ժամանակի հաշվառման այս գործունեության փոփոխությունները կարտացոլվեն բոլոր նախագծերում, որտեղ այն միացված է։ + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Սկսվել է %{time}-ին label_today_capitalized: Այսօր label_units: Ծախսի միավորներ label_until: մինչև + label_using_current_default_rate: Using current default rate label_valid_from: Վավեր է սկսած - label_view_mode_switcher: Փոխել տեսքը label_work_package_filter_add: Ավելացնել աշխատանքային փաթեթի զտիչ - label_workweek: Աշխատանքային շաբաթ label_yes: Այո notice_cost_logged_successfully: Միավորի ծախսը հաջողությամբ գրանցվել է։ notice_different_time_zones: Այս օգտատերն ունի այլ ժամային գոտի (%{tz})։ Ժամանակը կգրանցվի իր ժամային գոտով։ @@ -272,6 +269,10 @@ hy: permission_edit_rates: Խմբագրել դրույքները permission_log_costs: Հաշվառել միավորի ծախսեր permission_log_own_costs: Հաշվառել միավորի ծախսեր սեփական անձի համար + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Դիտել հաշվառված ծախսերը permission_view_cost_rates: Դիտել ծախսի դրույքները permission_view_hourly_rates: Դիտել բոլոր ժամային դրույքները @@ -309,6 +310,11 @@ hy: text_destroy_cost_entries_question: "%{cost_entries} գրանցվել են այն աշխատանքային փաթեթների համար, որոնք պատրաստվում եք ջնջել։ Ի՞նչ եք ցանկանում անել։" text_destroy_time_and_cost_entries: Ջնջել գրանցված ժամերը և ծախսերը text_destroy_time_and_cost_entries_question: "%{hours} ժամ, %{cost_entries} գրանցվել են այն աշխատանքային փաթեթների համար, որոնք պատրաստվում եք ջնջել։ Ի՞նչ եք ցանկանում անել։" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: Վերանշանակել գրանցված ժամերը և ծախսերն այս աշխատանքային փաթեթին՝ text_warning_hidden_elements: Որոշ գրառումներ կարող են բացառված լինել ամփոփ հաշվարկից։ total_times: diff --git a/modules/costs/config/locales/crowdin/id.yml b/modules/costs/config/locales/crowdin/id.yml index 4e8b6db5c07d..781355f631fc 100644 --- a/modules/costs/config/locales/crowdin/id.yml +++ b/modules/costs/config/locales/crowdin/id.yml @@ -72,6 +72,10 @@ id: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -131,7 +135,6 @@ id: button_add_time_entry: Catatan waktu button_log_costs: Log biaya unit button_log_time: Log - button_stop_timer: Hentikan penghitung waktu button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Telah dipesan pada proyek @@ -165,9 +168,13 @@ id: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ id: label_costlog: Catatan biaya unit label_costs: Biaya label_costs_per_page: Tampilan biaya perhalaman + label_current: Current label_current_default_rate: Rate saat ini label_date_on: pada - label_day: Hari label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Jenis biaya terhapus label_display_cost_entries: Tampilkan biaya unit @@ -216,21 +223,12 @@ id: label_less_or_equal: "<=" label_list: List label_log_costs: Log biaya unit - label_month: Bulan - label_my_time_tracking: Pelacakan waktu saya label_new_time_entry_activity: Aktivitas baru pada entri waktu - label_next_day: Besok - label_next_month: Bulan selanjutnya - label_next_week: Minggu depan - label_next_workweek: Minggu kerja berikutnya label_no: 'No' - label_no_time: Tidak ada waktu yang dilacak + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opsi label_overall_costs: Biaya keseluruhan - label_previous_day: Kemarin - label_previous_month: Bulan sebelumnya - label_previous_week: Minggu sebelumnya - label_previous_workweek: Minggu kerja sebelumnya label_rate_plural: Rate label_show: Tampilkan label_specific_day: Hari %{day} @@ -239,15 +237,14 @@ id: label_status_finished: Selesai label_time: Waktu label_time_entry_activity_form_description: Perubahan pada aktivitas entri waktu ini akan tercermin di semua proyek ketika fitur ini diaktifkan. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Dimulai dari %{time} label_today_capitalized: Hari Ini label_units: Biaya unit label_until: hingga + label_using_current_default_rate: Using current default rate label_valid_from: Berlaku dari - label_view_mode_switcher: Ubah tampilan label_work_package_filter_add: Tambahkan filter - label_workweek: Minggu kerja label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: Pengguna ini berada di zona waktu yang berbeda (%{tz}). Waktu akan dicatat menggunakan zona waktu mereka. @@ -263,6 +260,10 @@ id: permission_edit_rates: Edit rate permission_log_costs: Biaya unit pada buku permission_log_own_costs: Biaya unit buku untuk dirinya sendiri + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Tampilkan booked biaya permission_view_cost_rates: Tampilkan rate biaya permission_view_hourly_rates: Tampilkan semua rate per-jam @@ -300,6 +301,11 @@ id: text_destroy_cost_entries_question: "%{cost_entries} digunakan pada work package yang akan dihapus. Keputusan anda?" text_destroy_time_and_cost_entries: Hapus jumlah jam dan biaya yang terlapor text_destroy_time_and_cost_entries_question: "%{hours} jam, %{cost_entries} digunakan pada works package yang akan anda hapus. Keputusan anda?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Assign ulang laporan jam dan biaya pada work package ini:' text_warning_hidden_elements: Beberapa entri mungkin tidak dipakai oleh agregasi yang dilakukan. total_times: diff --git a/modules/costs/config/locales/crowdin/it.yml b/modules/costs/config/locales/crowdin/it.yml index 48c39f58cc25..7f4135e77fae 100644 --- a/modules/costs/config/locales/crowdin/it.yml +++ b/modules/costs/config/locales/crowdin/it.yml @@ -72,6 +72,10 @@ it: attributes: project_ids: blank: Seleziona un progetto. + rate: + attributes: + principal: + invalid: deve essere un utente o un utente segnaposto. time_entry: attributes: entity: @@ -140,7 +144,6 @@ it: button_add_time_entry: Registra l'orario effettuato button_log_costs: Registra unità di costo button_log_time: Registra - button_stop_timer: Ferma il timer button_update_limits: Aggiorna i limiti button_update_start_finish_times: Aggiorna orari di inizio e fine caption_booked_on_project: Prenotato su progetto @@ -174,9 +177,13 @@ it: cost_types: for_all_projects_hint: Questo tipo di costo è abilitato in tutti i progetti. heading: Tipo di costo + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Questo tipo di costo non può essere disabilitato perché i costi sono già stati registrati in questo progetto. none_active: Nessun tipo di costo è attualmente attivo in questo progetto. time_and_costs: Tempi e costi + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ it: label_costlog: Costi unitari registrati label_costs: Costi label_costs_per_page: Costi per pagina + label_current: Attuale label_current_default_rate: Tariffa predefinita corrente label_date_on: il - label_day: Giorno label_defaults_and_limits: Valori predefiniti e limiti label_deleted_cost_types: Tipi di costo eliminati label_display_cost_entries: Mostra i costi unitari @@ -225,21 +232,12 @@ it: label_less_or_equal: "<=" label_list: Elenca label_log_costs: Registra unità di costo - label_month: Mese - label_my_time_tracking: Il mio monitoraggio dei tempi label_new_time_entry_activity: Nuova attività di inserimento nel tempo - label_next_day: Giorno successivo - label_next_month: Prossimo mese - label_next_week: Prossima settimana - label_next_workweek: Prossima settimana lavorativa label_no: 'No' - label_no_time: Nessun tempo tracciato + label_no_default_rate: Nessuna tariffa predefinita impostata + label_no_project_rate: Nessuna tariffa impostata per questo progetto label_option_plural: Opzioni label_overall_costs: Costi complessivi - label_previous_day: Giorno precedente - label_previous_month: Mese precedente - label_previous_week: Settimana precedente - label_previous_workweek: Settimana lavorativa precedente label_rate_plural: Tariffe label_show: Mostra label_specific_day: Giorno %{day} @@ -248,15 +246,14 @@ it: label_status_finished: Terminato label_time: Ora label_time_entry_activity_form_description: Le modifiche a questa attività di registrazione temporale si rifletteranno in tutti i progetti in cui è abilitata. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limiti - label_timer_since: Iniziato ore %{time} label_today_capitalized: Oggi label_units: Unità di costo label_until: finché + label_using_current_default_rate: Viene utilizzata la tariffa predefinita attuale label_valid_from: Valido dal - label_view_mode_switcher: Cambia vista label_work_package_filter_add: Aggiungi filtro per macro-attività (work package) - label_workweek: Settimana lavorativa label_yes: Si notice_cost_logged_successfully: Costo unitario registrato con successo. notice_different_time_zones: Questo utente ha un fuso orario diverso (%{tz}). L'ora verrà registrata utilizzando il suo fuso orario. @@ -272,6 +269,10 @@ it: permission_edit_rates: Modifica le tariffe permission_log_costs: Riserva costi unitari permission_log_own_costs: Riserva costi unitari per se stessi + permission_manage_default_hourly_rates: Gestisci le tariffe orarie predefinite + permission_manage_default_hourly_rates_explanation: 'Consente di aggiungere, modificare ed eliminare le tariffe orarie predefinite degli utenti e degli utenti segnaposto. + + ' permission_view_cost_entries: Visualizza costi riservati permission_view_cost_rates: Visualizza tariffe di costo permission_view_hourly_rates: Mostra tutte le tariffe orarie @@ -309,6 +310,11 @@ it: text_destroy_cost_entries_question: "%{cost_entries} sono stati segnalati per la macro-attività (work package) che si sta per eliminare. Che cosa vuoi fare?" text_destroy_time_and_cost_entries: Elimina orari e costi riportati text_destroy_time_and_cost_entries_question: "%{hours} ore, %{cost_entries} sono stati segnalati per le macro-attività (work packages) che si stanno per eliminare. Che cosa vuoi fare?" + text_hourly_rate_destroy_confirmation: La tariffa di %{rate}, valida dal %{valid_from}, verrà eliminata. I costi registrati con questa tariffa verranno ricalcolati utilizzando la tariffa che risulterà applicabile. + text_hourly_rate_destroy_confirmation_checkbox_label: Sono consapevole che questa azione non è reversibile. + text_hourly_rate_recalculation: Questa tariffa si applica dalla relativa data di validità fino all'entrata in vigore di una tariffa successiva. La modifica comporterà anche il ricalcolo delle registrazioni orarie e dei budget esistenti in tale periodo. + text_no_default_rate: La tariffa predefinita viene utilizzata in tutti i progetti per i quali non è stata impostata una tariffa specifica per l'utente. + text_no_project_rate: Questo progetto utilizzerà la tariffa predefinita attuale. text_reassign_time_and_cost_entries: 'Riassegna orari e costi segnalati a questa macro-attività (work package):' text_warning_hidden_elements: Alcune voci potrebbero essere state escluse dall'aggregazione. total_times: diff --git a/modules/costs/config/locales/crowdin/ja.yml b/modules/costs/config/locales/crowdin/ja.yml index b39dda536739..3f4a0646685c 100644 --- a/modules/costs/config/locales/crowdin/ja.yml +++ b/modules/costs/config/locales/crowdin/ja.yml @@ -72,6 +72,10 @@ ja: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -131,7 +135,6 @@ ja: button_add_time_entry: 時間を記録 button_log_costs: 単価を記録 button_log_time: ログ - button_stop_timer: タイマー停止 button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: プロジェクトの予約 @@ -165,9 +168,13 @@ ja: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ ja: label_costlog: 単価を記録 label_costs: コスト label_costs_per_page: 1ページあたりのコスト + label_current: Current label_current_default_rate: 現在のデフォルトレート label_date_on: オン - label_day: 日 label_defaults_and_limits: Defaults and limits label_deleted_cost_types: 削除されたコストタイプ label_display_cost_entries: ユニットのコストを表示 @@ -216,21 +223,12 @@ ja: label_less_or_equal: 以下 label_list: リスト label_log_costs: 単価を記録 - label_month: 月 - label_my_time_tracking: 記録した作業時間 label_new_time_entry_activity: 新しいタイムエントリーアクティビティ - label_next_day: 翌日 - label_next_month: 来月 - label_next_week: 次の週 - label_next_workweek: 次の営業週 label_no: いいえ - label_no_time: 記録された作業時間はありません + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: オプション label_overall_costs: 集計コスト - label_previous_day: 昨日 - label_previous_month: 先月 - label_previous_week: 先週 - label_previous_workweek: 前の営業週 label_rate_plural: レート label_show: 表示 label_specific_day: "%{day}日目" @@ -239,15 +237,14 @@ ja: label_status_finished: 完了しました label_time: 時間 label_time_entry_activity_form_description: このタイムエントリーアクティビティへの変更は有効になっているすべてのプロジェクトに適用されます。 + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: "%{time} で開始" label_today_capitalized: 今日 label_units: 単価 label_until: まで + label_using_current_default_rate: Using current default rate label_valid_from: から有効 - label_view_mode_switcher: 表示を変更 label_work_package_filter_add: ワークパッケージフィルタを追加する - label_workweek: 作業週 label_yes: はい notice_cost_logged_successfully: 単価が正常に記録されました。 notice_different_time_zones: このユーザーは異なるタイムゾーン(%{tz})を使用しています。時間は異なるタイムゾーンで記録されます。 @@ -263,6 +260,10 @@ ja: permission_edit_rates: 率の編集 permission_log_costs: 単価の予約 permission_log_own_costs: 自分の単価の予約 + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: 予約したコストの表示 permission_view_cost_rates: コスト率の表示 permission_view_hourly_rates: 全ての時給の表示 @@ -282,7 +283,7 @@ ja: setting_costs_currency_format_prefix: Before the number (e.g. EUR 100) setting_costs_currency_format_suffix: After the number (e.g. 100 EUR) setting_enforce_tracking_start_and_end_times: 開始/終了時間を必須とする - setting_enforce_tracking_start_and_end_times_caption: 時間を記録する際、開始時間と終了時間の入力を必須にします。 + setting_enforce_tracking_start_and_end_times_caption: 時間を記録する際、開始時間と終了時間の入力が必須となる。 setting_enforce_without_allow: 開始時間と終了時間を要求することは許可されていないとできません setting_time_entries_limit_to_user_working_hours: Limit to the user's working hours setting_time_entries_limit_to_user_working_hours_caption: Limits the total hours that can be logged per day to that user’s effective working hours. Users without defined working times will not be restricted. @@ -300,6 +301,11 @@ ja: text_destroy_cost_entries_question: 削除しようとしているワークパッケージが%{cost_entries} 件報告されました。どうしますか? text_destroy_time_and_cost_entries: 報告された時間とコストを削除する text_destroy_time_and_cost_entries_question: "%{hours} 時間分、削除しようとしているワークパッケージが %{cost_entries} 件報告されました。どうしますか?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 報告された時間とコストをこのワークパッケージに再割り当てください。 text_warning_hidden_elements: いくつかのエントリは、集計から除外されている可能性があります。 total_times: diff --git a/modules/costs/config/locales/crowdin/js-af.yml b/modules/costs/config/locales/crowdin/js-af.yml index b3758e7f2e84..e6f7945c1a99 100644 --- a/modules/costs/config/locales/crowdin/js-af.yml +++ b/modules/costs/config/locales/crowdin/js-af.yml @@ -25,8 +25,6 @@ af: button_log_costs: Log unit costs label_hour: uur label_hours: ure - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ar.yml b/modules/costs/config/locales/crowdin/js-ar.yml index 9cbb9b2ed5ae..c565deb35e5e 100644 --- a/modules/costs/config/locales/crowdin/js-ar.yml +++ b/modules/costs/config/locales/crowdin/js-ar.yml @@ -25,8 +25,6 @@ ar: button_log_costs: سجل تكاليف الوحدة label_hour: الساعة label_hours: الساعات - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: هل أنت متأكد؟ work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-az.yml b/modules/costs/config/locales/crowdin/js-az.yml index 5da4fef9560f..00817c41c421 100644 --- a/modules/costs/config/locales/crowdin/js-az.yml +++ b/modules/costs/config/locales/crowdin/js-az.yml @@ -25,8 +25,6 @@ az: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-be.yml b/modules/costs/config/locales/crowdin/js-be.yml index 7b3e3707e91d..fdfcfd829a9f 100644 --- a/modules/costs/config/locales/crowdin/js-be.yml +++ b/modules/costs/config/locales/crowdin/js-be.yml @@ -25,8 +25,6 @@ be: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-bg.yml b/modules/costs/config/locales/crowdin/js-bg.yml index 62a3ec24dd7c..a435976939a0 100644 --- a/modules/costs/config/locales/crowdin/js-bg.yml +++ b/modules/costs/config/locales/crowdin/js-bg.yml @@ -25,8 +25,6 @@ bg: button_log_costs: Разходи за единична регистрация label_hour: час label_hours: Часове - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Сигурни ли сте? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ca.yml b/modules/costs/config/locales/crowdin/js-ca.yml index d7457fca2f37..40e6ea0c04b4 100644 --- a/modules/costs/config/locales/crowdin/js-ca.yml +++ b/modules/costs/config/locales/crowdin/js-ca.yml @@ -25,8 +25,6 @@ ca: button_log_costs: 'Registra costs d''unitats ' label_hour: hora label_hours: hores - myTimeTracking: - noSpecificTime: No hi ha temps específic text_are_you_sure: N'esteu segur? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ckb-IR.yml b/modules/costs/config/locales/crowdin/js-ckb-IR.yml index ca3d43d4ff39..057ab73ae5a8 100644 --- a/modules/costs/config/locales/crowdin/js-ckb-IR.yml +++ b/modules/costs/config/locales/crowdin/js-ckb-IR.yml @@ -25,8 +25,6 @@ ckb-IR: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-cs.yml b/modules/costs/config/locales/crowdin/js-cs.yml index 643286362aa0..390117ecd2e9 100644 --- a/modules/costs/config/locales/crowdin/js-cs.yml +++ b/modules/costs/config/locales/crowdin/js-cs.yml @@ -25,8 +25,6 @@ cs: button_log_costs: Logovat jednotkové náklady label_hour: hodina label_hours: hodiny - myTimeTracking: - noSpecificTime: Žádný konkrétní čas text_are_you_sure: Jste si jisti? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-da.yml b/modules/costs/config/locales/crowdin/js-da.yml index 263f580709bd..086da603a248 100644 --- a/modules/costs/config/locales/crowdin/js-da.yml +++ b/modules/costs/config/locales/crowdin/js-da.yml @@ -25,8 +25,6 @@ da: button_log_costs: Registrér enhedsomkostninger label_hour: time label_hours: timer - myTimeTracking: - noSpecificTime: Intet specifikt tidspunkt text_are_you_sure: Er du sikker? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-de.yml b/modules/costs/config/locales/crowdin/js-de.yml index ab5777343c79..2588d14d5b39 100644 --- a/modules/costs/config/locales/crowdin/js-de.yml +++ b/modules/costs/config/locales/crowdin/js-de.yml @@ -25,8 +25,6 @@ de: button_log_costs: Stückkosten buchen label_hour: Stunde label_hours: Stunden - myTimeTracking: - noSpecificTime: Keine bestimmte Zeit text_are_you_sure: Sind Sie sicher? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-el.yml b/modules/costs/config/locales/crowdin/js-el.yml index 4c58b8c44d79..0e8d541452bc 100644 --- a/modules/costs/config/locales/crowdin/js-el.yml +++ b/modules/costs/config/locales/crowdin/js-el.yml @@ -25,8 +25,6 @@ el: button_log_costs: Καταγραφή κόστους μονάδας label_hour: ώρα label_hours: ώρες - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Είστε σίγουρος/η; work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-eo.yml b/modules/costs/config/locales/crowdin/js-eo.yml index 5623ef677270..1bbf9fbf8fd1 100644 --- a/modules/costs/config/locales/crowdin/js-eo.yml +++ b/modules/costs/config/locales/crowdin/js-eo.yml @@ -25,8 +25,6 @@ eo: button_log_costs: Log unit costs label_hour: horo label_hours: horoj - myTimeTracking: - noSpecificTime: Neniu specifa tempo text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-es.yml b/modules/costs/config/locales/crowdin/js-es.yml index 9174652ffe1c..9dd9bb71bc0b 100644 --- a/modules/costs/config/locales/crowdin/js-es.yml +++ b/modules/costs/config/locales/crowdin/js-es.yml @@ -25,8 +25,6 @@ es: button_log_costs: Registrar costos unitarios label_hour: hora label_hours: horas - myTimeTracking: - noSpecificTime: No se ha especificado el tiempo text_are_you_sure: "¿Estás seguro?" work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-et.yml b/modules/costs/config/locales/crowdin/js-et.yml index e79888258d34..769e3c9775bf 100644 --- a/modules/costs/config/locales/crowdin/js-et.yml +++ b/modules/costs/config/locales/crowdin/js-et.yml @@ -25,8 +25,6 @@ et: button_log_costs: Log unit costs label_hour: tund label_hours: tundi - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Kas oled kindel? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-eu.yml b/modules/costs/config/locales/crowdin/js-eu.yml index e946f6e37118..b91b9f8b7422 100644 --- a/modules/costs/config/locales/crowdin/js-eu.yml +++ b/modules/costs/config/locales/crowdin/js-eu.yml @@ -25,8 +25,6 @@ eu: button_log_costs: Log unit costs label_hour: hour label_hours: orduak - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-fa.yml b/modules/costs/config/locales/crowdin/js-fa.yml index 1b66dc651a14..e836caf2d716 100644 --- a/modules/costs/config/locales/crowdin/js-fa.yml +++ b/modules/costs/config/locales/crowdin/js-fa.yml @@ -25,8 +25,6 @@ fa: button_log_costs: ثبت هزینه‌های واحد label_hour: ساعت label_hours: ساعت - myTimeTracking: - noSpecificTime: بدون زمان مشخص text_are_you_sure: مطمئنید؟ work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-fi.yml b/modules/costs/config/locales/crowdin/js-fi.yml index b7010b3f894a..b92b58915524 100644 --- a/modules/costs/config/locales/crowdin/js-fi.yml +++ b/modules/costs/config/locales/crowdin/js-fi.yml @@ -25,8 +25,6 @@ fi: button_log_costs: Kirjaa kustannuksia label_hour: tunti label_hours: tuntia - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Oletko varma? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-fil.yml b/modules/costs/config/locales/crowdin/js-fil.yml index 80068a5170cc..2660cdf50320 100644 --- a/modules/costs/config/locales/crowdin/js-fil.yml +++ b/modules/costs/config/locales/crowdin/js-fil.yml @@ -25,8 +25,6 @@ fil: button_log_costs: Log unit costs label_hour: oras label_hours: mga oras - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Sigurado ka ba? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-fr.yml b/modules/costs/config/locales/crowdin/js-fr.yml index afdc34328083..2a6c9c1b217d 100644 --- a/modules/costs/config/locales/crowdin/js-fr.yml +++ b/modules/costs/config/locales/crowdin/js-fr.yml @@ -25,8 +25,6 @@ fr: button_log_costs: Consigner des coûts unitaires label_hour: heure label_hours: heures - myTimeTracking: - noSpecificTime: Aucune heure spécifique text_are_you_sure: Confirmez-vous ? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-he.yml b/modules/costs/config/locales/crowdin/js-he.yml index 453b994ad004..82c2efd8150d 100644 --- a/modules/costs/config/locales/crowdin/js-he.yml +++ b/modules/costs/config/locales/crowdin/js-he.yml @@ -25,8 +25,6 @@ he: button_log_costs: Log unit costs label_hour: שעה label_hours: שעות - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: האם הינך בטוח? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-hi.yml b/modules/costs/config/locales/crowdin/js-hi.yml index 0fda2e59df23..37230380c7bc 100644 --- a/modules/costs/config/locales/crowdin/js-hi.yml +++ b/modules/costs/config/locales/crowdin/js-hi.yml @@ -25,8 +25,6 @@ hi: button_log_costs: Log unit costs label_hour: घंटा label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-hr.yml b/modules/costs/config/locales/crowdin/js-hr.yml index fb774e04ea51..29289032a440 100644 --- a/modules/costs/config/locales/crowdin/js-hr.yml +++ b/modules/costs/config/locales/crowdin/js-hr.yml @@ -25,8 +25,6 @@ hr: button_log_costs: Evidentiraj jedinice troškova label_hour: sat label_hours: sati - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Da li ste sigurni? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-hu.yml b/modules/costs/config/locales/crowdin/js-hu.yml index 53044707aff7..bbebfe1c9841 100644 --- a/modules/costs/config/locales/crowdin/js-hu.yml +++ b/modules/costs/config/locales/crowdin/js-hu.yml @@ -25,8 +25,6 @@ hu: button_log_costs: Naplózott költségek label_hour: óra label_hours: óra - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Biztos vagy benne? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-hy.yml b/modules/costs/config/locales/crowdin/js-hy.yml index 5b1b4e2e2a8b..45c8c64240c6 100644 --- a/modules/costs/config/locales/crowdin/js-hy.yml +++ b/modules/costs/config/locales/crowdin/js-hy.yml @@ -25,8 +25,6 @@ hy: button_log_costs: Գրանցել միավորի ծախսեր label_hour: ժամ label_hours: ժամ - myTimeTracking: - noSpecificTime: Առանց որոշակի ժամի text_are_you_sure: Համոզվա՞ծ եք։ work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-id.yml b/modules/costs/config/locales/crowdin/js-id.yml index 8fed1c75c46d..ec01def56dc5 100644 --- a/modules/costs/config/locales/crowdin/js-id.yml +++ b/modules/costs/config/locales/crowdin/js-id.yml @@ -25,8 +25,6 @@ id: button_log_costs: Log biaya unit label_hour: jam label_hours: jam - myTimeTracking: - noSpecificTime: Tidak ada waktu khusus text_are_you_sure: Apakah anda yakin? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-it.yml b/modules/costs/config/locales/crowdin/js-it.yml index 4c959d308e16..11e13e54c6c8 100644 --- a/modules/costs/config/locales/crowdin/js-it.yml +++ b/modules/costs/config/locales/crowdin/js-it.yml @@ -25,8 +25,6 @@ it: button_log_costs: Registra unità di costo label_hour: ora label_hours: ore - myTimeTracking: - noSpecificTime: Nessun orario specifico text_are_you_sure: Sei sicuro/a? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ja.yml b/modules/costs/config/locales/crowdin/js-ja.yml index 63e11d877a4f..9fe6019fd6d7 100644 --- a/modules/costs/config/locales/crowdin/js-ja.yml +++ b/modules/costs/config/locales/crowdin/js-ja.yml @@ -25,8 +25,6 @@ ja: button_log_costs: 単価を記録 label_hour: " 時間" label_hours: 時間 - myTimeTracking: - noSpecificTime: 時間指定なし text_are_you_sure: よろしいですか? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ka.yml b/modules/costs/config/locales/crowdin/js-ka.yml index 583952c0d2d0..fcdedae4c40c 100644 --- a/modules/costs/config/locales/crowdin/js-ka.yml +++ b/modules/costs/config/locales/crowdin/js-ka.yml @@ -25,8 +25,6 @@ ka: button_log_costs: ერთეულის ფასის ჟურნალი label_hour: საათი label_hours: საათი - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: დარწმუნებული ბრძანდებით? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-kk.yml b/modules/costs/config/locales/crowdin/js-kk.yml index 997d999f6e3d..7eff61832313 100644 --- a/modules/costs/config/locales/crowdin/js-kk.yml +++ b/modules/costs/config/locales/crowdin/js-kk.yml @@ -25,8 +25,6 @@ kk: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ko.yml b/modules/costs/config/locales/crowdin/js-ko.yml index cd827f6ca08a..ec0a58d6e588 100644 --- a/modules/costs/config/locales/crowdin/js-ko.yml +++ b/modules/costs/config/locales/crowdin/js-ko.yml @@ -25,8 +25,6 @@ ko: button_log_costs: 단위 비용 기록 label_hour: 시간 label_hours: 시간 - myTimeTracking: - noSpecificTime: 특정 시간 없음 text_are_you_sure: 계속하시겠습니까? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-li.yml b/modules/costs/config/locales/crowdin/js-li.yml index 7c6a4310b52e..3895d287dc01 100644 --- a/modules/costs/config/locales/crowdin/js-li.yml +++ b/modules/costs/config/locales/crowdin/js-li.yml @@ -25,8 +25,6 @@ li: button_log_costs: Registreer koste per eenheid label_hour: oor label_hours: ore - myTimeTracking: - noSpecificTime: Gen specifieke tied text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-lt.yml b/modules/costs/config/locales/crowdin/js-lt.yml index 4fe1a997a5d0..bdf566194115 100644 --- a/modules/costs/config/locales/crowdin/js-lt.yml +++ b/modules/costs/config/locales/crowdin/js-lt.yml @@ -25,8 +25,6 @@ lt: button_log_costs: Vesti į žurnalą vieneto kaštus label_hour: valanda label_hours: valandos (-a, -ų) - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Ar esate įsitikinę? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-lv.yml b/modules/costs/config/locales/crowdin/js-lv.yml index fc645d2571bc..741daf819c71 100644 --- a/modules/costs/config/locales/crowdin/js-lv.yml +++ b/modules/costs/config/locales/crowdin/js-lv.yml @@ -25,8 +25,6 @@ lv: button_log_costs: Uzskaitīt vienības izmaksas label_hour: stunda label_hours: stundas - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Vai esat pārliecināts? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-mn.yml b/modules/costs/config/locales/crowdin/js-mn.yml index 5db00f23c0a3..ff1fd06cb550 100644 --- a/modules/costs/config/locales/crowdin/js-mn.yml +++ b/modules/costs/config/locales/crowdin/js-mn.yml @@ -25,8 +25,6 @@ mn: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ms.yml b/modules/costs/config/locales/crowdin/js-ms.yml index 906ae41c0229..2bf8ef72d5fb 100644 --- a/modules/costs/config/locales/crowdin/js-ms.yml +++ b/modules/costs/config/locales/crowdin/js-ms.yml @@ -25,8 +25,6 @@ ms: button_log_costs: Log kos unit label_hour: jam label_hours: jam - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Adakah anda pasti? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ne.yml b/modules/costs/config/locales/crowdin/js-ne.yml index 06deb2413e52..243da250f647 100644 --- a/modules/costs/config/locales/crowdin/js-ne.yml +++ b/modules/costs/config/locales/crowdin/js-ne.yml @@ -25,8 +25,6 @@ ne: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-nl.yml b/modules/costs/config/locales/crowdin/js-nl.yml index d99e13e57988..b3bf7ab88a37 100644 --- a/modules/costs/config/locales/crowdin/js-nl.yml +++ b/modules/costs/config/locales/crowdin/js-nl.yml @@ -25,8 +25,6 @@ nl: button_log_costs: Registreer kost per eenheid label_hour: uur label_hours: uren - myTimeTracking: - noSpecificTime: Geen specifieke tijd text_are_you_sure: Weet u het zeker? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-no.yml b/modules/costs/config/locales/crowdin/js-no.yml index bf0093d74111..1a4c42545bb8 100644 --- a/modules/costs/config/locales/crowdin/js-no.yml +++ b/modules/costs/config/locales/crowdin/js-no.yml @@ -25,8 +25,6 @@ button_log_costs: Loggfør enhetskostnader label_hour: time label_hours: " timer" - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Er du sikker? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-pl.yml b/modules/costs/config/locales/crowdin/js-pl.yml index f1a78d79ae24..69c2d772532c 100644 --- a/modules/costs/config/locales/crowdin/js-pl.yml +++ b/modules/costs/config/locales/crowdin/js-pl.yml @@ -25,8 +25,6 @@ pl: button_log_costs: Rejestruj koszty jednostkowe label_hour: godzina label_hours: godziny - myTimeTracking: - noSpecificTime: Brak określonego czasu text_are_you_sure: Jesteś pewny? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-pt-BR.yml b/modules/costs/config/locales/crowdin/js-pt-BR.yml index bba03f8374b1..8640040fc7e2 100644 --- a/modules/costs/config/locales/crowdin/js-pt-BR.yml +++ b/modules/costs/config/locales/crowdin/js-pt-BR.yml @@ -25,8 +25,6 @@ pt-BR: button_log_costs: Registrar custos unitários label_hour: hora label_hours: horas - myTimeTracking: - noSpecificTime: Sem horário específico text_are_you_sure: Você tem certeza? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-pt-PT.yml b/modules/costs/config/locales/crowdin/js-pt-PT.yml index 233420b67634..7605c655f5e0 100644 --- a/modules/costs/config/locales/crowdin/js-pt-PT.yml +++ b/modules/costs/config/locales/crowdin/js-pt-PT.yml @@ -25,8 +25,6 @@ pt-PT: button_log_costs: Registar custos unitários label_hour: hora label_hours: horas - myTimeTracking: - noSpecificTime: Nenhum horário específico text_are_you_sure: Tem a certeza? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ro.yml b/modules/costs/config/locales/crowdin/js-ro.yml index 2538f2236f08..89ecefcde0b5 100644 --- a/modules/costs/config/locales/crowdin/js-ro.yml +++ b/modules/costs/config/locales/crowdin/js-ro.yml @@ -25,8 +25,6 @@ ro: button_log_costs: Înregistrare costuri unitare label_hour: oră label_hours: ore - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Ești sigur? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-ru.yml b/modules/costs/config/locales/crowdin/js-ru.yml index dd899e89692b..f4e1145b2194 100644 --- a/modules/costs/config/locales/crowdin/js-ru.yml +++ b/modules/costs/config/locales/crowdin/js-ru.yml @@ -25,8 +25,6 @@ ru: button_log_costs: Внести расходы на единицу label_hour: час label_hours: часы - myTimeTracking: - noSpecificTime: Нет определенного времени text_are_you_sure: Уверены? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-rw.yml b/modules/costs/config/locales/crowdin/js-rw.yml index 43ae176abef4..a890a77c5cc9 100644 --- a/modules/costs/config/locales/crowdin/js-rw.yml +++ b/modules/costs/config/locales/crowdin/js-rw.yml @@ -25,8 +25,6 @@ rw: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-si.yml b/modules/costs/config/locales/crowdin/js-si.yml index 571e187d407e..04f575b727bc 100644 --- a/modules/costs/config/locales/crowdin/js-si.yml +++ b/modules/costs/config/locales/crowdin/js-si.yml @@ -25,8 +25,6 @@ si: button_log_costs: Log unit costs label_hour: පැය label_hours: පැය - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: ඔබට විශ්වාසද? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-sk.yml b/modules/costs/config/locales/crowdin/js-sk.yml index 2e3118b02c4a..d1f323061908 100644 --- a/modules/costs/config/locales/crowdin/js-sk.yml +++ b/modules/costs/config/locales/crowdin/js-sk.yml @@ -25,8 +25,6 @@ sk: button_log_costs: Zaúčtovať jednotkové náklady label_hour: hodina label_hours: hodín - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Ste si istí? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-sl.yml b/modules/costs/config/locales/crowdin/js-sl.yml index 83d0b4817533..c2259265b0c7 100644 --- a/modules/costs/config/locales/crowdin/js-sl.yml +++ b/modules/costs/config/locales/crowdin/js-sl.yml @@ -25,8 +25,6 @@ sl: button_log_costs: Stroški enote dnevnika label_hour: ura label_hours: ure - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Ste prepričani? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-sr.yml b/modules/costs/config/locales/crowdin/js-sr.yml index 459018220bef..9670866fb213 100644 --- a/modules/costs/config/locales/crowdin/js-sr.yml +++ b/modules/costs/config/locales/crowdin/js-sr.yml @@ -25,8 +25,6 @@ sr: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-sv.yml b/modules/costs/config/locales/crowdin/js-sv.yml index 428b90f430c3..407e0cf2c791 100644 --- a/modules/costs/config/locales/crowdin/js-sv.yml +++ b/modules/costs/config/locales/crowdin/js-sv.yml @@ -25,8 +25,6 @@ sv: button_log_costs: Logga enhetskostnader label_hour: timme label_hours: timmar - myTimeTracking: - noSpecificTime: Ingen specifik tid text_are_you_sure: Är du säker? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-th.yml b/modules/costs/config/locales/crowdin/js-th.yml index f89651e3a78f..7dfcddbfe19a 100644 --- a/modules/costs/config/locales/crowdin/js-th.yml +++ b/modules/costs/config/locales/crowdin/js-th.yml @@ -25,8 +25,6 @@ th: button_log_costs: Log unit costs label_hour: hour label_hours: ชั่วโมง - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: คุณแน่ใจหรือไม่ ? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-tr.yml b/modules/costs/config/locales/crowdin/js-tr.yml index b3d50407ec33..0361f9cf6148 100644 --- a/modules/costs/config/locales/crowdin/js-tr.yml +++ b/modules/costs/config/locales/crowdin/js-tr.yml @@ -25,8 +25,6 @@ tr: button_log_costs: Günlük birim maliyetleri label_hour: saat label_hours: saatler - myTimeTracking: - noSpecificTime: Belirli bir zaman yok text_are_you_sure: Emin misiniz? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-uk.yml b/modules/costs/config/locales/crowdin/js-uk.yml index 6c6fee92a256..37f8a7c79250 100644 --- a/modules/costs/config/locales/crowdin/js-uk.yml +++ b/modules/costs/config/locales/crowdin/js-uk.yml @@ -25,8 +25,6 @@ uk: button_log_costs: Витрати на одиницю label_hour: година label_hours: годин(и) - myTimeTracking: - noSpecificTime: Немає визначеного часу text_are_you_sure: Ви впевненені? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-uz.yml b/modules/costs/config/locales/crowdin/js-uz.yml index d21d251990ce..eaa5f6835ba8 100644 --- a/modules/costs/config/locales/crowdin/js-uz.yml +++ b/modules/costs/config/locales/crowdin/js-uz.yml @@ -25,8 +25,6 @@ uz: button_log_costs: Log unit costs label_hour: hour label_hours: hours - myTimeTracking: - noSpecificTime: No specific time text_are_you_sure: Are you sure? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-vi.yml b/modules/costs/config/locales/crowdin/js-vi.yml index 2dbe467b6368..df2e8b5b3b9e 100644 --- a/modules/costs/config/locales/crowdin/js-vi.yml +++ b/modules/costs/config/locales/crowdin/js-vi.yml @@ -25,8 +25,6 @@ vi: button_log_costs: Ghi lại chi phí đơn vị label_hour: giờ label_hours: giờ - myTimeTracking: - noSpecificTime: Không có thời gian cụ thể text_are_you_sure: Bạn có chắc không? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-zh-CN.yml b/modules/costs/config/locales/crowdin/js-zh-CN.yml index 487b9d6afd09..4f495344da1e 100644 --- a/modules/costs/config/locales/crowdin/js-zh-CN.yml +++ b/modules/costs/config/locales/crowdin/js-zh-CN.yml @@ -25,8 +25,6 @@ zh-CN: button_log_costs: 记录单位成本 label_hour: 小时 label_hours: 小时 - myTimeTracking: - noSpecificTime: 未指定时间 text_are_you_sure: 是否确定? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/js-zh-TW.yml b/modules/costs/config/locales/crowdin/js-zh-TW.yml index fc1028c41188..c624157e1a3c 100644 --- a/modules/costs/config/locales/crowdin/js-zh-TW.yml +++ b/modules/costs/config/locales/crowdin/js-zh-TW.yml @@ -25,8 +25,6 @@ zh-TW: button_log_costs: 紀錄支出單位 label_hour: 小時 label_hours: 小時 - myTimeTracking: - noSpecificTime: 無指定時間 text_are_you_sure: 是否確定? work_packages: properties: diff --git a/modules/costs/config/locales/crowdin/ka.yml b/modules/costs/config/locales/crowdin/ka.yml index c3b95131da67..eb097d091ee4 100644 --- a/modules/costs/config/locales/crowdin/ka.yml +++ b/modules/costs/config/locales/crowdin/ka.yml @@ -72,6 +72,10 @@ ka: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ ka: button_add_time_entry: ჟურნალში დროის ჩაწერა button_log_costs: ერთეულის ფასის ჟურნალი button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ ka: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ ka: label_costlog: Logged unit costs label_costs: ხარჯები label_costs_per_page: ღირებულებები თითოეული გვერდისთვის + label_current: Current label_current_default_rate: Current default rate label_date_on: დრო - label_day: დღე label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ ka: label_less_or_equal: "<=" label_list: სია label_log_costs: ერთეულის ფასის ჟურნალი - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: შემდეგი კვირა - label_next_workweek: Next work week label_no: არა - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: მორგება label_overall_costs: ჯამური ფასი - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: წინა კვირა - label_previous_workweek: Previous work week label_rate_plural: ტარიფები label_show: ჩვენება label_specific_day: Day %{day} @@ -248,15 +246,14 @@ ka: label_status_finished: დასრულებულია label_time: დრო label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: დღეს label_units: ერთეულის ფასი label_until: დასასრულის დრო + label_using_current_default_rate: Using current default rate label_valid_from: Ძალაშია - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: სამუშაო კვირა label_yes: დიახ notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ ka: permission_edit_rates: ტარიფების ჩასწორება permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ ka: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/kk.yml b/modules/costs/config/locales/crowdin/kk.yml index f0b1f0812410..a907fb68acc9 100644 --- a/modules/costs/config/locales/crowdin/kk.yml +++ b/modules/costs/config/locales/crowdin/kk.yml @@ -72,6 +72,10 @@ kk: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ kk: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ kk: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ kk: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ kk: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ kk: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ kk: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ kk: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/ko.yml b/modules/costs/config/locales/crowdin/ko.yml index e61f3144b30a..2319f8ff172b 100644 --- a/modules/costs/config/locales/crowdin/ko.yml +++ b/modules/costs/config/locales/crowdin/ko.yml @@ -72,6 +72,10 @@ ko: attributes: project_ids: blank: 프로젝트를 선택하세요. + rate: + attributes: + principal: + invalid: "- 사용자이거나 플레이스홀더 사용자여야 합니다." time_entry: attributes: entity: @@ -131,7 +135,6 @@ ko: button_add_time_entry: 작업시간 기록 button_log_costs: 단위 비용 기록 button_log_time: 기록 - button_stop_timer: 타이머 중지 button_update_limits: 제한 업데이트 button_update_start_finish_times: 시작 및 완료 시간 업데이트 caption_booked_on_project: 프로젝트에서 예약됨 @@ -165,9 +168,13 @@ ko: cost_types: for_all_projects_hint: 이 비용 유형은 모든 프로젝트에서 활성화되었습니다. heading: 비용 유형 + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: "- 이 프로젝트에서 해당 비용 유형에 대한 비용이 이미 기록되었으므로 해당 유형을 비활성화할 수 없습니다." none_active: 이 프로젝트에는 현재 활성화된 비용 유형이 없습니다. time_and_costs: 시간 및 비용 + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ ko: label_costlog: 기록된 단위 비용 label_costs: 비용 label_costs_per_page: 페이지당 비용 + label_current: 현재 label_current_default_rate: 현재 기본 요금 label_date_on: "-" - label_day: 일 label_defaults_and_limits: 기본값 및 제한 label_deleted_cost_types: 삭제된 비용 유형 label_display_cost_entries: 단위 비용 표시 @@ -216,21 +223,12 @@ ko: label_less_or_equal: "<=" label_list: 목록 label_log_costs: 단위 비용 기록 - label_month: 월 - label_my_time_tracking: 내 시간 추적 label_new_time_entry_activity: 새로운 시간 입력 활동 - label_next_day: 다음 날 - label_next_month: 다음 달 - label_next_week: 다음 주 - label_next_workweek: 다음 근무 주 label_no: 아니요 - label_no_time: 추적된 시간 없음 + label_no_default_rate: 기본 요금 설정 안 됨 + label_no_project_rate: 이 프로젝트에 대한 요금 설정 안 됨 label_option_plural: 옵션 label_overall_costs: 전체 비용 - label_previous_day: 이전 날 - label_previous_month: 이전 달 - label_previous_week: 이전 주 - label_previous_workweek: 이전 근무 주 label_rate_plural: 요금 label_show: 표시 label_specific_day: "%{day}일" @@ -239,15 +237,14 @@ ko: label_status_finished: 마침 label_time: 시간 label_time_entry_activity_form_description: 이 시간 입력 활동의 변경 사항은 이 활동이 활성화된 모든 프로젝트에서 반영됩니다. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: 제한 - label_timer_since: "%{time}에 시작됨" label_today_capitalized: 오늘 label_units: 단위 비용 label_until: '다음까지:' + label_using_current_default_rate: 현재 기본 요금 사용 label_valid_from: 다음부터 유효함 - label_view_mode_switcher: 보기 변경 label_work_package_filter_add: 작업 패키지 필터 추가 - label_workweek: 근무 주 label_yes: 예 notice_cost_logged_successfully: 단위 비용이 기록되었습니다. notice_different_time_zones: 이 사용자의 표준 시간대(%{tz})가 다릅니다. 시간은 해당 표준 시간대를 사용하여 기록됩니다. @@ -263,6 +260,10 @@ ko: permission_edit_rates: 요금 편집 permission_log_costs: 단위 비용 예약 permission_log_own_costs: 자신에 대한 단위 비용 예약 + permission_manage_default_hourly_rates: 기본 시간당 요금 관리 + permission_manage_default_hourly_rates_explanation: '사용자 및 플레이스홀더 사용자의 기본 시간당 요금을 추가, 변경 및 삭제할 수 있습니다. + + ' permission_view_cost_entries: 예약된 비용 보기 permission_view_cost_rates: 비용 요금 보기 permission_view_hourly_rates: 모든 시간당 요금 보기 @@ -300,6 +301,11 @@ ko: text_destroy_cost_entries_question: "%{cost_entries}은(는) 삭제하려는 작업 패키지에서 보고되었습니다. 어떻게 하시겠습니까?" text_destroy_time_and_cost_entries: 보고된 시간 및 비용 삭제 text_destroy_time_and_cost_entries_question: "%{hours}시간, %{cost_entries}은(는) 삭제하려는 작업 패키지에서 보고되었습니다. 어떻게 하시겠습니까?" + text_hourly_rate_destroy_confirmation: "%{valid_from}부터 유효한 %{rate} 요금이 삭제됩니다. 해당 요금으로 예약된 비용은 그 시점에 적용되는 요금으로 다시 계산됩니다." + text_hourly_rate_destroy_confirmation_checkbox_label: 이 작업은 되돌릴 수 없음을 이해합니다. + text_hourly_rate_recalculation: 이 요금은 유효한 시작일부터 이후 요금이 유효할 때까지 적용됩니다. 이 요금을 변경하면 해당 기간의 기존 시간 항목 및 예산도 다시 계산됩니다. + text_no_default_rate: 사용자가 특정 요금을 설정하지 않은 모든 프로젝트에서는 기본 요금이 사용됩니다. + text_no_project_rate: 이 프로젝트는 현재 기본 요금을 사용합니다. text_reassign_time_and_cost_entries: '보고된 시간 및 비용을 이 작업 패키지에 다시 할당:' text_warning_hidden_elements: 일부 항목이 집계에서 제외되었을 수 있습니다. total_times: diff --git a/modules/costs/config/locales/crowdin/li.yml b/modules/costs/config/locales/crowdin/li.yml index ffdb149c72af..596c5a9fe037 100644 --- a/modules/costs/config/locales/crowdin/li.yml +++ b/modules/costs/config/locales/crowdin/li.yml @@ -72,6 +72,10 @@ li: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ li: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Registreer - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ li: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ li: label_costlog: Logged unit costs label_costs: Koste label_costs_per_page: Koste per pagina + label_current: Current label_current_default_rate: Current default rate label_date_on: op - label_day: Daag label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ li: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Maond - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Volgende daag - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: Nae - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opties label_overall_costs: Overall costs - label_previous_day: Veurige daag - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Tarieve label_show: Show label_specific_day: Daag %{day} @@ -248,15 +246,14 @@ li: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Vandaag label_units: Cost units label_until: wies + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Werkwaek label_yes: Jao notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ li: permission_edit_rates: Tarieve bewerke permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ li: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/lt.yml b/modules/costs/config/locales/crowdin/lt.yml index eb9eafe35c97..c24b466a1d34 100644 --- a/modules/costs/config/locales/crowdin/lt.yml +++ b/modules/costs/config/locales/crowdin/lt.yml @@ -72,6 +72,10 @@ lt: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -158,7 +162,6 @@ lt: button_add_time_entry: Registruoti laiką button_log_costs: Vesti į žurnalą vieneto kaštus button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Įrašytas projektui @@ -192,9 +195,13 @@ lt: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ lt: label_costlog: Į žurnalą surinkti vieneto kaštai label_costs: Kaštai label_costs_per_page: Kaštų puslapyje + label_current: Current label_current_default_rate: Esamas numatytasis koeficientas label_date_on: įjungta - label_day: Diena label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Panaikinti kaštų tipai label_display_cost_entries: Rodyti vieneto kaštus @@ -243,21 +250,12 @@ lt: label_less_or_equal: "<=" label_list: Sąrašas label_log_costs: Vesti į žurnalą vieneto kaštus - label_month: Mėnuo - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Sekanti savaitė - label_next_workweek: Next work week label_no: Ne - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Nustatymai label_overall_costs: Bendri kaštai - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Ankstesnė savaitė - label_previous_workweek: Previous work week label_rate_plural: Koeficientai label_show: Rodyti label_specific_day: Day %{day} @@ -266,15 +264,14 @@ lt: label_status_finished: Baigta label_time: Laikas label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Šiandien label_units: Kaštų vienetai label_until: iki + label_using_current_default_rate: Using current default rate label_valid_from: Galioja nuo - label_view_mode_switcher: Change view label_work_package_filter_add: Pridėti darbų paketo filtrą - label_workweek: Darbo savaitė label_yes: Taip notice_cost_logged_successfully: Vieneto kaštai į žurnalą įrašyti sėkmingai. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -290,6 +287,10 @@ lt: permission_edit_rates: Redaguoti koeficientus permission_log_costs: Įrašyti vieneto kaštus permission_log_own_costs: Įrašyti vieneto kaštus už save + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Peržiūrėti įrašytus kaštus permission_view_cost_rates: Peržiūrėti išlaidų koeficientus permission_view_hourly_rates: Peržiūrėti visus valandinius koeficientus @@ -327,6 +328,11 @@ lt: text_destroy_cost_entries_question: "%{cost_entries} buvo pranešta Jūsų ketinamiems ištrinti darbų paketams. Ką Jūs norite daryti?" text_destroy_time_and_cost_entries: Ištrinti praneštas valandas ir kaštus text_destroy_time_and_cost_entries_question: "%{hours} valandos, %{cost_entries} buvo pranešti Jūsų ketinamiems ištrinti darbų paketams. Ką Jūs norite daryti?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Iš naujo priskirti praneštas valandas ir kaštus šiam darbų paketui:' text_warning_hidden_elements: Kai kurie įrašai galimai atskirti nuo agregacijos. total_times: diff --git a/modules/costs/config/locales/crowdin/lv.yml b/modules/costs/config/locales/crowdin/lv.yml index 2c04c3507134..868e9d6ac72c 100644 --- a/modules/costs/config/locales/crowdin/lv.yml +++ b/modules/costs/config/locales/crowdin/lv.yml @@ -72,6 +72,10 @@ lv: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -149,7 +153,6 @@ lv: button_add_time_entry: Log time button_log_costs: Uzskaitīt vienības izmaksas button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -183,9 +186,13 @@ lv: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -216,9 +223,9 @@ lv: label_costlog: Logged unit costs label_costs: Izmaksas label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: " " - label_day: Diena label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -234,21 +241,12 @@ lv: label_less_or_equal: mazāks vai vienāds label_list: List label_log_costs: Uzskaitīt vienības izmaksas - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: Nē - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opcijas label_overall_costs: Kopējās izmaksas - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Likmes label_show: Rādīt label_specific_day: Day %{day} @@ -257,15 +255,14 @@ lv: label_status_finished: Pabeigts label_time: Laiks label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Izmaksu vienības label_until: līdz + label_using_current_default_rate: Using current default rate label_valid_from: Derīgs no - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: Jā notice_cost_logged_successfully: Sekmīgi reģistrētas vienības izmaksas. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -281,6 +278,10 @@ lv: permission_edit_rates: Rediģēšanas likmes permission_log_costs: Uzskaitīt vienības izmaksas permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: Pārskatīt izmaksu likmes permission_view_hourly_rates: View all hourly rates @@ -318,6 +319,11 @@ lv: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/mn.yml b/modules/costs/config/locales/crowdin/mn.yml index ce876e8f7b82..b156b2ceea1c 100644 --- a/modules/costs/config/locales/crowdin/mn.yml +++ b/modules/costs/config/locales/crowdin/mn.yml @@ -72,6 +72,10 @@ mn: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ mn: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ mn: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ mn: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Өдөр label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ mn: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ mn: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Өнөөдөр label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Ажлын долоо хоног label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ mn: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ mn: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/ms.yml b/modules/costs/config/locales/crowdin/ms.yml index 96f520c59981..b7683afc5ac7 100644 --- a/modules/costs/config/locales/crowdin/ms.yml +++ b/modules/costs/config/locales/crowdin/ms.yml @@ -72,6 +72,10 @@ ms: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -131,7 +135,6 @@ ms: button_add_time_entry: Masa log button_log_costs: Log kos unit button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Ditempah pada projek @@ -165,9 +168,13 @@ ms: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ ms: label_costlog: Kos unit yang telah dilog label_costs: Kos label_costs_per_page: Kos setiap halaman + label_current: Current label_current_default_rate: Kadar default semasa label_date_on: pada - label_day: Hari label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Jenis kos yang dipadam label_display_cost_entries: Papar kos unit @@ -216,21 +223,12 @@ ms: label_less_or_equal: "<=" label_list: Senarai label_log_costs: Log kos unit - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Minggu hadapan - label_next_workweek: Next work week label_no: Tidak - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Pilihan label_overall_costs: Kos keseluruhan - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Minggu sebelumnya - label_previous_workweek: Previous work week label_rate_plural: Kadar-kadar label_show: Paparkan label_specific_day: Day %{day} @@ -239,15 +237,14 @@ ms: label_status_finished: Selesai label_time: Masa label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Hari ini label_units: Unit kos label_until: sehingga + label_using_current_default_rate: Using current default rate label_valid_from: Sah dari - label_view_mode_switcher: Change view label_work_package_filter_add: Tambah saringan pakej kerja - label_workweek: Minggu bekerja label_yes: Ya notice_cost_logged_successfully: Unit kos berjaya dilog. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -263,6 +260,10 @@ ms: permission_edit_rates: Edit kadar permission_log_costs: Tempah kos unit permission_log_own_costs: Tempah kos unit untuk diri sendiri + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Lihat kos yang ditempah permission_view_cost_rates: Lihat kadar kos permission_view_hourly_rates: Lihat semua kadar jam @@ -300,6 +301,11 @@ ms: text_destroy_cost_entries_question: "%{cost_entries} dilaporkan pada pakej kerja yang anda ingin padamkan. Apakah yang anda ingin lakukan ?" text_destroy_time_and_cost_entries: Padam jam dan kos yang dilaporkan text_destroy_time_and_cost_entries_question: "%{hours} jam, %{cost_entries} dilaporkan pada pakej kerja yang anda ingin padamkan. Apakah yang anda ingin lakukan ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Tetapkan semula jam dan kos yang dilaporkan ke projek:' text_warning_hidden_elements: Beberapa entri mungkin telah dikecualikan daripada pengumpulan. total_times: diff --git a/modules/costs/config/locales/crowdin/ne.yml b/modules/costs/config/locales/crowdin/ne.yml index e4b5c09c8f5e..98239d857496 100644 --- a/modules/costs/config/locales/crowdin/ne.yml +++ b/modules/costs/config/locales/crowdin/ne.yml @@ -72,6 +72,10 @@ ne: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ ne: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ ne: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ ne: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ ne: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ ne: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ ne: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ ne: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/nl.yml b/modules/costs/config/locales/crowdin/nl.yml index 36d279d9414f..a79d981de447 100644 --- a/modules/costs/config/locales/crowdin/nl.yml +++ b/modules/costs/config/locales/crowdin/nl.yml @@ -72,6 +72,10 @@ nl: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ nl: button_add_time_entry: Gelogde tijd button_log_costs: Registreer kost per eenheid button_log_time: Registreer - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Gereserveerd op project @@ -174,9 +177,13 @@ nl: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Soort kosten + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Tijd en kosten + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ nl: label_costlog: Geregistreerde kosten per eenheid label_costs: Kosten label_costs_per_page: Kosten per pagina + label_current: Current label_current_default_rate: Huidige standaard tarief label_date_on: op - label_day: Dag label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Verwijderde kostentypen label_display_cost_entries: Kosten per eenheid weergeven @@ -225,21 +232,12 @@ nl: label_less_or_equal: "<=" label_list: Lijst label_log_costs: Registreer kosten per eenheid - label_month: Maand - label_my_time_tracking: Mijn tijdregistratie label_new_time_entry_activity: Nieuwe tijdregistratieactiviteit - label_next_day: Volgende dag - label_next_month: Volgende maand - label_next_week: Volgende week - label_next_workweek: Volgende werkweek label_no: Nee - label_no_time: Geen tijd geregistreerd + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opties label_overall_costs: Totale kosten - label_previous_day: Vorige dag - label_previous_month: Vorige maand - label_previous_week: Vorige week - label_previous_workweek: Vorige werkweek label_rate_plural: Tarieven label_show: Toon label_specific_day: Dag %{day} @@ -248,15 +246,14 @@ nl: label_status_finished: Afgerond label_time: Tijd label_time_entry_activity_form_description: Wijzigingen in deze tijdregistratie activiteit worden weergegeven in alle projecten waar het is ingeschakeld. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limieten - label_timer_since: Begonnen op %{time} label_today_capitalized: Vandaag label_units: Kosten eenheden label_until: tot + label_using_current_default_rate: Using current default rate label_valid_from: Geldig vanaf - label_view_mode_switcher: Weergave wijzigen label_work_package_filter_add: Werkpakket filter toevoegen - label_workweek: Werkweek label_yes: Ja notice_cost_logged_successfully: Kosten eenheid succesvol geregistreerd. notice_different_time_zones: Deze gebruiker heeft een andere tijdzone (%{tz}). De tijd wordt geregistreerd met hun tijdzone. @@ -272,6 +269,10 @@ nl: permission_edit_rates: Tarieven bewerken permission_log_costs: Kosten per eenheid boeken permission_log_own_costs: Kosten per eenheid boeken voor zichzelf + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Geboekte kosten bekijken permission_view_cost_rates: Bekijk kostentarieven permission_view_hourly_rates: Bekijk alle uurtarieven @@ -309,6 +310,11 @@ nl: text_destroy_cost_entries_question: "%{cost_entries} werd gerapporteerd op de werkpakketten die je gaat verwijderen. Wat wil je doen?" text_destroy_time_and_cost_entries: Gerapporteerde uren en kosten verwijderen text_destroy_time_and_cost_entries_question: "%{hours} uren, %{cost_entries} werden gerapporteerd op de werkpakketten die je gaat verwijderen. Wat wil je doen?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Gerapporteerde uren en kosten voor dit werkpakket opnieuw toewijzen:' text_warning_hidden_elements: Sommige items zijn mogelijk uitgesloten van de aggregatie. total_times: diff --git a/modules/costs/config/locales/crowdin/no.yml b/modules/costs/config/locales/crowdin/no.yml index 98a0f795671f..eb32ac720433 100644 --- a/modules/costs/config/locales/crowdin/no.yml +++ b/modules/costs/config/locales/crowdin/no.yml @@ -72,6 +72,10 @@ attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ button_add_time_entry: Logg tid button_log_costs: Loggfør enhetskostnader button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Bestilt i prosjektet @@ -174,9 +177,13 @@ cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ label_costlog: Loggførte enhetskostnader label_costs: Kostnader label_costs_per_page: Kostnader per side + label_current: Current label_current_default_rate: Nåværende standardsats label_date_on: på - label_day: Dag label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Slettede kostnadstyper label_display_cost_entries: Vis enhetskostnader @@ -225,21 +232,12 @@ label_less_or_equal: "<=" label_list: Liste label_log_costs: Loggfør enhetskostnader - label_month: Måned - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Neste uke - label_next_workweek: Next work week label_no: Nei - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Alternativer label_overall_costs: Samlede kostnader - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Forrige uke - label_previous_workweek: Previous work week label_rate_plural: Satser label_show: Vis label_specific_day: Day %{day} @@ -248,15 +246,14 @@ label_status_finished: Fullført label_time: Tidspunkt label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: I dag label_units: Kostenheter label_until: fram til + label_using_current_default_rate: Using current default rate label_valid_from: Gyldig fra - label_view_mode_switcher: Change view label_work_package_filter_add: Legg til arbeidspakke-filter - label_workweek: Arbeidsuke label_yes: Ja notice_cost_logged_successfully: Enhetskostnaden er logget. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ permission_edit_rates: Rediger satser permission_log_costs: Bokførte enhetskostnader permission_log_own_costs: Boklige enhetskostnader for seg selv + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Vis bokførte kostnader permission_view_cost_rates: Se kostnadsrater permission_view_hourly_rates: Vis alle timesatser @@ -309,6 +310,11 @@ text_destroy_cost_entries_question: "%{cost_entries} ble rapportert på arbeidspakkene du er i ferd med å slette. Hva vil du gjøre ?" text_destroy_time_and_cost_entries: Slett rapporterte timer og kostnader text_destroy_time_and_cost_entries_question: "%{hours} timer, %{cost_entries} ble rapportert på arbeidspakkene du er i ferd med å slette. Hva ønsker du å gjøre?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Overfør rapporterte timer og kostnader til denne arbeidspakken:' text_warning_hidden_elements: Noen oppføringer kan være utelatt fra aggregeringen. total_times: diff --git a/modules/costs/config/locales/crowdin/pl.yml b/modules/costs/config/locales/crowdin/pl.yml index 9c08d08ddd0b..ecb0a2882196 100644 --- a/modules/costs/config/locales/crowdin/pl.yml +++ b/modules/costs/config/locales/crowdin/pl.yml @@ -72,6 +72,10 @@ pl: attributes: project_ids: blank: Wybierz projekt. + rate: + attributes: + principal: + invalid: musi być użytkownikiem lub użytkownikiem zastępczym. time_entry: attributes: entity: @@ -158,7 +162,6 @@ pl: button_add_time_entry: Rejestruj czas pracy button_log_costs: Rejestruj koszty jednostkowe button_log_time: Dziennik - button_stop_timer: Zatrzymaj zegar button_update_limits: Zaktualizuj limity button_update_start_finish_times: Zaktualizuj czasy rozpoczęcia i zakończenia caption_booked_on_project: Zarezerwowano na projekt @@ -192,9 +195,13 @@ pl: cost_types: for_all_projects_hint: Ten typ kosztów jest włączony we wszystkich projektach. heading: Typy kosztów + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Tego typu kosztu nie można wyłączyć, ponieważ odpowiednie koszty zostały już zarejestrowane w tym projekcie. none_active: Żadne typy kosztów nie są obecnie aktywne w tym projekcie. time_and_costs: Czas i koszty + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ pl: label_costlog: Zarejestrowane koszty jednostkowe label_costs: Koszty label_costs_per_page: Kosztów na stronę + label_current: Bieżący label_current_default_rate: Aktualne stawki domyślne label_date_on: na - label_day: Dzień label_defaults_and_limits: Ustawienia domyślne i limity label_deleted_cost_types: Usunięte typy kosztów label_display_cost_entries: Pokaż koszty jednostkowe @@ -243,21 +250,12 @@ pl: label_less_or_equal: "≤" label_list: Lista label_log_costs: Rejestruj koszty jednostkowe - label_month: Miesiąc - label_my_time_tracking: Moje śledzenie czasu label_new_time_entry_activity: Nowa aktywność wprowadzania czasu - label_next_day: Następny dzień - label_next_month: Następny miesiąc - label_next_week: Następny tydzień - label_next_workweek: Następny tydzień pracy label_no: Nie - label_no_time: Brak śledzonego czasu + label_no_default_rate: Nie ustawiono stawki domyślnej + label_no_project_rate: Nie ustawiono stawki dla tego projektu label_option_plural: Opcje label_overall_costs: Koszt całkowity - label_previous_day: Poprzedni dzień - label_previous_month: Poprzedni miesiąc - label_previous_week: Poprzedni tygodzień - label_previous_workweek: Poprzedni tydzień pracy label_rate_plural: Taryfy label_show: Pokaż label_specific_day: Dzień %{day} @@ -266,15 +264,14 @@ pl: label_status_finished: Zakończone label_time: Czas label_time_entry_activity_form_description: Zmiany tej aktywności wprowadzania czasu zostaną odzwierciedlone we wszystkich projektach, w których jest ona włączona. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limity - label_timer_since: Rozpoczęto o %{time} label_today_capitalized: Dzisiaj label_units: Koszt jednostki label_until: do + label_using_current_default_rate: Używanie stawek domyślnych label_valid_from: Ważny od - label_view_mode_switcher: Zmień widok label_work_package_filter_add: Dodaj filtr Zestawu zadań - label_workweek: Tydzień roboczy label_yes: Tak notice_cost_logged_successfully: Koszt jednostkowy zarejestrowano pomyślnie. notice_different_time_zones: Ten użytkownik ma inną strefę czasową (%{tz}). Godzina będzie rejestrowana przy użyciu tej strefy czasowej. @@ -290,6 +287,10 @@ pl: permission_edit_rates: Edycja stawek/cen permission_log_costs: Zarejestruj koszty jednostkowe permission_log_own_costs: Zarejestruj koszty jednostkowe dla siebie + permission_manage_default_hourly_rates: Zarządzaj domyślnymi stawkami godzinowymi + permission_manage_default_hourly_rates_explanation: 'Umożliwia dodawanie, zmianę i usuwanie domyślnych stawek godzinowych użytkowników oraz użytkowników zastępczych. + + ' permission_view_cost_entries: Zobacz zarejestrowane koszty permission_view_cost_rates: Zobacz koszty stawek permission_view_hourly_rates: Zobacz wszystkie stawki godzinowe @@ -327,6 +328,11 @@ pl: text_destroy_cost_entries_question: "%{cost_entries} zostały zgłoszone do Zestawu zadań, który chcesz usunąć. Co chcesz zrobić?" text_destroy_time_and_cost_entries: Usuń zgłoszone godziny i koszty text_destroy_time_and_cost_entries_question: "%{hours} godzin, %{cost_entries} zostały zgłoszone do Zestawu zadań, który chcesz usunąć. Co chcesz zrobić?" + text_hourly_rate_destroy_confirmation: Stawka %{rate} obowiązująca od %{valid_from} zostanie usunięta. Koszty zaksięgowane na jej podstawie zostaną ponownie obliczone według obowiązującej stawki. + text_hourly_rate_destroy_confirmation_checkbox_label: Rozumiem, że to działanie jest nieodwracalne. + text_hourly_rate_recalculation: Ta stawka ta obowiązuje od daty wejścia w życie do momentu wejścia w życie nowej stawki. Jej zmiana spowoduje również ponowne obliczenie istniejących wpisów czasu pracy oraz budżetów w tym okresie. + text_no_default_rate: Stawka domyślna jest stosowana we wszystkich projektach, w których użytkownik nie ustawił stawki. + text_no_project_rate: W tym projekcie będzie stosowana bieżąca stawka domyślna. text_reassign_time_and_cost_entries: 'Ponownie przypisz zgłoszone godziny i koszty do tego Zestawu zadań:' text_warning_hidden_elements: Niektóre wpisy mogą zostać wyłączone ze zbioru. total_times: diff --git a/modules/costs/config/locales/crowdin/pt-BR.yml b/modules/costs/config/locales/crowdin/pt-BR.yml index 897f8b8dcd1a..a5404c2da340 100644 --- a/modules/costs/config/locales/crowdin/pt-BR.yml +++ b/modules/costs/config/locales/crowdin/pt-BR.yml @@ -72,6 +72,10 @@ pt-BR: attributes: project_ids: blank: Selecione um projeto. + rate: + attributes: + principal: + invalid: deve ser um usuário ou um usuário substituto. time_entry: attributes: entity: @@ -140,7 +144,6 @@ pt-BR: button_add_time_entry: Registro de tempo button_log_costs: Registrar custos unitários button_log_time: Registro - button_stop_timer: Parar temporizador button_update_limits: Atualizar limites button_update_start_finish_times: Atualizar horários de início e término caption_booked_on_project: Reservado para o projeto @@ -174,9 +177,13 @@ pt-BR: cost_types: for_all_projects_hint: Este tipo de custo está habilitado em todos os projetos. heading: Tipos de custo + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Este tipo de custo não pode ser desativado porque já há custos registrados para ele neste projeto. none_active: Nenhum tipo de custo está ativo neste projeto. time_and_costs: Tempo e custos + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ pt-BR: label_costlog: Custos unitários registrados label_costs: Custos label_costs_per_page: Custos por página + label_current: Atual label_current_default_rate: Atual taxa padrão label_date_on: em - label_day: Dia label_defaults_and_limits: Padrões e limites label_deleted_cost_types: Tipos de custos excluídos label_display_cost_entries: Exibir os custos unitários @@ -225,21 +232,12 @@ pt-BR: label_less_or_equal: "<=" label_list: Lista label_log_costs: Registrar custos unitários - label_month: Mês - label_my_time_tracking: Meu controle de tempo label_new_time_entry_activity: Nova atividade de registro de tempo - label_next_day: Próximo dia - label_next_month: Próximo mês - label_next_week: Próxima semana - label_next_workweek: Próxima semana útil label_no: Não - label_no_time: Sem tempo controlado + label_no_default_rate: Nenhuma taxa padrão definida + label_no_project_rate: Nenhuma taxa definida para este projeto label_option_plural: Opções label_overall_costs: Custos totais - label_previous_day: Dia anterior - label_previous_month: Mês anterior - label_previous_week: Semana anterior - label_previous_workweek: Semana útil anterior label_rate_plural: Taxas label_show: Exibir label_specific_day: Dia %{day} @@ -248,15 +246,14 @@ pt-BR: label_status_finished: Finalizado label_time: Horário label_time_entry_activity_form_description: As mudanças nesta atividade de registro de tempo serão aplicadas a todos os projetos onde estiver habilitada. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limites - label_timer_since: Iniciado às %{time} label_today_capitalized: Hoje label_units: Custos unitários label_until: até + label_using_current_default_rate: Usando a taxa padrão atual label_valid_from: Válido a partir de - label_view_mode_switcher: Alterar vista label_work_package_filter_add: Adicionar filtro de pacote de trabalho - label_workweek: Semana útil label_yes: Sim notice_cost_logged_successfully: Custo unitário registrado com sucesso. notice_different_time_zones: Este usuário tem um fuso horário diferente (%{tz}). A hora será registrada usando o fuso horário dele. @@ -272,6 +269,10 @@ pt-BR: permission_edit_rates: Editar taxas permission_log_costs: Reservar custos unitários permission_log_own_costs: Reservar custos unitários próprios + permission_manage_default_hourly_rates: Gerenciar taxas horárias padrão + permission_manage_default_hourly_rates_explanation: 'Permite adicionar, alterar e excluir as taxas horárias padrão de usuários e usuários substitutos. + + ' permission_view_cost_entries: Ver custos reservados permission_view_cost_rates: Ver taxas de custo permission_view_hourly_rates: Ver todas as taxas de horárias @@ -309,6 +310,11 @@ pt-BR: text_destroy_cost_entries_question: "%{cost_entries} foram informados sobre os pacotes de trabalho que você está prestes a excluir. O que você quer fazer?" text_destroy_time_and_cost_entries: Excluir horas e custos informados text_destroy_time_and_cost_entries_question: "%{hours} horas, %{cost_entries} foram relatados sobre os pacotes de trabalho que você está prestes a excluir. O que você quer fazer?" + text_hourly_rate_destroy_confirmation: A taxa de %{rate}, válida a partir de %{valid_from}, será excluída. Os custos lançados com base nela serão recalculados usando a taxa que estiver vigente. + text_hourly_rate_destroy_confirmation_checkbox_label: Entendo que esta ação é irreversível. + text_hourly_rate_recalculation: Essa taxa se aplica a partir da data de início de sua validade até a entrada em vigor de uma taxa posterior. Alterá-la também fará com que os lançamentos de horas e os orçamentos existentes nesse período sejam recalculados. + text_no_default_rate: A taxa padrão é usada em todos os projetos nos quais não há uma taxa específica definida para o usuário. + text_no_project_rate: Este projeto usará a taxa padrão atual. text_reassign_time_and_cost_entries: 'Reatribua horas reportadas e custos para este pacote de trabalho:' text_warning_hidden_elements: Algumas entradas podem ter sido excluídas da agregação. total_times: diff --git a/modules/costs/config/locales/crowdin/pt-PT.yml b/modules/costs/config/locales/crowdin/pt-PT.yml index 0922fff66894..3d75ac1f6d11 100644 --- a/modules/costs/config/locales/crowdin/pt-PT.yml +++ b/modules/costs/config/locales/crowdin/pt-PT.yml @@ -72,6 +72,10 @@ pt-PT: attributes: project_ids: blank: Selecione um projeto. + rate: + attributes: + principal: + invalid: tem de ser um utilizador ou um utilizador de marcador de posição. time_entry: attributes: entity: @@ -140,7 +144,6 @@ pt-PT: button_add_time_entry: Hora de registo button_log_costs: Registar custos unitários button_log_time: Registo - button_stop_timer: Parar temporizador button_update_limits: Atualizar limites button_update_start_finish_times: Atualizar as horas de início e fim caption_booked_on_project: Marcado no projeto @@ -174,9 +177,13 @@ pt-PT: cost_types: for_all_projects_hint: Este tipo de custo está ativado em todos os projetos. heading: Tipos de custos + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Este tipo de custo não pode ser desativado, uma vez que já foram registados custos relativos a ele neste projeto. none_active: Nenhum tipo de custo está ativo neste projeto. time_and_costs: Tempo e custos + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ pt-PT: label_costlog: Custos unitários registados label_costs: Custos label_costs_per_page: Custos por página + label_current: Atual label_current_default_rate: Taxa atual por defeito label_date_on: em - label_day: Dia label_defaults_and_limits: Valores predefinidos e limites label_deleted_cost_types: Tipos de custos apagados label_display_cost_entries: Mostrar custos unitários @@ -225,21 +232,12 @@ pt-PT: label_less_or_equal: "<=" label_list: Lista label_log_costs: Registar custos unitários - label_month: Mês - label_my_time_tracking: O meu controlo do tempo label_new_time_entry_activity: Nova atividade de registo de tempo - label_next_day: Dia seguinte - label_next_month: Mês seguinte - label_next_week: Próxima semana - label_next_workweek: Semana de trabalho seguinte label_no: Não - label_no_time: Sem tempo controlado + label_no_default_rate: Nenhuma tarifa padrão definida + label_no_project_rate: Nenhuma tarifa definida para este projeto label_option_plural: Opções label_overall_costs: Custos totais - label_previous_day: Dia anterior - label_previous_month: Mês anterior - label_previous_week: Semana passada - label_previous_workweek: Semana de trabalho anterior label_rate_plural: Taxas label_show: Mostrar label_specific_day: Dia %{day} @@ -248,15 +246,14 @@ pt-PT: label_status_finished: Terminado label_time: Hora label_time_entry_activity_form_description: As alterações a esta atividade de registo de tempo serão refletidas em todos os projetos em que estiver ativado. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limites - label_timer_since: Iniciado em %{time} label_today_capitalized: Hoje label_units: Custos unitários label_until: até + label_using_current_default_rate: A utilizar a tarifa padrão atual label_valid_from: Válido a partir de - label_view_mode_switcher: Mudar vista label_work_package_filter_add: Adicionar filtro de pacote de trabalho - label_workweek: Semana de trabalho label_yes: Sim notice_cost_logged_successfully: Custo unitário registado com êxito. notice_different_time_zones: Este utilizador tem um fuso horário diferente (%{tz}). A hora será registada utilizando o fuso horário do mesmo. @@ -272,6 +269,10 @@ pt-PT: permission_edit_rates: Editar taxas permission_log_costs: Marcar custos unitários permission_log_own_costs: Marcar custos unitários para si próprio + permission_manage_default_hourly_rates: Gerir as tarifas horárias predefinidas + permission_manage_default_hourly_rates_explanation: 'Permite adicionar, alterar e eliminar as tarifas horárias predefinidas dos utilizadores e dos utilizador de marcador de posição. + + ' permission_view_cost_entries: Ver custos marcados permission_view_cost_rates: Ver taxas de custo permission_view_hourly_rates: Ver os todas as taxas horárias @@ -309,6 +310,11 @@ pt-PT: text_destroy_cost_entries_question: "%{cost_entries} foram reportados nos pacotes de trabalho que está prestes a apagar. Tem a certeza que pretende apagar?" text_destroy_time_and_cost_entries: Apagar horas e custos reportados text_destroy_time_and_cost_entries_question: "%{hours} horas, %{cost_entries} foram reportados nos pacotes de trabalho que está prestes a apagar. Tem a certeza que pretende apagar?" + text_hourly_rate_destroy_confirmation: A tarifa de %{rate} válida a partir de %{valid_from} será eliminada. Os custos registados com base nessa tarifa serão recalculados com a taxa então aplicável. + text_hourly_rate_destroy_confirmation_checkbox_label: Compreendo que esta ação não é reversível. + text_hourly_rate_recalculation: Esta tarifa aplica-se a partir da data de vigência até que entre em vigor uma tarifa posterior. A sua alteração implicará também novo cálculo dos registos de tempo e dos orçamentos existentes nesse período. + text_no_default_rate: A tarifa predefinida é utilizada em todos os projetos em que o utilizador não definiu uma tarifa específica. + text_no_project_rate: Este projeto irá utilizar a tarifa padrão atual. text_reassign_time_and_cost_entries: 'Reatribuir horas e custos reportados para este pacote de trabalho:' text_warning_hidden_elements: Algumas entradas podem ter sido excluídas da agregação. total_times: diff --git a/modules/costs/config/locales/crowdin/ro.yml b/modules/costs/config/locales/crowdin/ro.yml index 45b5fe975d7c..430b9f26842c 100644 --- a/modules/costs/config/locales/crowdin/ro.yml +++ b/modules/costs/config/locales/crowdin/ro.yml @@ -72,6 +72,10 @@ ro: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -149,7 +153,6 @@ ro: button_add_time_entry: Consum timp button_log_costs: Costurile unitare ale buștenilor button_log_time: Jurnal - button_stop_timer: Oprește cronometrul button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Rezervat pe proiect @@ -183,9 +186,13 @@ ro: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -216,9 +223,9 @@ ro: label_costlog: Costuri unitare înregistrate label_costs: Costuri label_costs_per_page: Costuri pe pagină + label_current: Current label_current_default_rate: Tarif implicit actual label_date_on: pe - label_day: Zi label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Tipuri de costuri șterse label_display_cost_entries: Afișarea costurilor unitare @@ -234,21 +241,12 @@ ro: label_less_or_equal: "<=" label_list: Listă label_log_costs: Înregistrare costuri unitare - label_month: Luna - label_my_time_tracking: Urmărirea timpului meu label_new_time_entry_activity: Activitate nouă de înregistrare a timpului - label_next_day: Ziua următoare - label_next_month: Luna următoare - label_next_week: Săptămâna viitoare - label_next_workweek: Următoarea săptămână de lucru label_no: Nu - label_no_time: Nici un timp urmărit + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Opțiuni label_overall_costs: Costuri totale - label_previous_day: Ziua precedentă - label_previous_month: Luna anterioară - label_previous_week: Săptămâna trecută - label_previous_workweek: Săptămâna lucru anterioară label_rate_plural: Tarife label_show: Arată label_specific_day: Ziua %{day} @@ -257,15 +255,14 @@ ro: label_status_finished: Finalizat label_time: Timp label_time_entry_activity_form_description: Modificările acestei activități de intrare în timp se vor reflecta în toate proiectele în care este activată. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limite - label_timer_since: Început la %{time} label_today_capitalized: Azi label_units: Unități de cost label_until: până la + label_using_current_default_rate: Using current default rate label_valid_from: Valabil de la - label_view_mode_switcher: Schimbă vizualizarea label_work_package_filter_add: Adaugă un filtru pentru pachetul de lucru - label_workweek: Săptămână de lucru label_yes: Da notice_cost_logged_successfully: Costul unitar a fost înregistrat cu succes. notice_different_time_zones: Acest utilizator are un alt fus orar (%{tz}). Timpul va fi înregistrat folosind fusul orar. @@ -281,6 +278,10 @@ ro: permission_edit_rates: Editează tarife permission_log_costs: Costurile unitare ale cărților permission_log_own_costs: Costurile unitare de contabilizare pentru sine + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Vizualizați costurile rezervate permission_view_cost_rates: Vizualizează tarifele permission_view_hourly_rates: Vezi toate tarifele orare @@ -318,6 +319,11 @@ ro: text_destroy_cost_entries_question: "%{cost_entries} au fost raportate pe pachetele de lucru pe care urmează să le ștergeți. Ce doriți să faceți?" text_destroy_time_and_cost_entries: Ștergeți orele și costurile raportate text_destroy_time_and_cost_entries_question: "%{hours} ore, %{cost_entries} au fost raportate la pachetele de lucru pe care urmează să le ștergeți. Ce doriți să faceți?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reatribuiți orele și costurile raportate la acest pachet de lucru:' text_warning_hidden_elements: Este posibil ca unele intrări să fi fost excluse din agregare. total_times: diff --git a/modules/costs/config/locales/crowdin/ru.yml b/modules/costs/config/locales/crowdin/ru.yml index da016e03ac7b..9fdb7b28d9e5 100644 --- a/modules/costs/config/locales/crowdin/ru.yml +++ b/modules/costs/config/locales/crowdin/ru.yml @@ -72,6 +72,10 @@ ru: attributes: project_ids: blank: Пожалуйста, выберите проект. + rate: + attributes: + principal: + invalid: должен быть либо пользователем, либо пользователем-заполнителем. time_entry: attributes: entity: @@ -158,7 +162,6 @@ ru: button_add_time_entry: Добавить трудозатраты button_log_costs: Журналировать расходы на единицу button_log_time: Журнал - button_stop_timer: Остановить таймер button_update_limits: Обновить ограничения button_update_start_finish_times: Обновить время начала и окончания caption_booked_on_project: Заказано на проект @@ -192,9 +195,13 @@ ru: cost_types: for_all_projects_hint: Этот тип затрат включен во всех проектах. heading: Типы затрат + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Этот тип затрат не может быть отключен, так как затраты уже были зарегистрированы в этом проекте. none_active: В настоящее время в этом проекте нет активных типов затрат. time_and_costs: Время и затраты + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ ru: label_costlog: Журналированные затраты на единицу label_costs: Затраты label_costs_per_page: Расходов на странице + label_current: Текущий label_current_default_rate: Текущий тариф по умолчанию label_date_on: на - label_day: День label_defaults_and_limits: Значения по умолчанию и ограничения label_deleted_cost_types: Типы удаленных расходов label_display_cost_entries: Отображать расходы на единицу @@ -243,21 +250,12 @@ ru: label_less_or_equal: "<=" label_list: Список label_log_costs: Внести расходы на единицу - label_month: Месяц - label_my_time_tracking: Мои трудозатраты label_new_time_entry_activity: Новая деятельность по учету рабочего времени - label_next_day: След. день - label_next_month: Следующий месяц - label_next_week: На следующей неделе - label_next_workweek: Следующая рабочая неделя label_no: Нет - label_no_time: Нет учтённого времени + label_no_default_rate: Ставка по умолчанию не установлена + label_no_project_rate: Для данного проекта ставка не установлена label_option_plural: Параметры label_overall_costs: Общие расходы - label_previous_day: Предыдущий день - label_previous_month: Предыдущий месяц - label_previous_week: Предыдущая неделя - label_previous_workweek: Предыдущая рабочая неделя label_rate_plural: Тарифы label_show: Показать label_specific_day: День %{day} @@ -266,15 +264,14 @@ ru: label_status_finished: Завершенные label_time: Время label_time_entry_activity_form_description: Изменения в записи этого времени будут отражаться во всех проектах, где он включен. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Ограничения - label_timer_since: Начато в %{time} label_today_capitalized: Сегодня label_units: Стоимость единицы label_until: До + label_using_current_default_rate: Используется текущая ставка по умолчанию label_valid_from: Действует с - label_view_mode_switcher: Изменить вид label_work_package_filter_add: Добавить фильтр пакетов работы - label_workweek: Рабочая неделя label_yes: Да notice_cost_logged_successfully: 'Стоимость единицы успешно зажурналировано ' notice_different_time_zones: У этого пользователя другой часовой пояс (%{tz}). Время будет журналироваться с учетом его часового пояса. @@ -290,6 +287,10 @@ ru: permission_edit_rates: Править тарифы permission_log_costs: Регистрировать затраты по количеству permission_log_own_costs: Регистрировать затраты по количеству для себя + permission_manage_default_hourly_rates: Управление почасовыми ставками по умолчанию + permission_manage_default_hourly_rates_explanation: 'Позволяет добавлять, изменять и удалять стандартные почасовые ставки пользователей и пользователей-заполнителей. + + ' permission_view_cost_entries: Просмотр зарегистрированных затрат permission_view_cost_rates: Просмотр тарифов по стоимости permission_view_hourly_rates: Просмотр всех почасовых тарифов @@ -327,6 +328,11 @@ ru: text_destroy_cost_entries_question: "%{cost_entries} сообщили о рабочих пакетах, которые вы собираетесь удалить. Что вы собираетесь сделать?" text_destroy_time_and_cost_entries: Удалить отчеты о часах и расходах text_destroy_time_and_cost_entries_question: "%{hours} часов, %{cost_entries} сообщили о рабочих пакетах, котрый вы собираетесь удалить. Что вы хотите сделать?" + text_hourly_rate_destroy_confirmation: Ставка %{rate}, действительная от %{valid_from}, будет удалена. Затраты, списанные на эту ставку будут пересчитаны по новой активной ставке. + text_hourly_rate_destroy_confirmation_checkbox_label: Я понимаю, что это действие нельзя отменить. + text_hourly_rate_recalculation: Данная ставка действует с даты вступления в силу до момента вступления в силу более поздней ставки. Её изменение повлечёт за собой перерасчёт существующих записей о затраченном времени и бюджетов за данный период. + text_no_default_rate: Ставка по умолчанию используется во всех проектах, где пользователь не имеет установленной ставки. + text_no_project_rate: Этот проект будет использовать текущий тариф по умолчанию. text_reassign_time_and_cost_entries: 'Переназначьте сообщенные часы и расходы на этот пакет работ:' text_warning_hidden_elements: Некоторые записи были исключены из агрегирования. total_times: diff --git a/modules/costs/config/locales/crowdin/rw.yml b/modules/costs/config/locales/crowdin/rw.yml index 2d640678540d..f4e28a58f5bb 100644 --- a/modules/costs/config/locales/crowdin/rw.yml +++ b/modules/costs/config/locales/crowdin/rw.yml @@ -72,6 +72,10 @@ rw: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ rw: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ rw: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ rw: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ rw: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ rw: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ rw: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ rw: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/si.yml b/modules/costs/config/locales/crowdin/si.yml index 0502f0d36a20..3516e94127b6 100644 --- a/modules/costs/config/locales/crowdin/si.yml +++ b/modules/costs/config/locales/crowdin/si.yml @@ -72,6 +72,10 @@ si: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ si: button_add_time_entry: ලොග් වේලාව button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ si: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ si: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: මත - label_day: දවස label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ si: label_less_or_equal: "<=" label_list: ලැයිස්තුව label_log_costs: Log unit costs - label_month: මාසය - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: ලබන සතියේ - label_next_workweek: Next work week label_no: නැත - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: විකල්ප label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: පසුගිය සතියේ - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: පෙන්වන්න label_specific_day: Day %{day} @@ -248,15 +246,14 @@ si: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: ඔව් notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ si: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ si: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/sk.yml b/modules/costs/config/locales/crowdin/sk.yml index d9f2ebfb9fb8..56e2b7d2fc3b 100644 --- a/modules/costs/config/locales/crowdin/sk.yml +++ b/modules/costs/config/locales/crowdin/sk.yml @@ -72,6 +72,10 @@ sk: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -158,7 +162,6 @@ sk: button_add_time_entry: Zaprotokoluj čas button_log_costs: Zaúčtovať jednotkové náklady button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Rezervované na projekte @@ -192,9 +195,13 @@ sk: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ sk: label_costlog: Zaúčtované jednotkové náklady label_costs: Náklady label_costs_per_page: Náklady na stranu + label_current: Current label_current_default_rate: Aktuálna štandardná sadzba label_date_on: dňa - label_day: Deň label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Odstránené typy nákladov label_display_cost_entries: Zobrazenie jednotkových nákladov @@ -243,21 +250,12 @@ sk: label_less_or_equal: "<=" label_list: Zoznam label_log_costs: Zaúčtovať jednotkové náklady - label_month: Mesiac - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Budúci týždeň - label_next_workweek: Next work week label_no: Nie - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Voľby label_overall_costs: Celkové náklady - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Predchádzajúci týždeň - label_previous_workweek: Previous work week label_rate_plural: Sadzby label_show: Ukázať label_specific_day: Day %{day} @@ -266,15 +264,14 @@ sk: label_status_finished: Dokončené label_time: Čas label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Dnes label_units: Nákladové jednotky label_until: do + label_using_current_default_rate: Using current default rate label_valid_from: Platný od - label_view_mode_switcher: Change view label_work_package_filter_add: Pridať filter pracovného balíčka - label_workweek: Work week label_yes: Áno notice_cost_logged_successfully: Jednotkové náklady boli úspešne zaznamenané. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -290,6 +287,10 @@ sk: permission_edit_rates: Úprava sadzieb permission_log_costs: Zaúčtovať jednotkové náklady permission_log_own_costs: Zaúčtovať vlastné jednotkové náklady + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Zobraziť zaúčtované náklady permission_view_cost_rates: Zobraziť nákladové sadzby permission_view_hourly_rates: Zobraziť všetky hodinové sadzby @@ -327,6 +328,11 @@ sk: text_destroy_cost_entries_question: "%{cost_entries} boli hlásené na pracovných balíčkoch, ktoré chcete vymazať. Čo chcete robiť?" text_destroy_time_and_cost_entries: Vymazať ohlásené hodiny a náklady text_destroy_time_and_cost_entries_question: "%{hours} hodiny, %{cost_entries} boli hlásené na pracovných balíčkoch, ktoré chcete vymazať. Čo chcete robiť?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Priradiť výkaz hodín a náklady k projektu:' text_warning_hidden_elements: Neboli zohľadnené všetky záznamy. total_times: diff --git a/modules/costs/config/locales/crowdin/sl.yml b/modules/costs/config/locales/crowdin/sl.yml index 7d3fa183169f..67c93bdaa932 100644 --- a/modules/costs/config/locales/crowdin/sl.yml +++ b/modules/costs/config/locales/crowdin/sl.yml @@ -72,6 +72,10 @@ sl: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -158,7 +162,6 @@ sl: button_add_time_entry: Beleži čas button_log_costs: Stroški enote dnevnika button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Rezervirano na projektu @@ -192,9 +195,13 @@ sl: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,11 +232,11 @@ sl: label_costlog: Stroški enote dnevnika label_costs: Stroški label_costs_per_page: Strošek na stran + label_current: Current label_current_default_rate: 'Trenuten prevzeti tečaj ' label_date_on: vključeno - label_day: Dan label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Izbrisane vrste stroškov label_display_cost_entries: Prikaži strošek enote @@ -245,21 +252,12 @@ sl: label_less_or_equal: "<=" label_list: Seznam label_log_costs: Stroški enote dnevnika - label_month: Mesec - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Naslednji teden - label_next_workweek: Next work week label_no: Ne - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Možnosti label_overall_costs: Celotni stroški - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Prejšnji teden - label_previous_workweek: Previous work week label_rate_plural: Cene label_show: Pokaži label_specific_day: Day %{day} @@ -268,15 +266,14 @@ sl: label_status_finished: Končano label_time: Čas label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Danes label_units: Stroškovne enote label_until: do + label_using_current_default_rate: Using current default rate label_valid_from: Veljavno od - label_view_mode_switcher: Change view label_work_package_filter_add: Dodajte filter delovnega paketa - label_workweek: Work week label_yes: Da notice_cost_logged_successfully: Stroški na enoto so bili uspešno prijavljeni. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -292,6 +289,10 @@ sl: permission_edit_rates: Uredite cene permission_log_costs: Stroški knjižne enote permission_log_own_costs: Stroški knjižne enote zase + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Oglejte si rezervirane stroške permission_view_cost_rates: Oglejte si stopnje stroškov permission_view_hourly_rates: Oglejte si vse urne postavke @@ -329,6 +330,11 @@ sl: text_destroy_cost_entries_question: "%{cost_entries} so bili prijavljeni v delovnih paketih, ki jih boste izbrisali. Kaj želiš narediti ?" text_destroy_time_and_cost_entries: Izbrišite prijavljene ure in stroške text_destroy_time_and_cost_entries_question: "%{hours} ur , %{cost_entries} so bili prijavljeni v delovnih paketih, ki jih boste izbrisali. Kaj želiš narediti ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Ponovno dodelite tem delovnemu paketu prijavljene ure in stroške:' text_warning_hidden_elements: Nekateri vnosi so bili morda izključeni iz združevanja. total_times: diff --git a/modules/costs/config/locales/crowdin/sr.yml b/modules/costs/config/locales/crowdin/sr.yml index a5cbd571ae77..99a5ef989230 100644 --- a/modules/costs/config/locales/crowdin/sr.yml +++ b/modules/costs/config/locales/crowdin/sr.yml @@ -72,6 +72,10 @@ sr: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -149,7 +153,6 @@ sr: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -183,9 +186,13 @@ sr: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -216,9 +223,9 @@ sr: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Dan label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -234,21 +241,12 @@ sr: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -257,15 +255,14 @@ sr: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -281,6 +278,10 @@ sr: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -318,6 +319,11 @@ sr: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/sv.yml b/modules/costs/config/locales/crowdin/sv.yml index 5b1de14a60e7..6ddb9339149e 100644 --- a/modules/costs/config/locales/crowdin/sv.yml +++ b/modules/costs/config/locales/crowdin/sv.yml @@ -72,6 +72,10 @@ sv: attributes: project_ids: blank: Vänligen välj ett projekt. + rate: + attributes: + principal: + invalid: måste vara en användare eller en platshållaranvändare. time_entry: attributes: entity: @@ -140,7 +144,6 @@ sv: button_add_time_entry: Logga tid button_log_costs: Logga enhetskostnader button_log_time: Logga - button_stop_timer: Stoppa timer button_update_limits: Uppdatera gränser button_update_start_finish_times: Uppdatera start- och sluttider caption_booked_on_project: Bokade på projekt @@ -174,9 +177,13 @@ sv: cost_types: for_all_projects_hint: Den här kostnadstypen är aktiverad i alla projekt. heading: Kostnadstyper + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Den här kostnadstypen kan inte inaktiveras eftersom kostnader redan har registrerats för den i detta projekt. none_active: Inga kostnadstyper är för närvarande aktiva i det här projektet. time_and_costs: Tid och kostnader + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ sv: label_costlog: Loggade enhetskostnader label_costs: Kostnader label_costs_per_page: Kostnader per sida + label_current: Aktuell label_current_default_rate: Nuvarande standardtimpris label_date_on: den - label_day: Dag label_defaults_and_limits: Standardvärden och gränser label_deleted_cost_types: Borttagna kostnadstyper label_display_cost_entries: Visa enhetskostnader @@ -225,21 +232,12 @@ sv: label_less_or_equal: "<=" label_list: Lista label_log_costs: Logga enhetskostnader - label_month: Månad - label_my_time_tracking: Min tidsspårning label_new_time_entry_activity: Ny aktivitet vid inmatning - label_next_day: Nästa dag - label_next_month: Nästa månad - label_next_week: Nästa vecka - label_next_workweek: Nästa arbetsvecka label_no: Nej - label_no_time: Ingen tid spårad + label_no_default_rate: Inget standardtimpris angivet + label_no_project_rate: Inget timpris angivet för det här projektet label_option_plural: Alternativ label_overall_costs: Totalkostnader - label_previous_day: Föregående dag - label_previous_month: Föregående månad - label_previous_week: Föregående vecka - label_previous_workweek: Föregående arbetsvecka label_rate_plural: Priser label_show: Visa label_specific_day: Dag %{day} @@ -248,15 +246,14 @@ sv: label_status_finished: Avslutad label_time: Tid label_time_entry_activity_form_description: Ändringar i denna inmatningsaktivitet kommer att återspeglas i alla projekt där den är aktiverad. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Gränser - label_timer_since: Startade på %{time} label_today_capitalized: I dag label_units: Kostnadsenheter label_until: fram till + label_using_current_default_rate: Använder aktuellt standardtimpris label_valid_from: Gäller från - label_view_mode_switcher: Ändra vy label_work_package_filter_add: Lägg till arbetspaketsfilter - label_workweek: Arbetsvecka label_yes: Ja notice_cost_logged_successfully: Enhetskostnaden loggad framgångsrikt. notice_different_time_zones: Den här användaren har en annan tidszon (%{tz}). Tiden kommer att loggas med hjälp av sin tidszon. @@ -272,6 +269,10 @@ sv: permission_edit_rates: Redigera priser permission_log_costs: Boka enhetskostnader permission_log_own_costs: Boka enhetskostnader för sig själv + permission_manage_default_hourly_rates: Hantera standardtimpriser + permission_manage_default_hourly_rates_explanation: 'Tillåter att standardtimpriser för användare och platshållaranvändare läggs till, ändras och tas bort. + + ' permission_view_cost_entries: Visa bokade kostnader permission_view_cost_rates: Visa enhetspriser permission_view_hourly_rates: Visa alla timpriser @@ -309,6 +310,11 @@ sv: text_destroy_cost_entries_question: "%{cost_entries} rapporterades på de arbetspaket som du håller på och tar bort. Vad vill du göra?" text_destroy_time_and_cost_entries: Ta bort rapporterade timmar och kostnader text_destroy_time_and_cost_entries_question: "%{hours} timmar, %{cost_entries} rapporterades på de arbetspaket som du håller på att ta bort. Vad vill du göra?" + text_hourly_rate_destroy_confirmation: Timpriset %{rate}, som gäller från %{valid_from}, tas bort. Kostnader som bokförts med det räknas om med det timpris som därefter gäller. + text_hourly_rate_destroy_confirmation_checkbox_label: Jag förstår att åtgärden inte kan ångras. + text_hourly_rate_recalculation: Timpriset gäller från sitt startdatum tills ett senare timpris börjar gälla. Om du ändrar det räknas även befintliga tidposter och budgetar för perioden om. + text_no_default_rate: Standardtimpriset används i alla projekt där användaren inte har ett särskilt timpris angivet. + text_no_project_rate: Det här projektet använder det aktuella standardtimpriset. text_reassign_time_and_cost_entries: 'Tilldela rapporterade timmar och kostnader på detta arbetspaket:' text_warning_hidden_elements: Vissa poster kan ha undantagits från summeringen. total_times: diff --git a/modules/costs/config/locales/crowdin/th.yml b/modules/costs/config/locales/crowdin/th.yml index 4e56b1717251..f2e4a2b810a7 100644 --- a/modules/costs/config/locales/crowdin/th.yml +++ b/modules/costs/config/locales/crowdin/th.yml @@ -72,6 +72,10 @@ th: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -131,7 +135,6 @@ th: button_add_time_entry: เวลาที่ถูกบันทึก button_log_costs: บันทึกต้นทุนหน่วย button_log_time: บันทึก - button_stop_timer: หยุดตัวจับเวลา button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: จองในโครงการแล้ว @@ -165,9 +168,13 @@ th: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ th: label_costlog: ต้นทุนหน่วยที่บันทึกแล้ว label_costs: ต้นทุน label_costs_per_page: ต้นทุนต่อหน้า + label_current: Current label_current_default_rate: อัตราเริ่มต้นปัจจุบัน label_date_on: เมื่อ - label_day: วันที่ label_defaults_and_limits: Defaults and limits label_deleted_cost_types: ประเภทต้นทุนที่ถูกลบ label_display_cost_entries: แสดงต้นทุนหน่วย @@ -216,21 +223,12 @@ th: label_less_or_equal: "<=" label_list: รายการ label_log_costs: บันทึกต้นทุนหน่วย - label_month: เดือน - label_my_time_tracking: My time tracking label_new_time_entry_activity: กิจกรรมการบันทึกเวลาใหม่ - label_next_day: Next day - label_next_month: Next month - label_next_week: อาทิตย์ถัดไป - label_next_workweek: Next work week label_no: ไม่ใช่ - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: ตัวเลือก label_overall_costs: ค่าใช้จ่ายทั้งหมด - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: สัปดาห์ก่อนหน้านี้ - label_previous_workweek: Previous work week label_rate_plural: อัตรา label_show: แสดง label_specific_day: Day %{day} @@ -239,15 +237,14 @@ th: label_status_finished: เสร็จสิ้นแล้ว label_time: Time label_time_entry_activity_form_description: การเปลี่ยนแปลงในกิจกรรมการบันทึกเวลานี้จะส่งผลไปยังทุกโครงการที่เปิดใช้งานกิจกรรมดังกล่าว + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: หน่วยต้นทุน label_until: จนถึง + label_using_current_default_rate: Using current default rate label_valid_from: มีผลตั้งแต่ - label_view_mode_switcher: Change view label_work_package_filter_add: เพิ่มตัวกรองชุดงาน - label_workweek: Work week label_yes: ใช่ notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -263,6 +260,10 @@ th: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -300,6 +301,11 @@ th: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: บางรายการอาจถูกคัดออกจากการคำนวณสรุปยอดรวม total_times: diff --git a/modules/costs/config/locales/crowdin/tr.yml b/modules/costs/config/locales/crowdin/tr.yml index 571fa45c3c6d..b480c5621587 100644 --- a/modules/costs/config/locales/crowdin/tr.yml +++ b/modules/costs/config/locales/crowdin/tr.yml @@ -72,6 +72,10 @@ tr: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ tr: button_add_time_entry: Zaman kaydet button_log_costs: Günlük birim maliyetleri button_log_time: Kayıt - button_stop_timer: Zamanlayıcıyı durdur button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Proje rezervasyonu yaptırdı @@ -174,9 +177,13 @@ tr: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Maliyet türleri + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ tr: label_costlog: Günlüğe kaydedilen birim maliyetler label_costs: Maliyetler label_costs_per_page: Her sayfa için maliyet + label_current: Mevcut label_current_default_rate: Güncel varsayılan oran label_date_on: tarihinde - label_day: Gün label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Silinmiş maliyet türleri label_display_cost_entries: Birim maliyetlerini göster @@ -225,21 +232,12 @@ tr: label_less_or_equal: "<=" label_list: Liste label_log_costs: Günlük birim maliyetleri - label_month: Ay - label_my_time_tracking: Zaman takibim label_new_time_entry_activity: Yeni zaman girişi etkinliği - label_next_day: Sonraki gün - label_next_month: Sonraki ay - label_next_week: Gelecek hafta - label_next_workweek: Sonraki çalışma haftası label_no: Hayır - label_no_time: Zaman takibi yok + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Ayarlar label_overall_costs: Tüm maliyetler - label_previous_day: Önceki gün - label_previous_month: Önceki ay - label_previous_week: Geçen Hafta - label_previous_workweek: Önceki çalışma haftası label_rate_plural: Oranlar label_show: Göster label_specific_day: Gün %{day} @@ -248,15 +246,14 @@ tr: label_status_finished: Tamamlandı label_time: Zaman label_time_entry_activity_form_description: Bu zaman girişi etkinliğinde yapılan değişiklikler, etkin olduğu tüm projelere yansıtılacaktır. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: "%{time} zamanında başladı" label_today_capitalized: Bugün label_units: Maliyet birimleri label_until: kadar + label_using_current_default_rate: Using current default rate label_valid_from: Geçerlilik - label_view_mode_switcher: Görünümü değiştir label_work_package_filter_add: İş paketi filtresi ekle - label_workweek: Çalışma haftası label_yes: Evet notice_cost_logged_successfully: Birim maliyet başarıyla kaydedildi. notice_different_time_zones: Bu kullanıcı farklı bir saat dilimine sahiptir (%{tz}). Zaman, onun zaman dilimi kullanılarak kaydedilecektir. @@ -272,6 +269,10 @@ tr: permission_edit_rates: Oranları düzenle permission_log_costs: Kitap birimi maliyetleri permission_log_own_costs: Kendiniz için kitap birimi masrafları + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Rezervasyon maliyetlerini görüntüle permission_view_cost_rates: Maliyet oranları görüntüleme permission_view_hourly_rates: Tüm saatlik oranları görüntüle @@ -309,6 +310,11 @@ tr: text_destroy_cost_entries_question: "%{cost_entries} silmek üzere olduğunuz iş paketleri hakkında rapor edildi. Ne yapmak istiyorsun ?" text_destroy_time_and_cost_entries: Raporlanan saat ve masrafları sil text_destroy_time_and_cost_entries_question: "% {hours} saat,% {maliyet_entries}, silmek üzere olduğunuz iş paketlerinde bildirildi. Ne yapmak istiyorsun ? %{hours} %{cost_entries}" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Raporlanan saatleri ve maliyetleri bu iş paketine yeniden atayın:' text_warning_hidden_elements: Bazı girdiler toplama işleminden dışlanmış olabilir. total_times: diff --git a/modules/costs/config/locales/crowdin/uk.yml b/modules/costs/config/locales/crowdin/uk.yml index 706e1e13d1ca..f99bde87bc12 100644 --- a/modules/costs/config/locales/crowdin/uk.yml +++ b/modules/costs/config/locales/crowdin/uk.yml @@ -72,6 +72,10 @@ uk: attributes: project_ids: blank: Виберіть проєкт. + rate: + attributes: + principal: + invalid: має бути користувачем або прототипом користувача. time_entry: attributes: entity: @@ -158,7 +162,6 @@ uk: button_add_time_entry: Записати час button_log_costs: Витрати лог-одиниць button_log_time: Записати - button_stop_timer: Зупинити таймер button_update_limits: Оновити ліміти button_update_start_finish_times: Оновити час початку й завершення caption_booked_on_project: Записаний на проект @@ -192,9 +195,13 @@ uk: cost_types: for_all_projects_hint: Цей тип витрат увімкнено у всіх проєктах. heading: Типи витрат + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: Цей тип витрат не можна вимкнути, оскільки він уже використовувався для реєстрації витрат у межах цього проєкту. none_active: Зараз у цьому проєкті немає активних типів витрат. time_and_costs: Час і витрати + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -225,9 +232,9 @@ uk: label_costlog: Записані витрати на одиницю продукції label_costs: Витрати label_costs_per_page: Витрати на сторінку + label_current: Поточний label_current_default_rate: Поточна ставка за промовчанням label_date_on: на - label_day: День label_defaults_and_limits: Стандартні значення й ліміти label_deleted_cost_types: Видалені типи витрат label_display_cost_entries: Відображення одиничних витрат @@ -243,21 +250,12 @@ uk: label_less_or_equal: "<=" label_list: Список label_log_costs: Витрати на одиницю - label_month: Місяць - label_my_time_tracking: Мій облік часу label_new_time_entry_activity: Нова дія з введення часу - label_next_day: Наступний день - label_next_month: Наступний місяць - label_next_week: Наступний тиждень - label_next_workweek: Наступний робочий тиждень label_no: Ні - label_no_time: Час не зафіксовано + label_no_default_rate: Ставка за промовчанням не встановлена + label_no_project_rate: Для цього проєкту ставка не встановлена label_option_plural: Опції label_overall_costs: Загальні витрати - label_previous_day: Попередній день - label_previous_month: Попередній місяць - label_previous_week: Попередній тиждень - label_previous_workweek: Попередній робочий тиждень label_rate_plural: Тариф label_show: Показати label_specific_day: День %{day} @@ -266,15 +264,14 @@ uk: label_status_finished: Готово label_time: Час label_time_entry_activity_form_description: Зміни цієї дії з введення часу відображатимуться в усіх проєктах, де їх дозволено. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Ліміти - label_timer_since: Почато о %{time} label_today_capitalized: Сьогодні label_units: Одиниці витрат label_until: до + label_using_current_default_rate: Використовується ставка за промовчанням label_valid_from: Діє з - label_view_mode_switcher: Змінити подання label_work_package_filter_add: Додати фільтр робочого пакета - label_workweek: Робочий тиждень label_yes: Так notice_cost_logged_successfully: Вартість одиниць успішно зареєстрована. notice_different_time_zones: Часовий пояс цього користувача (%{tz}) відрізняється. Час записуватиметься за його поясом. @@ -290,6 +287,10 @@ uk: permission_edit_rates: Редагувати ставки permission_log_costs: Книжкова одиниця витрат permission_log_own_costs: Книга одиничних витрат для себе + permission_manage_default_hourly_rates: Управління погодинними ставками за промовчанням + permission_manage_default_hourly_rates_explanation: 'Дозволяє додавати, змінювати та видаляти погодинні ставки за промовчанням для користувачів та прототипів користувачів. + + ' permission_view_cost_entries: Переглянути замовлені витрати permission_view_cost_rates: Переглянути тарифи на витрати permission_view_hourly_rates: Переглянути всі погодинні тарифи @@ -327,6 +328,11 @@ uk: text_destroy_cost_entries_question: "%{cost_entries} повідомлялися про робочі пакети, які ви збираєтеся видалити. Що ти хочеш робити ?" text_destroy_time_and_cost_entries: Видаліть звітні години та витрати text_destroy_time_and_cost_entries_question: "%{hours} години, %{cost_entries} повідомлялися про робочі пакети, які ви збираєтеся видалити. Що ти хочеш робити ?" + text_hourly_rate_destroy_confirmation: Ставку %{rate}, що діє з %{valid_from}, буде видалено. Витрати, занесені за цією ставкою, буде перераховано за ставкою, що застосовуватиметься після цього. + text_hourly_rate_destroy_confirmation_checkbox_label: Я розумію, що цю дію не можна буде скасувати. + text_hourly_rate_recalculation: Ця ставка діє з дати набуття нею чинності до моменту набуття чинності новою ставкою. Її зміна також призведе до перерахунку існуючих записів про відпрацьований час і бюджетів за цей період. + text_no_default_rate: Ставка за промовчанням застосовується у всіх проєктах, де в користувача немає встановленої ставки. + text_no_project_rate: У цьому проєкті використовуватиметься ставка за промовчанням. text_reassign_time_and_cost_entries: 'Перепризначення повідомлених годин і витрат до цього робочого пакету :' text_warning_hidden_elements: Деякі записи можуть бути виключені з агрегації. total_times: diff --git a/modules/costs/config/locales/crowdin/uz.yml b/modules/costs/config/locales/crowdin/uz.yml index abeca63076ec..2260e2377c74 100644 --- a/modules/costs/config/locales/crowdin/uz.yml +++ b/modules/costs/config/locales/crowdin/uz.yml @@ -72,6 +72,10 @@ uz: attributes: project_ids: blank: Please select a project. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -140,7 +144,6 @@ uz: button_add_time_entry: Log time button_log_costs: Log unit costs button_log_time: Log - button_stop_timer: Stop timer button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Booked on project @@ -174,9 +177,13 @@ uz: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -207,9 +214,9 @@ uz: label_costlog: Logged unit costs label_costs: Costs label_costs_per_page: Costs per page + label_current: Current label_current_default_rate: Current default rate label_date_on: 'on' - label_day: Day label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Deleted cost types label_display_cost_entries: Display unit costs @@ -225,21 +232,12 @@ uz: label_less_or_equal: "<=" label_list: List label_log_costs: Log unit costs - label_month: Month - label_my_time_tracking: My time tracking label_new_time_entry_activity: New time entry activity - label_next_day: Next day - label_next_month: Next month - label_next_week: Next week - label_next_workweek: Next work week label_no: 'No' - label_no_time: No time tracked + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: Options label_overall_costs: Overall costs - label_previous_day: Previous day - label_previous_month: Previous month - label_previous_week: Previous week - label_previous_workweek: Previous work week label_rate_plural: Rates label_show: Show label_specific_day: Day %{day} @@ -248,15 +246,14 @@ uz: label_status_finished: Finished label_time: Time label_time_entry_activity_form_description: Changes to this time entry activity will be reflected in all projects where it is enabled. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Started at %{time} label_today_capitalized: Today label_units: Cost units label_until: until + label_using_current_default_rate: Using current default rate label_valid_from: Valid from - label_view_mode_switcher: Change view label_work_package_filter_add: Add work package filter - label_workweek: Work week label_yes: 'Yes' notice_cost_logged_successfully: Unit cost logged successfully. notice_different_time_zones: This user has a different time zone (%{tz}). Time will be logged using their time zone. @@ -272,6 +269,10 @@ uz: permission_edit_rates: Edit rates permission_log_costs: Book unit costs permission_log_own_costs: Book unit costs for oneself + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: View booked costs permission_view_cost_rates: View cost rates permission_view_hourly_rates: View all hourly rates @@ -309,6 +310,11 @@ uz: text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" text_destroy_time_and_cost_entries: Delete reported hours and costs text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Reassign reported hours and costs to this work package:' text_warning_hidden_elements: Some entries may have been excluded from the aggregation. total_times: diff --git a/modules/costs/config/locales/crowdin/vi.yml b/modules/costs/config/locales/crowdin/vi.yml index c2373504ae99..022b10e824dd 100644 --- a/modules/costs/config/locales/crowdin/vi.yml +++ b/modules/costs/config/locales/crowdin/vi.yml @@ -72,6 +72,10 @@ vi: attributes: project_ids: blank: Vui lòng chọn một dự án. + rate: + attributes: + principal: + invalid: must be a user or a placeholder user. time_entry: attributes: entity: @@ -131,7 +135,6 @@ vi: button_add_time_entry: Đăng nhập thời gian button_log_costs: Ghi lại chi phí đơn vị button_log_time: nhật ký - button_stop_timer: Dừng hẹn giờ button_update_limits: Update limits button_update_start_finish_times: Update start and finish times caption_booked_on_project: Đã đặt chỗ trên dự án @@ -165,9 +168,13 @@ vi: cost_types: for_all_projects_hint: This cost type is enabled in all projects. heading: Cost types + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: No cost types are currently active in this project. time_and_costs: Time and costs + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ vi: label_costlog: Chi phí đơn vị được ghi lại label_costs: chi phí label_costs_per_page: Chi phí mỗi trang + label_current: Current label_current_default_rate: Tỷ lệ mặc định hiện tại label_date_on: trên - label_day: ngày label_defaults_and_limits: Defaults and limits label_deleted_cost_types: Các loại chi phí đã xóa label_display_cost_entries: Chi phí đơn vị hiển thị @@ -216,21 +223,12 @@ vi: label_less_or_equal: "<=" label_list: danh sách label_log_costs: Ghi lại chi phí đơn vị - label_month: tháng - label_my_time_tracking: Theo dõi thời gian của tôi label_new_time_entry_activity: Hoạt động nhập thời gian mới - label_next_day: Ngày hôm sau - label_next_month: Tháng tiếp theo - label_next_week: Tuần tới - label_next_workweek: Tuần làm việc tiếp theo label_no: không - label_no_time: Không theo dõi thời gian + label_no_default_rate: No default rate set + label_no_project_rate: No rate set for this project label_option_plural: tùy chọn label_overall_costs: Tổng chi phí - label_previous_day: Ngày hôm trước - label_previous_month: Tháng trước - label_previous_week: Tuần trước - label_previous_workweek: Tuần làm việc trước đó label_rate_plural: tỷ lệ label_show: Hiển thị label_specific_day: Ngày %{day} @@ -239,15 +237,14 @@ vi: label_status_finished: Đã hoàn thành label_time: thời gian label_time_entry_activity_form_description: Những thay đổi đối với hoạt động mục nhập thời gian này sẽ được phản ánh trong tất cả các dự án được kích hoạt. + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: Limits - label_timer_since: Bắt đầu lúc %{time} label_today_capitalized: hôm nay label_units: Đơn vị chi phí label_until: cho đến khi + label_using_current_default_rate: Using current default rate label_valid_from: Có hiệu lực từ - label_view_mode_switcher: Thay đổi chế độ xem label_work_package_filter_add: Thêm bộ lọc gói công việc - label_workweek: tuần làm việc label_yes: Có notice_cost_logged_successfully: Đơn giá được ghi thành công. notice_different_time_zones: Người dùng này có múi giờ khác (%{tz}). Thời gian sẽ được ghi lại bằng múi giờ của họ. @@ -263,6 +260,10 @@ vi: permission_edit_rates: Chỉnh sửa giá permission_log_costs: Chi phí đơn vị sổ sách permission_log_own_costs: Đặt chi phí đơn vị cho chính mình + permission_manage_default_hourly_rates: Manage default hourly rates + permission_manage_default_hourly_rates_explanation: 'Allows adding, changing and deleting the default hourly rates of users and placeholder users. + + ' permission_view_cost_entries: Xem chi phí đã đặt permission_view_cost_rates: Xem mức chi phí permission_view_hourly_rates: Xem tất cả mức giá theo giờ @@ -300,6 +301,11 @@ vi: text_destroy_cost_entries_question: "%{cost_entries} đã được báo cáo về các gói công việc bạn sắp xóa. Bạn muốn làm gì?" text_destroy_time_and_cost_entries: Xóa số giờ và chi phí được báo cáo text_destroy_time_and_cost_entries_question: "%{hours} giờ, %{cost_entries} đã được báo cáo về các gói công việc bạn sắp xóa. Bạn muốn làm gì?" + text_hourly_rate_destroy_confirmation: The rate of %{rate} valid from %{valid_from} will be deleted. Costs booked against it are recalculated with the rate that then applies. + text_hourly_rate_destroy_confirmation_checkbox_label: I understand that this action is not reversible. + text_hourly_rate_recalculation: This rate applies from its valid from date until a later rate takes effect. Changing it will also recalculate existing time entries and budgets in that period. + text_no_default_rate: The default rate is used in all projects where the user does not have a specific rate set up. + text_no_project_rate: This project will use the current default rate. text_reassign_time_and_cost_entries: 'Chỉ định lại số giờ và chi phí được báo cáo cho gói công việc này:' text_warning_hidden_elements: Một số mục có thể đã bị loại khỏi tổng hợp. total_times: diff --git a/modules/costs/config/locales/crowdin/zh-CN.yml b/modules/costs/config/locales/crowdin/zh-CN.yml index 9b67707642c2..84031a44861c 100644 --- a/modules/costs/config/locales/crowdin/zh-CN.yml +++ b/modules/costs/config/locales/crowdin/zh-CN.yml @@ -72,6 +72,10 @@ zh-CN: attributes: project_ids: blank: 请选择项目。 + rate: + attributes: + principal: + invalid: 必须是用户或占位符用户。 time_entry: attributes: entity: @@ -131,7 +135,6 @@ zh-CN: button_add_time_entry: 记录时间 button_log_costs: 记录单位成本 button_log_time: 日志 - button_stop_timer: 停止计时器 button_update_limits: 更新限值 button_update_start_finish_times: 更新开始和结束时间 caption_booked_on_project: 已记录在项目上 @@ -165,9 +168,13 @@ zh-CN: cost_types: for_all_projects_hint: 此成本类型已在所有项目中启用。 heading: 成本类型 + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: 此成本类型无法禁用,因为已在此项目中为其记录成本。 none_active: 此项目中目前没有有效成本类型。 time_and_costs: 时间和成本 + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ zh-CN: label_costlog: 已记录的单位成本 label_costs: 成本 label_costs_per_page: 每页的成本 + label_current: 当前 label_current_default_rate: 当前基本费率 label_date_on: 日期 - label_day: 天 label_defaults_and_limits: 默认值和限值 label_deleted_cost_types: 已删除的成本类型 label_display_cost_entries: 显示单位成本 @@ -216,21 +223,12 @@ zh-CN: label_less_or_equal: "<=" label_list: 列表 label_log_costs: 记录单位成本 - label_month: 月 - label_my_time_tracking: 我的工时记录 label_new_time_entry_activity: 新时间条目活动 - label_next_day: 后一天 - label_next_month: 下个月 - label_next_week: 下周 - label_next_workweek: 下一个工作周 label_no: 否 - label_no_time: 无时间追踪 + label_no_default_rate: 未设置默认费率 + label_no_project_rate: 没有为此项目设置费率 label_option_plural: 选项 label_overall_costs: 总成本 - label_previous_day: 前一天 - label_previous_month: 上个月 - label_previous_week: 前一周 - label_previous_workweek: 上一个工作周 label_rate_plural: 费率 label_show: 显示 label_specific_day: 第 %{day} 天 @@ -239,15 +237,14 @@ zh-CN: label_status_finished: 已完成 label_time: 时间 label_time_entry_activity_form_description: 对该时间条目活动的更改将反映的所有启用的项目中。 + label_time_entry_custom_field_plural: Time entry custom fields label_time_entry_restrictions: 限值 - label_timer_since: "%{time} 开始" label_today_capitalized: 今天 label_units: 成本单位 label_until: 到 + label_using_current_default_rate: 使用当前默认费率 label_valid_from: 有效起始日期 - label_view_mode_switcher: 更改视图 label_work_package_filter_add: 添加工作包筛选器 - label_workweek: 工作周 label_yes: 是 notice_cost_logged_successfully: 单位成本记录成功。 notice_different_time_zones: 该用户使用不同的时区 (%{tz})。将使用其时区记录时间。 @@ -263,6 +260,10 @@ zh-CN: permission_edit_rates: 编辑费率 permission_log_costs: 记录单位成本 permission_log_own_costs: 为自己记录单位成本 + permission_manage_default_hourly_rates: 管理默认小时费率 + permission_manage_default_hourly_rates_explanation: '允许添加、更改和删除用户和占位符用户的默认小时费率。 + + ' permission_view_cost_entries: 查看记录的成本 permission_view_cost_rates: 查看成本率 permission_view_hourly_rates: 查看所有小时费率 @@ -300,6 +301,11 @@ zh-CN: text_destroy_cost_entries_question: 您要删除的工作包已经上报了 %{cost_entries}。您想进行哪种操作? text_destroy_time_and_cost_entries: 删除已上报的工时和成本 text_destroy_time_and_cost_entries_question: 您要删除的工作包已经上报了 %{hours} 小时的工作量、%{cost_entries} 的成本。您想进行哪种操作? + text_hourly_rate_destroy_confirmation: 将删除自 %{valid_from}起生效的费率 %{rate}。按照该费率入账的成本将使用届时适用的费率重新计算。 + text_hourly_rate_destroy_confirmation_checkbox_label: 我明白此操作无法撤消。 + text_hourly_rate_recalculation: 此费率自其生效之日起适用,直至后续费率生效为止。更改此费率还将重新计算该期间内的现有时间条目和预算。 + text_no_default_rate: 在用户未设置具体费率的所有项目中,均采用默认费率。 + text_no_project_rate: 此项目将使用当前的默认费率。 text_reassign_time_and_cost_entries: 将已上报的工时和成本重新提交到工作包中: text_warning_hidden_elements: 某些条目可能已被排除在聚合之外。 total_times: diff --git a/modules/costs/config/locales/crowdin/zh-TW.yml b/modules/costs/config/locales/crowdin/zh-TW.yml index 6d1b0d1ed2b6..c3430b8a13e7 100644 --- a/modules/costs/config/locales/crowdin/zh-TW.yml +++ b/modules/costs/config/locales/crowdin/zh-TW.yml @@ -72,6 +72,10 @@ zh-TW: attributes: project_ids: blank: 請選擇一個專案。 + rate: + attributes: + principal: + invalid: 必須是使用者或佔位使用者。 time_entry: attributes: entity: @@ -131,7 +135,6 @@ zh-TW: button_add_time_entry: 工時紀錄 button_log_costs: 紀錄單位成本 button_log_time: 日誌 - button_stop_timer: 停止計時器 button_update_limits: 更新限制 button_update_start_finish_times: 更新開始與結束時間 caption_booked_on_project: 已記錄在專案上 @@ -165,9 +168,13 @@ zh-TW: cost_types: for_all_projects_hint: 此成本類型已於所有專案中啟用。 heading: 費用類別 + hint: Select which cost types are displayed in your project when members log their costs. in_use_hint: This cost type cannot be disabled because costs have already been logged for it in this project. none_active: 目前此專案中沒有任何成本類型處於有效狀態。 time_and_costs: 時間與費用 + time_entry_activities: + heading: Time tracking + hint: Select which time tracking activities are displayed in your project when members log their time. costs: widgets: actual_costs: @@ -198,9 +205,9 @@ zh-TW: label_costlog: 已紀錄的單位成本 label_costs: 費用 label_costs_per_page: 每頁的成本 + label_current: 當前 label_current_default_rate: 目前基本費率 label_date_on: 開啟 - label_day: 日 label_defaults_and_limits: 預設值與限制 label_deleted_cost_types: 已刪除的成本類型 label_display_cost_entries: 顯示單位成本 @@ -216,21 +223,12 @@ zh-TW: label_less_or_equal: 之後 label_list: 清單 label_log_costs: 紀錄支出單位 - label_month: 月 - label_my_time_tracking: 我的工作記錄 label_new_time_entry_activity: 新的時間記錄活動 - label_next_day: 下一天 - label_next_month: 下個月 - label_next_week: 下一週 - label_next_workweek: 下個工作週 label_no: 否 - label_no_time: 無時間追蹤 + label_no_default_rate: 未設定預設利率 + label_no_project_rate: 此專案尚未設定費率 label_option_plural: 選項 label_overall_costs: 總計 - label_previous_day: 前一天 - label_previous_month: 前一個月 - label_previous_week: 前一週 - label_previous_workweek: 前個工作週 label_rate_plural: 費率 label_show: 顯示 label_specific_day: "%{day} 日" @@ -239,15 +237,14 @@ zh-TW: label_status_finished: 已完成 label_time: 時間 label_time_entry_activity_form_description: 此時間記錄活動的變更會反映在啟用此功能的所有專案中。 + label_time_entry_custom_field_plural: 工時記錄自訂欄位 label_time_entry_restrictions: 限制 - label_timer_since: 從 %{time}開始 label_today_capitalized: 今天 label_units: 單位成本 label_until: 到 + label_using_current_default_rate: 採用當前的預設利率 label_valid_from: 有效期從 - label_view_mode_switcher: 變更檢視 label_work_package_filter_add: 新增工作套件篩選條件 - label_workweek: 工作週 label_yes: 是 notice_cost_logged_successfully: 單位成本紀錄成功。 notice_different_time_zones: 此使用者使用不同的時區 (%{tz})。將使用他們的時區記錄時間。 @@ -263,6 +260,10 @@ zh-TW: permission_edit_rates: 編輯費率 permission_log_costs: 已紀錄的單位成本 permission_log_own_costs: 為自己紀錄單位成本 + permission_manage_default_hourly_rates: 管理預設時薪 + permission_manage_default_hourly_rates_explanation: '允許新增、變更及刪除使用者與佔位符使用者的預設每小時費率。 + + ' permission_view_cost_entries: 查看紀錄的成本 permission_view_cost_rates: 查看成本費率 permission_view_hourly_rates: 查看所有小時費率 @@ -300,6 +301,11 @@ zh-TW: text_destroy_cost_entries_question: 您即將刪除的工作套件中已有 %{cost_entries} 筆成本項目被回報。請問您希望如何處理? text_destroy_time_and_cost_entries: 刪除已回報的小時數和成本 text_destroy_time_and_cost_entries_question: 您即將刪除的工作套件中,已回報 %{hours} 小時的工時及 %{cost_entries} 筆成本。請問您要如何處理? + text_hourly_rate_destroy_confirmation: "%{rate} 的費率自 %{valid_from} 起生效將被刪除。已依此費率入帳的成本將根據屆時適用的費率重新計算。" + text_hourly_rate_destroy_confirmation_checkbox_label: 我明白此操作無法撤銷。 + text_hourly_rate_recalculation: 此費率自生效日起適用,直至較晚生效的費率生效為止。若變更此費率,系統亦會重新計算該期間內的既有工時記錄及預算。 + text_no_default_rate: 當使用者未設定特定費率時,所有專案均會採用預設費率。 + text_no_project_rate: 本專案將採用目前的預設費率。 text_reassign_time_and_cost_entries: 將已回報的工時與成本重新指派給此工作套件: text_warning_hidden_elements: 一些資料可能已排除在合併之外。 total_times: diff --git a/modules/documents/config/locales/crowdin/af.yml b/modules/documents/config/locales/crowdin/af.yml index 74562f9e4e57..6bff8498e26d 100644 --- a/modules/documents/config/locales/crowdin/af.yml +++ b/modules/documents/config/locales/crowdin/af.yml @@ -48,7 +48,7 @@ af: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ af: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ af: currently_offline: You are currently offline. label_attachment_author: Skrywer van aanhegsel label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ar.yml b/modules/documents/config/locales/crowdin/ar.yml index 84e92dbeb756..795be1346b05 100644 --- a/modules/documents/config/locales/crowdin/ar.yml +++ b/modules/documents/config/locales/crowdin/ar.yml @@ -57,7 +57,7 @@ ar: active_editors: Active editors active_editors_count: zero: "%{count} active editors" - one: 1 active editor + one: "%{count} active editor" two: "%{count} active editors" few: "%{count} active editors" many: "%{count} active editors" @@ -76,9 +76,9 @@ ar: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -137,7 +137,7 @@ ar: currently_offline: You are currently offline. label_attachment_author: مؤلف مرفق label_categories: الأقسام - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/az.yml b/modules/documents/config/locales/crowdin/az.yml index 2218e556caca..ca451edd494a 100644 --- a/modules/documents/config/locales/crowdin/az.yml +++ b/modules/documents/config/locales/crowdin/az.yml @@ -48,7 +48,7 @@ az: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ az: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ az: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/be.yml b/modules/documents/config/locales/crowdin/be.yml index 4d2cab6d88f8..689c2d6c4696 100644 --- a/modules/documents/config/locales/crowdin/be.yml +++ b/modules/documents/config/locales/crowdin/be.yml @@ -52,7 +52,7 @@ be: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" many: "%{count} active editors" other: "%{count} active editors" @@ -70,9 +70,9 @@ be: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -129,7 +129,7 @@ be: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/bg.yml b/modules/documents/config/locales/crowdin/bg.yml index 98d1fd92fa04..c5953dcef3c5 100644 --- a/modules/documents/config/locales/crowdin/bg.yml +++ b/modules/documents/config/locales/crowdin/bg.yml @@ -48,7 +48,7 @@ bg: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ bg: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ bg: currently_offline: You are currently offline. label_attachment_author: Автор на файла label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ca.yml b/modules/documents/config/locales/crowdin/ca.yml index 7dcfc853d006..d0ed1ec564eb 100644 --- a/modules/documents/config/locales/crowdin/ca.yml +++ b/modules/documents/config/locales/crowdin/ca.yml @@ -48,7 +48,7 @@ ca: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ ca: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ ca: currently_offline: You are currently offline. label_attachment_author: Autor de l'adjunt label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ckb-IR.yml b/modules/documents/config/locales/crowdin/ckb-IR.yml index ec42d9bd66aa..5b92e75f94e8 100644 --- a/modules/documents/config/locales/crowdin/ckb-IR.yml +++ b/modules/documents/config/locales/crowdin/ckb-IR.yml @@ -48,7 +48,7 @@ ckb-IR: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ ckb-IR: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ ckb-IR: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/cs.yml b/modules/documents/config/locales/crowdin/cs.yml index 13b09db02dee..da16a5f3acf4 100644 --- a/modules/documents/config/locales/crowdin/cs.yml +++ b/modules/documents/config/locales/crowdin/cs.yml @@ -52,10 +52,10 @@ cs: documents: active_editors: Aktivní editoři active_editors_count: - one: 1 aktivní editor + one: "%{count} active editor" few: "%{count} active editors" many: "%{count} active editors" - other: "%{count} aktivních editorů" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -70,9 +70,9 @@ cs: invalid_scheme: Musíte použít protokol WebSocket (ws:// nebo wss://). label: URL serveru Hocuspocus page_header: - description: |- - Když je Spolupráce v reálném čase povolena, umožňuje vícero uživatelům upravovat dokument současně. - Vyžaduje to funkční %{hocuspocus_server_link}. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Porozuměl jsem, že mohu trvale ztratit data confirmation_message: Všechny existující dokumenty se mohou stát nedostupnými. Tento postup proveďte pouze v případě, že jste si jisti, že chcete na této instanci vypnout spolupráci v reálném čase a editor BlockNote. @@ -127,7 +127,7 @@ cs: currently_offline: Nyní jste v režimu offline. label_attachment_author: Autor přílohy label_categories: Kategorie - last_updated_at: Naposledy uloženo %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Všechny dokumenty collaboration_settings: Spolupráce v reálném čase diff --git a/modules/documents/config/locales/crowdin/da.yml b/modules/documents/config/locales/crowdin/da.yml index 611eb7bb3d69..825edcd0be35 100644 --- a/modules/documents/config/locales/crowdin/da.yml +++ b/modules/documents/config/locales/crowdin/da.yml @@ -48,7 +48,7 @@ da: documents: active_editors: Aktive redaktører active_editors_count: - one: 1 aktiv redaktør + one: "%{count} aktiv redaktør" other: "%{count} aktive redaktører" admin: collaboration_settings: @@ -64,9 +64,9 @@ da: invalid_scheme: Skal anvende en WebSocket-protokol (ws:// eller wss://). label: URL til Hocuspocus-server page_header: - description: |- - Når det er aktiveret, giver realtidssamarbejde flere brugere mulighed for at redigere et dokument på samme tid. - Det kræver en fungerende %{hocuspocus_server_link} for at fungere. + description_html: |- + Når samarbejde i realtid er slået til, kan flere brugere redigere et dokument på samme tid. + Det kræver en fungerende [Hocuspocus-server](hocuspocus_server_link). disable_text_collaboration_dialog: confirmation_checkbox_message: Jeg forstår, at jeg kan miste data permanent confirmation_message: |- @@ -121,7 +121,7 @@ da: currently_offline: Du er offline i øjeblikket. label_attachment_author: Forfatter til vedhæftet fil label_categories: Kategorier - last_updated_at: Senest gemt %{time}. + last_updated_at_html: Senest gemt %{time}. menu: all: Alle dokumenter collaboration_settings: Samarbejde i realtid diff --git a/modules/documents/config/locales/crowdin/de.yml b/modules/documents/config/locales/crowdin/de.yml index bc6cb04edfa6..d16ed96a9b32 100644 --- a/modules/documents/config/locales/crowdin/de.yml +++ b/modules/documents/config/locales/crowdin/de.yml @@ -48,8 +48,8 @@ de: documents: active_editors: Aktive Bearbeiter active_editors_count: - one: Ein aktiver Bearbeiter - other: "%{count} aktive Bearbeiter" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ de: invalid_scheme: Muss ein WebSocket-Protokoll (ws:// oder wss://) verwenden. label: Hokuspokus-Server-URL page_header: - description: |- - Wenn die Echtzeit-Kollaboration aktiviert ist, können mehrere Personen ein Dokument zur gleichen Zeit bearbeiten. - Sie erfordert einen funktionierenden %{hocuspocus_server_link}, um zu funktionieren. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Ich verstehe, dass ich Daten dauerhaft verlieren könnte confirmation_message: |- @@ -118,7 +118,7 @@ de: currently_offline: Sie sind derzeit offline. label_attachment_author: Autor des Dokuments label_categories: Kategorien - last_updated_at: Zuletzt gespeichert %{time}. + last_updated_at_html: Zuletzt gespeichert %{time}. menu: all: Alle Dokumente collaboration_settings: Echtzeit-Kollaboration diff --git a/modules/documents/config/locales/crowdin/el.yml b/modules/documents/config/locales/crowdin/el.yml index 402cef109736..52eaf2d0c892 100644 --- a/modules/documents/config/locales/crowdin/el.yml +++ b/modules/documents/config/locales/crowdin/el.yml @@ -48,7 +48,7 @@ el: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ el: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ el: currently_offline: You are currently offline. label_attachment_author: Συγγραφέας συνημμένου label_categories: Κατηγορίες - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/eo.yml b/modules/documents/config/locales/crowdin/eo.yml index 8586e8a017fe..e3ad5e5887bb 100644 --- a/modules/documents/config/locales/crowdin/eo.yml +++ b/modules/documents/config/locales/crowdin/eo.yml @@ -48,7 +48,7 @@ eo: documents: active_editors: Aktivaj redaktistoj active_editors_count: - one: 1 aktiva redaktisto + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ eo: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ eo: currently_offline: You are currently offline. label_attachment_author: Aŭtoro de la kunsendaĵo label_categories: Kategorioj - last_updated_at: Laste konservita %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/es.yml b/modules/documents/config/locales/crowdin/es.yml index bdc4c0a90a2b..611aa2ab759c 100644 --- a/modules/documents/config/locales/crowdin/es.yml +++ b/modules/documents/config/locales/crowdin/es.yml @@ -48,8 +48,8 @@ es: documents: active_editors: Editores activos active_editors_count: - one: 1 editor activo - other: "%{count} editores activos" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ es: invalid_scheme: Debe utilizar un protocolo WebSocket (ws:// o wss://). label: URL del servidor Hocuspocus page_header: - description: |- - Cuando está activada, la colaboración en tiempo real permite a varios usuarios editar un documento al mismo tiempo. - Requiere un %{hocuspocus_server_link} operativo para funcionar. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Entiendo que podría perder los datos definitivamente confirmation_message: Es posible que ya no puedas acceder a ningún documento. Hazlo solo si quieres desactivar la colaboración en tiempo real y el editor BlockNote en esta instancia. @@ -119,7 +119,7 @@ es: currently_offline: Estás desconectado. label_attachment_author: Autor del archivo adjunto label_categories: Categorías - last_updated_at: Última vez guardado a las %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Todos los documentos collaboration_settings: Colaboración en tiempo real diff --git a/modules/documents/config/locales/crowdin/et.yml b/modules/documents/config/locales/crowdin/et.yml index 96405c874376..87e135aed84e 100644 --- a/modules/documents/config/locales/crowdin/et.yml +++ b/modules/documents/config/locales/crowdin/et.yml @@ -48,7 +48,7 @@ et: documents: active_editors: Aktiivsed toimetajad active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ et: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ et: currently_offline: Oled hetkel võrguühenduseta. label_attachment_author: Lisatud faili autor label_categories: Kategooriad - last_updated_at: Last saved %{time}. + last_updated_at_html: Viimati salvestatud %{time}. menu: all: Kõik dokumendid collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/eu.yml b/modules/documents/config/locales/crowdin/eu.yml index 6a4743616475..dbdf84fe755a 100644 --- a/modules/documents/config/locales/crowdin/eu.yml +++ b/modules/documents/config/locales/crowdin/eu.yml @@ -48,7 +48,7 @@ eu: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ eu: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ eu: currently_offline: You are currently offline. label_attachment_author: Eranskinaren egilea label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/fa.yml b/modules/documents/config/locales/crowdin/fa.yml index 06cb5a03b81e..a92b0692ce46 100644 --- a/modules/documents/config/locales/crowdin/fa.yml +++ b/modules/documents/config/locales/crowdin/fa.yml @@ -48,8 +48,8 @@ fa: documents: active_editors: ویرایشگران فعال active_editors_count: - one: ۱ ویرایشگر فعال - other: "%{count} ویرایشگر فعال" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ fa: invalid_scheme: باید از پروتکل WebSocket (ws:// یا wss://) استفاده شود. label: URL سرور Hocuspocus page_header: - description: |- - در صورت فعال‌بودن، همکاری بلادرنگ به چند کاربر اجازه می‌دهد یک سند را هم‌زمان ویرایش کنند. - برای کارکرد به یک %{hocuspocus_server_link} فعال نیاز دارد. + description_html: |- + هنگامی که فعال باشد، همکاری بلادرنگ به چند کاربر اجازه می‌دهد یک سند را به‌طور هم‌زمان ویرایش کنند. + برای کارکرد به یک [سرور Hocuspocus](hocuspocus_server_link) فعال نیاز دارد. disable_text_collaboration_dialog: confirmation_checkbox_message: می‌دانم که ممکن است داده‌ها را برای همیشه از دست بدهم confirmation_message: |- @@ -121,7 +121,7 @@ fa: currently_offline: در حال حاضر آفلاین هستید. label_attachment_author: نویسنده پیوست label_categories: دسته‌بندی‌ها - last_updated_at: آخرین ذخیره %{time}. + last_updated_at_html: آخرین ذخیره %{time}. menu: all: همه اسناد collaboration_settings: همکاری بلادرنگ diff --git a/modules/documents/config/locales/crowdin/fi.yml b/modules/documents/config/locales/crowdin/fi.yml index 8bc4f1dcd798..f7cfaeaac789 100644 --- a/modules/documents/config/locales/crowdin/fi.yml +++ b/modules/documents/config/locales/crowdin/fi.yml @@ -48,7 +48,7 @@ fi: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ fi: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ fi: currently_offline: You are currently offline. label_attachment_author: Liitteen laatija label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/fil.yml b/modules/documents/config/locales/crowdin/fil.yml index f7dc3aeeb64a..6c0216bc3086 100644 --- a/modules/documents/config/locales/crowdin/fil.yml +++ b/modules/documents/config/locales/crowdin/fil.yml @@ -48,7 +48,7 @@ fil: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ fil: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ fil: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/fr.yml b/modules/documents/config/locales/crowdin/fr.yml index 118fecb919fa..94dbdaec9323 100644 --- a/modules/documents/config/locales/crowdin/fr.yml +++ b/modules/documents/config/locales/crowdin/fr.yml @@ -48,8 +48,8 @@ fr: documents: active_editors: Éditeurs actifs active_editors_count: - one: 1 éditeur actif - other: "%{count} éditeurs actifs" + one: "%{count} éditeur actif" + other: "%{count} rédacteurs en activité" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ fr: invalid_scheme: Doit utiliser un protocole WebSocket (ws:// ou wss://). label: URL du serveur Hocuspocus page_header: - description: |- - Lorsqu'elle est activée, la collaboration en temps réel permet à plusieurs utilisateurs de modifier un document en même temps. - Elle nécessite un %{hocuspocus_server_link} opérationnel pour fonctionner. + description_html: |- + Lorsqu'elle est activée, la collaboration en temps réel permet à plusieurs utilisateurs de modifier un document simultanément. + Son fonctionnement nécessite un [serveur Hocuspocus](hocuspocus_server_link) opérationnel. disable_text_collaboration_dialog: confirmation_checkbox_message: Je comprends que je risque de perdre définitivement des données confirmation_message: Tous les documents existants peuvent devenir inaccessibles. Ne faites cela que si vous avez la certitude de vouloir désactiver la collaboration en temps réel et l'éditeur BlockNote sur cette instance. @@ -118,7 +118,7 @@ fr: currently_offline: Vous êtes actuellement hors ligne. label_attachment_author: Auteur de la pièce jointe label_categories: Catégories - last_updated_at: Dernier enregistrement %{time}. + last_updated_at_html: 'Dernière mise à jour : %{time}.' menu: all: Tous les documents collaboration_settings: Collaboration en temps réel diff --git a/modules/documents/config/locales/crowdin/he.yml b/modules/documents/config/locales/crowdin/he.yml index 986e7b3ab4da..426b1becfa1f 100644 --- a/modules/documents/config/locales/crowdin/he.yml +++ b/modules/documents/config/locales/crowdin/he.yml @@ -50,7 +50,7 @@ he: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" two: "%{count} active editors" other: "%{count} active editors" admin: @@ -67,9 +67,9 @@ he: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -125,7 +125,7 @@ he: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/hi.yml b/modules/documents/config/locales/crowdin/hi.yml index 6ca8f561b1e2..5ae052fae4fc 100644 --- a/modules/documents/config/locales/crowdin/hi.yml +++ b/modules/documents/config/locales/crowdin/hi.yml @@ -48,7 +48,7 @@ hi: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ hi: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ hi: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/hr.yml b/modules/documents/config/locales/crowdin/hr.yml index 3ffcdc2c353b..9199d0b1933c 100644 --- a/modules/documents/config/locales/crowdin/hr.yml +++ b/modules/documents/config/locales/crowdin/hr.yml @@ -50,7 +50,7 @@ hr: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" other: "%{count} active editors" admin: @@ -67,9 +67,9 @@ hr: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -125,7 +125,7 @@ hr: currently_offline: You are currently offline. label_attachment_author: Autor privitka label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/hu.yml b/modules/documents/config/locales/crowdin/hu.yml index 551b2f825204..957b51361a53 100644 --- a/modules/documents/config/locales/crowdin/hu.yml +++ b/modules/documents/config/locales/crowdin/hu.yml @@ -48,8 +48,8 @@ hu: documents: active_editors: Aktív szerkesztők active_editors_count: - one: 1 aktív szerkesztő - other: "%{count} aktív szerkesztők" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ hu: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus szerver URL címe page_header: - description: |- - Ha engedélyezve van, a valós idejű együttműködés lehetővé teszi, hogy több felhasználó egyszerre szerkesszen egy dokumentumot. - Ehhez egy működő %{hocuspocus_server_link} kiszolgálóra van szükség. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Tudomásul veszem, hogy véglegesen elveszíthetem az adatokat confirmation_message: |- @@ -121,7 +121,7 @@ hu: currently_offline: Jelenleg offline vagy. label_attachment_author: Melléklet szerzője label_categories: Kategóriák - last_updated_at: 'Utolsó mentés: %{time}.' + last_updated_at_html: Last saved %{time}. menu: all: Összes dokumentum collaboration_settings: Valós idejű együttműködés diff --git a/modules/documents/config/locales/crowdin/hy.yml b/modules/documents/config/locales/crowdin/hy.yml index aa64a7cc3a24..99ceb836d8b7 100644 --- a/modules/documents/config/locales/crowdin/hy.yml +++ b/modules/documents/config/locales/crowdin/hy.yml @@ -48,8 +48,8 @@ hy: documents: active_editors: Ակտիվ խմբագրողներ active_editors_count: - one: 1 ակտիվ խմբագրող - other: "%{count} ակտիվ խմբագրող" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ hy: invalid_scheme: Պետք է օգտագործվի WebSocket արձանագրություն (ws:// կամ wss://)։ label: Hocuspocus սերվերի URL page_header: - description: |- - Միացված վիճակում իրական ժամանակի համագործակցությունը թույլ է տալիս մի քանի օգտատերերի միաժամանակ խմբագրել փաստաթուղթը։ - Աշխատելու համար անհրաժեշտ է գործող %{hocuspocus_server_link}։ + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Հասկանում եմ, որ կարող եմ ընդմիշտ կորցնել տվյալները confirmation_message: |- @@ -121,7 +121,7 @@ hy: currently_offline: Դուք ներկայումս անցանց եք։ label_attachment_author: Կցորդի հեղինակ label_categories: Կատեգորիաներ - last_updated_at: Վերջին անգամ պահպանվել է %{time}։ + last_updated_at_html: Last saved %{time}. menu: all: Բոլոր փաստաթղթերը collaboration_settings: Իրական ժամանակի համագործակցություն diff --git a/modules/documents/config/locales/crowdin/id.yml b/modules/documents/config/locales/crowdin/id.yml index 99b9b754946c..9deba2ee6b67 100644 --- a/modules/documents/config/locales/crowdin/id.yml +++ b/modules/documents/config/locales/crowdin/id.yml @@ -46,7 +46,7 @@ id: documents: active_editors: Editor yang aktif active_editors_count: - other: "%{count} editor aktif" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -61,9 +61,9 @@ id: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: URL server Hocuspocus page_header: - description: |- - Saat diaktifkan, kolaborasi secara langusng memungkinkan beberapa pengguna untuk menyunting dokumen secara bersamaan. - Fitur ini memerlukan server %{hocuspocus_server_link} yang berfungsi untuk beroperasi. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Saya mengerti bahwa saya mungkin akan kehilangan data secara permanen confirmation_message: |- @@ -117,7 +117,7 @@ id: currently_offline: You are currently offline. label_attachment_author: Lampiran penulis label_categories: Kategori - last_updated_at: Terakhir disimpan %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Semua dokumen collaboration_settings: Kolaborasi secara langsung diff --git a/modules/documents/config/locales/crowdin/it.yml b/modules/documents/config/locales/crowdin/it.yml index 7a8937cc4082..3d5b501667c2 100644 --- a/modules/documents/config/locales/crowdin/it.yml +++ b/modules/documents/config/locales/crowdin/it.yml @@ -48,8 +48,8 @@ it: documents: active_editors: Editor attivi active_editors_count: - one: 1 editor attivo - other: "%{count} editor attivi" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ it: invalid_scheme: Deve usare un protocollo WebSocket (ws:// o wss://). label: URL del server Hocuspocus page_header: - description: |- + description_html: |- Quando è attiva, la collaborazione in tempo reale consente a più utenti di modificare un documento contemporaneamente. - Per funzionare è necessario un %{hocuspocus_server_link} operativo. + Per funzionare è necessario un [server Hocuspocus](hocuspocus_server_link) operativo. disable_text_collaboration_dialog: confirmation_checkbox_message: Sono consapevole che potrei perdere dati in modo permanente confirmation_message: Tutti i documenti esistenti potrebbero diventare inaccessibili. Procedi solo se hai certezza di voler disattivare la collaborazione in tempo reale e l'editor BlockNote in questa istanza. @@ -118,7 +118,7 @@ it: currently_offline: Sei attualmente offline. label_attachment_author: Autore allegato label_categories: Categorie - last_updated_at: Ultimo salvataggio %{time}. + last_updated_at_html: Ultimo salvataggio %{time}. menu: all: Tutti i documenti collaboration_settings: Collaborazione in tempo reale diff --git a/modules/documents/config/locales/crowdin/ja.yml b/modules/documents/config/locales/crowdin/ja.yml index f1d0a6fa7957..218d63fab80a 100644 --- a/modules/documents/config/locales/crowdin/ja.yml +++ b/modules/documents/config/locales/crowdin/ja.yml @@ -61,9 +61,9 @@ ja: invalid_scheme: WebSocketプロトコル(ws:// または wss://)を使用する必要があります。 label: HocuspocusサーバーのURL page_header: - description: |- - この機能を有効にすると、リアルタイム共同編集により、複数のユーザーが同時にドキュメントを編集できるようになります。 - この機能を利用するには、正常に動作する %{hocuspocus_server_link} が必要です。 + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: データが永久に失われる可能性があることは承知しています confirmation_message: |- @@ -117,7 +117,7 @@ ja: currently_offline: 現在、オフラインです。 label_attachment_author: 添付ファイルの作成者 label_categories: カテゴリ - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: 全てのドキュメント collaboration_settings: リアルタイムのコラボレーション diff --git a/modules/documents/config/locales/crowdin/ka.yml b/modules/documents/config/locales/crowdin/ka.yml index 4f9daf18be81..8cb5e93a7150 100644 --- a/modules/documents/config/locales/crowdin/ka.yml +++ b/modules/documents/config/locales/crowdin/ka.yml @@ -48,7 +48,7 @@ ka: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ ka: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ ka: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/kk.yml b/modules/documents/config/locales/crowdin/kk.yml index db99a933d2af..79889ae6e5a0 100644 --- a/modules/documents/config/locales/crowdin/kk.yml +++ b/modules/documents/config/locales/crowdin/kk.yml @@ -48,7 +48,7 @@ kk: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ kk: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ kk: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ko.yml b/modules/documents/config/locales/crowdin/ko.yml index d50b3a92ac70..430a59a84dd8 100644 --- a/modules/documents/config/locales/crowdin/ko.yml +++ b/modules/documents/config/locales/crowdin/ko.yml @@ -46,7 +46,7 @@ ko: documents: active_editors: 활성 편집자 active_editors_count: - other: 활성 편집자 %{count}명 + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -61,9 +61,9 @@ ko: invalid_scheme: WebSocket 프로토콜(ws:// 또는 wss://)을 사용해야 합니다. label: Hocuspocus 서버 URL page_header: - description: |- + description_html: |- 활성화하면 실시간 공동 작업을 통해 여러 사용자가 동시에 문서를 편집할 수 있습니다. - 이 기능을 사용하려면 %{hocuspocus_server_link}이(가) 작동해야 합니다. + 이 기능을 사용하려면 [Hocuspocus 서버](hocuspocus_server_link)가 작동해야 합니다. disable_text_collaboration_dialog: confirmation_checkbox_message: 데이터가 영구적으로 손실될 수 있음을 이해합니다 confirmation_message: "기존의 모든 문서에 액세스할 수 없게 될 수 있습니다. 이러한 경우 실시간 공동 작업과 BlockNote 편집기를 \n비활성화하려는 경우에만 이 작업을 수행하세요." @@ -114,7 +114,7 @@ ko: currently_offline: 현재 오프라인 상태입니다. label_attachment_author: 첨부 파일 작성자 label_categories: 카테고리 - last_updated_at: '마지막으로 저장: %{time}.' + last_updated_at_html: '마지막으로 저장: %{time}.' menu: all: 모든 문서 collaboration_settings: 실시간 공동 작업 diff --git a/modules/documents/config/locales/crowdin/li.yml b/modules/documents/config/locales/crowdin/li.yml index 0c4d334f6e63..8f5fb00dc067 100644 --- a/modules/documents/config/locales/crowdin/li.yml +++ b/modules/documents/config/locales/crowdin/li.yml @@ -48,7 +48,7 @@ li: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ li: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ li: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Alle documente collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/lt.yml b/modules/documents/config/locales/crowdin/lt.yml index dee64e8ec7ee..61ee7d4c36f5 100644 --- a/modules/documents/config/locales/crowdin/lt.yml +++ b/modules/documents/config/locales/crowdin/lt.yml @@ -52,7 +52,7 @@ lt: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" many: "%{count} active editors" other: "%{count} active editors" @@ -70,9 +70,9 @@ lt: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -129,7 +129,7 @@ lt: currently_offline: You are currently offline. label_attachment_author: Priedo autorius label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/lv.yml b/modules/documents/config/locales/crowdin/lv.yml index f117007c55d0..fdacd5ea798e 100644 --- a/modules/documents/config/locales/crowdin/lv.yml +++ b/modules/documents/config/locales/crowdin/lv.yml @@ -51,7 +51,7 @@ lv: active_editors: Active editors active_editors_count: zero: "%{count} active editors" - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -67,9 +67,9 @@ lv: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -125,7 +125,7 @@ lv: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/mn.yml b/modules/documents/config/locales/crowdin/mn.yml index f446e77ec986..aa60fafd8974 100644 --- a/modules/documents/config/locales/crowdin/mn.yml +++ b/modules/documents/config/locales/crowdin/mn.yml @@ -48,7 +48,7 @@ mn: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ mn: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ mn: currently_offline: You are currently offline. label_attachment_author: Хавсралтын зохиогч label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ms.yml b/modules/documents/config/locales/crowdin/ms.yml index 29d945c2d434..33cc6edc48d9 100644 --- a/modules/documents/config/locales/crowdin/ms.yml +++ b/modules/documents/config/locales/crowdin/ms.yml @@ -61,9 +61,9 @@ ms: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -117,7 +117,7 @@ ms: currently_offline: You are currently offline. label_attachment_author: Pengarang lampiran label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/ne.yml b/modules/documents/config/locales/crowdin/ne.yml index 387ec1d6f6a3..9d7bf109a251 100644 --- a/modules/documents/config/locales/crowdin/ne.yml +++ b/modules/documents/config/locales/crowdin/ne.yml @@ -48,7 +48,7 @@ ne: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ ne: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ ne: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/nl.yml b/modules/documents/config/locales/crowdin/nl.yml index 17b2ac77cf45..f93a0f07dfe5 100644 --- a/modules/documents/config/locales/crowdin/nl.yml +++ b/modules/documents/config/locales/crowdin/nl.yml @@ -48,7 +48,7 @@ nl: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ nl: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ nl: currently_offline: You are currently offline. label_attachment_author: Auteur bijlage label_categories: Categorieën - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Alle documenten collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/no.yml b/modules/documents/config/locales/crowdin/no.yml index d9d58e8b1ec6..c3bcd36a263f 100644 --- a/modules/documents/config/locales/crowdin/no.yml +++ b/modules/documents/config/locales/crowdin/no.yml @@ -48,7 +48,7 @@ documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ currently_offline: You are currently offline. label_attachment_author: Vedleggsforfatter label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/pl.yml b/modules/documents/config/locales/crowdin/pl.yml index fc3f1231682d..f15567ef6c35 100644 --- a/modules/documents/config/locales/crowdin/pl.yml +++ b/modules/documents/config/locales/crowdin/pl.yml @@ -52,10 +52,10 @@ pl: documents: active_editors: Aktywni edytorzy active_editors_count: - one: 1 aktywny edytor - few: "%{count} aktywnych edytorów" - many: "%{count} aktywnych edytorów" - other: "%{count} aktywnego edytora" + one: "%{count} active editor" + few: "%{count} active editors" + many: "%{count} active editors" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -70,9 +70,9 @@ pl: invalid_scheme: Musi używać protokołu WebSocket (ws:// lub wss://). label: Adres URL serwera Hocuspocus page_header: - description: |- - Po włączeniu współpraca w czasie rzeczywistym pozwala wielu użytkownikom edytować dokument w tym samym czasie. - Do działania wymaga działającego %{hocuspocus_server_link}. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Rozumiem, że mogę bezpowrotnie utracić dane confirmation_message: Wszystkie istniejące dokumenty mogą stać się niedostępne. Zrób to tylko mając pewność, że chcesz wyłączyć współpracę w czasie rzeczywistym i edytor BlockNote w tym wystąpieniu. @@ -126,7 +126,7 @@ pl: currently_offline: Jesteś obecnie offline. label_attachment_author: Autor załącznika label_categories: Kategorie - last_updated_at: Ostatnio zapisano %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Wszystkie dokumenty collaboration_settings: Współpraca w czasie rzeczywistym diff --git a/modules/documents/config/locales/crowdin/pt-BR.yml b/modules/documents/config/locales/crowdin/pt-BR.yml index 5c90ebc41388..84dd0861825a 100644 --- a/modules/documents/config/locales/crowdin/pt-BR.yml +++ b/modules/documents/config/locales/crowdin/pt-BR.yml @@ -48,8 +48,8 @@ pt-BR: documents: active_editors: Editores ativos active_editors_count: - one: 1 editor ativo - other: "%{count} editores ativos" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ pt-BR: invalid_scheme: Deve usar um protocolo WebSocket (ws:// ou wss://). label: URL do servidor Hocuspocus page_header: - description: |- + description_html: |- Quando ativada, a colaboração em tempo real permite que vários usuários editem um documento simultaneamente. - Para funcionar, é necessário ter um %{hocuspocus_server_link} em funcionamento. + Para funcionar, é necessário um [servidor Hocuspocus](hocuspocus_server_link) em funcionamento. disable_text_collaboration_dialog: confirmation_checkbox_message: Entendo que posso perder dados permanentemente confirmation_message: Todos os documentos existentes podem se tornar inacessíveis. Faça isso apenas se tiver certeza de que deseja desabilitar a colaboração em tempo real e o editor BlockNote nesta instância. @@ -116,7 +116,7 @@ pt-BR: currently_offline: Você está offline no momento. label_attachment_author: Autor do anexo label_categories: Categorias - last_updated_at: Última gravação %{time}. + last_updated_at_html: Última gravação %{time}. menu: all: Todos os documentos collaboration_settings: Colaboração em tempo real diff --git a/modules/documents/config/locales/crowdin/pt-PT.yml b/modules/documents/config/locales/crowdin/pt-PT.yml index 89c25ffc06da..867d11a88853 100644 --- a/modules/documents/config/locales/crowdin/pt-PT.yml +++ b/modules/documents/config/locales/crowdin/pt-PT.yml @@ -48,8 +48,8 @@ pt-PT: documents: active_editors: Editores ativos active_editors_count: - one: 1 editor ativo - other: "%{count} editores ativos" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ pt-PT: invalid_scheme: Deve utilizar um protocolo WebSocket (ws:// ou wss://). label: URL do servidor Hocuspocus page_header: - description: |- - Quando ativada, a colaboração em tempo real permite que vários utilizadores editem um documento ao mesmo tempo. - Requer um %{hocuspocus_server_link} funcional para resultar. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Compreendo que posso perder dados permanentemente confirmation_message: Todos os documentos existentes podem ficar inacessíveis. Faça isso apenas se tiver certeza de que quer desativar a colaboração em tempo real e o editor BlockNote nesta instância. @@ -119,7 +119,7 @@ pt-PT: currently_offline: Está offline. label_attachment_author: Autor do anexo label_categories: Categorias - last_updated_at: Guardado pela última vez a %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Todos os documentos collaboration_settings: Colaboração em tempo real diff --git a/modules/documents/config/locales/crowdin/ro.yml b/modules/documents/config/locales/crowdin/ro.yml index 77ae6b1827fd..05a17c61a38f 100644 --- a/modules/documents/config/locales/crowdin/ro.yml +++ b/modules/documents/config/locales/crowdin/ro.yml @@ -50,7 +50,7 @@ ro: documents: active_editors: Editori activi active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" other: "%{count} active editors" admin: @@ -67,9 +67,9 @@ ro: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- - Când este activată, colaborarea în timp real permite mai multor utilizatori să editeze un document în același timp. - Are nevoie de un %{hocuspocus_server_link} care să funcționeze. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -125,7 +125,7 @@ ro: currently_offline: You are currently offline. label_attachment_author: Autorul anexei label_categories: Categorii - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Toate documentele collaboration_settings: Colaborarea în timp real diff --git a/modules/documents/config/locales/crowdin/ru.yml b/modules/documents/config/locales/crowdin/ru.yml index 56cdef2dd817..c347045f44cd 100644 --- a/modules/documents/config/locales/crowdin/ru.yml +++ b/modules/documents/config/locales/crowdin/ru.yml @@ -52,10 +52,10 @@ ru: documents: active_editors: Активные редакторы active_editors_count: - one: 1 активный редактор - few: "%{count} активных редактора" - many: "%{count} активных редакторов" - other: "%{count} активных редакторов" + one: "%{count} active editor" + few: "%{count} active editors" + many: "%{count} active editors" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -70,9 +70,9 @@ ru: invalid_scheme: Должен использоваться протокол WebSocket (ws:// или wss://). label: URL-адрес сервера Hocuspocus page_header: - description: |- - Когда эта функция включена, совместная работа в реальном времени позволяет нескольким пользователям редактировать документ одновременно. - Для его функционирования требуется работающий %{hocuspocus_server_link}. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Я понимаю, что могу безвозвратно потерять данные confirmation_message: Все существующие документы могут стать недоступными. Пожалуйста, делайте это только в том случае, если Вы уверены, что хотите отключить совместную работу в реальном времени и редактор BlockNote. @@ -124,7 +124,7 @@ ru: currently_offline: Вы сейчас не в сети. label_attachment_author: Автор вложения label_categories: Категории - last_updated_at: Последнее сохранение %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Все документы collaboration_settings: Командная работа в режиме реального времени diff --git a/modules/documents/config/locales/crowdin/rw.yml b/modules/documents/config/locales/crowdin/rw.yml index 9de170e9424a..3726f3fe9d20 100644 --- a/modules/documents/config/locales/crowdin/rw.yml +++ b/modules/documents/config/locales/crowdin/rw.yml @@ -48,7 +48,7 @@ rw: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ rw: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ rw: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/si.yml b/modules/documents/config/locales/crowdin/si.yml index e13d9be9249b..31a04e793251 100644 --- a/modules/documents/config/locales/crowdin/si.yml +++ b/modules/documents/config/locales/crowdin/si.yml @@ -48,7 +48,7 @@ si: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ si: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ si: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/sk.yml b/modules/documents/config/locales/crowdin/sk.yml index ebca9257037d..ac319eecf2c2 100644 --- a/modules/documents/config/locales/crowdin/sk.yml +++ b/modules/documents/config/locales/crowdin/sk.yml @@ -52,7 +52,7 @@ sk: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" many: "%{count} active editors" other: "%{count} active editors" @@ -70,9 +70,9 @@ sk: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -129,7 +129,7 @@ sk: currently_offline: You are currently offline. label_attachment_author: Autor prílohy label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/sl.yml b/modules/documents/config/locales/crowdin/sl.yml index 10e5e4cd7271..ad9c661e8415 100644 --- a/modules/documents/config/locales/crowdin/sl.yml +++ b/modules/documents/config/locales/crowdin/sl.yml @@ -52,7 +52,7 @@ sl: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" two: "%{count} active editors" few: "%{count} active editors" other: "%{count} active editors" @@ -70,9 +70,9 @@ sl: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -129,7 +129,7 @@ sl: currently_offline: You are currently offline. label_attachment_author: Avtor priloge label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/sr.yml b/modules/documents/config/locales/crowdin/sr.yml index d328330b8792..ca29a9c420db 100644 --- a/modules/documents/config/locales/crowdin/sr.yml +++ b/modules/documents/config/locales/crowdin/sr.yml @@ -50,7 +50,7 @@ sr: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" few: "%{count} active editors" other: "%{count} active editors" admin: @@ -67,9 +67,9 @@ sr: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -125,7 +125,7 @@ sr: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/sv.yml b/modules/documents/config/locales/crowdin/sv.yml index 7f9a9e62ff0f..5e3db0b1e63d 100644 --- a/modules/documents/config/locales/crowdin/sv.yml +++ b/modules/documents/config/locales/crowdin/sv.yml @@ -48,8 +48,8 @@ sv: documents: active_editors: Aktiva redigerare active_editors_count: - one: 1 aktiv redigerare - other: "%{count} aktiva redigerare" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ sv: invalid_scheme: Måste använda ett WebSocket-protokoll (ws:// eller wss://). label: Hocuspocus server URL page_header: - description: |- - När detta är aktiverat kan flera användare redigera ett dokument samtidigt. - Det kräver att en fungerande %{hocuspocus_server_link} fungerar. + description_html: |- + När realtidssamarbete är aktiverat kan flera användare redigera ett dokument samtidigt. + Det kräver en fungerande [Hocuspocus-server](hocuspocus_server_link). disable_text_collaboration_dialog: confirmation_checkbox_message: Jag förstår att jag kan permanent förlora data confirmation_message: |- @@ -121,7 +121,7 @@ sv: currently_offline: Du är för närvarande offline. label_attachment_author: Författare för bilaga label_categories: Kategorier - last_updated_at: Senast sparad %{time}. + last_updated_at_html: Senast sparad %{time}. menu: all: Alla dokument collaboration_settings: Samarbete i realtid diff --git a/modules/documents/config/locales/crowdin/th.yml b/modules/documents/config/locales/crowdin/th.yml index b1bc76b2515c..9a085f7eb335 100644 --- a/modules/documents/config/locales/crowdin/th.yml +++ b/modules/documents/config/locales/crowdin/th.yml @@ -61,9 +61,9 @@ th: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -117,7 +117,7 @@ th: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/tr.yml b/modules/documents/config/locales/crowdin/tr.yml index 3f6161f1637a..864d44776ed9 100644 --- a/modules/documents/config/locales/crowdin/tr.yml +++ b/modules/documents/config/locales/crowdin/tr.yml @@ -48,8 +48,8 @@ tr: documents: active_editors: Etkin düzenleyici active_editors_count: - one: 1 aktif editör - other: "%{count} aktif editör" + one: "%{count} active editor" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -64,9 +64,9 @@ tr: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus sunucu URL'si page_header: - description: |- - Etkinleştirildiğinde, gerçek zamanlı işbirliği birden fazla kullanıcının bir belgeyi aynı anda düzenlemesine olanak tanır. - Çalışması için çalışan bir %{hocuspocus_server_link} gerekir. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Verileri kalıcı olarak kaybedebileceğimi anlıyorum confirmation_message: |- @@ -121,7 +121,7 @@ tr: currently_offline: Şu anda çevrimdışısınız. label_attachment_author: Ek yazar label_categories: Kategoriler - last_updated_at: Son kaydedilen %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Tüm belgeler collaboration_settings: Gerçek zamanlı işbirliği diff --git a/modules/documents/config/locales/crowdin/uk.yml b/modules/documents/config/locales/crowdin/uk.yml index 45b0beea75b5..74f250d49993 100644 --- a/modules/documents/config/locales/crowdin/uk.yml +++ b/modules/documents/config/locales/crowdin/uk.yml @@ -52,10 +52,10 @@ uk: documents: active_editors: Активні редактори active_editors_count: - one: 1 активний редактор - few: "%{count} активних редактори" - many: "%{count} активних редакторів" - other: "%{count} активного редактора" + one: "%{count} active editor" + few: "%{count} active editors" + many: "%{count} active editors" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -70,9 +70,9 @@ uk: invalid_scheme: Слід використовувати протокол WebSocket (ws:// or wss://). label: URL-адреса сервера Hocuspocus page_header: - description: |- + description_html: |- Якщо увімкнено, спільне редагування в реальному часі дає змогу кільком користувачам одночасно редагувати документ. - Для роботи потрібен працездатний %{hocuspocus_server_link}. + Для роботи потрібен працездатний [сервер Hocuspocus](hocuspocus_server_link). disable_text_collaboration_dialog: confirmation_checkbox_message: Я розумію, що можу назавжди втратити дані confirmation_message: Усі наявні документи можуть стати недоступними. Будь ласка, виконуйте цю дію лише якщо впевнені, що хочете вимкнути спільне редагування в реальному часі та редактор BlockNote у цьому середовищі. @@ -126,7 +126,7 @@ uk: currently_offline: Ви зараз не в мережі. label_attachment_author: Автор додатку label_categories: Категорії - last_updated_at: Востаннє збережено о %{time}. + last_updated_at_html: Востаннє збережено о %{time}. menu: all: Усі документи collaboration_settings: Спільне редагування в реальному часі diff --git a/modules/documents/config/locales/crowdin/uz.yml b/modules/documents/config/locales/crowdin/uz.yml index 4a49bc478bac..750e08383f05 100644 --- a/modules/documents/config/locales/crowdin/uz.yml +++ b/modules/documents/config/locales/crowdin/uz.yml @@ -48,7 +48,7 @@ uz: documents: active_editors: Active editors active_editors_count: - one: 1 active editor + one: "%{count} active editor" other: "%{count} active editors" admin: collaboration_settings: @@ -64,9 +64,9 @@ uz: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: Hocuspocus server URL page_header: - description: |- + description_html: |- When enabled, real-time collaboration allows multiple users to edit a document at the same time. - It requires a working %{hocuspocus_server_link} to function. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: I understand that I might permanently lose data confirmation_message: |- @@ -121,7 +121,7 @@ uz: currently_offline: You are currently offline. label_attachment_author: Attachment author label_categories: Categories - last_updated_at: Last saved %{time}. + last_updated_at_html: Last saved %{time}. menu: all: All documents collaboration_settings: Real-time collaboration diff --git a/modules/documents/config/locales/crowdin/vi.yml b/modules/documents/config/locales/crowdin/vi.yml index 642b8311c08c..4e989edef64b 100644 --- a/modules/documents/config/locales/crowdin/vi.yml +++ b/modules/documents/config/locales/crowdin/vi.yml @@ -46,7 +46,7 @@ vi: documents: active_editors: Người chỉnh sửa đang hoạt động active_editors_count: - other: "%{count} biên tập viên đang hoạt động" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -61,9 +61,9 @@ vi: invalid_scheme: Must use a WebSocket protocol (ws:// or wss://). label: URL máy chủ Hocuspocus page_header: - description: |- - Khi được bật, cộng tác theo thời gian thực cho phép nhiều người dùng chỉnh sửa tài liệu cùng một lúc. - Nó yêu cầu %{hocuspocus_server_link} hoạt động. + description_html: |- + When enabled, real-time collaboration allows multiple users to edit a document at the same time. + It requires a working [Hocuspocus server](hocuspocus_server_link) to function. disable_text_collaboration_dialog: confirmation_checkbox_message: Tôi hiểu rằng tôi có thể mất dữ liệu vĩnh viễn confirmation_message: |- @@ -117,7 +117,7 @@ vi: currently_offline: You are currently offline. label_attachment_author: Tác giả đính kèm label_categories: danh mục - last_updated_at: Đã lưu lần cuối %{time}. + last_updated_at_html: Last saved %{time}. menu: all: Tất cả tài liệu collaboration_settings: Hợp tác thời gian thực diff --git a/modules/documents/config/locales/crowdin/zh-CN.yml b/modules/documents/config/locales/crowdin/zh-CN.yml index 32a8608047f1..bfb91c774f3a 100644 --- a/modules/documents/config/locales/crowdin/zh-CN.yml +++ b/modules/documents/config/locales/crowdin/zh-CN.yml @@ -46,7 +46,7 @@ zh-CN: documents: active_editors: 有效编辑器 active_editors_count: - other: "%{count} 位活跃编辑者" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -61,9 +61,9 @@ zh-CN: invalid_scheme: 必须使用 WebSocket 协议(ws:// 或 wss://)。 label: Hocuspocus 服务器 URL page_header: - description: |- + description_html: |- 启用实时协作后,多个用户可以同时编辑一个文档。 - 它需要一个有效的 %{hocuspocus_server_link} 才能运行。 + 它需要一个有效的 [Hocuspocus 服务器](hocuspocus_server_link)才能运行。 disable_text_collaboration_dialog: confirmation_checkbox_message: 我明白我可能会永久丢失数据 confirmation_message: 所有现有文档可能变为无法访问。请仅在确定要禁用实时协作和 BlockNote 编辑器的情况下才执行此操作。 @@ -114,7 +114,7 @@ zh-CN: currently_offline: 您目前处于离线状态。 label_attachment_author: 附件作者 label_categories: 类别 - last_updated_at: 最后保存时间:%{time}。 + last_updated_at_html: 上次保存时间:%{time}。 menu: all: 所有文档 collaboration_settings: 实时协作 diff --git a/modules/documents/config/locales/crowdin/zh-TW.yml b/modules/documents/config/locales/crowdin/zh-TW.yml index 1131a6d68353..a3f0227a77b8 100644 --- a/modules/documents/config/locales/crowdin/zh-TW.yml +++ b/modules/documents/config/locales/crowdin/zh-TW.yml @@ -46,7 +46,7 @@ zh-TW: documents: active_editors: 活躍的編輯者 active_editors_count: - other: "%{count} 活躍的編輯" + other: "%{count} active editors" admin: collaboration_settings: banner: @@ -61,9 +61,9 @@ zh-TW: invalid_scheme: 必須使用 WebSocket 通訊協定 (ws:// 或 wss://)。 label: Hocuspocus 伺服器 URL page_header: - description: |- - 啟用時,即時協作可讓多位使用者同時編輯一份文件。 - 它需要工作中的 %{hocuspocus_server_link} 才能運作。 + description_html: |- + 啟用即時協作功能後,多名使用者即可同時編輯同一份文件。 + 此功能需有可正常運作的 [Hocuspocus 伺服器](hocuspocus_server_link) 方能運作。 disable_text_collaboration_dialog: confirmation_checkbox_message: 我瞭解我可能會永久遺失資料 confirmation_message: |- @@ -117,7 +117,7 @@ zh-TW: currently_offline: 你目前狀態為離線。 label_attachment_author: 附件作者 label_categories: 類別 - last_updated_at: 最後儲存 %{time}。 + last_updated_at_html: 最後儲存 %{time}。 menu: all: 所有文件 collaboration_settings: 即時協作 diff --git a/modules/github_integration/config/locales/crowdin/af.yml b/modules/github_integration/config/locales/crowdin/af.yml index cc467d8d1f61..a11de57698ee 100644 --- a/modules/github_integration/config/locales/crowdin/af.yml +++ b/modules/github_integration/config/locales/crowdin/af.yml @@ -43,7 +43,7 @@ af: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ar.yml b/modules/github_integration/config/locales/crowdin/ar.yml index 0048a9f1c687..aa89849dbff8 100644 --- a/modules/github_integration/config/locales/crowdin/ar.yml +++ b/modules/github_integration/config/locales/crowdin/ar.yml @@ -63,7 +63,7 @@ ar: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/az.yml b/modules/github_integration/config/locales/crowdin/az.yml index 00851cacd125..1a7b78510e81 100644 --- a/modules/github_integration/config/locales/crowdin/az.yml +++ b/modules/github_integration/config/locales/crowdin/az.yml @@ -43,7 +43,7 @@ az: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/be.yml b/modules/github_integration/config/locales/crowdin/be.yml index 558ffb71837f..263a563617f7 100644 --- a/modules/github_integration/config/locales/crowdin/be.yml +++ b/modules/github_integration/config/locales/crowdin/be.yml @@ -53,7 +53,7 @@ be: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/bg.yml b/modules/github_integration/config/locales/crowdin/bg.yml index 0acacde87cde..cd4f5f015592 100644 --- a/modules/github_integration/config/locales/crowdin/bg.yml +++ b/modules/github_integration/config/locales/crowdin/bg.yml @@ -43,7 +43,7 @@ bg: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ca.yml b/modules/github_integration/config/locales/crowdin/ca.yml index add809155157..30d42c18ed2a 100644 --- a/modules/github_integration/config/locales/crowdin/ca.yml +++ b/modules/github_integration/config/locales/crowdin/ca.yml @@ -43,7 +43,7 @@ ca: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ckb-IR.yml b/modules/github_integration/config/locales/crowdin/ckb-IR.yml index f75b1088ce74..2a18783d47c1 100644 --- a/modules/github_integration/config/locales/crowdin/ckb-IR.yml +++ b/modules/github_integration/config/locales/crowdin/ckb-IR.yml @@ -43,7 +43,7 @@ ckb-IR: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/cs.yml b/modules/github_integration/config/locales/crowdin/cs.yml index faedbe887197..10a441ec3180 100644 --- a/modules/github_integration/config/locales/crowdin/cs.yml +++ b/modules/github_integration/config/locales/crowdin/cs.yml @@ -53,7 +53,7 @@ cs: changed_files_count: Změněné soubory comments_count: Počet komentářů deletions_count: Počet výmazů - github: Identifikátor na GitHubu + github: GitHub identifier github_app_owner_avatar_url: URL avataru vlastníka github_avatar_url: URL avataru github_html_url: URL pull requestu diff --git a/modules/github_integration/config/locales/crowdin/da.yml b/modules/github_integration/config/locales/crowdin/da.yml index aa861eb28329..9ec48cb903f6 100644 --- a/modules/github_integration/config/locales/crowdin/da.yml +++ b/modules/github_integration/config/locales/crowdin/da.yml @@ -43,7 +43,7 @@ da: changed_files_count: Ændrede filer comments_count: Antal kommentarer deletions_count: Antal sletninger - github: GitHub-identifikator + github: GitHub-id github_app_owner_avatar_url: URL til ejerens avatar github_avatar_url: Avatar-URL github_html_url: URL til pull request diff --git a/modules/github_integration/config/locales/crowdin/de.yml b/modules/github_integration/config/locales/crowdin/de.yml index b54fdf046566..608264da9a44 100644 --- a/modules/github_integration/config/locales/crowdin/de.yml +++ b/modules/github_integration/config/locales/crowdin/de.yml @@ -43,7 +43,7 @@ de: changed_files_count: Geänderte Dateien comments_count: Anzahl der Kommentare deletions_count: Anzahl der Löschungen - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Avatar-URL des Besitzers github_avatar_url: Avatar-URL github_html_url: Pull-Request URL diff --git a/modules/github_integration/config/locales/crowdin/el.yml b/modules/github_integration/config/locales/crowdin/el.yml index 4e4b0d33337c..f01744c5326f 100644 --- a/modules/github_integration/config/locales/crowdin/el.yml +++ b/modules/github_integration/config/locales/crowdin/el.yml @@ -43,7 +43,7 @@ el: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/eo.yml b/modules/github_integration/config/locales/crowdin/eo.yml index 6118784d1983..47cdc0bb04ab 100644 --- a/modules/github_integration/config/locales/crowdin/eo.yml +++ b/modules/github_integration/config/locales/crowdin/eo.yml @@ -43,7 +43,7 @@ eo: changed_files_count: Ŝanĝitaj dosieroj comments_count: Nombro de komentoj deletions_count: Nombro de forigoj - github: GitHub-identigilo + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: URL por tirpeto diff --git a/modules/github_integration/config/locales/crowdin/es.yml b/modules/github_integration/config/locales/crowdin/es.yml index 8460c3d8499f..a256b4f71ce9 100644 --- a/modules/github_integration/config/locales/crowdin/es.yml +++ b/modules/github_integration/config/locales/crowdin/es.yml @@ -43,7 +43,7 @@ es: changed_files_count: Archivos modificados comments_count: Número de comentarios deletions_count: Número de eliminaciones - github: Identificador de GitHub + github: GitHub identifier github_app_owner_avatar_url: URL del avatar del propietario github_avatar_url: URL del avatar github_html_url: URL de solicitud de incorporación de cambios diff --git a/modules/github_integration/config/locales/crowdin/et.yml b/modules/github_integration/config/locales/crowdin/et.yml index c61bf7700f1c..c513f9d31949 100644 --- a/modules/github_integration/config/locales/crowdin/et.yml +++ b/modules/github_integration/config/locales/crowdin/et.yml @@ -43,7 +43,7 @@ et: changed_files_count: Muudetud failid comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatari URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/eu.yml b/modules/github_integration/config/locales/crowdin/eu.yml index a204f303784d..98e961fa77d8 100644 --- a/modules/github_integration/config/locales/crowdin/eu.yml +++ b/modules/github_integration/config/locales/crowdin/eu.yml @@ -43,7 +43,7 @@ eu: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/fa.yml b/modules/github_integration/config/locales/crowdin/fa.yml index d356fe5fbbf0..304be2c3a27b 100644 --- a/modules/github_integration/config/locales/crowdin/fa.yml +++ b/modules/github_integration/config/locales/crowdin/fa.yml @@ -43,7 +43,7 @@ fa: changed_files_count: فایل‌های تغییرکرده comments_count: تعداد دیدگاه‌ها deletions_count: تعداد حذف‌ها - github: شناسه GitHub + github: GitHub identifier github_app_owner_avatar_url: URL آواتار مالک github_avatar_url: URL آواتار github_html_url: URL Pull Request diff --git a/modules/github_integration/config/locales/crowdin/fi.yml b/modules/github_integration/config/locales/crowdin/fi.yml index 254b0918b302..d45030ca1648 100644 --- a/modules/github_integration/config/locales/crowdin/fi.yml +++ b/modules/github_integration/config/locales/crowdin/fi.yml @@ -43,7 +43,7 @@ fi: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/fil.yml b/modules/github_integration/config/locales/crowdin/fil.yml index 3fae9faa84f0..8abb0406d80f 100644 --- a/modules/github_integration/config/locales/crowdin/fil.yml +++ b/modules/github_integration/config/locales/crowdin/fil.yml @@ -43,7 +43,7 @@ fil: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/fr.yml b/modules/github_integration/config/locales/crowdin/fr.yml index 838e42d25415..01d35fbda7b1 100644 --- a/modules/github_integration/config/locales/crowdin/fr.yml +++ b/modules/github_integration/config/locales/crowdin/fr.yml @@ -43,7 +43,7 @@ fr: changed_files_count: Fichiers modifiés comments_count: Nombre de commentaires deletions_count: Nombre de suppressions - github: Identifiant GitHub + github: GitHub identifier github_app_owner_avatar_url: URL de l'avatar du propriétaire github_avatar_url: URL de l'avatar github_html_url: URL de requête pull diff --git a/modules/github_integration/config/locales/crowdin/he.yml b/modules/github_integration/config/locales/crowdin/he.yml index 85b55fd8278b..1b6b4256817d 100644 --- a/modules/github_integration/config/locales/crowdin/he.yml +++ b/modules/github_integration/config/locales/crowdin/he.yml @@ -48,7 +48,7 @@ he: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/hi.yml b/modules/github_integration/config/locales/crowdin/hi.yml index f8ffa85a08af..a553d6ebc0ca 100644 --- a/modules/github_integration/config/locales/crowdin/hi.yml +++ b/modules/github_integration/config/locales/crowdin/hi.yml @@ -43,7 +43,7 @@ hi: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/hr.yml b/modules/github_integration/config/locales/crowdin/hr.yml index 4ba5943fcb03..65d2ccc421b3 100644 --- a/modules/github_integration/config/locales/crowdin/hr.yml +++ b/modules/github_integration/config/locales/crowdin/hr.yml @@ -48,7 +48,7 @@ hr: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/hu.yml b/modules/github_integration/config/locales/crowdin/hu.yml index 96c8ad6f1012..61377d326460 100644 --- a/modules/github_integration/config/locales/crowdin/hu.yml +++ b/modules/github_integration/config/locales/crowdin/hu.yml @@ -43,7 +43,7 @@ hu: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/hy.yml b/modules/github_integration/config/locales/crowdin/hy.yml index 9c3e1aa08e1d..e4eab0561c39 100644 --- a/modules/github_integration/config/locales/crowdin/hy.yml +++ b/modules/github_integration/config/locales/crowdin/hy.yml @@ -43,7 +43,7 @@ hy: changed_files_count: Փոփոխված նիշքեր comments_count: Մեկնաբանությունների քանակ deletions_count: Ջնջումների թիվ - github: GitHub-ի նույնացուցիչ + github: GitHub identifier github_app_owner_avatar_url: Սեփականատիրոջ ավատարի URL github_avatar_url: Ավատարի URL github_html_url: Ձգման հարցման URL diff --git a/modules/github_integration/config/locales/crowdin/id.yml b/modules/github_integration/config/locales/crowdin/id.yml index 99b4077ff842..312f5a56ed40 100644 --- a/modules/github_integration/config/locales/crowdin/id.yml +++ b/modules/github_integration/config/locales/crowdin/id.yml @@ -38,7 +38,7 @@ id: changed_files_count: File yang diubah comments_count: Jumlah komentar deletions_count: Jumlah penghapusan - github: Tanda pengenal GitHub + github: GitHub identifier github_app_owner_avatar_url: URL avatar pemilik github_avatar_url: URL avatar github_html_url: URL permintaan pull diff --git a/modules/github_integration/config/locales/crowdin/it.yml b/modules/github_integration/config/locales/crowdin/it.yml index 5fb3986a2633..f2f56228c42e 100644 --- a/modules/github_integration/config/locales/crowdin/it.yml +++ b/modules/github_integration/config/locales/crowdin/it.yml @@ -43,7 +43,7 @@ it: changed_files_count: File modificati comments_count: Conteggio commenti deletions_count: Numero di cancellazioni - github: Identificatore GitHub + github: GitHub identifier github_app_owner_avatar_url: URL avatar proprietario github_avatar_url: URL dell'avatar github_html_url: URL della richiesta pull diff --git a/modules/github_integration/config/locales/crowdin/ja.yml b/modules/github_integration/config/locales/crowdin/ja.yml index b48988dd6774..757065f3015f 100644 --- a/modules/github_integration/config/locales/crowdin/ja.yml +++ b/modules/github_integration/config/locales/crowdin/ja.yml @@ -38,7 +38,7 @@ ja: changed_files_count: 変更されたファイル comments_count: コメント数 deletions_count: 削除数 - github: GitHub 識別子 + github: GitHub identifier github_app_owner_avatar_url: オーナーのアバターURL github_avatar_url: アバター URL github_html_url: プルリクエストURL diff --git a/modules/github_integration/config/locales/crowdin/ka.yml b/modules/github_integration/config/locales/crowdin/ka.yml index 5e0ca468f46f..bb4365b01493 100644 --- a/modules/github_integration/config/locales/crowdin/ka.yml +++ b/modules/github_integration/config/locales/crowdin/ka.yml @@ -43,7 +43,7 @@ ka: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/kk.yml b/modules/github_integration/config/locales/crowdin/kk.yml index 75e260fc1c83..31717dd1f4e5 100644 --- a/modules/github_integration/config/locales/crowdin/kk.yml +++ b/modules/github_integration/config/locales/crowdin/kk.yml @@ -43,7 +43,7 @@ kk: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ko.yml b/modules/github_integration/config/locales/crowdin/ko.yml index df60427cda21..7847b0d1dec6 100644 --- a/modules/github_integration/config/locales/crowdin/ko.yml +++ b/modules/github_integration/config/locales/crowdin/ko.yml @@ -38,7 +38,7 @@ ko: changed_files_count: 파일 변경 comments_count: 코멘트 수 deletions_count: 삭제 항목 수 - github: GitHub ID + github: GitHub identifier github_app_owner_avatar_url: 소유자 아바타 URL github_avatar_url: 아바타 URL github_html_url: 끌어오기 요청 URL diff --git a/modules/github_integration/config/locales/crowdin/li.yml b/modules/github_integration/config/locales/crowdin/li.yml index bbc4581f0eeb..3b091621c43c 100644 --- a/modules/github_integration/config/locales/crowdin/li.yml +++ b/modules/github_integration/config/locales/crowdin/li.yml @@ -43,7 +43,7 @@ li: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/lt.yml b/modules/github_integration/config/locales/crowdin/lt.yml index 2052af3a41f5..957ef0779a6d 100644 --- a/modules/github_integration/config/locales/crowdin/lt.yml +++ b/modules/github_integration/config/locales/crowdin/lt.yml @@ -53,7 +53,7 @@ lt: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/lv.yml b/modules/github_integration/config/locales/crowdin/lv.yml index fbb73b19d163..97468b961076 100644 --- a/modules/github_integration/config/locales/crowdin/lv.yml +++ b/modules/github_integration/config/locales/crowdin/lv.yml @@ -48,7 +48,7 @@ lv: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/mn.yml b/modules/github_integration/config/locales/crowdin/mn.yml index d1475531ee4a..cd466683e93c 100644 --- a/modules/github_integration/config/locales/crowdin/mn.yml +++ b/modules/github_integration/config/locales/crowdin/mn.yml @@ -43,7 +43,7 @@ mn: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ms.yml b/modules/github_integration/config/locales/crowdin/ms.yml index 268d267373ff..d47c0fb95c69 100644 --- a/modules/github_integration/config/locales/crowdin/ms.yml +++ b/modules/github_integration/config/locales/crowdin/ms.yml @@ -38,7 +38,7 @@ ms: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ne.yml b/modules/github_integration/config/locales/crowdin/ne.yml index cf85f9a7eb64..e0c79f439383 100644 --- a/modules/github_integration/config/locales/crowdin/ne.yml +++ b/modules/github_integration/config/locales/crowdin/ne.yml @@ -43,7 +43,7 @@ ne: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/nl.yml b/modules/github_integration/config/locales/crowdin/nl.yml index c8ffa6f8736d..668082e1aa4a 100644 --- a/modules/github_integration/config/locales/crowdin/nl.yml +++ b/modules/github_integration/config/locales/crowdin/nl.yml @@ -43,7 +43,7 @@ nl: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/no.yml b/modules/github_integration/config/locales/crowdin/no.yml index 6fa6befa4e99..3634e7f158eb 100644 --- a/modules/github_integration/config/locales/crowdin/no.yml +++ b/modules/github_integration/config/locales/crowdin/no.yml @@ -43,7 +43,7 @@ changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/pl.yml b/modules/github_integration/config/locales/crowdin/pl.yml index 0de4cc493211..493d9bec623d 100644 --- a/modules/github_integration/config/locales/crowdin/pl.yml +++ b/modules/github_integration/config/locales/crowdin/pl.yml @@ -53,7 +53,7 @@ pl: changed_files_count: Zmienione pliki comments_count: Liczba komentarzy deletions_count: Liczba usunięć - github: Identyfikator GitHub + github: GitHub identifier github_app_owner_avatar_url: Adres URL awatara właściciela github_avatar_url: Adres URL awatara github_html_url: Adres URL żądania Pull Request diff --git a/modules/github_integration/config/locales/crowdin/pt-BR.yml b/modules/github_integration/config/locales/crowdin/pt-BR.yml index 92f2b9c7b201..18b0b7c826d1 100644 --- a/modules/github_integration/config/locales/crowdin/pt-BR.yml +++ b/modules/github_integration/config/locales/crowdin/pt-BR.yml @@ -43,7 +43,7 @@ pt-BR: changed_files_count: Arquivos alterados comments_count: Contagem de comentários deletions_count: Número de exclusões - github: Identificador do GitHub + github: GitHub identifier github_app_owner_avatar_url: URL do avatar do proprietário github_avatar_url: URL da imagem de perfil github_html_url: URL da solicitações de pull diff --git a/modules/github_integration/config/locales/crowdin/pt-PT.yml b/modules/github_integration/config/locales/crowdin/pt-PT.yml index be3a343c4b14..e7b966973367 100644 --- a/modules/github_integration/config/locales/crowdin/pt-PT.yml +++ b/modules/github_integration/config/locales/crowdin/pt-PT.yml @@ -43,7 +43,7 @@ pt-PT: changed_files_count: Ficheiros alterados comments_count: Número de comentários deletions_count: Número de eliminações - github: Identificador do GitHub + github: GitHub identifier github_app_owner_avatar_url: URL do avatar do proprietário github_avatar_url: URL do Avatar github_html_url: URL do pedido de extração diff --git a/modules/github_integration/config/locales/crowdin/ro.yml b/modules/github_integration/config/locales/crowdin/ro.yml index 0b6a8819f7c6..08a3cd2314e1 100644 --- a/modules/github_integration/config/locales/crowdin/ro.yml +++ b/modules/github_integration/config/locales/crowdin/ro.yml @@ -48,7 +48,7 @@ ro: changed_files_count: Fișiere modificate comments_count: Numărul de comentarii deletions_count: Numărul elementelor șterse - github: Identificator GitHub + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/ru.yml b/modules/github_integration/config/locales/crowdin/ru.yml index 782509d00414..0801fd490487 100644 --- a/modules/github_integration/config/locales/crowdin/ru.yml +++ b/modules/github_integration/config/locales/crowdin/ru.yml @@ -53,7 +53,7 @@ ru: changed_files_count: Изменённые файлы comments_count: Количество комментариев deletions_count: Количество удалений - github: Идентификатор GitHub + github: GitHub identifier github_app_owner_avatar_url: URL аватара владельца github_avatar_url: URL аватара github_html_url: 'URL ' diff --git a/modules/github_integration/config/locales/crowdin/rw.yml b/modules/github_integration/config/locales/crowdin/rw.yml index 7b12389fe1b2..ff309443e11a 100644 --- a/modules/github_integration/config/locales/crowdin/rw.yml +++ b/modules/github_integration/config/locales/crowdin/rw.yml @@ -43,7 +43,7 @@ rw: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/si.yml b/modules/github_integration/config/locales/crowdin/si.yml index 8d06f76fff4a..8bf22be0db0c 100644 --- a/modules/github_integration/config/locales/crowdin/si.yml +++ b/modules/github_integration/config/locales/crowdin/si.yml @@ -43,7 +43,7 @@ si: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/sk.yml b/modules/github_integration/config/locales/crowdin/sk.yml index ef9d51e8622b..53f5ece1269a 100644 --- a/modules/github_integration/config/locales/crowdin/sk.yml +++ b/modules/github_integration/config/locales/crowdin/sk.yml @@ -53,7 +53,7 @@ sk: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/sl.yml b/modules/github_integration/config/locales/crowdin/sl.yml index 2bed925b09f6..715ada3fc2de 100644 --- a/modules/github_integration/config/locales/crowdin/sl.yml +++ b/modules/github_integration/config/locales/crowdin/sl.yml @@ -53,7 +53,7 @@ sl: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/sr.yml b/modules/github_integration/config/locales/crowdin/sr.yml index 8a52023939b5..3c38e2e9708c 100644 --- a/modules/github_integration/config/locales/crowdin/sr.yml +++ b/modules/github_integration/config/locales/crowdin/sr.yml @@ -48,7 +48,7 @@ sr: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/sv.yml b/modules/github_integration/config/locales/crowdin/sv.yml index b05720166a82..f81ee08af82d 100644 --- a/modules/github_integration/config/locales/crowdin/sv.yml +++ b/modules/github_integration/config/locales/crowdin/sv.yml @@ -43,7 +43,7 @@ sv: changed_files_count: Ändrade filer comments_count: Antal kommentarer deletions_count: Antal borttagningar - github: GitHub-identifierare + github: GitHub identifier github_app_owner_avatar_url: URL till ägarens avatar github_avatar_url: Avatar-URL github_html_url: URL till pull request diff --git a/modules/github_integration/config/locales/crowdin/th.yml b/modules/github_integration/config/locales/crowdin/th.yml index c4467947ec58..bc6c6cb1ba74 100644 --- a/modules/github_integration/config/locales/crowdin/th.yml +++ b/modules/github_integration/config/locales/crowdin/th.yml @@ -38,7 +38,7 @@ th: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/tr.yml b/modules/github_integration/config/locales/crowdin/tr.yml index c26c99e80fcf..f78b8f3be7b6 100644 --- a/modules/github_integration/config/locales/crowdin/tr.yml +++ b/modules/github_integration/config/locales/crowdin/tr.yml @@ -43,7 +43,7 @@ tr: changed_files_count: Değişen dosyalar comments_count: Yorum sayısı deletions_count: Silinme sayısı - github: GitHub tanımlayıcı + github: GitHub identifier github_app_owner_avatar_url: Sahip avatar adresi github_avatar_url: Avatar adresi github_html_url: Çekme İsteği Adresi diff --git a/modules/github_integration/config/locales/crowdin/uk.yml b/modules/github_integration/config/locales/crowdin/uk.yml index 6041234c8fad..decf020f44f4 100644 --- a/modules/github_integration/config/locales/crowdin/uk.yml +++ b/modules/github_integration/config/locales/crowdin/uk.yml @@ -53,7 +53,7 @@ uk: changed_files_count: Змінені файли comments_count: Кількість коментарів deletions_count: Кількість видалень - github: Ідентифікатор GitHub + github: GitHub identifier github_app_owner_avatar_url: URL-адреса аватара власника github_avatar_url: URL-адреса аватара github_html_url: URL-адреса запиту на злиття diff --git a/modules/github_integration/config/locales/crowdin/uz.yml b/modules/github_integration/config/locales/crowdin/uz.yml index 01225665c52e..12bcd5a1c732 100644 --- a/modules/github_integration/config/locales/crowdin/uz.yml +++ b/modules/github_integration/config/locales/crowdin/uz.yml @@ -43,7 +43,7 @@ uz: changed_files_count: Changed files comments_count: Comments count deletions_count: Number of deletions - github: GitHub identifer + github: GitHub identifier github_app_owner_avatar_url: Owner avatar URL github_avatar_url: Avatar URL github_html_url: Pull Request URL diff --git a/modules/github_integration/config/locales/crowdin/vi.yml b/modules/github_integration/config/locales/crowdin/vi.yml index 789ebd52164b..43ad13cbde83 100644 --- a/modules/github_integration/config/locales/crowdin/vi.yml +++ b/modules/github_integration/config/locales/crowdin/vi.yml @@ -38,7 +38,7 @@ vi: changed_files_count: Tập tin đã thay đổi comments_count: Số lượng bình luận deletions_count: Số lần xóa - github: Mã định danh GitHub + github: GitHub identifier github_app_owner_avatar_url: URL hình đại diện của chủ sở hữu github_avatar_url: URL hình đại diện github_html_url: Kéo URL yêu cầu diff --git a/modules/github_integration/config/locales/crowdin/zh-CN.yml b/modules/github_integration/config/locales/crowdin/zh-CN.yml index 133dbafd5639..0b28e5e83db2 100644 --- a/modules/github_integration/config/locales/crowdin/zh-CN.yml +++ b/modules/github_integration/config/locales/crowdin/zh-CN.yml @@ -38,7 +38,7 @@ zh-CN: changed_files_count: 已更改的文件 comments_count: 评论数 deletions_count: 删除的数量 - github: GitHub 标识 + github: GitHub identifier github_app_owner_avatar_url: 所有者头像 URL github_avatar_url: 头像 URL github_html_url: 拉取请求 URL diff --git a/modules/github_integration/config/locales/crowdin/zh-TW.yml b/modules/github_integration/config/locales/crowdin/zh-TW.yml index d19074208052..63e454b66f0a 100644 --- a/modules/github_integration/config/locales/crowdin/zh-TW.yml +++ b/modules/github_integration/config/locales/crowdin/zh-TW.yml @@ -38,7 +38,7 @@ zh-TW: changed_files_count: 更改的檔案 comments_count: 留言次數 deletions_count: 刪除數量 - github: GitHub 識別碼 + github: GitHub identifier github_app_owner_avatar_url: 主要頭像URL github_avatar_url: 大頭貼網址 github_html_url: 拉取請求 URL diff --git a/modules/gitlab_integration/config/locales/crowdin/af.yml b/modules/gitlab_integration/config/locales/crowdin/af.yml index bb31bf92eca5..2da5b9247686 100644 --- a/modules/gitlab_integration/config/locales/crowdin/af.yml +++ b/modules/gitlab_integration/config/locales/crowdin/af.yml @@ -24,10 +24,18 @@ af: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ af: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ af: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ af: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ar.yml b/modules/gitlab_integration/config/locales/crowdin/ar.yml index 6e41c20c117a..326a80da02a7 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ar.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ar.yml @@ -24,10 +24,18 @@ ar: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,13 @@ ar: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + zero: GitLab branches + one: GitLab branch + two: GitLab branches + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: zero: GitLab issues one: GitLab issue @@ -70,19 +85,61 @@ ar: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -95,6 +152,27 @@ ar: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/az.yml b/modules/gitlab_integration/config/locales/crowdin/az.yml index 57a9480edfc2..689baa80c81f 100644 --- a/modules/gitlab_integration/config/locales/crowdin/az.yml +++ b/modules/gitlab_integration/config/locales/crowdin/az.yml @@ -24,10 +24,18 @@ az: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ az: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ az: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ az: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/be.yml b/modules/gitlab_integration/config/locales/crowdin/be.yml index 40f38d42d168..346bff4968ba 100644 --- a/modules/gitlab_integration/config/locales/crowdin/be.yml +++ b/modules/gitlab_integration/config/locales/crowdin/be.yml @@ -24,10 +24,18 @@ be: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ be: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -62,19 +75,61 @@ be: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ be: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/bg.yml b/modules/gitlab_integration/config/locales/crowdin/bg.yml index ea08b8ad0160..d2997d0af39a 100644 --- a/modules/gitlab_integration/config/locales/crowdin/bg.yml +++ b/modules/gitlab_integration/config/locales/crowdin/bg.yml @@ -24,10 +24,18 @@ bg: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ bg: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ bg: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ bg: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ca.yml b/modules/gitlab_integration/config/locales/crowdin/ca.yml index 48dbc0c0399b..d71c18423b74 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ca.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ca.yml @@ -24,10 +24,18 @@ ca: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ ca: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ ca: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ ca: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ckb-IR.yml b/modules/gitlab_integration/config/locales/crowdin/ckb-IR.yml index 199e5e0d91cd..bc2634e882c1 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ckb-IR.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ckb-IR.yml @@ -24,10 +24,18 @@ ckb-IR: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ ckb-IR: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ ckb-IR: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ ckb-IR: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/cs.yml b/modules/gitlab_integration/config/locales/crowdin/cs.yml index 09761afc9ae1..34e3a85975f5 100644 --- a/modules/gitlab_integration/config/locales/crowdin/cs.yml +++ b/modules/gitlab_integration/config/locales/crowdin/cs.yml @@ -24,10 +24,18 @@ cs: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Štítky gitlab_pipeline: ci_details: Podrobnosti o CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ cs: labels: invalid_schema: 'musí být pole hashů s klíči: barva, název' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -62,19 +75,61 @@ cs: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: URL avataru - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: Název GitLab gitlab_updated_at: Aktualizováno gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: Uživatelské jméno GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR sloučeno:** Požadavek na sloučení %{mr_number} [%{mr_title}](%{mr_url}) pro [%{repository}](%{repository_url}) byl sloučen [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ cs: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Aktér GitLabu label_gitlab_integration: Integrace s GitLabem label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/da.yml b/modules/gitlab_integration/config/locales/crowdin/da.yml index 3f4015768071..92fffbe448f0 100644 --- a/modules/gitlab_integration/config/locales/crowdin/da.yml +++ b/modules/gitlab_integration/config/locales/crowdin/da.yml @@ -24,10 +24,18 @@ da: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab-projekt + namespace: GitLab-namespace + project_html_url: GitLab-projektets URL gitlab_merge_request: labels: Etiketter gitlab_pipeline: ci_details: CI-oplysninger + gitlab_user: + avatar_url: Avatar-URL + name: Navn + username: Brugernavn errors: models: gitlab_issue: @@ -39,6 +47,9 @@ da: labels: invalid_schema: 'skal være en liste af hashes med nøglerne: color, title' models: + gitlab_branch: + one: GitLab-branch + other: GitLab-branches gitlab_issue: one: GitLab-issue other: GitLab-issues @@ -54,19 +65,61 @@ da: attributes: commit: Commit gitlab: GitLab-id - gitlab_avatar_url: Avatar-URL - gitlab_email: GitLab e-mail gitlab_html_url: GitLab HTML-URL gitlab_merge_request: Merge request - gitlab_name: GitLab-navn gitlab_updated_at: Opdateret gitlab_user_avatar_url: GitLab-avatar-URL - gitlab_username: GitLab-brugernavn gitlab_integration: + branch_component: + copy_name: Kopiér navn på branch + create_merge_request: Opret merge request + updated_at: Opdateret %{date_time}. + updated_by: Senest opdateret af %{name}. + commit_component: + authored_at: Skrevet %{date_time}. + copy_sha: Kopiér SHA til udklipsholderen + created_by: Oprettet af %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Navn på branch + commit_message: Commit-besked + copy_branch_name: Kopiér navn på branch + copy_commit_message: Kopiér commit-besked + copy_create_branch_command: Kopiér kommando til at oprette en branch med tomt commit + create_branch_with_empty_commit: Opret branch med tomt commit + title: Hurtige Git-kodestykker issue_closed_referenced_comment: "**Issue lukket:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Lukket + opened: Åben + updated_at: Opdateret %{date_time}. + updated_by: Senest opdateret af %{name}. issue_opened_referenced_comment: "**Issue åbnet:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue genåbnet:** Issue %{issue_number} [%{issue_title}](%{issue_url}) i [%{repository}](%{repository_url}) er genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR lukket:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er lukket af [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Annulleret + canceling: Annullerer + created: Oprettet + failed: Mislykkedes + manual: Manuel + pending: Afventer + preparing: Forbereder + running: Kører + scheduled: Planlagt + skipped: Sprunget over + success: Lykkedes + waiting_for_callback: Venter på callback + waiting_for_resource: Venter på ressource + states: + closed: Lukket + locked: Låst + merged: Flettet + opened: Åben + updated_at: Opdateret %{date_time}. + updated_by: Senest opdateret af %{name}. merge_request_merged_comment: "**MR flettet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er flettet af [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR åbnet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er åbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR genåbnet:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) i [%{repository}](%{repository_url}) er genåbnet af [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ da: push_multiple_commits_comment: "**Pushet i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushede flere commits [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushet i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushede [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushet i %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushede [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link en branch ved at navngive den, så navnet starter med %{code} eller kun %{identifier}. + title: Ingen branches + commits: + description_html: Link et commit ved at tilføje koden %{code} eller %{url} i commit-beskeden. + title: Ingen commits + issues: + description_html: Link et issue ved at tilføje koden %{code} i titlen eller beskrivelsen. + title: Ingen issues + merge_requests: + description_html: Link en merge request ved at tilføje koden %{code} i titlen eller beskrivelsen. + title: Ingen merge requests + branches: Branches + commits: Commits + description_html: Link et eksisterende GitLab-element ved at tilføje koden %{code} i titlen eller beskrivelsen. + git_snippets: Git-kodestykker + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git-kodestykker label_gitlab_actor: GitLab-aktør label_gitlab_integration: GitLab-integration label_gitlab_webhook_secret: Webhook-hemmelighed diff --git a/modules/gitlab_integration/config/locales/crowdin/de.yml b/modules/gitlab_integration/config/locales/crowdin/de.yml index fb4798ee485d..e16de6dfa995 100644 --- a/modules/gitlab_integration/config/locales/crowdin/de.yml +++ b/modules/gitlab_integration/config/locales/crowdin/de.yml @@ -24,10 +24,18 @@ de: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab-Projekt + namespace: GitLab-Namespace + project_html_url: GitLab-Projekt URL gitlab_merge_request: labels: Bezeichnung gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar-URL + name: Name + username: Benutzername errors: models: gitlab_issue: @@ -39,6 +47,9 @@ de: labels: invalid_schema: 'muss ein Array von Hashes mit folgenden Schlüsseln sein: Farbe, Titel' models: + gitlab_branch: + one: GitLab-Branch + other: GitLab-Branches gitlab_issue: one: GitLab Ticket other: GitLab-Tickets @@ -54,19 +65,61 @@ de: attributes: commit: Commit gitlab: GitLab Kennung - gitlab_avatar_url: Avatar-URL - gitlab_email: GitLab E-Mail gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab Name gitlab_updated_at: Aktualisiert am gitlab_user_avatar_url: GitLab Avatar URL - gitlab_username: GitLab Benutzername gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Aktualisiert am %{date_time}. + updated_by: Zuletzt aktualisiert von %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: SHA in die Zwischenablage kopieren + created_by: Erstellt von %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Ticket geschlossen:** %{issue_number} [%{issue_title}](%{issue_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) geschlossen.\n" + issue_component: + states: + closed: Geschlossen + opened: Offen + updated_at: Aktualisiert am %{date_time}. + updated_by: Zuletzt aktualisiert von %{name}. issue_opened_referenced_comment: "**Ticket erstellt:** %{issue_number} [%{issue_title}](%{issue_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) erstellt.\n" issue_reopened_referenced_comment: "**Wiedereröffnetes Ticket:** %{issue_number} [%{issue_title}](%{issue_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) wiedereröffnet.\n" merge_request_closed_comment: "**MR geschlossen:** Der Merge Request %{mr_number} [%{mr_title}](%{mr_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) geschlossen.\n" + merge_request_component: + pipeline_statuses: + canceled: Abgebrochen + canceling: Canceling + created: Erstellt + failed: Fehlgeschlagen + manual: Manuell + pending: Ausstehend + preparing: Preparing + running: Läuft + scheduled: Geplant + skipped: Übersprungen + success: Erfolg + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Geschlossen + locked: Gesperrt + merged: Zusammengeführt + opened: Offen + updated_at: Aktualisiert am %{date_time}. + updated_by: Zuletzt aktualisiert von %{name}. merge_request_merged_comment: "**MR Zusammengeführt:** Der Merge Request %{mr_number} [%{mr_title}](%{mr_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) zusammengeführt.\n" merge_request_opened_comment: "**MR eröffnet:** Der Merge Request %{mr_number} [%{mr_title}](%{mr_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) eröffnet.\n" merge_request_reopened_comment: "**MR Wiedereröffnet:** Der Merge Request %{mr_number} [%{mr_title}](%{mr_url}) für [%{repository}](%{repository_url}) wurde von [%{gitlab_user}](%{gitlab_user_url}) wiedereröffnet.\n" @@ -79,6 +132,27 @@ de: push_multiple_commits_comment: "**Im MR gepusht:** [%{gitlab_user}](%{gitlab_user_url}) hat mehrere Commits [%{commit_number}](%{commit_url}) bis [%{repository}](%{repository_url}) unter %{commit_timestamp}gepusht : %{commit_note}\n" push_single_commit_comment: "**In MR gepusht:** [%{gitlab_user}](%{gitlab_user_url}) hat [%{commit_number}](%{commit_url}) auf [%{repository}](%{repository_url}) in %{commit_timestamp}gedrückt: %{commit_note}\n" push_single_commit_comment_with_ref: "**In %{reference} gepusht: ** [%{gitlab_user}](%{gitlab_user_url}) hat [%{commit_number}](%{commit_url}) auf [%{repository}](%{repository_url}) in %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: Keine Zweige + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Zweige + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab Benutzer label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook Secret diff --git a/modules/gitlab_integration/config/locales/crowdin/el.yml b/modules/gitlab_integration/config/locales/crowdin/el.yml index 404a6ac6c604..1dfb9e77d77e 100644 --- a/modules/gitlab_integration/config/locales/crowdin/el.yml +++ b/modules/gitlab_integration/config/locales/crowdin/el.yml @@ -24,10 +24,18 @@ el: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ el: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ el: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ el: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/eo.yml b/modules/gitlab_integration/config/locales/crowdin/eo.yml index 38c7e2a19df6..3f558c37c3ba 100644 --- a/modules/gitlab_integration/config/locales/crowdin/eo.yml +++ b/modules/gitlab_integration/config/locales/crowdin/eo.yml @@ -24,10 +24,18 @@ eo: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ eo: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ eo: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ eo: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/es.yml b/modules/gitlab_integration/config/locales/crowdin/es.yml index 3dc97bbd5232..8c5d0c57f0eb 100644 --- a/modules/gitlab_integration/config/locales/crowdin/es.yml +++ b/modules/gitlab_integration/config/locales/crowdin/es.yml @@ -24,10 +24,18 @@ es: activerecord: attributes: + gitlab_branch: + gitlab_project: Proyecto de GitLab + namespace: Espacio de nombres de GitLab + project_html_url: URL de proyecto de GitLab gitlab_merge_request: labels: Etiquetas gitlab_pipeline: ci_details: Detalles de CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ es: labels: invalid_schema: 'debe ser una matriz de hashes con las claves: color, título' models: + gitlab_branch: + one: Rama de GitLab + other: Ramas de GitLab gitlab_issue: one: Incidencia de GitLab other: Incidencias de GitLab @@ -54,19 +65,61 @@ es: attributes: commit: Commit gitlab: Identificador de GitLab - gitlab_avatar_url: URL del avatar - gitlab_email: Correo electrónico de GitLab gitlab_html_url: URL de HTML de GitLab gitlab_merge_request: Solicitud de fusión - gitlab_name: Nombre de GitLab gitlab_updated_at: Actualizado a las gitlab_user_avatar_url: URL del avatar de GitLab - gitlab_username: Nombre de usuario de GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Incidencia cerrada:** La incidencia %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) ha sido cerrada por [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Incidencia abierta:** La incidencia %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) ha sido abierta por [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Incidencia reabierta:** La incidencia %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) ha sido reabierta por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR cerrada:** la solicitud de fusión %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) ha sido cerrada por [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR fusionada:** La solicitud de fusión %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) ha sido fusionada por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR abierta:** La solicitud de fusión %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) ha sido abierta por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR reabierta:** La solicitud de fusión %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) ha sido reabierta por [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ es: push_multiple_commits_comment: "**Enviado en MR:** [%{gitlab_user}](%{gitlab_user_url}) envió múltiples commits [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) a las %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Enviado en MR:** [%{gitlab_user}](%{gitlab_user_url}) envió [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) a las %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Enviado en %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) envió [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) a las %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Usuario de GitLab label_gitlab_integration: Integración con GitLab label_gitlab_webhook_secret: Secreto de webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/et.yml b/modules/gitlab_integration/config/locales/crowdin/et.yml index 05149f63bb34..8ce415010806 100644 --- a/modules/gitlab_integration/config/locales/crowdin/et.yml +++ b/modules/gitlab_integration/config/locales/crowdin/et.yml @@ -24,10 +24,18 @@ et: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Sildid gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ et: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ et: attributes: commit: Sissekanne gitlab: GitLab identifier - gitlab_avatar_url: Avatari URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ et: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/eu.yml b/modules/gitlab_integration/config/locales/crowdin/eu.yml index 77ad4e883d03..f291fe22648e 100644 --- a/modules/gitlab_integration/config/locales/crowdin/eu.yml +++ b/modules/gitlab_integration/config/locales/crowdin/eu.yml @@ -24,10 +24,18 @@ eu: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ eu: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ eu: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ eu: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/fa.yml b/modules/gitlab_integration/config/locales/crowdin/fa.yml index 33a7a66196d5..d3b146cfbefa 100644 --- a/modules/gitlab_integration/config/locales/crowdin/fa.yml +++ b/modules/gitlab_integration/config/locales/crowdin/fa.yml @@ -24,10 +24,18 @@ fa: activerecord: attributes: + gitlab_branch: + gitlab_project: پروژه GitLab + namespace: فضای نام GitLab + project_html_url: نشانی URL پروژه GitLab gitlab_merge_request: labels: برچسب‌ها gitlab_pipeline: ci_details: جزئیات CI + gitlab_user: + avatar_url: نشانی URL تصویر نمایه + name: نام + username: نام کاربری errors: models: gitlab_issue: @@ -39,6 +47,9 @@ fa: labels: invalid_schema: باید آرایه‌ای از hashها با کلیدهای color و title باشد models: + gitlab_branch: + one: شاخه GitLab + other: شاخه‌های GitLab gitlab_issue: one: مسئله GitLab other: مسائل GitLab @@ -54,19 +65,61 @@ fa: attributes: commit: Commit gitlab: شناسهٔ GitLab - gitlab_avatar_url: URL آواتار - gitlab_email: ایمیل GitLab gitlab_html_url: URL HTML در GitLab gitlab_merge_request: درخواست ادغام - gitlab_name: نام GitLab gitlab_updated_at: به‌روزرسانی در gitlab_user_avatar_url: URL آواتار GitLab - gitlab_username: نام کاربری GitLab gitlab_integration: + branch_component: + copy_name: کپی نام شاخه + create_merge_request: ایجاد merge request + updated_at: به‌روزرسانی‌شده در %{date_time}. + updated_by: آخرین به‌روزرسانی توسط %{name}. + commit_component: + authored_at: ثبت‌شده در %{date_time}. + copy_sha: کپی SHA در کلیپ‌بورد + created_by: ایجادشده توسط %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: نام شاخه + commit_message: پیام commit + copy_branch_name: کپی نام شاخه + copy_commit_message: کپی پیام commit + copy_create_branch_command: کپی فرمان ایجاد شاخه با commit خالی + create_branch_with_empty_commit: ایجاد شاخه با commit خالی + title: قطعه‌کدهای سریع Git issue_closed_referenced_comment: "**Issue بسته شد:** Issue شماره %{issue_number} با عنوان [%{issue_title}](%{issue_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) بسته شد.\n" + issue_component: + states: + closed: بسته + opened: باز + updated_at: به‌روزرسانی‌شده در %{date_time}. + updated_by: آخرین به‌روزرسانی توسط %{name}. issue_opened_referenced_comment: "**Issue باز شد:** Issue شماره %{issue_number} با عنوان [%{issue_title}](%{issue_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) باز شد.\n" issue_reopened_referenced_comment: "**Issue دوباره باز شد:** Issue شماره %{issue_number} با عنوان [%{issue_title}](%{issue_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) دوباره باز شد.\n" merge_request_closed_comment: "**MR بسته شد:** Merge Request شماره %{mr_number} با عنوان [%{mr_title}](%{mr_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) بسته شد.\n" + merge_request_component: + pipeline_statuses: + canceled: لغوشده + canceling: در حال لغو + created: ایجادشده + failed: ناموفق + manual: دستی + pending: در انتظار + preparing: در حال آماده‌سازی + running: در حال اجرا + scheduled: زمان‌بندی‌شده + skipped: نادیده گرفته‌شده + success: موفق + waiting_for_callback: در انتظار callback + waiting_for_resource: در انتظار منبع + states: + closed: بسته + locked: قفل‌شده + merged: ادغام‌شده + opened: باز + updated_at: به‌روزرسانی‌شده در %{date_time}. + updated_by: آخرین به‌روزرسانی توسط %{name}. merge_request_merged_comment: "**MR ادغام شد:** Merge Request شماره %{mr_number} با عنوان [%{mr_title}](%{mr_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) ادغام شد.\n" merge_request_opened_comment: "**MR باز شد:** Merge Request شماره %{mr_number} با عنوان [%{mr_title}](%{mr_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) باز شد.\n" merge_request_reopened_comment: "**MR دوباره باز شد:** Merge Request شماره %{mr_number} با عنوان [%{mr_title}](%{mr_url}) برای [%{repository}](%{repository_url}) توسط [%{gitlab_user}](%{gitlab_user_url}) دوباره باز شد.\n" @@ -79,6 +132,27 @@ fa: push_multiple_commits_comment: "**Push در MR:** [%{gitlab_user}](%{gitlab_user_url}) چند commit را با [%{commit_number}](%{commit_url}) در %{commit_timestamp} به [%{repository}](%{repository_url}) push کرد: %{commit_note}\n" push_single_commit_comment: "**Push در MR:** [%{gitlab_user}](%{gitlab_user_url})، [%{commit_number}](%{commit_url}) را در %{commit_timestamp} به [%{repository}](%{repository_url}) push کرد: %{commit_note}\n" push_single_commit_comment_with_ref: "**Push در %{reference}:** [%{gitlab_user}](%{gitlab_user_url})، [%{commit_number}](%{commit_url}) را در %{commit_timestamp} به [%{repository}](%{repository_url}) push کرد: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: یک شاخه را با نام‌گذاری آن به‌گونه‌ای پیوند دهید که با %{code} یا فقط %{identifier} شروع شود. + title: هیچ شاخه‌ای وجود ندارد + commits: + description_html: یک commit را با افزودن کد %{code} یا %{url} به پیام commit پیوند دهید. + title: هیچ commitی وجود ندارد + issues: + description_html: یک issue را با افزودن کد %{code} به عنوان یا توضیحات پیوند دهید. + title: هیچ issueی وجود ندارد + merge_requests: + description_html: یک merge request را با افزودن کد %{code} به عنوان یا توضیحات پیوند دهید. + title: هیچ merge requestی وجود ندارد + branches: شاخه‌ها + commits: commitها + description_html: یک عنصر موجود GitLab را با افزودن کد %{code} به عنوان یا توضیحات پیوند دهید. + git_snippets: قطعه‌کدهای Git + issues: issueها + merge_requests: merge requestها + snippets_button_label: قطعه‌کدهای Git label_gitlab_actor: عامل GitLab label_gitlab_integration: یکپارچه‌سازی GitLab label_gitlab_webhook_secret: رمز Webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/fi.yml b/modules/gitlab_integration/config/locales/crowdin/fi.yml index 89a984926e94..9fb9724c68cd 100644 --- a/modules/gitlab_integration/config/locales/crowdin/fi.yml +++ b/modules/gitlab_integration/config/locales/crowdin/fi.yml @@ -24,10 +24,18 @@ fi: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ fi: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ fi: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ fi: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/fil.yml b/modules/gitlab_integration/config/locales/crowdin/fil.yml index fa7f07aebab8..211ef1fdcb51 100644 --- a/modules/gitlab_integration/config/locales/crowdin/fil.yml +++ b/modules/gitlab_integration/config/locales/crowdin/fil.yml @@ -24,10 +24,18 @@ fil: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ fil: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ fil: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ fil: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/fr.yml b/modules/gitlab_integration/config/locales/crowdin/fr.yml index 5111f7da6ae5..7d7287517a73 100644 --- a/modules/gitlab_integration/config/locales/crowdin/fr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/fr.yml @@ -24,10 +24,18 @@ fr: activerecord: attributes: + gitlab_branch: + gitlab_project: Projet GitLab + namespace: Espace de noms GitLab + project_html_url: URL du projet GitLab gitlab_merge_request: labels: Étiquettes gitlab_pipeline: ci_details: Détails CI + gitlab_user: + avatar_url: URL de l'avatar + name: Nom + username: Nom d'utilisateur errors: models: gitlab_issue: @@ -39,6 +47,9 @@ fr: labels: invalid_schema: 'doit être un tableau de hachages avec les clés : color, title' models: + gitlab_branch: + one: Branche GitLab + other: Branches GitLab gitlab_issue: one: Ticket GitLab other: Tickets GitLab @@ -54,19 +65,61 @@ fr: attributes: commit: Commit gitlab: Identifiant GitLab - gitlab_avatar_url: URL de l'avatar - gitlab_email: E-mail GitLab gitlab_html_url: URL HTML GitLab gitlab_merge_request: Requête de fusion - gitlab_name: Nom GitLab gitlab_updated_at: Mise à jour à gitlab_user_avatar_url: URL d'avatar GitLab - gitlab_username: Nom d'utilisateur GitLab gitlab_integration: + branch_component: + copy_name: Copier le nom de la branche + create_merge_request: Créer une requête de fusion + updated_at: Mis à jour le %{date_time}. + updated_by: Dernière mise à jour par %{name}. + commit_component: + authored_at: Publié sur %{date_time}. + copy_sha: Copier l'URL dans le presse-papiers + created_by: Créé par %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Nom de la branche + commit_message: Message de commit + copy_branch_name: Copier le nom de la branche + copy_commit_message: Copier le message de commit + copy_create_branch_command: Copier la commande pour créer une branche avec un commit vide + create_branch_with_empty_commit: Créer une branche avec un commit vide + title: Extraits de code Git rapides issue_closed_referenced_comment: "**Ticket fermé :** Le ticket %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été fermé par [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Fermé + opened: Ouvert + updated_at: Mis à jour le %{date_time}. + updated_by: Dernière mise à jour par %{name}. issue_opened_referenced_comment: "**Ticket ouvert :** Le ticket %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été ouvert par [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Ticket rouvert :** Le ticket %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été rouvert par [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR fermée :** La requête de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été fermée par [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Annulé + canceling: Annulation + created: Créé + failed: Échoué + manual: Manuel + pending: En attente + preparing: Préparation + running: En cours + scheduled: Planifié + skipped: Manqué + success: Réussi + waiting_for_callback: En attente de rappel + waiting_for_resource: En attente de ressources + states: + closed: Fermé + locked: Bloqué + merged: Fusionné + opened: Ouvrir + updated_at: Mis à jour le %{date_time}. + updated_by: Dernière mise à jour par %{name}. merge_request_merged_comment: "**MR fusionnée :** La requête de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été fusionnée par [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR ouverte :** La requête de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été ouverte par [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR rouverte :** La requête de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été rouverte par [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ fr: push_multiple_commits_comment: "**Push en MR :** [%{gitlab_user}](%{gitlab_user_url}) a fait un push de plusieurs commits [%{commit_number}](%{commit_url}) vers [%{repository}](%{repository_url}) à %{commit_timestamp} : %{commit_note}\n" push_single_commit_comment: "**Push en MR :** [%{gitlab_user}](%{gitlab_user_url}) a fait un push de [%{commit_number}](%{commit_url}) vers [%{repository}](%{repository_url}) à %{commit_timestamp} : %{commit_note}\n" push_single_commit_comment_with_ref: "**Push dans %{reference} :** [%{gitlab_user}](%{gitlab_user_url}) a fait un push de [%{commit_number}](%{commit_url}) vers [%{repository}](%{repository_url}) à %{commit_timestamp} : %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Pour créer un lien vers une branche, nommez-la de manière à ce qu'elle commence par « %{code} » ou uniquement par « %{identifier}». + title: Aucune branche + commits: + description_html: Pour créer un lien vers un commit, ajoutez le code %{code} ou le %{url} dans le message du commit. + title: Aucun commit + issues: + description_html: Pour créer un lien vers un ticket, ajoutez le code %{code} au titre ou à la description. + title: Aucun ticket + merge_requests: + description_html: Pour créer une requête de fusion, ajoutez le code %{code} au titre ou à la description. + title: Aucune requête de fusion + branches: Branches + commits: Actes accomplis + description_html: Pour créer un élément GitLab existant, ajoutez le code %{code} au titre ou à la description. + git_snippets: Extraits de code Git + issues: Tickets + merge_requests: Requêtes de fusion + snippets_button_label: Extraits de code Git label_gitlab_actor: Acteur GitLab label_gitlab_integration: Intégration de GitLab label_gitlab_webhook_secret: Secret du webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/he.yml b/modules/gitlab_integration/config/locales/crowdin/he.yml index 844127e16354..6244c8e872f9 100644 --- a/modules/gitlab_integration/config/locales/crowdin/he.yml +++ b/modules/gitlab_integration/config/locales/crowdin/he.yml @@ -24,10 +24,18 @@ he: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,10 @@ he: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + two: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue two: GitLab issues @@ -58,19 +70,61 @@ he: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -83,6 +137,27 @@ he: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/hi.yml b/modules/gitlab_integration/config/locales/crowdin/hi.yml index acfef1e8e9f2..261960d3b920 100644 --- a/modules/gitlab_integration/config/locales/crowdin/hi.yml +++ b/modules/gitlab_integration/config/locales/crowdin/hi.yml @@ -24,10 +24,18 @@ hi: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ hi: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ hi: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ hi: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/hr.yml b/modules/gitlab_integration/config/locales/crowdin/hr.yml index 926fc7b03404..e52b3aa68c12 100644 --- a/modules/gitlab_integration/config/locales/crowdin/hr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/hr.yml @@ -24,10 +24,18 @@ hr: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,10 @@ hr: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -58,19 +70,61 @@ hr: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -83,6 +137,27 @@ hr: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/hu.yml b/modules/gitlab_integration/config/locales/crowdin/hu.yml index e864987f67d4..54a34278edbc 100644 --- a/modules/gitlab_integration/config/locales/crowdin/hu.yml +++ b/modules/gitlab_integration/config/locales/crowdin/hu.yml @@ -24,10 +24,18 @@ hu: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Címkék gitlab_pipeline: ci_details: CI Részletek + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ hu: labels: invalid_schema: 'egy hash tömbnek kell lennie a következő kulcsokkal: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ hu: attributes: commit: Commit gitlab: Gitlab azonosító - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab név gitlab_updated_at: Frissítve ekkor gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab felhasználónév gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Kérdés lezárva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) lezárva [%{gitlab_user}](%{gitlab_user_url}) által.\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Kérdés megnyitva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) megnyitva [%{gitlab_user}](%{gitlab_user_url}) által.\n" issue_reopened_referenced_comment: "**Kérdés újranyitva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) újranyitva [%{gitlab_user}](%{gitlab_user_url}) által.\n" merge_request_closed_comment: "**MR lezárva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) lezárva [%{gitlab_user}](%{gitlab_user_url}) által.\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR egyesítve:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) egyesítve [%{gitlab_user}](%{gitlab_user_url}) által.\n" merge_request_opened_comment: "**MR megnyitva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) megnyitva [%{gitlab_user}](%{gitlab_user_url}) által.\n" merge_request_reopened_comment: "**MR újranyitva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) újranyitva [%{gitlab_user}](%{gitlab_user_url}) által.\n" @@ -79,6 +132,27 @@ hu: push_multiple_commits_comment: "**Frissítés az MR-ben:** [%{gitlab_user}](%{gitlab_user_url}) frissítette a következőkkel: [%{commit_number}](%{commit_url}) a(z) [%{repository}](%{repository_url}) ekkor: %{commit_timestamp}, üzenet: %{commit_note}\n" push_single_commit_comment: "**Frissítés az MR-ben:** [%{gitlab_user}](%{gitlab_user_url}) frissítette a következőkkel: [%{commit_number}](%{commit_url}) a(z) [%{repository}](%{repository_url}) ekkor: %{commit_timestamp}, üzenet: %{commit_note}\n" push_single_commit_comment_with_ref: "**Frissítés itt: %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) frissítette a következőkkel: [%{commit_number}](%{commit_url}), itt [%{repository}](%{repository_url}), ekkor: %{commit_timestamp}, üzenet: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/hy.yml b/modules/gitlab_integration/config/locales/crowdin/hy.yml index 7cd009927d80..abe0966c74bd 100644 --- a/modules/gitlab_integration/config/locales/crowdin/hy.yml +++ b/modules/gitlab_integration/config/locales/crowdin/hy.yml @@ -24,10 +24,18 @@ hy: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Պիտակներ gitlab_pipeline: ci_details: CI-ի մանրամասներ + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ hy: labels: invalid_schema: պետք է լինի հեշերի զանգված հետևյալ բանալիներով՝ color, title models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ hy: attributes: commit: Կոմիտ gitlab: GitLab-ի նույնացուցիչ - gitlab_avatar_url: Ավատարի URL - gitlab_email: GitLab-ի էլ. փոստ gitlab_html_url: GitLab-ի HTML URL gitlab_merge_request: Միաձուլման հարցում - gitlab_name: GitLab-ի անուն gitlab_updated_at: Թարմացվել է gitlab_user_avatar_url: GitLab-ի ավատարի URL - gitlab_username: GitLab-ի օգտանուն gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Խնդիրը փակված է՝** [%{repository}](%{repository_url}) պահոցի %{issue_number} խնդիրը [%{issue_title}](%{issue_url}) փակվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Խնդիրը բացված է՝** [%{repository}](%{repository_url}) պահոցի %{issue_number} խնդիրը [%{issue_title}](%{issue_url}) բացվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" issue_reopened_referenced_comment: "**Խնդիրը վերաբացված է՝** [%{repository}](%{repository_url}) պահոցի %{issue_number} խնդիրը [%{issue_title}](%{issue_url}) վերաբացվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" merge_request_closed_comment: "**MR-ը փակված է՝** [%{repository}](%{repository_url}) պահոցի %{mr_number} միաձուլման հարցումը [%{mr_title}](%{mr_url}) փակվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR-ը միաձուլված է՝** [%{repository}](%{repository_url}) պահոցի %{mr_number} միաձուլման հարցումը [%{mr_title}](%{mr_url}) միաձուլվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" merge_request_opened_comment: "**MR-ը բացված է՝** [%{repository}](%{repository_url}) պահոցի %{mr_number} միաձուլման հարցումը [%{mr_title}](%{mr_url}) բացվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" merge_request_reopened_comment: "**MR-ը վերաբացված է՝** [%{repository}](%{repository_url}) պահոցի %{mr_number} միաձուլման հարցումը [%{mr_title}](%{mr_url}) վերաբացվել է [%{gitlab_user}](%{gitlab_user_url})-ի կողմից։\n" @@ -79,6 +132,27 @@ hy: push_multiple_commits_comment: "**Ուղարկված է MR-ում՝** [%{gitlab_user}](%{gitlab_user_url})-ն %{commit_timestamp}-ին մի քանի կոմիտ [%{commit_number}](%{commit_url}) ուղարկեց դեպի [%{repository}](%{repository_url})՝ %{commit_note}\n" push_single_commit_comment: "**Ուղարկված է MR-ում՝** [%{gitlab_user}](%{gitlab_user_url})-ն %{commit_timestamp}-ին ուղարկեց [%{commit_number}](%{commit_url}) կոմիտը դեպի [%{repository}](%{repository_url})՝ %{commit_note}\n" push_single_commit_comment_with_ref: "**Ուղարկված է %{reference}-ում՝** [%{gitlab_user}](%{gitlab_user_url})-ն %{commit_timestamp}-ին ուղարկեց [%{commit_number}](%{commit_url}) կոմիտը դեպի [%{repository}](%{repository_url})՝ %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab-ի կատարող label_gitlab_integration: GitLab-ի ինտեգրացիա label_gitlab_webhook_secret: Վեբհուկի գաղտնիք diff --git a/modules/gitlab_integration/config/locales/crowdin/id.yml b/modules/gitlab_integration/config/locales/crowdin/id.yml index d96ec8520e65..428cd30665c2 100644 --- a/modules/gitlab_integration/config/locales/crowdin/id.yml +++ b/modules/gitlab_integration/config/locales/crowdin/id.yml @@ -24,10 +24,18 @@ id: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Label gitlab_pipeline: ci_details: Rincian CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ id: labels: invalid_schema: 'harus berupa array dari hash dengan kunci: warna, judul' models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ id: attributes: commit: Tetapkan gitlab: Tanda pengenal GitLab - gitlab_avatar_url: URL avatar - gitlab_email: Email GitLab gitlab_html_url: URL HTML GitLab gitlab_merge_request: Permintaan penggabungan - gitlab_name: Nama GitLab gitlab_updated_at: Diperbarui pada gitlab_user_avatar_url: URL avatar GitLab - gitlab_username: Nama pengguna GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Isu Ditutup:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) telah ditutup oleh [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Isu Terbuka:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Isu Dibuka Kembali:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) telah dibuka kembali oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Tertutup:** Permintaan penggabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah ditutup oleh [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Tergabung:** Permintaan penggabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah digabung oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Terbuka:** Permintaan penggabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Terbuka Kembali:** Permintaan penggabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka kembali oleh [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -75,6 +127,27 @@ id: push_multiple_commits_comment: "**Didorong di MR:** [%{gitlab_user}](%{gitlab_user_url}) mendorong beberapa komit [%{commit_number}](%{commit_url}) ke [%{repository}](%{repository_url}) pada %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Didorong di MR:** [%{gitlab_user}](%{gitlab_user_url}) mendorong [%{commit_number}](%{commit_url}) ke [%{repository}](%{repository_url}) pada %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Didorong di %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) mendorong [%{commit_number}](%{commit_url}) ke [%{repository}](%{repository_url}) pada %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/it.yml b/modules/gitlab_integration/config/locales/crowdin/it.yml index 39f2ba3b4154..dc8ea5bd387d 100644 --- a/modules/gitlab_integration/config/locales/crowdin/it.yml +++ b/modules/gitlab_integration/config/locales/crowdin/it.yml @@ -24,10 +24,18 @@ it: activerecord: attributes: + gitlab_branch: + gitlab_project: Progetto GitLab + namespace: Namespace GitLab + project_html_url: URL del progetto GitLab gitlab_merge_request: labels: Etichette gitlab_pipeline: ci_details: Dettagli CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ it: labels: invalid_schema: 'deve essere un array di hash con le chiavi: colore, titolo' models: + gitlab_branch: + one: Branch GitLab + other: Branch GitLab gitlab_issue: one: Problema GitLab other: Problemi GitLab @@ -54,19 +65,61 @@ it: attributes: commit: Applica gitlab: Identificatore di GitLab - gitlab_avatar_url: URL dell'avatar - gitlab_email: E-mail di GitLab gitlab_html_url: URL HTML di GitLab gitlab_merge_request: Richiesta di merge - gitlab_name: Nome di GitLab gitlab_updated_at: Aggiornato il gitlab_user_avatar_url: URL dell'avatar di GitLab - gitlab_username: Nome utente di GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Problema chiuso:** Il problema %{issue_number} [%{issue_title}](%{issue_url}) per [%{repository}](%{repository_url}) è stato chiuso da [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Problema aperto:** Il problema %{issue_number} [%{issue_title}](%{issue_url}) per [%{repository}](%{repository_url}) è stato aperto da [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Problema riaperto:** Il problema %{issue_number} [%{issue_title}](%{issue_url}) per [%{repository}](%{repository_url}) è stato riaperto da [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR chiusa:** La richiesta di merge %{mr_number} [%{mr_title}](%{mr_url}) per [%{repository}](%{repository_url}) è stata chiusa da [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR effettuata:** La richiesta di merge %{mr_number} [%{mr_title}](%{mr_url}) per [%{repository}](%{repository_url}) è stata effettuata da [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR aperta:** La richiesta di merge %{mr_number} [%{mr_title}](%{mr_url}) per [%{repository}](%{repository_url}) è stata aperta da [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR riaperta:** La richiesta di merge %{mr_number} [%{mr_title}](%{mr_url}) per [%{repository}](%{repository_url}) è stata riaperta da [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ it: push_multiple_commits_comment: "**Push in MR:** [%{gitlab_user}](%{gitlab_user_url}) ha effettuato diversi commit [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) il %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Push in MR:** [%{gitlab_user}](%{gitlab_user_url}) ha effettuato un push [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) il %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Push in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) ha effettuato un push [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) il %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Attore GitLab label_gitlab_integration: Integrazione GitLab label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ja.yml b/modules/gitlab_integration/config/locales/crowdin/ja.yml index 19be1c78c4ab..455ad8fc6294 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ja.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ja.yml @@ -24,10 +24,18 @@ ja: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: ラベル gitlab_pipeline: ci_details: CI詳細 + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ ja: labels: invalid_schema: をキーとするハッシュの配列でなければなりません models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ ja: attributes: commit: コミット gitlab: GitLab識別子 - gitlab_avatar_url: アバターURL - gitlab_email: GitLabメールアドレス gitlab_html_url: GitLab HTML URL gitlab_merge_request: マージ・リクエスト - gitlab_name: GitLab名 gitlab_updated_at: 更新日時 gitlab_user_avatar_url: GitLabアバターURL - gitlab_username: GitLabユーザー名 gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**クローズ:** [%{gitlab_user}](%{gitlab_user_url})によって[%{repository}](%{repository_url})へのマージリクエスト%{mr_number}[%{mr_title}](%{mr_url})がクローズされました。\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**マージ済み:** [%{gitlab_user}](%{gitlab_user_url})によって[%{repository}](%{repository_url})へのマージリクエスト%{mr_number}[%{mr_title}](%{mr_url})がマージされました。\n" merge_request_opened_comment: "**オープン:** [%{gitlab_user}](%{gitlab_user_url})によって[%{repository}](%{repository_url})へのマージリクエスト%{mr_number}[%{mr_title}](%{mr_url})がオープンされました。\n" merge_request_reopened_comment: "**MR Reopened:** マージリクエスト %{mr_number} [%{mr_title}](%{mr_url}) の%{repository}](%{repository_url}) は [%{gitlab_user}](%{gitlab_user_url} ) によって再び開かれました。\n" @@ -77,6 +129,27 @@ ja: push_multiple_commits_comment: "**MR:** [%{gitlab_user}](%{gitlab_user_url}) は複数のコミット [%{commit_number}](%{commit_url}) から [%{repository}](%{repository_url}) を %{commit_timestamp}: %{commit_note}でプッシュした\n" push_single_commit_comment: "**MR:** [%{gitlab_user}](%{gitlab_user_url}) で [%{commit_number}](%{commit_url}) が [%{repository}](%{repository_url}) に押される %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "** %{reference}で押される:** [%{gitlab_user}](%{gitlab_user_url}) で押される [%{commit_number}](%{commit_url}) で押される [%{repository}](%{repository_url}) で押される %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ka.yml b/modules/gitlab_integration/config/locales/crowdin/ka.yml index 9fecfe1dc3a8..1ba374536785 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ka.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ka.yml @@ -24,10 +24,18 @@ ka: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ ka: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ ka: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ ka: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/kk.yml b/modules/gitlab_integration/config/locales/crowdin/kk.yml index 856a121a74d6..165047452813 100644 --- a/modules/gitlab_integration/config/locales/crowdin/kk.yml +++ b/modules/gitlab_integration/config/locales/crowdin/kk.yml @@ -24,10 +24,18 @@ kk: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ kk: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ kk: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ kk: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ko.yml b/modules/gitlab_integration/config/locales/crowdin/ko.yml index f70c3586e0b2..ed48e26eb2d3 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ko.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ko.yml @@ -24,10 +24,18 @@ ko: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab 프로젝트 + namespace: GitLab 네임스페이스 + project_html_url: GitLab 프로젝트 URL gitlab_merge_request: labels: 레이블 gitlab_pipeline: ci_details: CI 세부 정보 + gitlab_user: + avatar_url: 아바타 URL + name: 이름 + username: 사용자 이름 errors: models: gitlab_issue: @@ -39,6 +47,8 @@ ko: labels: invalid_schema: '키가 있는 해시 배열이어야 합니다: color, title' models: + gitlab_branch: + other: GitLab 브랜치 gitlab_issue: other: GitLab 이슈 gitlab_merge_request: @@ -50,19 +60,61 @@ ko: attributes: commit: 커밋 gitlab: GitLab 식별자 - gitlab_avatar_url: 아바타 URL - gitlab_email: GitLab 이메일 gitlab_html_url: GitLab HTML URL gitlab_merge_request: 병합 요청 - gitlab_name: GitLab 이름 gitlab_updated_at: '업데이트:' gitlab_user_avatar_url: GitLab 아바타 URL - gitlab_username: GitLab 사용자 이름 gitlab_integration: + branch_component: + copy_name: 브랜치 이름 복사 + create_merge_request: 병합 요청 만들기 + updated_at: "%{date_time} 에 수정됨." + updated_by: "%{name}에 의해 마지막으로 수정됨." + commit_component: + authored_at: "%{date_time} 에 작성됨." + copy_sha: SHA를 클립보드에 복사 + created_by: "%{name}에 의해 생성됨." + empty_message: "" + git_snippets_dialog_component: + branch_name: 브랜치 이름 + commit_message: 커밋 메시지 + copy_branch_name: 브랜치 이름 복사 + copy_commit_message: 커밋 메시지 복사 + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**이슈 닫힘:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 닫혔습니다.\n" + issue_component: + states: + closed: 닫음 + opened: 열림 + updated_at: "%{date_time} 에 수정됨." + updated_by: "%{name}에 의해 마지막으로 수정됨." issue_opened_referenced_comment: "**이슈 열림:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 열렸습니다.\n" issue_reopened_referenced_comment: "**이슈 다시 열림:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 다시 열렸습니다.\n" merge_request_closed_comment: "**MR 닫힘:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 닫혔습니다.\n" + merge_request_component: + pipeline_statuses: + canceled: 취소됨 + canceling: 취소 중 + created: 생성됨 + failed: 실패 + manual: Manual + pending: 대기 중 + preparing: Preparing + running: 실행 중 + scheduled: 예약됨 + skipped: 건너뜀 + success: 성공 + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: 닫음 + locked: 잠김 + merged: 병합 됨 + opened: 열림 + updated_at: "%{date_time} 에 수정됨." + updated_by: "%{name}에 의해 마지막으로 수정됨." merge_request_merged_comment: "**MR 병합됨:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 병합되었습니다.\n" merge_request_opened_comment: "**MR 열림:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 열렸습니다.\n" merge_request_reopened_comment: "**MR 다시 열림:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 다시 열렸습니다.\n" @@ -75,6 +127,27 @@ ko: push_multiple_commits_comment: "**MR에서 푸시됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 여러 커밋 [%{commit_number}](%{commit_url})을(를) %{commit_timestamp}, [%{repository}](%{repository_url})에 푸시했습니다: %{commit_note}\n" push_single_commit_comment: "**MR에서 푸시됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{commit_number}](%{commit_url})을(를) %{commit_timestamp}, [%{repository}](%{repository_url})에 푸시했습니다: %{commit_note}\n" push_single_commit_comment_with_ref: "**%{reference}에서 푸시됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{commit_number}](%{commit_url})을(를) %{commit_timestamp}, [%{repository}](%{repository_url})에 푸시했습니다: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: 브랜치 + commits: 커밋 + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: 이슈 + merge_requests: 병합 요청 + snippets_button_label: Git snippets label_gitlab_actor: GitLab 수행자 label_gitlab_integration: GitLab 통합 label_gitlab_webhook_secret: Webhook 비밀번호 diff --git a/modules/gitlab_integration/config/locales/crowdin/li.yml b/modules/gitlab_integration/config/locales/crowdin/li.yml index 62c1e141556e..9655189278dd 100644 --- a/modules/gitlab_integration/config/locales/crowdin/li.yml +++ b/modules/gitlab_integration/config/locales/crowdin/li.yml @@ -24,10 +24,18 @@ li: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ li: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ li: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ li: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/lt.yml b/modules/gitlab_integration/config/locales/crowdin/lt.yml index a71164ca6148..f5b89bd77da9 100644 --- a/modules/gitlab_integration/config/locales/crowdin/lt.yml +++ b/modules/gitlab_integration/config/locales/crowdin/lt.yml @@ -24,10 +24,18 @@ lt: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ lt: labels: invalid_schema: 'turi būti masyvas raktų: spalva, antraštė' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -62,19 +75,61 @@ lt: attributes: commit: Patvirtinti gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Problema uždaryta:** Problemą %{issue_number} [%{issue_title}](%{issue_url}) skirtą [%{repository}](%{repository_url}) uždarė [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Atverta problema:** Problemą %{issue_number} [%{issue_title}](%{issue_url}) skirtą [%{repository}](%{repository_url}) atidarė [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Problema vėl atidaryta:** Problemą %{issue_number} [%{issue_title}](%{issue_url}) skirtą [%{repository}](%{repository_url}) vėl atidarė [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Uždarytas:** Suliejimo prašymą %{mr_number} [%{mr_title}](%{mr_url}) skirtą [%{repository}](%{repository_url}) uždarė [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Sulietas:** Suliejimo prašymą %{mr_number} [%{mr_title}](%{mr_url}) skirtą [%{repository}](%{repository_url}) suliejo [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Atidarytas:** Suliejimo prašymą %{mr_number} [%{mr_title}](%{mr_url}) skirtą [%{repository}](%{repository_url}) atidarė [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Atidarytas iš naujo:** Suliejimo prašymą %{mr_number} [%{mr_title}](%{mr_url}) skirtą [%{repository}](%{repository_url}) iš naujo atidarė [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ lt: push_multiple_commits_comment: "**Pakeitė MR'e:** [%{gitlab_user}](%{gitlab_user_url}) padarė kelis pakeitimus [%{commit_number}](%{commit_url}) skirtus [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pakeista MR'e:** [%{gitlab_user}](%{gitlab_user_url}) pakeitė [%{commit_number}](%{commit_url}) į [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/lv.yml b/modules/gitlab_integration/config/locales/crowdin/lv.yml index 1672ced96bce..ddaf6077f8c2 100644 --- a/modules/gitlab_integration/config/locales/crowdin/lv.yml +++ b/modules/gitlab_integration/config/locales/crowdin/lv.yml @@ -24,10 +24,18 @@ lv: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,10 @@ lv: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + zero: GitLab branches + one: GitLab branch + other: GitLab branches gitlab_issue: zero: GitLab issues one: GitLab issue @@ -58,19 +70,61 @@ lv: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -83,6 +137,27 @@ lv: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/mn.yml b/modules/gitlab_integration/config/locales/crowdin/mn.yml index 5aa07316d7b9..5e8971e57860 100644 --- a/modules/gitlab_integration/config/locales/crowdin/mn.yml +++ b/modules/gitlab_integration/config/locales/crowdin/mn.yml @@ -24,10 +24,18 @@ mn: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ mn: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ mn: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ mn: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ms.yml b/modules/gitlab_integration/config/locales/crowdin/ms.yml index 04d323481962..c1153d4e03a1 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ms.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ms.yml @@ -24,10 +24,18 @@ ms: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ ms: labels: invalid_schema: 'mestilah jalur hash dengan kunci-kunci: warna, tajuk' models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ ms: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Isu Ditutup:** Isu %{issue_number} [%{issue_title}](%{issue_url}) bagi [%{repository}](%{repository_url}) telah ditutup oleh [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Isu Dibuka:** Isu %{issue_number} [%{issue_title}](%{issue_url}) bagi [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Isu Dibuka Semula:** Isu %{issue_number} [%{issue_title}](%{issue_url}) bagi [%{repository}](%{repository_url}) telah dibuka semula oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**PP Ditutup:** Penggabungan permintaan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah ditutup oleh [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**PP Digabungkan:** Penggabungan permintaan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah digabungkan oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**PP Dibuka:** Penggabungan permintaan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**PP Dibuka Semula:** Penggabungan permintaan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka semula oleh [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -75,6 +127,27 @@ ms: push_multiple_commits_comment: "**Ditolak masuk PG** [%{gitlab_user}] (%{gitlab_user_url}) beberapa komit telah ditolak [%{commit_number}] (%{commit_url}) ke [%{repository}] (%{repository_url}) pada %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Ditolak masuk PP** [%{gitlab_user}] (%{gitlab_user_url}) ditolak [%{commit_number}] (%{commit_url}) ke [%{repository}] (%{repository_url}) pada %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Ditolak masuk %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) ditolak ke [%{commit_number}](%{commit_url}) ke [%{repository}](%{repository_url}) di %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ne.yml b/modules/gitlab_integration/config/locales/crowdin/ne.yml index f3ede3d4ea26..3fb65f71c3da 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ne.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ne.yml @@ -24,10 +24,18 @@ ne: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ ne: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ ne: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ ne: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/nl.yml b/modules/gitlab_integration/config/locales/crowdin/nl.yml index 7e808d96c26e..fb3f068509ea 100644 --- a/modules/gitlab_integration/config/locales/crowdin/nl.yml +++ b/modules/gitlab_integration/config/locales/crowdin/nl.yml @@ -24,10 +24,18 @@ nl: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ nl: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ nl: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ nl: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/no.yml b/modules/gitlab_integration/config/locales/crowdin/no.yml index f9e76b90597f..e4446e29be7d 100644 --- a/modules/gitlab_integration/config/locales/crowdin/no.yml +++ b/modules/gitlab_integration/config/locales/crowdin/no.yml @@ -24,10 +24,18 @@ 'no': activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ labels: invalid_schema: 'må være en liste av hashes med nøkler: farge, tittel' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ attributes: commit: Utfør gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Problemet Lukket:** Problem %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) har blitt lukket av [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Problem åpnet:** Problem %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) har blitt åpnet av [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Problem gjenåpnet:** Problem %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) har blitt gjenåpnet av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Lukket:** Sammenføyningsforespørsel %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) har blitt lukket av [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Sammenslåing:** Sammenslåingsforespørsel %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) har blitt flettet av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR åpnet:** Sammenføyningsforespørsel %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) har blitt åpnet av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR gjenåpnet:** Sammenføyningsforespørsel %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) har blitt gjenåpnet av [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ push_multiple_commits_comment: "**Forsepurt i MR:** [%{gitlab_user}](%{gitlab_user_url}) forespurt flere handlinger [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) i %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Forespurt i MR:** [%{gitlab_user}](%{gitlab_user_url}) forespurt [%{commit_number}](%{commit_url}) til [%{repository}](%{repository_url}) ved %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/pl.yml b/modules/gitlab_integration/config/locales/crowdin/pl.yml index e6accab16ceb..b24053ad134d 100644 --- a/modules/gitlab_integration/config/locales/crowdin/pl.yml +++ b/modules/gitlab_integration/config/locales/crowdin/pl.yml @@ -24,10 +24,18 @@ pl: activerecord: attributes: + gitlab_branch: + gitlab_project: Projekt GitLab + namespace: Przestrzeń nazw GitLab + project_html_url: Adres URL projektu GitLab gitlab_merge_request: labels: Etykiety gitlab_pipeline: ci_details: Szczegóły CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ pl: labels: invalid_schema: 'musi być tablicą skrótów z kluczami: color, title' models: + gitlab_branch: + one: Gałąź GitLab + few: Gałęzie GitLab + many: Gałęzie GitLab + other: Gałęzie GitLab gitlab_issue: one: Zgłoszenie w GitLab few: Zgłoszenia w GitLab @@ -62,19 +75,61 @@ pl: attributes: commit: Zatwierdź gitlab: Identyfikator GitLab - gitlab_avatar_url: Adres URL awatara - gitlab_email: Adres e-mail GitLab gitlab_html_url: Adres URL kodu HTML GitLab gitlab_merge_request: Żądanie scalenia - gitlab_name: Nazwa GitLab gitlab_updated_at: Zaktualizowano o gitlab_user_avatar_url: Adres URL awatara GitLab - gitlab_username: Nazwa użytkownika GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Zamknięto problem:** problem %{issue_number} [%{issue_title}](%{issue_url}) dotyczący [%{repository}](%{repository_url}) został zamknięty przez [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Otwarto problem:** problem %{issue_number} [%{issue_title}](%{issue_url}) dotyczący [%{repository}](%{repository_url}) został otwarty przez [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Ponownie otwarto problem:** problem %{issue_number} [%{issue_title}](%{issue_url}) dotyczący [%{repository}](%{repository_url}) został ponownie otwarty przez [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**Zamknięto MR:** żądanie scalenia %{mr_number} [%{mr_title}](%{mr_url}) dla [%{repository}](%{repository_url}) zostało zamknięte przez [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**Scalono MR:** żądanie scalenia %{mr_number} [%{mr_title}](%{mr_url}) dla [%{repository}](%{repository_url}) zostało scalone przez [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**Otwarto MR:** żądanie scalenia %{mr_number} [%{mr_title}](%{mr_url}) dla [%{repository}](%{repository_url}) zostało otwarte przez [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**Ponownie otwarto MR:** żądanie scalenia %{mr_number} [%{mr_title}](%{mr_url}) dla [%{repository}](%{repository_url}) zostało ponownie otwarte przez [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ pl: push_multiple_commits_comment: "**Wypchnięto w MR:** [%{gitlab_user}](%{gitlab_user_url}) wypchnął wiele zmian [%{commit_number}](%{commit_url}) do [%{repository}](%{repository_url}) o %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Wypchnięto w MR:** użytkownik [%{gitlab_user}](%{gitlab_user_url}) wypchnął [%{commit_number}](%{commit_url}) do [%{repository}](%{repository_url}) o %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Wypchnięto w %{reference}:** użytkownik [%{gitlab_user}](%{gitlab_user_url}) wypchnął [%{commit_number}](%{commit_url}) do [%{repository}](%{repository_url}) o %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Użytkownik GitLab label_gitlab_integration: Integracja GitLab label_gitlab_webhook_secret: Klucz tajny obiektu webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml b/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml index cf024aa7863e..09c59902e496 100644 --- a/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml +++ b/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml @@ -24,10 +24,18 @@ pt-BR: activerecord: attributes: + gitlab_branch: + gitlab_project: Projeto GitLab + namespace: Namespace do GitLab + project_html_url: URL do projeto GitLab gitlab_merge_request: labels: Rótulos gitlab_pipeline: ci_details: Detalhes do CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ pt-BR: labels: invalid_schema: 'deve ser um array de hashes com as chaves: cor, título' models: + gitlab_branch: + one: Branch do GitLab + other: Branches do GitLab gitlab_issue: one: Problema do GitLab other: Problemas do GitLab @@ -54,19 +65,61 @@ pt-BR: attributes: commit: Commit gitlab: Identificador do GitLab - gitlab_avatar_url: URL da imagem de perfil - gitlab_email: E-mail do GitLab gitlab_html_url: 'URL de HTML do GitLab ' gitlab_merge_request: Merge Request - gitlab_name: Nome no GitLab gitlab_updated_at: Atualizado em gitlab_user_avatar_url: URL da imagem de perfil do GitLab - gitlab_username: Nome de usuário do GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Problema Fechado:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Problema Aberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Problema Reaberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**SC Fechada:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fechada por [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**SC Combinada:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi combinado por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Aberto:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi aberta por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**SC Reaberta:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi reaberta por [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ pt-BR: push_multiple_commits_comment: "**Submetido em SC:** [%{gitlab_user}](%{gitlab_user_url}) submeteu várias confirmações [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Submetido em SC:** [%{gitlab_user}](%{gitlab_user_url}) submeteu [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Submetido em %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) submeteu [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Ator do GitLab label_gitlab_integration: Integração do GitLab label_gitlab_webhook_secret: Segredo do webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml b/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml index d43d8b51c425..7499c9b4d145 100644 --- a/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml +++ b/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml @@ -24,10 +24,18 @@ pt-PT: activerecord: attributes: + gitlab_branch: + gitlab_project: Projeto GitLab + namespace: Espaço de nome do GitLab + project_html_url: URL do projeto no GitLab gitlab_merge_request: labels: Etiquetas gitlab_pipeline: ci_details: Detalhes do CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ pt-PT: labels: invalid_schema: 'deve ser um conjunto de hashes com as chaves: cor, título' models: + gitlab_branch: + one: Ramo do GitLab + other: Ramos do GitLab gitlab_issue: one: Problema do GitLab other: Problemas do GitLab @@ -54,19 +65,61 @@ pt-PT: attributes: commit: Commit gitlab: Identificador do GitLab - gitlab_avatar_url: URL do Avatar - gitlab_email: E-mail do GitLab gitlab_html_url: URL HTML do GitLab gitlab_merge_request: Pedido de fusão - gitlab_name: Nome do GitLab gitlab_updated_at: Atualizado a gitlab_user_avatar_url: URL do avatar do GitLab - gitlab_username: Nome de utilizador do GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Problema Fechado:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Problema Aberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Problema Reaberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR fechado:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR fundido:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fundido por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR aberto:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR reaberto:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ pt-PT: push_multiple_commits_comment: "**Enviado no MR:** [%{gitlab_user}](%{gitlab_user_url}) enviou vários compromissos [%{commit_number}](%{commit_url}) para [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Enviado no MR:** [%{gitlab_user}](%{gitlab_user_url}) enviou [%{commit_number}](%{commit_url}) para [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Enviado em %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) enviou [%{commit_number}](%{commit_url}) para [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Ator do GitLab label_gitlab_integration: Integração no GitLab label_gitlab_webhook_secret: Segredo do webhook diff --git a/modules/gitlab_integration/config/locales/crowdin/ro.yml b/modules/gitlab_integration/config/locales/crowdin/ro.yml index 4f53c848acf8..a2beb882be42 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ro.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ro.yml @@ -24,10 +24,18 @@ ro: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,10 @@ ro: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -58,19 +70,61 @@ ro: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -83,6 +137,27 @@ ro: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/ru.yml b/modules/gitlab_integration/config/locales/crowdin/ru.yml index 80f351ea6a41..96a64a74120d 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ru.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ru.yml @@ -24,10 +24,18 @@ ru: activerecord: attributes: + gitlab_branch: + gitlab_project: Проект GitLab + namespace: Пространство имён GitLab + project_html_url: URL проекта GitLab gitlab_merge_request: labels: Метки gitlab_pipeline: ci_details: Подробности CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ ru: labels: invalid_schema: 'должен быть массив хэшей с помощью ключей: цвет, заголовок' models: + gitlab_branch: + one: Ветка GitLab + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: one: Тикет GitLab few: GitLab issues @@ -62,19 +75,61 @@ ru: attributes: commit: Коммит gitlab: Идентификатор GitLab - gitlab_avatar_url: URL на аватар - gitlab_email: Е-майл GitLab gitlab_html_url: GitLab HTML URL gitlab_merge_request: Запрос на слияние - gitlab_name: Имя GitLab gitlab_updated_at: Обновлено gitlab_user_avatar_url: URL аватара GitLab - gitlab_username: Имя пользователя GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Проблема закрыта:** Проблема %{issue_number} [%{issue_title}](%{issue_url}) в репозитории [%{repository}](%{repository_url}) закрыта пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Проблема открыта:** Проблема %{issue_number} [%{issue_title}](%{issue_url}) в репозитории [%{repository}](%{repository_url}) открыта пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Проблема открыта заново:** Проблема %{issue_number} [%{issue_title}](%{issue_url}) в репозитории [%{repository}](%{repository_url}) открыта заново пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Закрыт:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) в репозитории [%{repository}](%{repository_url}) закрыт пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR влит:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) в репозитории [%{repository}](%{repository_url}) влит пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Открыт:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) в репозитории [%{repository}](%{repository_url}) открыт пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Переоткрыт:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) в репозитории [%{repository}](%{repository_url}) открыт заново пользователем [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ ru: push_multiple_commits_comment: "**Отправлено в MR:** [%{gitlab_user}](%{gitlab_user_url}) отправил несколько коммитов [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) в %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Отправлено в MR:** [%{gitlab_user}](%{gitlab_user_url}) отправил [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) в %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Отправлено в %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) отправил [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) в %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Автор GitLab label_gitlab_integration: Интеграция с GitLab label_gitlab_webhook_secret: Секрет вебхука diff --git a/modules/gitlab_integration/config/locales/crowdin/rw.yml b/modules/gitlab_integration/config/locales/crowdin/rw.yml index 504e5dcc4e53..af48eae744f6 100644 --- a/modules/gitlab_integration/config/locales/crowdin/rw.yml +++ b/modules/gitlab_integration/config/locales/crowdin/rw.yml @@ -24,10 +24,18 @@ rw: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ rw: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ rw: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ rw: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/si.yml b/modules/gitlab_integration/config/locales/crowdin/si.yml index 8cee20ec586b..ad7f1ee2d131 100644 --- a/modules/gitlab_integration/config/locales/crowdin/si.yml +++ b/modules/gitlab_integration/config/locales/crowdin/si.yml @@ -24,10 +24,18 @@ si: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ si: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ si: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ si: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/sk.yml b/modules/gitlab_integration/config/locales/crowdin/sk.yml index e17fb3b7e0ff..6b03265edbc8 100644 --- a/modules/gitlab_integration/config/locales/crowdin/sk.yml +++ b/modules/gitlab_integration/config/locales/crowdin/sk.yml @@ -24,10 +24,18 @@ sk: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ sk: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + many: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -62,19 +75,61 @@ sk: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ sk: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/sl.yml b/modules/gitlab_integration/config/locales/crowdin/sl.yml index 37096eabcf79..c83a7eeb8d5c 100644 --- a/modules/gitlab_integration/config/locales/crowdin/sl.yml +++ b/modules/gitlab_integration/config/locales/crowdin/sl.yml @@ -24,10 +24,18 @@ sl: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ sl: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + two: GitLab branches + few: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue two: GitLab issues @@ -62,19 +75,61 @@ sl: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ sl: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/sr.yml b/modules/gitlab_integration/config/locales/crowdin/sr.yml index d647b487e510..fecfe1ba3a83 100644 --- a/modules/gitlab_integration/config/locales/crowdin/sr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/sr.yml @@ -24,10 +24,18 @@ sr: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,10 @@ sr: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + few: GitLab branches + other: GitLab branches gitlab_issue: one: GitLab issue few: GitLab issues @@ -58,19 +70,61 @@ sr: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -83,6 +137,27 @@ sr: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/sv.yml b/modules/gitlab_integration/config/locales/crowdin/sv.yml index 58825628f166..28b2f7d3d302 100644 --- a/modules/gitlab_integration/config/locales/crowdin/sv.yml +++ b/modules/gitlab_integration/config/locales/crowdin/sv.yml @@ -24,10 +24,18 @@ sv: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab-projekt + namespace: GitLab-namnrymd + project_html_url: GitLab-projektets URL gitlab_merge_request: labels: Etiketter gitlab_pipeline: ci_details: CI-detaljer + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ sv: labels: invalid_schema: 'måste vara en matris med hashvärden med nycklarna: color, title' models: + gitlab_branch: + one: GitLab-gren + other: GitLab-grenar gitlab_issue: one: GitLab-ärende other: GitLab-ärenden @@ -54,19 +65,61 @@ sv: attributes: commit: Commit gitlab: GitLab-identifierare - gitlab_avatar_url: Avatar-URL - gitlab_email: GitLab-e-post gitlab_html_url: GitLab HTML-URL gitlab_merge_request: Merge request - gitlab_name: GitLab-namn gitlab_updated_at: Uppdaterad den gitlab_user_avatar_url: URL till GitLab-avatar - gitlab_username: GitLab-användarnamn gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Ärende stängt:** Ärende %{issue_number} [%{issue_title}](%{issue_url}) för [%{repository}](%{repository_url}) har stängts av [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Ärende öppnat:** Ärende %{issue_number} [%{issue_title}](%{issue_url}) för [%{repository}](%{repository_url}) har öppnats av [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Ärende öppnat igen:** Ärende %{issue_number} [%{issue_title}](%{issue_url}) för [%{repository}](%{repository_url}) har öppnats igen av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR stängd:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) för [%{repository}](%{repository_url}) har stängts av [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR sammanfogad:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) för [%{repository}](%{repository_url}) har sammanfogats av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR öppnad:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) för [%{repository}](%{repository_url}) har öppnats av [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR öppnad igen:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) för [%{repository}](%{repository_url}) har öppnats igen av [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ sv: push_multiple_commits_comment: "**Pushad i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushade flera commits [%{commit_number}](%{commit_url}) till [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushad i MR:** [%{gitlab_user}](%{gitlab_user_url}) pushade [%{commit_number}](%{commit_url}) till [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushad i %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushade [%{commit_number}](%{commit_url}) till [%{repository}](%{repository_url}) %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab-aktör label_gitlab_integration: GitLab-integration label_gitlab_webhook_secret: Webhook-hemlighet diff --git a/modules/gitlab_integration/config/locales/crowdin/th.yml b/modules/gitlab_integration/config/locales/crowdin/th.yml index 1b32aec69992..cc340f8c9b89 100644 --- a/modules/gitlab_integration/config/locales/crowdin/th.yml +++ b/modules/gitlab_integration/config/locales/crowdin/th.yml @@ -24,10 +24,18 @@ th: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ th: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ th: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -75,6 +127,27 @@ th: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/tr.yml b/modules/gitlab_integration/config/locales/crowdin/tr.yml index 5aaf7f223e5f..35e5f37d5930 100644 --- a/modules/gitlab_integration/config/locales/crowdin/tr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/tr.yml @@ -24,10 +24,18 @@ tr: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Etiketler gitlab_pipeline: ci_details: CI Detayları + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ tr: labels: invalid_schema: 'anahtarları olan bir özet dizisi olmalıdır: renk, başlık' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ tr: attributes: commit: İşlem gitlab: GitLab tanımlayıcı - gitlab_avatar_url: Avatar adresi - gitlab_email: GitLab E-posta gitlab_html_url: GitLab HTML adresi gitlab_merge_request: Birleştirme İsteği - gitlab_name: GitLab adı gitlab_updated_at: Güncellenme tarihi gitlab_user_avatar_url: GitLab avatar adresi - gitlab_username: GitLab kullanıcı adı gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Sorun Kapatıldı:** [%{repository}](%{repository_url}) için %{issue_number} [%{issue_title}](%{issue_url}) sorunu [%{gitlab_user}](%{gitlab_user_url}) tarafından kapatılmıştır.\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Sorun Açıldı:** %{issue_number} numaralı [%{issue_title}](%{issue_url}) sorunu [%{repository}](%{repository_url}) için [%{gitlab_user}](%{gitlab_user_url}) tarafından açıldı.\n" issue_reopened_referenced_comment: "**Sorun Yeniden Açıldı:** [%{repository}](%{repository_url}) için %{issue_number} [%{issue_title}](%{issue_url}) sorunu [%{gitlab_user}](%{gitlab_user_url}) tarafından yeniden açılmıştır.\n" merge_request_closed_comment: "**MR Kapatıldı:** [%{repository}](%{repository_url}) için %{mr_number} [%{mr_title}](%{mr_url}) birleştirme isteği [%{gitlab_user}](%{gitlab_user_url}) tarafından kapatıldı.\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Birleştirildi:** [%{repository}](%{repository_url}) için %{mr_number} [%{mr_title}](%{mr_url}) birleştirme isteği [%{gitlab_user}](%{gitlab_user_url}) tarafından birleştirildi.\n" merge_request_opened_comment: "**MR Açıldı:** [%{repository}](%{repository_url}) için %{mr_number} [%{mr_title}](%{mr_url}) birleştirme isteği [%{gitlab_user}](%{gitlab_user_url}) tarafından açıldı.\n" merge_request_reopened_comment: "**MR Yeniden Açıldı:** [%{repository}](%{repository_url}) için %{mr_number} [%{mr_title}](%{mr_url}) birleştirme isteği [%{gitlab_user}](%{gitlab_user_url}) tarafından yeniden açıldı.\n" @@ -79,6 +132,27 @@ tr: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "** %{reference}'da itildi :** [%{gitlab_user}](%{gitlab_user_url}) %{commit_timestamp}'da [%{commit_number}](%{commit_url}) [%{repository}](%{repository_url}) itildi : %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/uk.yml b/modules/gitlab_integration/config/locales/crowdin/uk.yml index 4ab151994276..aecaa102c2d9 100644 --- a/modules/gitlab_integration/config/locales/crowdin/uk.yml +++ b/modules/gitlab_integration/config/locales/crowdin/uk.yml @@ -24,10 +24,18 @@ uk: activerecord: attributes: + gitlab_branch: + gitlab_project: Проєкт GitLab + namespace: Простір імен GitLab + project_html_url: URL-адреса проєкту GitLab gitlab_merge_request: labels: Мітки gitlab_pipeline: ci_details: Деталі CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,11 @@ uk: labels: invalid_schema: 'має бути масивом гешів із ключами: color, title' models: + gitlab_branch: + one: Гілка GitLab + few: Гілки GitLab + many: Гілки GitLab + other: Гілки GitLab gitlab_issue: one: Задача GitLab few: Задачі GitLab @@ -62,19 +75,61 @@ uk: attributes: commit: Коміт gitlab: Ідентифікатор GitLab - gitlab_avatar_url: URL-адреса аватара - gitlab_email: Електронна адреса GitLab gitlab_html_url: URL-адреса HTML GitLab gitlab_merge_request: Запит на злиття - gitlab_name: Назва GitLab gitlab_updated_at: Оновлено о gitlab_user_avatar_url: URL-адреса аватара GitLab - gitlab_username: Ім’я користувача GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Закрито задачу:** задачу %{issue_number} [%{issue_title}](%{issue_url}) для [%{repository}](%{repository_url}) закрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Відкрито задачу:** задачу %{issue_number} [%{issue_title}](%{issue_url}) для [%{repository}](%{repository_url}) відкрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Повторно відкрито задачу:** задачу %{issue_number} [%{issue_title}](%{issue_url}) для [%{repository}](%{repository_url}) повторно відкрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**Закрито MR:** запит на злиття %{mr_number} [%{mr_title}](%{mr_url}) для [%{repository}](%{repository_url}) закрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**Об’єднано MR:** запит на злиття %{mr_number} [%{mr_title}](%{mr_url}) для [%{repository}](%{repository_url}) об’єднано користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**Відкрито MR:** запит на злиття %{mr_number} [%{mr_title}](%{mr_url}) для [%{repository}](%{repository_url}) відкрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**Повторно відкрито MR:** запит на злиття %{mr_number} [%{mr_title}](%{mr_url}) для [%{repository}](%{repository_url}) повторно відкрито користувачем [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -87,6 +142,27 @@ uk: push_multiple_commits_comment: "**Внесено дані в MR:** користувач [%{gitlab_user}](%{gitlab_user_url}) вніс кілька комітів [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) о %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Внесено дані в MR:** користувач [%{gitlab_user}](%{gitlab_user_url}) вніс дані [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) о %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Внесено дані в %{reference}:** користувач [%{gitlab_user}](%{gitlab_user_url}) вніс дані [%{commit_number}](%{commit_url}) в [%{repository}](%{repository_url}) о %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: Суб’єкт GitLab label_gitlab_integration: Інтеграція з GitLab label_gitlab_webhook_secret: Секрет вебхука diff --git a/modules/gitlab_integration/config/locales/crowdin/uz.yml b/modules/gitlab_integration/config/locales/crowdin/uz.yml index 8f1cc3bb3c96..28d3006beb96 100644 --- a/modules/gitlab_integration/config/locales/crowdin/uz.yml +++ b/modules/gitlab_integration/config/locales/crowdin/uz.yml @@ -24,10 +24,18 @@ uz: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Labels gitlab_pipeline: ci_details: CI Details + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,9 @@ uz: labels: invalid_schema: 'must be an array of hashes with keys: color, title' models: + gitlab_branch: + one: GitLab branch + other: GitLab branches gitlab_issue: one: GitLab issue other: GitLab issues @@ -54,19 +65,61 @@ uz: attributes: commit: Commit gitlab: GitLab identifier - gitlab_avatar_url: Avatar URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: Merge Request - gitlab_name: GitLab name gitlab_updated_at: Updated at gitlab_user_avatar_url: GitLab avatar URL - gitlab_username: GitLab username gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -79,6 +132,27 @@ uz: push_multiple_commits_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Pushed in %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/vi.yml b/modules/gitlab_integration/config/locales/crowdin/vi.yml index db4a6952fc42..e87ab61106ff 100644 --- a/modules/gitlab_integration/config/locales/crowdin/vi.yml +++ b/modules/gitlab_integration/config/locales/crowdin/vi.yml @@ -24,10 +24,18 @@ vi: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: Nhãn gitlab_pipeline: ci_details: Chi tiết CI + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ vi: labels: invalid_schema: 'phải là một mảng băm có khóa: màu sắc, tiêu đề' models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ vi: attributes: commit: cam kết gitlab: Mã định danh GitLab - gitlab_avatar_url: URL hình đại diện - gitlab_email: Email của GitLab gitlab_html_url: URL HTML của GitLab gitlab_merge_request: Yêu cầu hợp nhất - gitlab_name: Tên GitLab gitlab_updated_at: Cập nhật lúc gitlab_user_avatar_url: URL hình đại diện GitLab - gitlab_username: tên người dùng GitLab gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**Vấn Đề Được Đóng:** Vấn đề %{issue_number} [%{issue_title}](%{issue_url}) cho [%{repository}](%{repository_url}) đã được đóng bởi [%{gitlab_user}](%{gitlab_user_url}).\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**Vấn Đề Được Mở:** Vấn đề %{issue_number} [%{issue_title}](%{issue_url}) cho [%{repository}](%{repository_url}) đã được mở bởi [%{gitlab_user}](%{gitlab_user_url}).\n" issue_reopened_referenced_comment: "**Vấn Đề Được Mở Lại:** Vấn đề %{issue_number} [%{issue_title}](%{issue_url}) cho [%{repository}](%{repository_url}) đã được mở lại bởi [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_closed_comment: "**MR Được Đóng:** Yêu cầu kéo %{mr_number} [%{mr_title}](%{mr_url}) cho [%{repository}](%{repository_url}) đã được đóng bởi [%{gitlab_user}](%{gitlab_user_url}).\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR Được Gộp:** Yêu cầu kéo %{mr_number} [%{mr_title}](%{mr_url}) cho [%{repository}](%{repository_url}) đã được gộp bởi [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_opened_comment: "**MR Được Mở:** Yêu cầu kéo %{mr_number} [%{mr_title}](%{mr_url}) cho [%{repository}](%{repository_url}) đã được mở bởi [%{gitlab_user}](%{gitlab_user_url}).\n" merge_request_reopened_comment: "**MR Được Mở Lại:** Yêu cầu kéo %{mr_number} [%{mr_title}](%{mr_url}) cho [%{repository}](%{repository_url}) đã được mở lại bởi [%{gitlab_user}](%{gitlab_user_url}).\n" @@ -75,6 +127,27 @@ vi: push_multiple_commits_comment: "**Đã Đẩy Trong MR:** [%{gitlab_user}](%{gitlab_user_url}) đã đẩy nhiều commit [%{commit_number}](%{commit_url}) lên [%{repository}](%{repository_url}) vào %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "**Đã Đẩy Trong MR:** [%{gitlab_user}](%{gitlab_user_url}) đã đẩy [%{commit_number}](%{commit_url}) lên [%{repository}](%{repository_url}) vào %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "**Đã đẩy vào %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) đã đẩy [%{commit_number}](%{commit_url}) vào [%{repository}](%{repository_url}) tại %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml b/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml index 3d7dfcb21758..6431c47db324 100644 --- a/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml +++ b/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml @@ -24,10 +24,18 @@ zh-CN: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab 项目 + namespace: GitLab 命名空间 + project_html_url: GitLab 项目 URL gitlab_merge_request: labels: 标签 gitlab_pipeline: ci_details: CI 详情 + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ zh-CN: labels: invalid_schema: 必须是键为“颜色,标题”的哈希数组 models: + gitlab_branch: + other: GitLab 分支 gitlab_issue: other: GitLab 问题 gitlab_merge_request: @@ -50,19 +60,61 @@ zh-CN: attributes: commit: 提交 gitlab: GitLab 标识符 - gitlab_avatar_url: 头像 URL - gitlab_email: GitLab Email gitlab_html_url: GitLab HTML URL gitlab_merge_request: 合并请求 - gitlab_name: GitLab 名称 gitlab_updated_at: 更新于 gitlab_user_avatar_url: GitLab 头像 URL - gitlab_username: GitLab 用户名 gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "**问题已关闭**:[%{repository}](%{repository_url}) 的问题 %{issue_number} [%{issue_title}](%{issue_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 关闭。\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "**问题已打开**:[%{repository}](%{repository_url}) 的问题 %{issue_number} [%{issue_title}](%{issue_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 打开。\n" issue_reopened_referenced_comment: "**问题已重新打开**:[%{repository}](%{repository_url}) 的问题 %{issue_number} [%{issue_title}](%{issue_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 重新打开。\n" merge_request_closed_comment: "**合并请求已关闭**:[%{repository}](%{repository_url}) 的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 关闭。\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**合并请求已合并**:[%{repository}](%{repository_url}) 的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 合并。\n" merge_request_opened_comment: "**合并请求已打开**:[%{repository}](%{repository_url}) 的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 打开。\n" merge_request_reopened_comment: "**合并请求已重新打开**:[%{repository}](%{repository_url}) 的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 重新打开。\n" @@ -75,6 +127,27 @@ zh-CN: push_multiple_commits_comment: "**在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将多个提交 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}): %{commit_note}\n" push_single_commit_comment: "**在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}): %{commit_note}\n" push_single_commit_comment_with_ref: "**在 %{reference} 中推送:** [%{gitlab_user}](%{gitlab_user_url}) 推送 [%{commit_number}](%{commit_url}) 到 [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab 执行者 label_gitlab_integration: GitLab 集成 label_gitlab_webhook_secret: 网络钩子密钥 diff --git a/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml index c4ff27152970..99ccb304bf1c 100644 --- a/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml +++ b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml @@ -24,10 +24,18 @@ zh-TW: activerecord: attributes: + gitlab_branch: + gitlab_project: GitLab project + namespace: GitLab namespace + project_html_url: GitLab project URL gitlab_merge_request: labels: 標籤 gitlab_pipeline: ci_details: CI 詳情 + gitlab_user: + avatar_url: Avatar URL + name: Name + username: Username errors: models: gitlab_issue: @@ -39,6 +47,8 @@ zh-TW: labels: invalid_schema: 必須是一個帶值的雜湊陣列:color、title models: + gitlab_branch: + other: GitLab branches gitlab_issue: other: GitLab issues gitlab_merge_request: @@ -50,19 +60,61 @@ zh-TW: attributes: commit: 提交 gitlab: GitLab 識別碼 - gitlab_avatar_url: 大頭貼網址 - gitlab_email: GitLab 電子郵件 gitlab_html_url: GitLab HTML URL gitlab_merge_request: 合併請求 - gitlab_name: GitLab 名稱 gitlab_updated_at: 更新於 gitlab_user_avatar_url: GitLab 頭像 URL - gitlab_username: GitLab 使用者名稱 gitlab_integration: + branch_component: + copy_name: Copy branch name + create_merge_request: Create merge request + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. + commit_component: + authored_at: Authored on %{date_time}. + copy_sha: Copy SHA to clipboard + created_by: Created by %{name}. + empty_message: "" + git_snippets_dialog_component: + branch_name: Branch name + commit_message: Commit message + copy_branch_name: Copy branch name + copy_commit_message: Copy commit message + copy_create_branch_command: Copy command to create a branch with empty commit + create_branch_with_empty_commit: Create branch with empty commit + title: Git quick snippets issue_closed_referenced_comment: "** 問題關閉:** 問題 %{issue_number} [%{issue_title}](%{issue_url}) 為 [%{repository}](%{repository_url}) 已被 [%{gitlab_user}](%{gitlab_user_url}) 關閉。\n" + issue_component: + states: + closed: Closed + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. issue_opened_referenced_comment: "** 問題已開啟:** 問題 %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 開啟。\n" issue_reopened_referenced_comment: "** 問題重新開啟:** 問題 %{issue_number} [%{issue_title}](%{issue_url}) 為 [%{repository}](%{repository_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 重新開啟。\n" merge_request_closed_comment: "**MR 已關閉:** [%{repository}](%{repository_url}) 的合併請求 %{mr_number} [%{mr_title}](%{mr_url}) 已被 [%{gitlab_user}](%{gitlab_user_url}) 關閉。\n" + merge_request_component: + pipeline_statuses: + canceled: Canceled + canceling: Canceling + created: Created + failed: Failed + manual: Manual + pending: Pending + preparing: Preparing + running: Running + scheduled: Scheduled + skipped: Skipped + success: Success + waiting_for_callback: Waiting for callback + waiting_for_resource: Waiting for resource + states: + closed: Closed + locked: Locked + merged: Merged + opened: Open + updated_at: Updated on %{date_time}. + updated_by: Last updated by %{name}. merge_request_merged_comment: "**MR 已合併:** [%{repository}](%{repository_url}) 的合併請求 %{mr_number} [%{mr_title}](%{mr_url}) 已被 [%{gitlab_user}](%{gitlab_user_url}) 合併。\n" merge_request_opened_comment: "**MR 已開啟:** [%{repository}](%{repository_url}) 的合併請求 %{mr_number} [%{mr_title}](%{mr_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}).。\n" merge_request_reopened_comment: "**MR 已重新開啟:** [%{repository}](%{repository_url}) 的合併請求 %{mr_number} [%{mr_title}](%{mr_url}) 已被 [%{gitlab_user}](%{gitlab_user_url}) 重新開啟。\n" @@ -75,6 +127,27 @@ zh-TW: push_multiple_commits_comment: "** 在 MR 中推送:** [%{gitlab_user}](%{gitlab_user_url}) 推送了多個提交 [%{commit_number}](%{commit_url}) 到 [%{repository}](%{repository_url}) 在 %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment: "** 在 MR 中推送:** [%{gitlab_user}](%{gitlab_user_url}) 推送 [%{commit_number}](%{commit_url}) 到 [%{repository}](%{repository_url}) 在 %{commit_timestamp}: %{commit_note}\n" push_single_commit_comment_with_ref: "** 推送在 %{reference}:** [%{gitlab_user}](%{gitlab_user_url}) 推送 [%{commit_number}](%{commit_url}) 到 [%{repository}](%{repository_url}) 在 %{commit_timestamp}: %{commit_note}\n" + work_package_gitlab_tab_component: + blank_slates: + branches: + description_html: Link a branch by naming the branch, so that it starts with %{code} or only %{identifier}. + title: No branches + commits: + description_html: Link a commit by adding the code %{code} or the %{url} to the commit message. + title: No commits + issues: + description_html: Link an issue by adding the code %{code} to the title or description. + title: No issues + merge_requests: + description_html: Link a merge request by adding the code %{code} to the title or description. + title: No merge requests + branches: Branches + commits: Commits + description_html: Link an existing GitLab element by adding the code %{code} to the title or description. + git_snippets: Git snippets + issues: Issues + merge_requests: Merge requests + snippets_button_label: Git snippets label_gitlab_actor: GitLab actor label_gitlab_integration: GitLab Integration label_gitlab_webhook_secret: Webhook secret diff --git a/modules/grids/config/locales/crowdin/af.yml b/modules/grids/config/locales/crowdin/af.yml index db6dd372dd02..c3d05da3980e 100644 --- a/modules/grids/config/locales/crowdin/af.yml +++ b/modules/grids/config/locales/crowdin/af.yml @@ -31,7 +31,7 @@ af: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/ar.yml b/modules/grids/config/locales/crowdin/ar.yml index ba2f70c26740..ad8d36d5deae 100644 --- a/modules/grids/config/locales/crowdin/ar.yml +++ b/modules/grids/config/locales/crowdin/ar.yml @@ -40,7 +40,7 @@ ar: view_all_members: عرض جميع الأعضاء x_more: zero: and %{count} more members. - one: and one more member. + one: and %{count} more member. two: and %{count} more members. few: and %{count} more members. many: and %{count} more members. diff --git a/modules/grids/config/locales/crowdin/az.yml b/modules/grids/config/locales/crowdin/az.yml index 66a967c03f29..19b91df42e67 100644 --- a/modules/grids/config/locales/crowdin/az.yml +++ b/modules/grids/config/locales/crowdin/az.yml @@ -31,7 +31,7 @@ az: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/be.yml b/modules/grids/config/locales/crowdin/be.yml index 858c35e515ac..e99439638020 100644 --- a/modules/grids/config/locales/crowdin/be.yml +++ b/modules/grids/config/locales/crowdin/be.yml @@ -35,7 +35,7 @@ be: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. few: and %{count} more members. many: and %{count} more members. other: and %{count} more members. diff --git a/modules/grids/config/locales/crowdin/bg.yml b/modules/grids/config/locales/crowdin/bg.yml index 38ee3beafae0..157500f1c80f 100644 --- a/modules/grids/config/locales/crowdin/bg.yml +++ b/modules/grids/config/locales/crowdin/bg.yml @@ -31,7 +31,7 @@ bg: title: Members view_all_members: Покажи всички членове x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Нищо ново за отчитане. diff --git a/modules/grids/config/locales/crowdin/ca.yml b/modules/grids/config/locales/crowdin/ca.yml index fbc705fb3722..2b14a529d940 100644 --- a/modules/grids/config/locales/crowdin/ca.yml +++ b/modules/grids/config/locales/crowdin/ca.yml @@ -31,7 +31,7 @@ ca: title: Members view_all_members: Veure tots els membres x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Res de nou a informar. diff --git a/modules/grids/config/locales/crowdin/ckb-IR.yml b/modules/grids/config/locales/crowdin/ckb-IR.yml index 775a7d0524b5..aa8981bc0c53 100644 --- a/modules/grids/config/locales/crowdin/ckb-IR.yml +++ b/modules/grids/config/locales/crowdin/ckb-IR.yml @@ -31,7 +31,7 @@ ckb-IR: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/cs.yml b/modules/grids/config/locales/crowdin/cs.yml index 0edb7a8287b9..015d49017fca 100644 --- a/modules/grids/config/locales/crowdin/cs.yml +++ b/modules/grids/config/locales/crowdin/cs.yml @@ -35,10 +35,10 @@ cs: title: Členové view_all_members: Zobrazit všechny členy x_more: - one: a ještě jeden člen. - few: a ještě %{count} členů. - many: a ještě %{count} členů. - other: a ještě %{count} členů. + one: and %{count} more member. + few: and %{count} more members. + many: and %{count} more members. + other: and %{count} more members. news: no_results: Žádné novinky. not_available: Tento widget není k dispozici. diff --git a/modules/grids/config/locales/crowdin/da.yml b/modules/grids/config/locales/crowdin/da.yml index cf049796ddf6..09db3e909f01 100644 --- a/modules/grids/config/locales/crowdin/da.yml +++ b/modules/grids/config/locales/crowdin/da.yml @@ -31,8 +31,8 @@ da: title: Medlemmer view_all_members: Vis alle medlemmer x_more: - one: og et medlem mere. - other: og %{count} flere medlemmer. + one: og %{count} medlem mere. + other: og %{count} medlemmer mere. news: no_results: Intet nyt at rapportere. not_available: Denne widget er ikke tilgængelig. diff --git a/modules/grids/config/locales/crowdin/de.yml b/modules/grids/config/locales/crowdin/de.yml index f49f22dc81ad..e5aaf4001395 100644 --- a/modules/grids/config/locales/crowdin/de.yml +++ b/modules/grids/config/locales/crowdin/de.yml @@ -31,8 +31,8 @@ de: title: Mitglieder view_all_members: Alle Mitglieder anzeigen x_more: - one: und ein weiteres Mitglied. - other: und %{count} weitere Mitglieder. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Nichts Neues zu berichten. not_available: Dieses Widget ist nicht verfügbar. diff --git a/modules/grids/config/locales/crowdin/el.yml b/modules/grids/config/locales/crowdin/el.yml index 051346113341..87d75ebf2a62 100644 --- a/modules/grids/config/locales/crowdin/el.yml +++ b/modules/grids/config/locales/crowdin/el.yml @@ -31,7 +31,7 @@ el: title: Members view_all_members: Δείτε όλα τα μέλη x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Τίποτα νέο για αναφορά. diff --git a/modules/grids/config/locales/crowdin/eo.yml b/modules/grids/config/locales/crowdin/eo.yml index 258d1a99c01d..262c257c0386 100644 --- a/modules/grids/config/locales/crowdin/eo.yml +++ b/modules/grids/config/locales/crowdin/eo.yml @@ -31,7 +31,7 @@ eo: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/es.yml b/modules/grids/config/locales/crowdin/es.yml index 1d59f335a9e0..a3806b5ee7fb 100644 --- a/modules/grids/config/locales/crowdin/es.yml +++ b/modules/grids/config/locales/crowdin/es.yml @@ -31,8 +31,8 @@ es: title: Miembros view_all_members: Ver todos los miembros x_more: - one: y un miembro más. - other: y %{count} miembros más. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Nada nuevo sobre lo que informar. not_available: Este widget no está disponible. diff --git a/modules/grids/config/locales/crowdin/et.yml b/modules/grids/config/locales/crowdin/et.yml index e927f9b8c4e5..c55c46308470 100644 --- a/modules/grids/config/locales/crowdin/et.yml +++ b/modules/grids/config/locales/crowdin/et.yml @@ -31,7 +31,7 @@ et: title: Members view_all_members: Vaata kõiki liikmeid x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/eu.yml b/modules/grids/config/locales/crowdin/eu.yml index 39d1c3f8e4cc..e5d0fa011925 100644 --- a/modules/grids/config/locales/crowdin/eu.yml +++ b/modules/grids/config/locales/crowdin/eu.yml @@ -31,7 +31,7 @@ eu: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/fa.yml b/modules/grids/config/locales/crowdin/fa.yml index 3f6f658e6385..f59cddd75fe4 100644 --- a/modules/grids/config/locales/crowdin/fa.yml +++ b/modules/grids/config/locales/crowdin/fa.yml @@ -31,8 +31,8 @@ fa: title: اعضا view_all_members: مشاهده همه اعضا x_more: - one: و یک عضو دیگر. - other: و %{count} عضو دیگر. + one: and %{count} more member. + other: and %{count} more members. news: no_results: مورد جدیدی برای گزارش وجود ندارد. not_available: این ویجت در دسترس نیست. diff --git a/modules/grids/config/locales/crowdin/fi.yml b/modules/grids/config/locales/crowdin/fi.yml index 70391266d3e2..6d1e4493ee4b 100644 --- a/modules/grids/config/locales/crowdin/fi.yml +++ b/modules/grids/config/locales/crowdin/fi.yml @@ -31,7 +31,7 @@ fi: title: Members view_all_members: Näytä kaikki jäsenet x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Ei mitään uutta raportoitavaksi. diff --git a/modules/grids/config/locales/crowdin/fil.yml b/modules/grids/config/locales/crowdin/fil.yml index f92a5685ce90..8b414c06e702 100644 --- a/modules/grids/config/locales/crowdin/fil.yml +++ b/modules/grids/config/locales/crowdin/fil.yml @@ -31,7 +31,7 @@ fil: title: Members view_all_members: Tingnan ang lahat na mga miyembro x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Walang bago para ireport. diff --git a/modules/grids/config/locales/crowdin/fr.yml b/modules/grids/config/locales/crowdin/fr.yml index 2b21384255bc..a236345aa954 100644 --- a/modules/grids/config/locales/crowdin/fr.yml +++ b/modules/grids/config/locales/crowdin/fr.yml @@ -31,8 +31,8 @@ fr: title: Membres view_all_members: Afficher tous les membres x_more: - one: et un membre supplémentaire. - other: et %{count} membres supplémentaires. + one: et %{count} un nouveau membre. + other: et %{count} d'autres membres. news: no_results: Rien de nouveau à signaler. not_available: Ce widget n'est pas disponible. diff --git a/modules/grids/config/locales/crowdin/he.yml b/modules/grids/config/locales/crowdin/he.yml index 20358fd460eb..93aa0aabde8b 100644 --- a/modules/grids/config/locales/crowdin/he.yml +++ b/modules/grids/config/locales/crowdin/he.yml @@ -33,7 +33,7 @@ he: title: Members view_all_members: הצגת כל החברים x_more: - one: and one more member. + one: and %{count} more member. two: and %{count} more members. other: and %{count} more members. news: diff --git a/modules/grids/config/locales/crowdin/hi.yml b/modules/grids/config/locales/crowdin/hi.yml index 1038773cb54d..f8dd941e0c97 100644 --- a/modules/grids/config/locales/crowdin/hi.yml +++ b/modules/grids/config/locales/crowdin/hi.yml @@ -31,7 +31,7 @@ hi: title: Members view_all_members: सभी सदस्य देखें x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/hr.yml b/modules/grids/config/locales/crowdin/hr.yml index a6e674ff6d1e..7d2fb77cb0e3 100644 --- a/modules/grids/config/locales/crowdin/hr.yml +++ b/modules/grids/config/locales/crowdin/hr.yml @@ -33,7 +33,7 @@ hr: title: Members view_all_members: Pogledaj sve članove x_more: - one: and one more member. + one: and %{count} more member. few: and %{count} more members. other: and %{count} more members. news: diff --git a/modules/grids/config/locales/crowdin/hu.yml b/modules/grids/config/locales/crowdin/hu.yml index 6c0177a2f636..7cfd6a9e5e2f 100644 --- a/modules/grids/config/locales/crowdin/hu.yml +++ b/modules/grids/config/locales/crowdin/hu.yml @@ -31,7 +31,7 @@ hu: title: Tagok view_all_members: Az összes tag megtekintése x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Semmi új jelenteni való. diff --git a/modules/grids/config/locales/crowdin/hy.yml b/modules/grids/config/locales/crowdin/hy.yml index 786e23bdffef..8bbab541da9f 100644 --- a/modules/grids/config/locales/crowdin/hy.yml +++ b/modules/grids/config/locales/crowdin/hy.yml @@ -31,8 +31,8 @@ hy: title: Անդամներ view_all_members: Դիտել բոլոր անդամներին x_more: - one: և ևս մեկ անդամ։ - other: և ևս %{count} անդամ։ + one: and %{count} more member. + other: and %{count} more members. news: no_results: Նոր նորություններ չկան։ not_available: Այս վիջեթը հասանելի չէ։ diff --git a/modules/grids/config/locales/crowdin/id.yml b/modules/grids/config/locales/crowdin/id.yml index 1f7714fa8aad..e4c943d95cc3 100644 --- a/modules/grids/config/locales/crowdin/id.yml +++ b/modules/grids/config/locales/crowdin/id.yml @@ -29,7 +29,7 @@ id: title: Anggota view_all_members: View all members x_more: - other: dan %{count} anggota lainnya. + other: and %{count} more members. news: no_results: Nothing new to report. not_available: Widget ini tidak tersedia. diff --git a/modules/grids/config/locales/crowdin/it.yml b/modules/grids/config/locales/crowdin/it.yml index 26554128022f..8aa51ff0816e 100644 --- a/modules/grids/config/locales/crowdin/it.yml +++ b/modules/grids/config/locales/crowdin/it.yml @@ -31,8 +31,8 @@ it: title: Membri view_all_members: Visualizza tutti i membri x_more: - one: e un altro membro. - other: e altri %{count} membri. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Niente di nuovo da segnalare. not_available: Questo widget non è disponibile. diff --git a/modules/grids/config/locales/crowdin/ja.yml b/modules/grids/config/locales/crowdin/ja.yml index 42663587d3f4..aed587c0391f 100644 --- a/modules/grids/config/locales/crowdin/ja.yml +++ b/modules/grids/config/locales/crowdin/ja.yml @@ -29,7 +29,7 @@ ja: title: 会員 view_all_members: すべてのメンバーを表示 x_more: - other: と %{count}。 + other: and %{count} more members. news: no_results: 新しい報告はありません。 not_available: このウィジェットは使用できません。 diff --git a/modules/grids/config/locales/crowdin/ka.yml b/modules/grids/config/locales/crowdin/ka.yml index 127128bb075c..65aa8621d32f 100644 --- a/modules/grids/config/locales/crowdin/ka.yml +++ b/modules/grids/config/locales/crowdin/ka.yml @@ -31,7 +31,7 @@ ka: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/kk.yml b/modules/grids/config/locales/crowdin/kk.yml index d118191a9a15..64be2ba6380c 100644 --- a/modules/grids/config/locales/crowdin/kk.yml +++ b/modules/grids/config/locales/crowdin/kk.yml @@ -31,7 +31,7 @@ kk: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/ko.yml b/modules/grids/config/locales/crowdin/ko.yml index 42f400db16eb..467a86c5e04d 100644 --- a/modules/grids/config/locales/crowdin/ko.yml +++ b/modules/grids/config/locales/crowdin/ko.yml @@ -29,7 +29,7 @@ ko: title: 멤버 view_all_members: 모든 회원 보기 x_more: - other: 및 기타 멤버 %{count}명. + other: and %{count} more members. news: no_results: 새로 보고할 것이 없음 not_available: 이 위젯은 사용할 수 없습니다. diff --git a/modules/grids/config/locales/crowdin/li.yml b/modules/grids/config/locales/crowdin/li.yml index fd1a5b764afb..13766dd0d7a4 100644 --- a/modules/grids/config/locales/crowdin/li.yml +++ b/modules/grids/config/locales/crowdin/li.yml @@ -31,7 +31,7 @@ li: title: Leeje view_all_members: Bekiek alle leeje x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/lt.yml b/modules/grids/config/locales/crowdin/lt.yml index 93212181743e..25a39c77e178 100644 --- a/modules/grids/config/locales/crowdin/lt.yml +++ b/modules/grids/config/locales/crowdin/lt.yml @@ -35,7 +35,7 @@ lt: title: Members view_all_members: Rodyti visus narius x_more: - one: and one more member. + one: and %{count} more member. few: and %{count} more members. many: and %{count} more members. other: and %{count} more members. diff --git a/modules/grids/config/locales/crowdin/lv.yml b/modules/grids/config/locales/crowdin/lv.yml index 0206f090b800..f606a93ea046 100644 --- a/modules/grids/config/locales/crowdin/lv.yml +++ b/modules/grids/config/locales/crowdin/lv.yml @@ -34,7 +34,7 @@ lv: view_all_members: Apskatīt visus x_more: zero: and %{count} more members. - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nav jaunu ziņojumu. diff --git a/modules/grids/config/locales/crowdin/mn.yml b/modules/grids/config/locales/crowdin/mn.yml index cbe88155bb4e..eed7c82f82d7 100644 --- a/modules/grids/config/locales/crowdin/mn.yml +++ b/modules/grids/config/locales/crowdin/mn.yml @@ -31,7 +31,7 @@ mn: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/ne.yml b/modules/grids/config/locales/crowdin/ne.yml index a13fc284ae73..1e862fc3a697 100644 --- a/modules/grids/config/locales/crowdin/ne.yml +++ b/modules/grids/config/locales/crowdin/ne.yml @@ -31,7 +31,7 @@ ne: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/nl.yml b/modules/grids/config/locales/crowdin/nl.yml index 480e0a9b0893..1f78bade7a18 100644 --- a/modules/grids/config/locales/crowdin/nl.yml +++ b/modules/grids/config/locales/crowdin/nl.yml @@ -31,7 +31,7 @@ nl: title: Leden view_all_members: Alle leden bekijken x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Niets nieuws om te rapporteren. diff --git a/modules/grids/config/locales/crowdin/no.yml b/modules/grids/config/locales/crowdin/no.yml index b202520b9881..d8e97d060851 100644 --- a/modules/grids/config/locales/crowdin/no.yml +++ b/modules/grids/config/locales/crowdin/no.yml @@ -31,7 +31,7 @@ title: Members view_all_members: Vis alle medlemmer x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Ingenting nytt å rapportere. diff --git a/modules/grids/config/locales/crowdin/pl.yml b/modules/grids/config/locales/crowdin/pl.yml index c51c63e7760c..34b4d38bab88 100644 --- a/modules/grids/config/locales/crowdin/pl.yml +++ b/modules/grids/config/locales/crowdin/pl.yml @@ -35,10 +35,10 @@ pl: title: Członkowie view_all_members: Zobacz wszystkich członków x_more: - one: i jeszcze jeden członek. - few: i jeszcze %{count} członków. - many: i jeszcze %{count} członków. - other: i jeszcze %{count} członka. + one: and %{count} more member. + few: and %{count} more members. + many: and %{count} more members. + other: and %{count} more members. news: no_results: Utwórz nowy raport. not_available: Ten widżet jest niedostępny. diff --git a/modules/grids/config/locales/crowdin/pt-BR.yml b/modules/grids/config/locales/crowdin/pt-BR.yml index 5f9550c74273..c020bed46aa3 100644 --- a/modules/grids/config/locales/crowdin/pt-BR.yml +++ b/modules/grids/config/locales/crowdin/pt-BR.yml @@ -31,8 +31,8 @@ pt-BR: title: Membros view_all_members: Visualizar todos os membros x_more: - one: e mais um membro. - other: e mais %{count} membros. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Nada de novo para relatar. not_available: Este widget não está disponível. diff --git a/modules/grids/config/locales/crowdin/pt-PT.yml b/modules/grids/config/locales/crowdin/pt-PT.yml index ef0a1879b01e..f591f08fe276 100644 --- a/modules/grids/config/locales/crowdin/pt-PT.yml +++ b/modules/grids/config/locales/crowdin/pt-PT.yml @@ -31,8 +31,8 @@ pt-PT: title: Membros view_all_members: Ver todos os membros x_more: - one: e mais um membro. - other: e mais %{count} membros. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Não há novidades a reportar. not_available: Este widget não está disponível. diff --git a/modules/grids/config/locales/crowdin/ro.yml b/modules/grids/config/locales/crowdin/ro.yml index 6409592f9cd3..976b4a1b6acb 100644 --- a/modules/grids/config/locales/crowdin/ro.yml +++ b/modules/grids/config/locales/crowdin/ro.yml @@ -33,9 +33,9 @@ ro: title: Membri view_all_members: Vizualizează toți participanții x_more: - one: şi încă un membru. - few: şi încă %{count} membrii. - other: şi încă %{count} membrii. + one: and %{count} more member. + few: and %{count} more members. + other: and %{count} more members. news: no_results: Nimic nou de raportat. not_available: Acest widget nu este disponibil. diff --git a/modules/grids/config/locales/crowdin/ru.yml b/modules/grids/config/locales/crowdin/ru.yml index 4465237bd382..bd9cfd886897 100644 --- a/modules/grids/config/locales/crowdin/ru.yml +++ b/modules/grids/config/locales/crowdin/ru.yml @@ -35,10 +35,10 @@ ru: title: Участники view_all_members: Просмотреть всех участников x_more: - one: и еще один участник. - few: и еще %{count} участника. - many: и еще %{count} участников. - other: и еще %{count} участников. + one: and %{count} more member. + few: and %{count} more members. + many: and %{count} more members. + other: and %{count} more members. news: no_results: Ничего нового для отчета. not_available: Этот виджет недоступен. diff --git a/modules/grids/config/locales/crowdin/rw.yml b/modules/grids/config/locales/crowdin/rw.yml index f073823eb03a..7b02de14b813 100644 --- a/modules/grids/config/locales/crowdin/rw.yml +++ b/modules/grids/config/locales/crowdin/rw.yml @@ -31,7 +31,7 @@ rw: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/si.yml b/modules/grids/config/locales/crowdin/si.yml index 53e417df9d05..35da14fdf865 100644 --- a/modules/grids/config/locales/crowdin/si.yml +++ b/modules/grids/config/locales/crowdin/si.yml @@ -31,7 +31,7 @@ si: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/sk.yml b/modules/grids/config/locales/crowdin/sk.yml index 9d4a7b3fbd7d..03d3c767639d 100644 --- a/modules/grids/config/locales/crowdin/sk.yml +++ b/modules/grids/config/locales/crowdin/sk.yml @@ -35,7 +35,7 @@ sk: title: Members view_all_members: Zobraziť všetkých členov x_more: - one: and one more member. + one: and %{count} more member. few: and %{count} more members. many: and %{count} more members. other: and %{count} more members. diff --git a/modules/grids/config/locales/crowdin/sl.yml b/modules/grids/config/locales/crowdin/sl.yml index 7c20985df38c..d475b049e3e2 100644 --- a/modules/grids/config/locales/crowdin/sl.yml +++ b/modules/grids/config/locales/crowdin/sl.yml @@ -35,7 +35,7 @@ sl: title: Members view_all_members: Poglej vse člane x_more: - one: and one more member. + one: and %{count} more member. two: and %{count} more members. few: and %{count} more members. other: and %{count} more members. diff --git a/modules/grids/config/locales/crowdin/sr.yml b/modules/grids/config/locales/crowdin/sr.yml index 9fbc773d51e9..17366bdea4b7 100644 --- a/modules/grids/config/locales/crowdin/sr.yml +++ b/modules/grids/config/locales/crowdin/sr.yml @@ -33,7 +33,7 @@ sr: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. few: and %{count} more members. other: and %{count} more members. news: diff --git a/modules/grids/config/locales/crowdin/sv.yml b/modules/grids/config/locales/crowdin/sv.yml index a7f8b7e8d50a..daaec405cc36 100644 --- a/modules/grids/config/locales/crowdin/sv.yml +++ b/modules/grids/config/locales/crowdin/sv.yml @@ -31,8 +31,8 @@ sv: title: Medlemmar view_all_members: Visa alla medlemmar x_more: - one: och ytterligare en medlem. - other: och %{count} fler medlemmar. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Inget nytt att rapportera. not_available: Denna widget är inte tillgänglig. diff --git a/modules/grids/config/locales/crowdin/tr.yml b/modules/grids/config/locales/crowdin/tr.yml index d567e870a879..db03b5e52700 100644 --- a/modules/grids/config/locales/crowdin/tr.yml +++ b/modules/grids/config/locales/crowdin/tr.yml @@ -31,8 +31,8 @@ tr: title: Üyeler view_all_members: Tüm üyeleri göster x_more: - one: ve bir üye daha - other: ve %{count} üye daha. + one: and %{count} more member. + other: and %{count} more members. news: no_results: Rapor için yeni birşey bulunamadı. not_available: Bu widget mevcut değil. diff --git a/modules/grids/config/locales/crowdin/uk.yml b/modules/grids/config/locales/crowdin/uk.yml index 4e65935386f9..07f24c764449 100644 --- a/modules/grids/config/locales/crowdin/uk.yml +++ b/modules/grids/config/locales/crowdin/uk.yml @@ -35,10 +35,10 @@ uk: title: Учасники view_all_members: Переглянути всіх учасників x_more: - one: і ще один учасник. - few: і ще %{count} учасники. - many: і ще %{count} учасників. - other: і ще %{count} учасника. + one: and %{count} more member. + few: and %{count} more members. + many: and %{count} more members. + other: and %{count} more members. news: no_results: Нічого нового для звітування. not_available: Цей віджет недоступний. diff --git a/modules/grids/config/locales/crowdin/uz.yml b/modules/grids/config/locales/crowdin/uz.yml index c35ab79c55af..9df35b9ae1d4 100644 --- a/modules/grids/config/locales/crowdin/uz.yml +++ b/modules/grids/config/locales/crowdin/uz.yml @@ -31,7 +31,7 @@ uz: title: Members view_all_members: View all members x_more: - one: and one more member. + one: and %{count} more member. other: and %{count} more members. news: no_results: Nothing new to report. diff --git a/modules/grids/config/locales/crowdin/vi.yml b/modules/grids/config/locales/crowdin/vi.yml index 5f54cdcd4b1e..4802cd094a19 100644 --- a/modules/grids/config/locales/crowdin/vi.yml +++ b/modules/grids/config/locales/crowdin/vi.yml @@ -29,7 +29,7 @@ vi: title: thành viên view_all_members: Xem tất cả thành viên x_more: - other: và %{count} thành viên khác. + other: and %{count} more members. news: no_results: Không có gì mới để báo cáo. not_available: Tiện ích này không có sẵn. diff --git a/modules/grids/config/locales/crowdin/zh-CN.yml b/modules/grids/config/locales/crowdin/zh-CN.yml index 503131149ee3..ed4ee01b5a77 100644 --- a/modules/grids/config/locales/crowdin/zh-CN.yml +++ b/modules/grids/config/locales/crowdin/zh-CN.yml @@ -29,9 +29,7 @@ zh-CN: title: 成员 view_all_members: 查看所有成员 x_more: - other: |- - 以及另外一位成员。 - 以及另外 %{count} 位成员。 + other: and %{count} more members. news: no_results: 没有新消息报告。 not_available: 此微件不可用。 diff --git a/modules/grids/config/locales/crowdin/zh-TW.yml b/modules/grids/config/locales/crowdin/zh-TW.yml index 601919078c3e..523e315e1104 100644 --- a/modules/grids/config/locales/crowdin/zh-TW.yml +++ b/modules/grids/config/locales/crowdin/zh-TW.yml @@ -29,7 +29,7 @@ zh-TW: title: 成員 view_all_members: 檢視成員 x_more: - other: 和 %{count} 更多的成員。 + other: and %{count} more members. news: no_results: 沒有新消息要報告。 not_available: 此小工具無法使用。 diff --git a/modules/ldap_groups/config/locales/crowdin/af.yml b/modules/ldap_groups/config/locales/crowdin/af.yml index 0c209797fa8b..3586ce6307b6 100644 --- a/modules/ldap_groups/config/locales/crowdin/af.yml +++ b/modules/ldap_groups/config/locales/crowdin/af.yml @@ -56,7 +56,7 @@ af: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ af: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ar.yml b/modules/ldap_groups/config/locales/crowdin/ar.yml index ceb34bcf7932..4c1b9b87ae75 100644 --- a/modules/ldap_groups/config/locales/crowdin/ar.yml +++ b/modules/ldap_groups/config/locales/crowdin/ar.yml @@ -64,7 +64,7 @@ ar: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -99,7 +99,7 @@ ar: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/az.yml b/modules/ldap_groups/config/locales/crowdin/az.yml index 423b5e347b66..26aa6f1677f2 100644 --- a/modules/ldap_groups/config/locales/crowdin/az.yml +++ b/modules/ldap_groups/config/locales/crowdin/az.yml @@ -56,7 +56,7 @@ az: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ az: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/be.yml b/modules/ldap_groups/config/locales/crowdin/be.yml index 84a7a6d3be6c..2d0e18f43fe0 100644 --- a/modules/ldap_groups/config/locales/crowdin/be.yml +++ b/modules/ldap_groups/config/locales/crowdin/be.yml @@ -60,7 +60,7 @@ be: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -95,7 +95,7 @@ be: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/bg.yml b/modules/ldap_groups/config/locales/crowdin/bg.yml index 61e9041f0803..76f5a725562e 100644 --- a/modules/ldap_groups/config/locales/crowdin/bg.yml +++ b/modules/ldap_groups/config/locales/crowdin/bg.yml @@ -56,7 +56,7 @@ bg: ' label_n_groups_found: - one: филтъра откри 1 група + one: "%{count} group found by the filter" other: "%{count} група/и, открити от филтъра" zero: Филтърът не откри групи plural: Филтър за синхронизиране на LDAP групи @@ -91,7 +91,7 @@ bg: plural: Synchronized LDAP groups singular: Синхронизирана LDAP група upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ca.yml b/modules/ldap_groups/config/locales/crowdin/ca.yml index 67aac8330551..3bf2a32f1a7c 100644 --- a/modules/ldap_groups/config/locales/crowdin/ca.yml +++ b/modules/ldap_groups/config/locales/crowdin/ca.yml @@ -58,7 +58,7 @@ ca: ' label_n_groups_found: - one: 1 grup trobat a través del filtre + one: "%{count} group found by the filter" other: "%{count} grups trobats a través del filtre" zero: No s'ha trobat cap grup a través del filtre plural: Filtres de sincronització de grup LDAP @@ -93,7 +93,7 @@ ca: plural: Grups LDAP sincronitzats singular: Grup LDAP sincronitzat upsell: - description: Beneficiat de la sincronització de grups LDAP per administrar usuaris, cambiar permisos i facilitar l'administració d'usuaris entre grups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ckb-IR.yml b/modules/ldap_groups/config/locales/crowdin/ckb-IR.yml index 15b5fb6b75e5..878753882180 100644 --- a/modules/ldap_groups/config/locales/crowdin/ckb-IR.yml +++ b/modules/ldap_groups/config/locales/crowdin/ckb-IR.yml @@ -56,7 +56,7 @@ ckb-IR: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ ckb-IR: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/cs.yml b/modules/ldap_groups/config/locales/crowdin/cs.yml index 5983212eb3cf..e69d941f74cd 100644 --- a/modules/ldap_groups/config/locales/crowdin/cs.yml +++ b/modules/ldap_groups/config/locales/crowdin/cs.yml @@ -60,7 +60,7 @@ cs: ' label_n_groups_found: - one: 1 skupina nalezena ve filtru + one: "%{count} group found by the filter" other: "%{count} skupin nalezeno pomocí filtru" zero: Ve filtru nebyly nalezeny žádné skupiny plural: LDAP skupina synchronizační filtry @@ -95,7 +95,7 @@ cs: plural: Synchronizované LDAP skupiny singular: Synchronizovaná LDAP skupina upsell: - description: Využijte synchronizované skupiny LDAP pro správu uživatelů, změnu jejich oprávnění a usnadnění správy uživatelů napříč skupinami. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronizace členství ve skupině LDAP. name: OpenProject LDAP skupiny diff --git a/modules/ldap_groups/config/locales/crowdin/da.yml b/modules/ldap_groups/config/locales/crowdin/da.yml index 5ff4b99f8e27..bc10da0e7c33 100644 --- a/modules/ldap_groups/config/locales/crowdin/da.yml +++ b/modules/ldap_groups/config/locales/crowdin/da.yml @@ -56,7 +56,7 @@ da: ' label_n_groups_found: - one: 1 gruppe fundet af filteret + one: "%{count} gruppe fundet af filteret" other: "%{count} grupper fundet af filteret" zero: Ingen grupper blev fundet af filteret plural: Filtre til synkronisering af LDAP-grupper diff --git a/modules/ldap_groups/config/locales/crowdin/de.yml b/modules/ldap_groups/config/locales/crowdin/de.yml index 34c37cf1f9e6..b1f48a651e48 100644 --- a/modules/ldap_groups/config/locales/crowdin/de.yml +++ b/modules/ldap_groups/config/locales/crowdin/de.yml @@ -56,7 +56,7 @@ de: ' label_n_groups_found: - one: 1 Gruppe vom Filter gefunden + one: "%{count} group found by the filter" other: "%{count} Gruppen vom Filter gefunden" zero: Es wurden keine Gruppen durch den Filter gefunden plural: Synchronisierte LDAP-Filter @@ -91,7 +91,7 @@ de: plural: Synchronisierte LDAP-Gruppen singular: Synchronisierte LDAP-Gruppe upsell: - description: Nutzen Sie synchronisierte LDAP-Gruppen, um Benutzer zu verwalten, ihre Berechtigungen zu ändern und die Benutzerverwaltung über Gruppen hinweg zu vereinfachen. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronisierung von LDAP-Gruppenmitgliedschaften. name: OpenProject LDAP-Gruppen diff --git a/modules/ldap_groups/config/locales/crowdin/el.yml b/modules/ldap_groups/config/locales/crowdin/el.yml index 180b000b5e53..04fdc0d3410f 100644 --- a/modules/ldap_groups/config/locales/crowdin/el.yml +++ b/modules/ldap_groups/config/locales/crowdin/el.yml @@ -56,7 +56,7 @@ el: ' label_n_groups_found: - one: 1 ομάδα που βρέθηκε από το φίλτρο + one: "%{count} group found by the filter" other: "%{count} ομάδες βρέθηκαν από το φίλτρο" zero: Δεν βρέθηκαν ομάδες από το φίλτρο plural: Φίλτρα συγχρονισμού ομάδας LDAP @@ -91,7 +91,7 @@ el: plural: Συγχρονισμένες ομάδες LDAP singular: Συγχρονισμένη ομάδα LDAP upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Συγχρονισμός των μελών ομάδων LDAP. name: Ομάδες LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/eo.yml b/modules/ldap_groups/config/locales/crowdin/eo.yml index f3a8dacbc094..a8d52b39578a 100644 --- a/modules/ldap_groups/config/locales/crowdin/eo.yml +++ b/modules/ldap_groups/config/locales/crowdin/eo.yml @@ -56,7 +56,7 @@ eo: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ eo: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/es.yml b/modules/ldap_groups/config/locales/crowdin/es.yml index d1b35fc7d7a8..aa560533f2c2 100644 --- a/modules/ldap_groups/config/locales/crowdin/es.yml +++ b/modules/ldap_groups/config/locales/crowdin/es.yml @@ -56,7 +56,7 @@ es: ' label_n_groups_found: - one: Se encontró 1 grupo con el filtro + one: "%{count} group found by the filter" other: Se encontraron %{count} grupos con el filtro zero: No se encontraron grupos con el filtro plural: Filtros de sincronización de grupos de LDAP @@ -91,7 +91,7 @@ es: plural: Grupos de LDAP sincronizados singular: Grupo de LDAP sincronizado upsell: - description: Aproveche los grupos LDAP sincronizados para gestionar usuarios, cambiar sus permisos y facilitar la gestión de usuarios entre grupos. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Sincronización de miembros de grupos LDAP. name: Grupos LDAP de OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/et.yml b/modules/ldap_groups/config/locales/crowdin/et.yml index c1471089b947..80af079347ff 100644 --- a/modules/ldap_groups/config/locales/crowdin/et.yml +++ b/modules/ldap_groups/config/locales/crowdin/et.yml @@ -56,7 +56,7 @@ et: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ et: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/eu.yml b/modules/ldap_groups/config/locales/crowdin/eu.yml index daf34395a917..eaa2ef7ca140 100644 --- a/modules/ldap_groups/config/locales/crowdin/eu.yml +++ b/modules/ldap_groups/config/locales/crowdin/eu.yml @@ -56,7 +56,7 @@ eu: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ eu: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/fa.yml b/modules/ldap_groups/config/locales/crowdin/fa.yml index 684db8f565e9..8991e967c8a7 100644 --- a/modules/ldap_groups/config/locales/crowdin/fa.yml +++ b/modules/ldap_groups/config/locales/crowdin/fa.yml @@ -56,7 +56,7 @@ fa: ' label_n_groups_found: - one: یک گروه با این فیلتر یافت شد + one: "%{count} group found by the filter" other: "%{count} با این فیلتر یافت شد" zero: هیچ گروهی با این فیلتر یافت نشد plural: فیلترهای همگام‌سازی گروه LDAP @@ -91,7 +91,7 @@ fa: plural: گروه‌های LDAP همگام‌شده singular: گروه LDAP همگام‌شده upsell: - description: از گروه‌های LDAP همگام‌شده برای مدیریت کاربران، تغییر مجوزهای آن‌ها و ساده‌سازی مدیریت کاربران در میان گروه‌ها استفاده کنید. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: همگام‌سازی عضویت گروه‌های LDAP. name: گروه‌های LDAP در OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/fi.yml b/modules/ldap_groups/config/locales/crowdin/fi.yml index 82f1947b681e..563d50933f22 100644 --- a/modules/ldap_groups/config/locales/crowdin/fi.yml +++ b/modules/ldap_groups/config/locales/crowdin/fi.yml @@ -56,7 +56,7 @@ fi: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ fi: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/fil.yml b/modules/ldap_groups/config/locales/crowdin/fil.yml index a803af369e1a..ee61b0d55cf1 100644 --- a/modules/ldap_groups/config/locales/crowdin/fil.yml +++ b/modules/ldap_groups/config/locales/crowdin/fil.yml @@ -56,7 +56,7 @@ fil: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ fil: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/fr.yml b/modules/ldap_groups/config/locales/crowdin/fr.yml index 9d86d90613d1..a59ae58323b2 100644 --- a/modules/ldap_groups/config/locales/crowdin/fr.yml +++ b/modules/ldap_groups/config/locales/crowdin/fr.yml @@ -56,7 +56,7 @@ fr: ' label_n_groups_found: - one: 1 groupe trouvé par le filtre + one: "%{count} groupe trouvé par le filtre" other: "%{count} groupes trouvés par le filtre" zero: Aucun groupe trouvé par le filtre plural: Filtres de synchronisation des groupes LDAP @@ -89,7 +89,7 @@ fr: plural: Groupes LDAP synchronisés singular: Groupe LDAP synchronisé upsell: - description: Profitez des groupes LDAP synchronisés pour gérer les utilisateurs, modifier leurs autorisations et faciliter leur gestion dans les différents groupes. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronisation des appartenances aux groupes LDAP. name: Groupes LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/he.yml b/modules/ldap_groups/config/locales/crowdin/he.yml index e0d5b934eabb..c27f9c81c559 100644 --- a/modules/ldap_groups/config/locales/crowdin/he.yml +++ b/modules/ldap_groups/config/locales/crowdin/he.yml @@ -58,7 +58,7 @@ he: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -93,7 +93,7 @@ he: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/hi.yml b/modules/ldap_groups/config/locales/crowdin/hi.yml index 62bb56264269..3a864d09cc84 100644 --- a/modules/ldap_groups/config/locales/crowdin/hi.yml +++ b/modules/ldap_groups/config/locales/crowdin/hi.yml @@ -56,7 +56,7 @@ hi: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ hi: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/hr.yml b/modules/ldap_groups/config/locales/crowdin/hr.yml index a765e900841c..74a7b44a287e 100644 --- a/modules/ldap_groups/config/locales/crowdin/hr.yml +++ b/modules/ldap_groups/config/locales/crowdin/hr.yml @@ -58,7 +58,7 @@ hr: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -93,7 +93,7 @@ hr: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/hu.yml b/modules/ldap_groups/config/locales/crowdin/hu.yml index 004d2d8e3f92..b52a31d7d8e3 100644 --- a/modules/ldap_groups/config/locales/crowdin/hu.yml +++ b/modules/ldap_groups/config/locales/crowdin/hu.yml @@ -66,9 +66,7 @@ hu: ' label_n_groups_found: - one: '1 csoportot talált a szűrő - - ' + one: "%{count} group found by the filter" other: "%{count} csoportot talált a szűrő" zero: A szűrő nem talált csoportokat plural: LDAP csoport szinkronizációs szűrő @@ -105,7 +103,7 @@ hu: plural: Szinkronizált LDAP csoportok singular: Szinkronizált LDAP csoport upsell: - description: Használja ki a szinkronizált LDAP-csoportok előnyeit a felhasználók kezeléséhez, az engedélyeik módosításához és a csoportok közötti felhasználói kezelés megkönnyítéséhez. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Az LDAP-csoporttagságok szinkronizálása. name: OpenProject LDAP-csoportok diff --git a/modules/ldap_groups/config/locales/crowdin/hy.yml b/modules/ldap_groups/config/locales/crowdin/hy.yml index 829a072f0543..f46a1f185e93 100644 --- a/modules/ldap_groups/config/locales/crowdin/hy.yml +++ b/modules/ldap_groups/config/locales/crowdin/hy.yml @@ -56,7 +56,7 @@ hy: ' label_n_groups_found: - one: Զտիչով գտնվել է 1 խումբ + one: "%{count} group found by the filter" other: Զտիչով գտնվել է %{count} խումբ zero: Զտիչով խմբեր չեն գտնվել plural: LDAP խմբերի համաժամացման զտիչներ @@ -91,7 +91,7 @@ hy: plural: Համաժամացված LDAP խմբեր singular: Համաժամացված LDAP խումբ upsell: - description: Օգտվեք համաժամացված LDAP խմբերի առավելություններից՝ օգտատերերին կառավարելու, նրանց թույլտվությունները փոփոխելու և խմբերի միջև օգտատերերի կառավարումը հեշտացնելու համար։ + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP խմբերի անդամակցությունների համաժամացում։ name: OpenProject LDAP խմբեր diff --git a/modules/ldap_groups/config/locales/crowdin/id.yml b/modules/ldap_groups/config/locales/crowdin/id.yml index c0d386b1ff35..bb2eb36de9b8 100644 --- a/modules/ldap_groups/config/locales/crowdin/id.yml +++ b/modules/ldap_groups/config/locales/crowdin/id.yml @@ -54,7 +54,7 @@ id: ' label_n_groups_found: - one: 1 grup ditemukan oleh filter + one: "%{count} group found by the filter" other: "%{count} grup ditemukan oleh filter" zero: Tidak ada grup yang ditemukan oleh filter plural: Filter sinkronisasi Grup LDAP @@ -89,7 +89,7 @@ id: plural: Grup LDAP tersinkronisasi singular: Grup LDAP tersinkronisasi upsell: - description: Manfaatkan grup LDAP tersinkronisasi untuk mengelola pengguna, mengubah izin mereka, dan memfasilitasi pengelolaan pengguna di seluruh grup. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Sinkronisasi keanggotaan grup LDAP. name: Grup LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/it.yml b/modules/ldap_groups/config/locales/crowdin/it.yml index 0592fa44710e..21fc7911851f 100644 --- a/modules/ldap_groups/config/locales/crowdin/it.yml +++ b/modules/ldap_groups/config/locales/crowdin/it.yml @@ -56,7 +56,7 @@ it: ' label_n_groups_found: - one: 1 gruppo trovato dal filtro + one: "%{count} group found by the filter" other: "%{count} gruppi trovati dal filtro" zero: Nessun gruppo trovato dal filtro plural: Filtri sincronizzazione gruppo LDAP @@ -88,7 +88,7 @@ it: plural: Gruppi LDAP sincronizzati singular: Gruppo LDAP sincronizzato upsell: - description: Sfrutta i gruppi LDAP sincronizzati per gestire gli utenti, modificare le loro autorizzazioni e semplificare la gestione degli utenti tra i gruppi. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Sincronizzazione dei membri del gruppo LDAP. name: Gruppi OpenProject LDAP diff --git a/modules/ldap_groups/config/locales/crowdin/ja.yml b/modules/ldap_groups/config/locales/crowdin/ja.yml index a4bc8f2ac880..61af73370e59 100644 --- a/modules/ldap_groups/config/locales/crowdin/ja.yml +++ b/modules/ldap_groups/config/locales/crowdin/ja.yml @@ -54,7 +54,7 @@ ja: ' label_n_groups_found: - one: フィルタによって1つのグループが見つかりました + one: "%{count} group found by the filter" other: "%{count} グループがフィルターによって見つかりました" zero: このフィルタではグループが見つかりませんでした plural: LDAP グループ同期フィルタ @@ -89,7 +89,7 @@ ja: plural: 同期済 LDAP グループ singular: 同期済 LDAP グループ upsell: - description: 同期化された LDAP グループを活用して、ユーザの管理、権限の変更、グループ間のユーザ管理を容易にします。 + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP グループメンバシップの同期。 name: OpenProject LDAP グループ diff --git a/modules/ldap_groups/config/locales/crowdin/ka.yml b/modules/ldap_groups/config/locales/crowdin/ka.yml index 8163bef2b8d2..6a611058c371 100644 --- a/modules/ldap_groups/config/locales/crowdin/ka.yml +++ b/modules/ldap_groups/config/locales/crowdin/ka.yml @@ -56,7 +56,7 @@ ka: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ ka: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/kk.yml b/modules/ldap_groups/config/locales/crowdin/kk.yml index fd41ac63e02c..502881c0ec58 100644 --- a/modules/ldap_groups/config/locales/crowdin/kk.yml +++ b/modules/ldap_groups/config/locales/crowdin/kk.yml @@ -56,7 +56,7 @@ kk: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ kk: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ko.yml b/modules/ldap_groups/config/locales/crowdin/ko.yml index 05c7ae38b038..1d186e18f78e 100644 --- a/modules/ldap_groups/config/locales/crowdin/ko.yml +++ b/modules/ldap_groups/config/locales/crowdin/ko.yml @@ -54,7 +54,7 @@ ko: ' label_n_groups_found: - one: 필터로 1개 그룹 찾음 + one: "%{count} group found by the filter" other: 필터로 %{count}개 그룹 찾음 zero: 필터로 그룹 찾지 못함 plural: LDAP 그룹 동기화 필터 @@ -89,7 +89,7 @@ ko: plural: 동기화된 LDAP 그룹 singular: 동기화된 LDAP 그룹 upsell: - description: 동기화된 LDAP 그룹을 활용하여 사용자를 관리하고 사용자의 권한을 변경하고 그룹 전체에서 사용자 관리를 용이하게 하세요. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP 그룹 멤버십 동기화. name: OpenProject LDAP 그룹 diff --git a/modules/ldap_groups/config/locales/crowdin/li.yml b/modules/ldap_groups/config/locales/crowdin/li.yml index 70bad9eb1d4a..f39dda317216 100644 --- a/modules/ldap_groups/config/locales/crowdin/li.yml +++ b/modules/ldap_groups/config/locales/crowdin/li.yml @@ -56,7 +56,7 @@ li: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP groep synchronisatie filters @@ -91,7 +91,7 @@ li: plural: Gesynchroniseerde LDAP groepe singular: Gesynchroniseerde LDAP groep upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronisatie van LDAP groep leeje. name: OpenProject LDAP groepe diff --git a/modules/ldap_groups/config/locales/crowdin/lt.yml b/modules/ldap_groups/config/locales/crowdin/lt.yml index b902df2ef310..a5cf98a3858d 100644 --- a/modules/ldap_groups/config/locales/crowdin/lt.yml +++ b/modules/ldap_groups/config/locales/crowdin/lt.yml @@ -60,7 +60,7 @@ lt: ' label_n_groups_found: - one: 1 grupė rasta pagal filtrą + one: "%{count} group found by the filter" other: "%{count} grupės rastos pagal filtrą" zero: Nei vienos grupės nerasta pagal filtrą plural: LDAP grupių sinchronizavimo filtrai @@ -95,7 +95,7 @@ lt: plural: Sinchronizuotos LDAP grupės singular: Sinchronizuota LDAP grupė upsell: - description: Pasinaudokite sinchronizuotomis LDAP grupėmis naudotojų tvarkymui, jų teisių keitimui ir tarpgrupiniam naudotjų valdymui. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP grupių narysčių sinchronizavimas. name: OpenProject LDAP grupės diff --git a/modules/ldap_groups/config/locales/crowdin/lv.yml b/modules/ldap_groups/config/locales/crowdin/lv.yml index 2c38f0354745..8c8d87c01537 100644 --- a/modules/ldap_groups/config/locales/crowdin/lv.yml +++ b/modules/ldap_groups/config/locales/crowdin/lv.yml @@ -58,7 +58,7 @@ lv: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -93,7 +93,7 @@ lv: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/mn.yml b/modules/ldap_groups/config/locales/crowdin/mn.yml index 3192a8e20a9a..de329416165e 100644 --- a/modules/ldap_groups/config/locales/crowdin/mn.yml +++ b/modules/ldap_groups/config/locales/crowdin/mn.yml @@ -56,7 +56,7 @@ mn: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ mn: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ms.yml b/modules/ldap_groups/config/locales/crowdin/ms.yml index 0be9a3e3066c..9e07ebfd3a76 100644 --- a/modules/ldap_groups/config/locales/crowdin/ms.yml +++ b/modules/ldap_groups/config/locales/crowdin/ms.yml @@ -54,7 +54,7 @@ ms: ' label_n_groups_found: - one: 1 kumpulan ditemui penyaring + one: "%{count} group found by the filter" other: "%{count} kumpulan ditemui penyaring" zero: Tiada kumpulan yang ditemui penyaring plural: Penyaring sinkronisasi Kumpulan LDAP @@ -89,7 +89,7 @@ ms: plural: Kumpulan-kumpulan LDAP yang diselaraskan singular: Kumpulan LDAP yang diselaraskan upsell: - description: Manfaatkan kumpulan LDAP yang diselaraskan untuk mengurus pengguna-pengguna, menukar kebenaran mereka dan memudahkan pengurusan pengguna di kalangan kumpulan. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Penyelarasan keahlian kumpulan LDAP name: Kumpulan LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/ne.yml b/modules/ldap_groups/config/locales/crowdin/ne.yml index e02ba9a0a0d8..c1678450911e 100644 --- a/modules/ldap_groups/config/locales/crowdin/ne.yml +++ b/modules/ldap_groups/config/locales/crowdin/ne.yml @@ -56,7 +56,7 @@ ne: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ ne: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/nl.yml b/modules/ldap_groups/config/locales/crowdin/nl.yml index c70697bed5f0..ca9a913d9e64 100644 --- a/modules/ldap_groups/config/locales/crowdin/nl.yml +++ b/modules/ldap_groups/config/locales/crowdin/nl.yml @@ -56,7 +56,7 @@ nl: ' label_n_groups_found: - one: 1 groep gevonden door het filter + one: "%{count} group found by the filter" other: "%{count} groepen gevonden door het filter" zero: Er zijn geen groepen gevonden door het filter plural: LDAP-groep synchronisatie filters @@ -91,7 +91,7 @@ nl: plural: Gesynchroniseerde LDAP groepen singular: Gesynchroniseerde LDAP groep upsell: - description: Profiteer van gesynchroniseerde LDAP-groepen om gebruikers te beheren, wijzig hun rechten en faciliteer gebruikersbeheer over groepen. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/no.yml b/modules/ldap_groups/config/locales/crowdin/no.yml index 99a0fe703d11..70034a9f4535 100644 --- a/modules/ldap_groups/config/locales/crowdin/no.yml +++ b/modules/ldap_groups/config/locales/crowdin/no.yml @@ -56,7 +56,7 @@ ' label_n_groups_found: - one: 1 gruppe funnet av filteret + one: "%{count} group found by the filter" other: "%{count} grupper funnet av filteret" zero: Ingen grupper ble funnet av filteret plural: Synkroniseringsfilter for LDAP-gruppe @@ -91,7 +91,7 @@ plural: Synkroniserte LDAP-grupper singular: Synkronisert LDAP-gruppe upsell: - description: Benytt deg av synkroniserte LDAP-grupper for å administrere brukere, endre deres rettigheter og lette brukeradministrasjon på tvers av grupper. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synkronisering av LDAP gruppe medlemskap. name: OpenProject LDAP-grupper diff --git a/modules/ldap_groups/config/locales/crowdin/pl.yml b/modules/ldap_groups/config/locales/crowdin/pl.yml index e67783c96d3c..8e690b635f71 100644 --- a/modules/ldap_groups/config/locales/crowdin/pl.yml +++ b/modules/ldap_groups/config/locales/crowdin/pl.yml @@ -60,7 +60,7 @@ pl: ' label_n_groups_found: - one: 1 grupa znaleziona przy użyciu filtru + one: "%{count} group found by the filter" other: 'Liczba grup znalezionych przy użyciu filtru: %{count}' zero: Przy użyciu filtra nie znaleziono żadnych grup! plural: Filtry synchronizacji grupy LDAP @@ -95,7 +95,7 @@ pl: plural: Synchronizowane grupy LDAP singular: Synchronizowana grupa LDAP upsell: - description: Wykorzystaj zsynchronizowane grupy LDAP, aby zarządzać użytkownikami, zmieniać ich uprawnienia lub ułatwiać zarządzanie użytkownikami w różnych grupach. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronizacja członkostwa grupy LDAP. name: OpenProject Grupy LDAP diff --git a/modules/ldap_groups/config/locales/crowdin/pt-BR.yml b/modules/ldap_groups/config/locales/crowdin/pt-BR.yml index 3a1a0868c000..1dba441df9e9 100644 --- a/modules/ldap_groups/config/locales/crowdin/pt-BR.yml +++ b/modules/ldap_groups/config/locales/crowdin/pt-BR.yml @@ -56,7 +56,7 @@ pt-BR: ' label_n_groups_found: - one: 1 grupo encontrado pelo filtro + one: "%{count} group found by the filter" other: "%{count} grupos encontrados pelo filtro" zero: Nenhum grupo encontrado pelo filtro plural: Filtros de sincronização de grupo LDAP @@ -91,7 +91,7 @@ pt-BR: plural: Grupos LDAP sincronizados singular: Grupo LDAP sincronizado upsell: - description: Aproveite os grupos LDAP sincronizados para gerenciar usuários, alterar suas permissões e facilitar a gestão de usuários entre grupos. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Sincronização de associações de grupos LDAP. name: Grupos LDAP do OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/pt-PT.yml b/modules/ldap_groups/config/locales/crowdin/pt-PT.yml index fc92295310f6..93809b0062db 100644 --- a/modules/ldap_groups/config/locales/crowdin/pt-PT.yml +++ b/modules/ldap_groups/config/locales/crowdin/pt-PT.yml @@ -56,7 +56,7 @@ pt-PT: ' label_n_groups_found: - one: 1 grupo encontrado pelo filtro + one: "%{count} group found by the filter" other: "%{count} grupos encontrados pelo filtro" zero: Não foram encontrados grupos pelo filtro plural: Filtros de sincronização de grupo LDAP @@ -91,7 +91,7 @@ pt-PT: plural: Grupos LDAP sincronizados singular: Grupo LDAP sincronizado upsell: - description: Aproveite os grupos LDAP sincronizados para gerir utilizadores, alterar as suas permissões e facilitar a gestão de utilizadores entre grupos. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Sincronização de associações de grupos LDAP. name: Grupos LDAP do OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/ro.yml b/modules/ldap_groups/config/locales/crowdin/ro.yml index e172865e235e..38b8c8c10e0b 100644 --- a/modules/ldap_groups/config/locales/crowdin/ro.yml +++ b/modules/ldap_groups/config/locales/crowdin/ro.yml @@ -58,7 +58,7 @@ ro: ' label_n_groups_found: - one: 1 grup găsit de filtru + one: "%{count} group found by the filter" other: "%{count} grupuri găsite de filtru" zero: Nu au fost găsite grupuri prin filtru plural: Filtre de sincronizare a grupurilor LDAP @@ -93,7 +93,7 @@ ro: plural: Grupuri LDAP sincronizate singular: Grup LDAP sincronizat upsell: - description: Profită de grupurile LDAP sincronizate pentru a gestiona utilizatorii, a le modifica permisiunile și a facilita gestionarea utilizatorilor între grupuri. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/ru.yml b/modules/ldap_groups/config/locales/crowdin/ru.yml index 8adebd8f039f..bae1f3e735dc 100644 --- a/modules/ldap_groups/config/locales/crowdin/ru.yml +++ b/modules/ldap_groups/config/locales/crowdin/ru.yml @@ -60,7 +60,7 @@ ru: ' label_n_groups_found: - one: 1 группа найдена по фильтру + one: "%{count} group found by the filter" other: Найдено %{count} групп по фильтру zero: Группы не были найдены фильтром plural: Фильтры синхронизации группы LDAP @@ -95,7 +95,7 @@ ru: plural: Синхронизированные LDAP-группы singular: Синхронизированная группа LDAP upsell: - description: Воспользуйтесь преимуществами синхронизированных групп LDAP для управления пользователями, изменения их прав и облегчения управления пользователями в разных группах. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Синхронизация членства в LDAP группах. name: OpenProject LDAP группы diff --git a/modules/ldap_groups/config/locales/crowdin/rw.yml b/modules/ldap_groups/config/locales/crowdin/rw.yml index 995d74c212dc..11c11982f2f3 100644 --- a/modules/ldap_groups/config/locales/crowdin/rw.yml +++ b/modules/ldap_groups/config/locales/crowdin/rw.yml @@ -56,7 +56,7 @@ rw: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ rw: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/si.yml b/modules/ldap_groups/config/locales/crowdin/si.yml index e059db117bb3..f1a1eceac851 100644 --- a/modules/ldap_groups/config/locales/crowdin/si.yml +++ b/modules/ldap_groups/config/locales/crowdin/si.yml @@ -56,7 +56,7 @@ si: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ si: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/sk.yml b/modules/ldap_groups/config/locales/crowdin/sk.yml index 083fbf64e7ef..2d6be618d196 100644 --- a/modules/ldap_groups/config/locales/crowdin/sk.yml +++ b/modules/ldap_groups/config/locales/crowdin/sk.yml @@ -60,7 +60,7 @@ sk: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -95,7 +95,7 @@ sk: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/sl.yml b/modules/ldap_groups/config/locales/crowdin/sl.yml index 652469c6f790..931593402628 100644 --- a/modules/ldap_groups/config/locales/crowdin/sl.yml +++ b/modules/ldap_groups/config/locales/crowdin/sl.yml @@ -70,7 +70,7 @@ sl: ' label_n_groups_found: - one: Filter je našel 1 skupino + one: "%{count} group found by the filter" other: "%{count} skupine, ki jih je našel filter" zero: Filter ni našel nobenih skupin plural: Sinhronizacijski filter skupine LDAP @@ -107,7 +107,7 @@ sl: ' singular: sinhronizacija LDAP skupine upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/sr.yml b/modules/ldap_groups/config/locales/crowdin/sr.yml index d3103e758e51..8c9628ffd659 100644 --- a/modules/ldap_groups/config/locales/crowdin/sr.yml +++ b/modules/ldap_groups/config/locales/crowdin/sr.yml @@ -58,7 +58,7 @@ sr: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -93,7 +93,7 @@ sr: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/sv.yml b/modules/ldap_groups/config/locales/crowdin/sv.yml index 43ed5807b705..efd6d2296fac 100644 --- a/modules/ldap_groups/config/locales/crowdin/sv.yml +++ b/modules/ldap_groups/config/locales/crowdin/sv.yml @@ -56,7 +56,7 @@ sv: ' label_n_groups_found: - one: 1 grupp hittades av filtret + one: "%{count} group found by the filter" other: "%{count} grupper hittade av filtret" zero: Inga grupper hittades av filtret plural: LDAP-gruppens synkroniseringsfilter @@ -83,7 +83,7 @@ sv: plural: Synkroniserade LDAP-grupper singular: Synkroniserad LDAP-grupp upsell: - description: Dra nytta av synkroniserade LDAP-grupper för att hantera användare, ändra deras behörigheter och underlätta användarhantering mellan grupper. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synkronisering av LDAP-gruppmedlemskap. name: OpenProject LDAP-grupper diff --git a/modules/ldap_groups/config/locales/crowdin/th.yml b/modules/ldap_groups/config/locales/crowdin/th.yml index 2006349ef004..145b756192fe 100644 --- a/modules/ldap_groups/config/locales/crowdin/th.yml +++ b/modules/ldap_groups/config/locales/crowdin/th.yml @@ -54,7 +54,7 @@ th: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -89,7 +89,7 @@ th: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/tr.yml b/modules/ldap_groups/config/locales/crowdin/tr.yml index 9d62df5ce44b..dedec1ed19dc 100644 --- a/modules/ldap_groups/config/locales/crowdin/tr.yml +++ b/modules/ldap_groups/config/locales/crowdin/tr.yml @@ -56,7 +56,7 @@ tr: ' label_n_groups_found: - one: Filtre tarafından 1 grup bulundu + one: "%{count} group found by the filter" other: Filtrede %{count} grup bulundu zero: Filtrede grup bulunamadı plural: LDAP Grubu senkronizasyon filtreleri @@ -91,7 +91,7 @@ tr: plural: Senkronize LDAP grupları singular: Senkronize LDAP grubu upsell: - description: Kullanıcıları yönetmek, izinlerini değiştirmek ve gruplar arasında kullanıcı yönetimini kolaylaştırmak için senkronize LDAP gruplarından yararlanın. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP grup üyeliklerinin senkronizasyonu. name: OpenProject LDAP grupları diff --git a/modules/ldap_groups/config/locales/crowdin/uk.yml b/modules/ldap_groups/config/locales/crowdin/uk.yml index d7946cf083e8..739f36466d9b 100644 --- a/modules/ldap_groups/config/locales/crowdin/uk.yml +++ b/modules/ldap_groups/config/locales/crowdin/uk.yml @@ -60,7 +60,7 @@ uk: ' label_n_groups_found: - one: Знайдено 1 групу за фільтром + one: "%{count} group found by the filter" other: 'Знайдено груп за фільтром: %{count}' zero: Груп за фільтром не знайдено plural: Фільтри синхронізації групи LDAP @@ -94,7 +94,7 @@ uk: plural: Синхронізовані групи LDAP singular: Синхронізована група LDAP upsell: - description: Скористайтеся перевагами синхронізованих LDAP-груп, щоб змінювати дозволи користувачів і спростити керування користувачами, зокрема з різних груп. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Синхронізація членства в LDAP групах. name: Групи LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/uz.yml b/modules/ldap_groups/config/locales/crowdin/uz.yml index 247813154150..572942d6014f 100644 --- a/modules/ldap_groups/config/locales/crowdin/uz.yml +++ b/modules/ldap_groups/config/locales/crowdin/uz.yml @@ -56,7 +56,7 @@ uz: ' label_n_groups_found: - one: 1 group found by the filter + one: "%{count} group found by the filter" other: "%{count} groups found by the filter" zero: No groups were found by the filter plural: LDAP Group synchronization filters @@ -91,7 +91,7 @@ uz: plural: Synchronized LDAP groups singular: Synchronized LDAP group upsell: - description: Take advantage of synchronised LDAP groups to manage users, change their permissions and facilitate user management across groups. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Synchronization of LDAP group memberships. name: OpenProject LDAP groups diff --git a/modules/ldap_groups/config/locales/crowdin/vi.yml b/modules/ldap_groups/config/locales/crowdin/vi.yml index 633e29c2cef3..4635ed9cdb07 100644 --- a/modules/ldap_groups/config/locales/crowdin/vi.yml +++ b/modules/ldap_groups/config/locales/crowdin/vi.yml @@ -54,7 +54,7 @@ vi: ' label_n_groups_found: - one: 1 nhóm được tìm thấy bởi bộ lọc + one: "%{count} group found by the filter" other: "%{count} nhóm được bộ lọc tìm thấy" zero: Không có nhóm nào được bộ lọc tìm thấy plural: Bộ lọc đồng bộ hóa nhóm LDAP @@ -89,7 +89,7 @@ vi: plural: Nhóm LDAP được đồng bộ hóa singular: Nhóm LDAP được đồng bộ hóa upsell: - description: Tận dụng các nhóm LDAP được đồng bộ hóa để quản lý người dùng, thay đổi quyền của họ và tạo điều kiện thuận lợi cho việc quản lý người dùng giữa các nhóm. + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: Đồng bộ hóa tư cách thành viên nhóm LDAP. name: Nhóm LDAP OpenProject diff --git a/modules/ldap_groups/config/locales/crowdin/zh-CN.yml b/modules/ldap_groups/config/locales/crowdin/zh-CN.yml index 4784276ddc78..24e0b00cc682 100644 --- a/modules/ldap_groups/config/locales/crowdin/zh-CN.yml +++ b/modules/ldap_groups/config/locales/crowdin/zh-CN.yml @@ -54,7 +54,7 @@ zh-CN: ' label_n_groups_found: - one: 筛选器找到了 1 个组 + one: "%{count} group found by the filter" other: 筛选器找到了 %{count} 个组 zero: 筛选器未找到组 plural: LDAP 组同步筛选器 @@ -88,7 +88,7 @@ zh-CN: plural: 同步的 LDAP 组 singular: 同步LDAP组 upsell: - description: 利用同步的 LDAP 组来管理用户、更改其权限并促进跨组的用户管理。 + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: - description: LDAP组成员同步。 + description: LDAP 组成员同步。 name: OpenProject LDAP 组 diff --git a/modules/ldap_groups/config/locales/crowdin/zh-TW.yml b/modules/ldap_groups/config/locales/crowdin/zh-TW.yml index 17b605c2499e..af423c17d303 100644 --- a/modules/ldap_groups/config/locales/crowdin/zh-TW.yml +++ b/modules/ldap_groups/config/locales/crowdin/zh-TW.yml @@ -5,7 +5,7 @@ zh-TW: ldap_groups/synchronized_filter: auth_source: 驗證來源 base_dn: 搜尋基礎 DN - filter_string: LDAP篩選條件 + filter_string: 簡約登入目錄制約(LDAP)篩選 group_name_attribute: 群組名字屬性 ldap_auth_source: LDAP 連線 member_lookup_attribute: Group member attribute @@ -54,7 +54,7 @@ zh-TW: ' label_n_groups_found: - one: 篩選條件搜尋到 1 個群組 + one: "%{count} group found by the filter" other: 篩選條件找到 %{count} 個群組 zero: 篩選條件不到任何群組 plural: LDAP群組同步篩選 @@ -89,7 +89,7 @@ zh-TW: plural: LDAP 同步群組 singular: LDAP 同步群組 upsell: - description: 利用 LDAP 同步群組來管理用戶、更改其權限並促進跨群組的用戶管理。 + description: Take advantage of synchronized LDAP groups to manage users, change their permissions and facilitate user management across groups. plugin_openproject_ldap_groups: description: LDAP組成員同步。 name: OpenProject LDAP 群組 diff --git a/modules/llm/config/locales/crowdin/af.yml b/modules/llm/config/locales/crowdin/af.yml new file mode 100644 index 000000000000..f8feef9fbc46 --- /dev/null +++ b/modules/llm/config/locales/crowdin/af.yml @@ -0,0 +1,316 @@ +--- +af: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ar.yml b/modules/llm/config/locales/crowdin/ar.yml new file mode 100644 index 000000000000..44d68ee480da --- /dev/null +++ b/modules/llm/config/locales/crowdin/ar.yml @@ -0,0 +1,316 @@ +--- +ar: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/az.yml b/modules/llm/config/locales/crowdin/az.yml new file mode 100644 index 000000000000..75a72790f434 --- /dev/null +++ b/modules/llm/config/locales/crowdin/az.yml @@ -0,0 +1,316 @@ +--- +az: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/be.yml b/modules/llm/config/locales/crowdin/be.yml new file mode 100644 index 000000000000..81a825d75d83 --- /dev/null +++ b/modules/llm/config/locales/crowdin/be.yml @@ -0,0 +1,316 @@ +--- +be: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/bg.yml b/modules/llm/config/locales/crowdin/bg.yml new file mode 100644 index 000000000000..69bf50dba98f --- /dev/null +++ b/modules/llm/config/locales/crowdin/bg.yml @@ -0,0 +1,316 @@ +--- +bg: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ca.yml b/modules/llm/config/locales/crowdin/ca.yml new file mode 100644 index 000000000000..d8db4415b1cd --- /dev/null +++ b/modules/llm/config/locales/crowdin/ca.yml @@ -0,0 +1,316 @@ +--- +ca: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ckb-IR.yml b/modules/llm/config/locales/crowdin/ckb-IR.yml new file mode 100644 index 000000000000..d5721ac26a9f --- /dev/null +++ b/modules/llm/config/locales/crowdin/ckb-IR.yml @@ -0,0 +1,316 @@ +--- +ckb-IR: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/cs.yml b/modules/llm/config/locales/crowdin/cs.yml new file mode 100644 index 000000000000..40a4e3a02fb1 --- /dev/null +++ b/modules/llm/config/locales/crowdin/cs.yml @@ -0,0 +1,316 @@ +--- +cs: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/da.yml b/modules/llm/config/locales/crowdin/da.yml new file mode 100644 index 000000000000..6fb52f1e756d --- /dev/null +++ b/modules/llm/config/locales/crowdin/da.yml @@ -0,0 +1,316 @@ +--- +da: + activerecord: + attributes: + llm_capability_verdict: + capability: Egenskab + model_id: Model + state: Tilstand + llm_connection: + api_format: API-format + api_key: API-nøgle + base_url: Værtens URL + default_chat_model: Standard-chatmodel + default_embedding_model: Standard-embedding-model + env_fingerprint: Anvendt miljøkonfiguration + env_provisioned_at: Anvendt fra miljøet + llm_features_enabled: Slå LLM'er til for denne installation + llm_feature_binding: + dimensions: Dimensioner + feature_key: Funktion + model: Model + llm_model: + admin_context_window: Kontekstvindue + display_name: Visningsnavn + external: Modelnavn + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: kræver legitimationsoplysninger, som OpenProject ikke kan gemme, fx en separat hemmelig nøgle eller region. + api_key: + invalid_api_key: blev afvist af LLM-serveren. + base: + singleton: Der kan kun være én aktiv LLM-forbindelse. + base_url: + cannot_be_connected_to: kunne ikke nås. Sørg for, at LLM-serveren kører og kan nås fra OpenProject. + models_endpoint_missing: har ingen modelliste på denne adresse, så API-nøglen kunne heller ikke kontrolleres. Tjek URL'en, især at den indeholder segmentet med API-versionen (fx https://example.com/v1). + not_openai_compatible: returnerede ikke en gyldig modelliste. Sørg for, at URL'en peger på et endepunkt, der er kompatibelt med OpenAI's API, inklusive segmentet med API-versionen (fx https://example.com/v1). + request_timed_out: svarede ikke i tide. Sørg for, at LLM-serveren kan nås og ikke er overbelastet. + ssl_error: kunne ikke nås via en sikker forbindelse. Tjek LLM-serverens TLS-certifikat, eller brug en http://-URL, hvis serveren ikke tilbyder TLS. + ssrf_filtered: peger på en blokeret adresse. Hvis LLM-serveren kører på et internt netværk, så tillad dens IP-adresse via miljøvariablen %{env_name}. + custom_headers: + invalid: skal knytte headernavne til værdier i almindelig tekst. + default_chat_model_id: + cannot_chat: er ifølge LLM-serveren en embedding-model og kan ikke bruges til chat. + not_available: tilbydes ikke af den konfigurerede LLM-server. + default_embedding_model_id: + cannot_embed: kan ifølge LLM-serveren ikke danne embeddings. + not_available: tilbydes ikke af den konfigurerede LLM-server. + llm_features_enabled: + requires_connection: kan ikke slås til, før der er konfigureret en forbindelse. + llm_feature_binding: + attributes: + dimensions: + locked: kan ikke ændres, så længe der findes data, der er indekseret med den. Indeksér igen for at ændre den. + not_for_chat_feature: gælder kun funktioner, der danner embeddings. + feature_key: + not_registered: hører ikke til en kendt AI-funktion. + model_id: + locked: kan ikke ændres, så længe der findes data, der er indekseret med den. Indeksér igen for at skifte model. + not_available: tilbydes ikke af den konfigurerede LLM-server. + llm_model: + attributes: + external_id: + conflicting_capabilities: har gemte oplysninger om egenskaber, der er i modstrid med denne models. + admin: + llm_connections: + delete_api_key: + configured_from_env: Forbindelsen er konfigureret via miljøet og kan ikke ændres her. + description: OpenProject holder op med at sende en API-nøgle med forespørgslerne. Funktionerne virker kun fortsat, hvis serveren ikke kræver godkendelse. Du kan til enhver tid angive en ny nøgle. + heading: Vil du fjerne den gemte API-nøgle? + menu_label: Fjern API-nøgle + success: API-nøglen er fjernet. + title: Fjern API-nøgle + disabled_notice: LLM-funktioner er slået fra i denne installation. Slå dem til her først. + disconnect: + configured_from_env: Forbindelsen er konfigureret via miljøet og kan ikke ændres her. + description: OpenProject holder op med at bruge LLM-serveren. AI-funktionerne er ikke tilgængelige, før du forbinder igen. + heading: Vil du afbryde forbindelsen til LLM-serveren? + keeps_bindings: 'Den model, der er valgt til hver funktion, bevares: %{features}.' + keeps_models: Modellisten bevares, også modeller, som du har tilføjet manuelt. + keeps_settings: Endepunktet og API-formatet bevares. Kun den gemte API-nøgle fjernes. + menu_label: Afbryd forbindelse + success: OpenProject har afbrudt forbindelsen til LLM-serveren. + title: Afbryd forbindelse + form: + api_format_caption: Det API, som serveren bruger. Vælg OpenAI for de fleste gateways og selvhostede servere. + api_key_caption: Den nøgle, som OpenProject godkender sig med. Lad feltet stå tomt, hvis serveren ikke kræver godkendelse. + api_key_caption_discarded: Den nøgle, som du angav, blev ikke gemt og vises ikke igen. Angiv den igen for at gemme den, eller lad feltet stå tomt for at beholde den gemte nøgle. + api_key_caption_env: Nøglen kommer fra miljøet. + api_key_caption_stored: Der er gemt en nøgle. Lad feltet stå tomt for at beholde den nuværende nøgle, eller angiv en ny for at erstatte den. + api_key_placeholder_stored: API-nøgle gemt + api_key_remove: Fjern nøgle + base_url_caption: Serverens basis-URL, fx https://example.com/v1. + env_applied: Anvendt fra miljøet %{time}. Ændrede variabler træder i kraft, næste gang startdata indlæses i databasen. + env_changed: Miljøvariablerne er ændret, siden de blev anvendt %{time}. Værdierne nedenfor bruges fortsat, indtil startdata indlæses i databasen igen. + env_pending: Miljøvariabler konfigurerer forbindelsen, men er ikke anvendt endnu. Næste gang startdata indlæses i databasen, erstattes værdierne nedenfor, og siden låses. + label_connecting: Kontakter LLM-serveren… + llm_features_enabled_caption: Når indstillingen er slået fra, holder alle AI-funktioner, der bygger på LLM'er, op med at virke. Forbindelsesindstillingerne bevares. + server_description: Forbind OpenProject med en server, der bruger API'et %{api_format}, så AI-funktionerne kan bruge den. Værtens URL nedenfor afgør, hvilken server det er. + server_group: Server + show: + description: Forbind OpenProject med en LLM-server, så AI-funktionerne kan bruge den. + description_enabled: Når forbindelsen er oprettet, kan du se serverens modeller på fanen [Modeller](models_url). + tabs: + connection: Forbindelse + features: Konfiguration af funktioner + models: Modeller + update: + disabled: Gemt. LLM-funktioner er slået fra i denne installation. + no_models: Gemt, men der er endnu ingen gemte modeller. Enten tilbyder serveren ingen modelliste, eller også mangler endepunktet segmentet med API-versionen (fx /v1). Opdater listen på fanen Modeller. + success: Forbindelsen til LLM-serveren er oprettet. + llm_feature_bindings: + dangling: "%{model} tilbydes ikke længere af LLM-serveren. Funktionen kører ikke, før der er valgt en anden model." + form: + dimensions_caption: Hvor mange tal hver vektor har. Lad feltet stå tomt for at bruge det, som serveren returnerer. + dimensions_caption_probed: Serveren returnerede vektorer med %{dimensions} dimensioner for denne model. Lad feltet stå tomt for at bruge det, som den returnerer ved indeksering. + model_caption_embedding: Der tilbydes kun modeller, der vides at kunne danne embeddings. [Læs mere](docs_url) om modeltyper. + model_caption_ruled_out: Modeller, der vides at mangle en egenskab, som funktionen har brug for, tilbydes ikke. + index: + description: Vælg, hvilken model hver AI-funktion bruger. Funktioner uden et valg bruger standardmodellerne på fanen [Modeller](models_url). + inherit_with_default: Brug standarden (%{model}) + inherit_without_default: Brug standarden (ingen angivet) + locked: "%{model} bruges af indekserede data og kan ikke ændres her. Indeksér igen for at skifte model." + locked_values_heading: Værdier, der er fastlagt af det eksisterende indeks + option_unqualified: "%{model} (kan ikke længere bruges til denne funktion)" + update: + model_incapable: Modellen til %{feature} er gemt, men serveren har netop oplyst, at den ikke understøtter %{capability}. Vælg en anden model, eller angiv egenskaben på modellen, hvis du ved bedre. + success: Modellen til %{feature} er gemt. + llm_health_status: + create: + success: 'Kontrollerne er kørt: %{passed} bestået, %{warnings} advarsler, %{failures} mislykkedes.' + create_health_status_report: + success: Kontrollerne er kørt. + show: + blankslate_description: Kør kontrollerne for at finde ud af, om OpenProject kan nå LLM-serveren, om den accepterer API-nøglen, og om hver AI-funktion har en model, der kan bruges. + blankslate_heading: Forbindelsen er ikke kontrolleret endnu + download: Hent rapport + last_check: Senest kontrolleret %{datetime}. + run_checks: Kør kontroller + running: Kører kontroller... + summary: "%{passed} bestået, %{warnings} advarsler, %{failures} mislykkedes." + title: Driftsstatus + llm_models: + configured_from_env: Miljøet konfigurerer modellen som standard, så den kan ikke fjernes eller omdøbes her. + create: + success: "%{model} er tilføjet." + defaults: + chat_caption: Embedding-modeller tilbydes ikke. + description: Bruges af AI-funktioner, der ikke selv vælger en model. + embedding_caption: Der tilbydes kun modeller, der vides at kunne danne embeddings. [Læs mere](docs_url) om modeltyper. + embedding_none: Ingen model vides at kunne danne embeddings. Hvis du ved, at en model kan, så åbn den i listen nedenfor, og sæt dens type til Embedding-model. + embedding_option_unqualified: "%{model} (vides ikke at kunne danne embeddings)" + heading: Standardmodeller + success: Standardmodellerne er gemt. + destroy: + description: Modellen tilbydes ikke længere til AI-funktioner. + description_bound: Modellen bruges i øjeblikket af %{features}. Disse funktioner holder op med at virke, indtil der er valgt en anden model. + heading: Vil du fjerne %{model}? + success: "%{model} er fjernet." + title: Fjern model + edit: + description: Rediger, hvordan OpenProject bruger modellen. + form: + context_window: Kontekstvindue + context_window_caption: Hvor mange tokens modellen accepterer. Lad feltet stå tomt, hvis du ikke ved det. + context_window_known: Lad feltet stå tomt for at bruge %{value}, %{source}. + display_name_caption: Et valgfrit, letforståeligt navn, der vises i stedet for modellens id. + external_id_caption: Modelnavnet præcis, som serveren forventer det. + model_type: Modeltype + model_type_caption: Chatmodeller besvarer forespørgsler. Embedding-modeller omdanner tekst til vektorer til søgning. [Læs mere](docs_url). + model_type_chat: Chatmodel + model_type_embedding: Embedding-model + model_type_unspecified: Ikke angivet + state_inherited: Arv fra serveren (%{state}) + state_supported: Understøttet + state_unsupported: Ikke understøttet + index: + add_model: Model + blank_description: Serveren oplyste ingen modeller. Opdater listen, når serveren kan nås, eller tilføj en manuelt. + blank_title: Ingen tilgængelige modeller + context_window: Kontekstvindue + description: Oplyst af serveren %{fetched_at}. + description_unfetched: Serveren har endnu ikke returneret en modelliste. Opdater modellerne, når den kan nås. + filter_label: Filtrér modeller + identifier: Model + kind: Type + refresh: Opdater modeller + source: Kilde + source_discovered: Server + source_discovered_description: Oplyst af serveren + source_manual: Manuel + source_manual_description: Tilføjet manuelt af en administrator + source_withdrawn: Trukket tilbage + source_withdrawn_description: Oplyses ikke længere af serveren + stale_warning: Forbindelsesindstillingerne er ændret, siden modellisten sidst blev opdateret, så listen kan være forældet. Opdater modellerne for at være sikker. + new: + description: Angiv navnet på en model, som serveren kan bruge, men ikke annoncerer, og beskriv, hvad den kan. + title: Tilføj en model + refresh: + failure: Modellisten kunne ikke opdateres. Tjek, at LLM-serveren stadig kan nås. + success: Modellisten er opdateret. + update: + success: "%{model} er opdateret." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Værktøjskald + reasoning: + label: Ræsonnering + structured_output: + label: Struktureret output + vision: + label: Billedforståelse + context_window_sources: + registry: det tal, der er offentliggjort for modellen + server: oplyst af serveren + features: + description_assistant: + caption: Omskriver og omstrukturerer arbejdspakkers tekst efter ønske. + label: Beskrivelsesassistent + semantic_search: + caption: Indekserer arbejdspakker, så de kan findes ud fra betydning frem for nøgleord. + label: Semantisk søgning + health_checks: + configuration: + api_format_supported: Endepunktets format kan bruges + base_url_present: Endepunktet er konfigureret + credentials_present: API-nøglen er gemt + enabled: Forbindelsen er slået til + feature_flag: AI-funktioner er slået til + header: Konfiguration + errors: + api_key_missing: Der er ikke gemt nogen API-nøgle. Det er kun korrekt, hvis LLM-serveren ikke kræver godkendelse. + catalogue_never_fetched: Modellisten er aldrig hentet fra serveren. + catalogue_stale: Modellisten blev senest hentet %{fetched_at} og svarer måske ikke længere til det, som serveren tilbyder. + catalogue_stale_settings: Forbindelsesindstillingerne er ændret, siden modellisten sidst blev opdateret. Opdater modellerne på fanen Modeller. + chat_failed: Serveren afviste en forespørgsel til %{model} med status %{status}. + connection_disabled: Forbindelsen er konfigureret, men slået fra, så ingen funktioner bruger den. + connection_error: Serveren kunne ikke nås. Sørg for, at den kører og kan nås fra OpenProject. + default_model_missing: "%{model} tilbydes ikke længere af serveren." + default_model_unset: Der er ikke valgt nogen standardmodel på fanen Modeller, så funktionerne bruger deres eget valg. + empty_completion: "%{model} svarede med en tom besked." + feature_flag_off: Funktionen LLM-forbindelse er slået fra, så forbindelsen bruges ikke endnu. + features_incapable: "%{features} kan ikke køre, fordi den valgte model ikke har: %{capabilities}." + features_model_missing: "%{features} peger på en model, som serveren ikke længere tilbyder." + features_unbound: "%{features} har endnu ikke fået valgt en model." + invalid_api_key: Serveren afviste den gemte API-nøgle. + locked_model_missing: "%{features} har indekseret data med en model, som serveren ikke længere tilbyder. Indekset kan ikke udvides, før det er bygget igen." + model_not_served: Serveren har ingen rute til %{model} (404). Tjek, at modellen stadig tilbydes til din konto, og at værtens URL indeholder segmentet med API-versionen. + models_endpoint_missing: Serveren har ingen modelliste på denne adresse, så API-nøglen kunne heller ikke kontrolleres. Tjek, at URL'en indeholder segmentet med API-versionen (fx https://example.com/v1). + no_model_to_test: Der er ingen model at teste med. Tilføj en model, eller vælg en standard først. + no_models: Serveren offentliggør ikke en modelliste. Enten tilbyder den ingen, eller også mangler endepunktet segmentet med API-versionen. Modeller kan tilføjes manuelt; det er inferenskontrollen, der viser, om endepunktet er rigtigt. + no_models_endpoint: Serveren tilbyder ingen modelliste, så API-nøglen kunne ikke kontrolleres. Kør inferenskontrollen for at kontrollere den. + not_configured: Der er ikke konfigureret noget endepunkt. + not_openai_compatible: Endepunktet returnerede ikke en gyldig modelliste. Sørg for, at det peger på et endepunkt, der er kompatibelt med OpenAI's API, inklusive segmentet med API-versionen. + request_timed_out: Serveren svarede ikke i tide. + server_error: Serveren svarede med status %{status}. + ssrf_filtered: Endepunktet peger på en blokeret adresse. + unsupported_api_format: "%{api_format} kræver legitimationsoplysninger, som OpenProject ikke kan gemme." + features: + bindings_resolvable: Hver funktion har en model, der kan bruges + header: AI-funktioner + locked_bindings_intact: Indekserede data har stadig deres model + inference: + chat_round_trip: Serveren besvarer en forespørgsel + header: Inferens + models: + catalogue_fresh: Modellisten er opdateret + catalogue_present: Der er tilgængelige modeller + default_chat_model: Standard-chatmodel + default_embedding_model: Standard-embedding-model + header: Modeller + server: + credentials_accepted: Serveren accepterer API-nøglen + header: Server + reachable: Serveren kan nås + health_report_kinds: + full: Fuld kontrol, inklusive en inferensforespørgsel. + without_inference: Kontrolleret uden en inferensforespørgsel, som ved den planlagte kontrol. Kør kontrollerne for at få en med. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: understøttet + unknown: ikke kontrolleret + unsupported: ikke understøttet + llm_connections: + side_panel: + health_status_component: + last_check: Senest kontrolleret %{datetime}. + never_checked: Forbindelsen er ikke kontrolleret endnu. + open_report: Åbn hele driftsstatusrapporten + run_checks: Kør kontroller nu + running: Kører kontroller... + title: Driftsstatus + menus: + admin: + llm_connection: LLM-indstillinger diff --git a/modules/llm/config/locales/crowdin/de.yml b/modules/llm/config/locales/crowdin/de.yml new file mode 100644 index 000000000000..01aa1761c3c8 --- /dev/null +++ b/modules/llm/config/locales/crowdin/de.yml @@ -0,0 +1,316 @@ +--- +de: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/el.yml b/modules/llm/config/locales/crowdin/el.yml new file mode 100644 index 000000000000..ce98ad86d8bb --- /dev/null +++ b/modules/llm/config/locales/crowdin/el.yml @@ -0,0 +1,316 @@ +--- +el: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/eo.yml b/modules/llm/config/locales/crowdin/eo.yml new file mode 100644 index 000000000000..0ffcf066200e --- /dev/null +++ b/modules/llm/config/locales/crowdin/eo.yml @@ -0,0 +1,316 @@ +--- +eo: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/es.yml b/modules/llm/config/locales/crowdin/es.yml new file mode 100644 index 000000000000..b96626602443 --- /dev/null +++ b/modules/llm/config/locales/crowdin/es.yml @@ -0,0 +1,316 @@ +--- +es: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/et.yml b/modules/llm/config/locales/crowdin/et.yml new file mode 100644 index 000000000000..738f14cdfacc --- /dev/null +++ b/modules/llm/config/locales/crowdin/et.yml @@ -0,0 +1,316 @@ +--- +et: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/eu.yml b/modules/llm/config/locales/crowdin/eu.yml new file mode 100644 index 000000000000..67574faf633a --- /dev/null +++ b/modules/llm/config/locales/crowdin/eu.yml @@ -0,0 +1,316 @@ +--- +eu: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/fa.yml b/modules/llm/config/locales/crowdin/fa.yml new file mode 100644 index 000000000000..e1bf23b69502 --- /dev/null +++ b/modules/llm/config/locales/crowdin/fa.yml @@ -0,0 +1,316 @@ +--- +fa: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/fi.yml b/modules/llm/config/locales/crowdin/fi.yml new file mode 100644 index 000000000000..e510a5e55c2f --- /dev/null +++ b/modules/llm/config/locales/crowdin/fi.yml @@ -0,0 +1,316 @@ +--- +fi: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/fil.yml b/modules/llm/config/locales/crowdin/fil.yml new file mode 100644 index 000000000000..03135378e9e7 --- /dev/null +++ b/modules/llm/config/locales/crowdin/fil.yml @@ -0,0 +1,316 @@ +--- +fil: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/fr.yml b/modules/llm/config/locales/crowdin/fr.yml new file mode 100644 index 000000000000..598ec5d47ac7 --- /dev/null +++ b/modules/llm/config/locales/crowdin/fr.yml @@ -0,0 +1,316 @@ +--- +fr: + activerecord: + attributes: + llm_capability_verdict: + capability: Capacité + model_id: Modèle + state: État + llm_connection: + api_format: Format d'API + api_key: Clé API + base_url: URL de l'hôte + default_chat_model: Modèle de chat par défaut + default_embedding_model: Modèle d'intégration par défaut + env_fingerprint: Configuration de l'environnement d'application + env_provisioned_at: Appliqué à partir de l'environnement + llm_features_enabled: Activer les LMMS pour cette instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Fonctionnalité + model: Modèle + llm_model: + admin_context_window: Fenêtre de contexte + display_name: Nom d'affichage + external: Nom du modèle + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: nécessite des informations de connexion qu'OpenProject ne peut pas stocker, comme une clé secrète distincte ou un identifiant de région. + api_key: + invalid_api_key: a été rejeté par le serveur LLM. + base: + singleton: Une seule connexion LLM peut être active. + base_url: + cannot_be_connected_to: n'a pas pu être atteint. Veuillez vous assurer que le serveur LLM est en cours d'exécution et accessible depuis OpenProject. + models_endpoint_missing: n'a pas de liste de modèles à cette adresse, donc la clé API n'a pas pu être vérifiée non plus. Veuillez vérifier l'URL, en particulier qu'il inclut le segment de version de l'API (par exemple https://example.com/v1). + not_openai_compatible: n'a pas retourné de liste de modèles valide. Veuillez vous assurer que les points d'URL d'un point de terminaison compatible avec OpenAI-API, y compris le segment de version de l'API (par exemple https://example.com/v1). + request_timed_out: n'a pas répondu à temps. Veuillez vous assurer que le serveur LLM est accessible et qu'il n'est pas surchargé. + ssl_error: n'a pas pu être atteint par une connexion sécurisée. Veuillez vérifier le certificat TLS du serveur LLM, ou utiliser une URL http:// si le serveur n'offre pas TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/he.yml b/modules/llm/config/locales/crowdin/he.yml new file mode 100644 index 000000000000..99f4578aeeae --- /dev/null +++ b/modules/llm/config/locales/crowdin/he.yml @@ -0,0 +1,316 @@ +--- +he: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/hi.yml b/modules/llm/config/locales/crowdin/hi.yml new file mode 100644 index 000000000000..153c09874d47 --- /dev/null +++ b/modules/llm/config/locales/crowdin/hi.yml @@ -0,0 +1,316 @@ +--- +hi: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/hr.yml b/modules/llm/config/locales/crowdin/hr.yml new file mode 100644 index 000000000000..fc8a4c665230 --- /dev/null +++ b/modules/llm/config/locales/crowdin/hr.yml @@ -0,0 +1,316 @@ +--- +hr: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/hu.yml b/modules/llm/config/locales/crowdin/hu.yml new file mode 100644 index 000000000000..bf2c9e536456 --- /dev/null +++ b/modules/llm/config/locales/crowdin/hu.yml @@ -0,0 +1,316 @@ +--- +hu: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/hy.yml b/modules/llm/config/locales/crowdin/hy.yml new file mode 100644 index 000000000000..584a4eddfb85 --- /dev/null +++ b/modules/llm/config/locales/crowdin/hy.yml @@ -0,0 +1,316 @@ +--- +hy: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/id.yml b/modules/llm/config/locales/crowdin/id.yml new file mode 100644 index 000000000000..ddf179a351f9 --- /dev/null +++ b/modules/llm/config/locales/crowdin/id.yml @@ -0,0 +1,316 @@ +--- +id: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/it.yml b/modules/llm/config/locales/crowdin/it.yml new file mode 100644 index 000000000000..1f8762d4bd2e --- /dev/null +++ b/modules/llm/config/locales/crowdin/it.yml @@ -0,0 +1,316 @@ +--- +it: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ja.yml b/modules/llm/config/locales/crowdin/ja.yml new file mode 100644 index 000000000000..d37406f49f5e --- /dev/null +++ b/modules/llm/config/locales/crowdin/ja.yml @@ -0,0 +1,316 @@ +--- +ja: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ka.yml b/modules/llm/config/locales/crowdin/ka.yml new file mode 100644 index 000000000000..9dd69017dc35 --- /dev/null +++ b/modules/llm/config/locales/crowdin/ka.yml @@ -0,0 +1,316 @@ +--- +ka: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/kk.yml b/modules/llm/config/locales/crowdin/kk.yml new file mode 100644 index 000000000000..a1f3889ffe07 --- /dev/null +++ b/modules/llm/config/locales/crowdin/kk.yml @@ -0,0 +1,316 @@ +--- +kk: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ko.yml b/modules/llm/config/locales/crowdin/ko.yml new file mode 100644 index 000000000000..ae5690a62d10 --- /dev/null +++ b/modules/llm/config/locales/crowdin/ko.yml @@ -0,0 +1,316 @@ +--- +ko: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/li.yml b/modules/llm/config/locales/crowdin/li.yml new file mode 100644 index 000000000000..4cb462fdd50d --- /dev/null +++ b/modules/llm/config/locales/crowdin/li.yml @@ -0,0 +1,316 @@ +--- +li: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/lt.yml b/modules/llm/config/locales/crowdin/lt.yml new file mode 100644 index 000000000000..453f9391b6b6 --- /dev/null +++ b/modules/llm/config/locales/crowdin/lt.yml @@ -0,0 +1,316 @@ +--- +lt: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/lv.yml b/modules/llm/config/locales/crowdin/lv.yml new file mode 100644 index 000000000000..2bf81ac786e0 --- /dev/null +++ b/modules/llm/config/locales/crowdin/lv.yml @@ -0,0 +1,316 @@ +--- +lv: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/mn.yml b/modules/llm/config/locales/crowdin/mn.yml new file mode 100644 index 000000000000..4b541cac289e --- /dev/null +++ b/modules/llm/config/locales/crowdin/mn.yml @@ -0,0 +1,316 @@ +--- +mn: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ms.yml b/modules/llm/config/locales/crowdin/ms.yml new file mode 100644 index 000000000000..41d7ba7cfb81 --- /dev/null +++ b/modules/llm/config/locales/crowdin/ms.yml @@ -0,0 +1,316 @@ +--- +ms: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ne.yml b/modules/llm/config/locales/crowdin/ne.yml new file mode 100644 index 000000000000..9ba11a2010da --- /dev/null +++ b/modules/llm/config/locales/crowdin/ne.yml @@ -0,0 +1,316 @@ +--- +ne: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/nl.yml b/modules/llm/config/locales/crowdin/nl.yml new file mode 100644 index 000000000000..c045f60f99ac --- /dev/null +++ b/modules/llm/config/locales/crowdin/nl.yml @@ -0,0 +1,316 @@ +--- +nl: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/no.yml b/modules/llm/config/locales/crowdin/no.yml new file mode 100644 index 000000000000..712a8592bb04 --- /dev/null +++ b/modules/llm/config/locales/crowdin/no.yml @@ -0,0 +1,316 @@ +--- +'no': + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/pl.yml b/modules/llm/config/locales/crowdin/pl.yml new file mode 100644 index 000000000000..23cd7e5372d1 --- /dev/null +++ b/modules/llm/config/locales/crowdin/pl.yml @@ -0,0 +1,316 @@ +--- +pl: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/pt-BR.yml b/modules/llm/config/locales/crowdin/pt-BR.yml new file mode 100644 index 000000000000..78cfd0a78ceb --- /dev/null +++ b/modules/llm/config/locales/crowdin/pt-BR.yml @@ -0,0 +1,316 @@ +--- +pt-BR: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/pt-PT.yml b/modules/llm/config/locales/crowdin/pt-PT.yml new file mode 100644 index 000000000000..40fc88bcdb9f --- /dev/null +++ b/modules/llm/config/locales/crowdin/pt-PT.yml @@ -0,0 +1,316 @@ +--- +pt-PT: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ro.yml b/modules/llm/config/locales/crowdin/ro.yml new file mode 100644 index 000000000000..bb859c5cc1c3 --- /dev/null +++ b/modules/llm/config/locales/crowdin/ro.yml @@ -0,0 +1,316 @@ +--- +ro: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/ru.yml b/modules/llm/config/locales/crowdin/ru.yml new file mode 100644 index 000000000000..db2952e75a1c --- /dev/null +++ b/modules/llm/config/locales/crowdin/ru.yml @@ -0,0 +1,316 @@ +--- +ru: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/rw.yml b/modules/llm/config/locales/crowdin/rw.yml new file mode 100644 index 000000000000..2d01f1cbc714 --- /dev/null +++ b/modules/llm/config/locales/crowdin/rw.yml @@ -0,0 +1,316 @@ +--- +rw: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/si.yml b/modules/llm/config/locales/crowdin/si.yml new file mode 100644 index 000000000000..ff69ae64b724 --- /dev/null +++ b/modules/llm/config/locales/crowdin/si.yml @@ -0,0 +1,316 @@ +--- +si: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/sk.yml b/modules/llm/config/locales/crowdin/sk.yml new file mode 100644 index 000000000000..6c0f70d82f86 --- /dev/null +++ b/modules/llm/config/locales/crowdin/sk.yml @@ -0,0 +1,316 @@ +--- +sk: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/sl.yml b/modules/llm/config/locales/crowdin/sl.yml new file mode 100644 index 000000000000..f7797069e4d5 --- /dev/null +++ b/modules/llm/config/locales/crowdin/sl.yml @@ -0,0 +1,316 @@ +--- +sl: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/sr.yml b/modules/llm/config/locales/crowdin/sr.yml new file mode 100644 index 000000000000..ec881084b7a2 --- /dev/null +++ b/modules/llm/config/locales/crowdin/sr.yml @@ -0,0 +1,316 @@ +--- +sr: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/sv.yml b/modules/llm/config/locales/crowdin/sv.yml new file mode 100644 index 000000000000..c866f8ebe5cb --- /dev/null +++ b/modules/llm/config/locales/crowdin/sv.yml @@ -0,0 +1,316 @@ +--- +sv: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/th.yml b/modules/llm/config/locales/crowdin/th.yml new file mode 100644 index 000000000000..574c3a6d8b79 --- /dev/null +++ b/modules/llm/config/locales/crowdin/th.yml @@ -0,0 +1,316 @@ +--- +th: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/tr.yml b/modules/llm/config/locales/crowdin/tr.yml new file mode 100644 index 000000000000..7cbf6df785f5 --- /dev/null +++ b/modules/llm/config/locales/crowdin/tr.yml @@ -0,0 +1,316 @@ +--- +tr: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/uk.yml b/modules/llm/config/locales/crowdin/uk.yml new file mode 100644 index 000000000000..6c8c02ccf934 --- /dev/null +++ b/modules/llm/config/locales/crowdin/uk.yml @@ -0,0 +1,316 @@ +--- +uk: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/uz.yml b/modules/llm/config/locales/crowdin/uz.yml new file mode 100644 index 000000000000..685c4fce48d3 --- /dev/null +++ b/modules/llm/config/locales/crowdin/uz.yml @@ -0,0 +1,316 @@ +--- +uz: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/vi.yml b/modules/llm/config/locales/crowdin/vi.yml new file mode 100644 index 000000000000..1bf4ffa9ed10 --- /dev/null +++ b/modules/llm/config/locales/crowdin/vi.yml @@ -0,0 +1,316 @@ +--- +vi: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/zh-CN.yml b/modules/llm/config/locales/crowdin/zh-CN.yml new file mode 100644 index 000000000000..8435ad8b2717 --- /dev/null +++ b/modules/llm/config/locales/crowdin/zh-CN.yml @@ -0,0 +1,316 @@ +--- +zh-CN: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/llm/config/locales/crowdin/zh-TW.yml b/modules/llm/config/locales/crowdin/zh-TW.yml new file mode 100644 index 000000000000..65b1d7abdf49 --- /dev/null +++ b/modules/llm/config/locales/crowdin/zh-TW.yml @@ -0,0 +1,316 @@ +--- +zh-TW: + activerecord: + attributes: + llm_capability_verdict: + capability: Capability + model_id: Model + state: State + llm_connection: + api_format: API format + api_key: API key + base_url: Host URL + default_chat_model: Default chat model + default_embedding_model: Default embedding model + env_fingerprint: Applied environment configuration + env_provisioned_at: Applied from the environment + llm_features_enabled: Enable LLMs for this instance + llm_feature_binding: + dimensions: Dimensions + feature_key: Feature + model: Model + llm_model: + admin_context_window: Context window + display_name: Display name + external: Model name + errors: + models: + llm_connection: + attributes: + api_format: + not_supported: needs credentials that OpenProject cannot store, such as a separate secret key or region. + api_key: + invalid_api_key: was rejected by the LLM server. + base: + singleton: Only one LLM connection can be active. + base_url: + cannot_be_connected_to: could not be reached. Please ensure the LLM server is running and reachable from OpenProject. + models_endpoint_missing: has no model list at this address, so the API key could not be verified either. Please check the URL, in particular that it includes the API version segment (for example https://example.com/v1). + not_openai_compatible: did not return a valid model list. Please ensure the URL points at an OpenAI-API-compatible endpoint, including the API version segment (for example https://example.com/v1). + request_timed_out: did not respond in time. Please ensure the LLM server is reachable and not overloaded. + ssl_error: could not be reached over a secure connection. Please check the LLM server's TLS certificate, or use an http:// URL if the server does not offer TLS. + ssrf_filtered: resolves to a blocked address. If the LLM server runs on an internal network, allow its IP via the %{env_name} environment variable. + custom_headers: + invalid: must map header names to plain text values. + default_chat_model_id: + cannot_chat: is an embedding model, according to the LLM server, and cannot be used for chat. + not_available: is not offered by the configured LLM server. + default_embedding_model_id: + cannot_embed: is known not to create embeddings, according to the LLM server. + not_available: is not offered by the configured LLM server. + llm_features_enabled: + requires_connection: cannot be turned on before a connection has been configured. + llm_feature_binding: + attributes: + dimensions: + locked: cannot be changed while data indexed with it still exists. Re-index to change it. + not_for_chat_feature: only applies to features that create embeddings. + feature_key: + not_registered: does not belong to a known AI feature. + model_id: + locked: cannot be changed while data indexed with it still exists. Re-index to switch models. + not_available: is not offered by the configured LLM server. + llm_model: + attributes: + external_id: + conflicting_capabilities: has capability assertions stored under it that conflict with those of this model. + admin: + llm_connections: + delete_api_key: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop sending an API key with its requests. Features will keep working only if the server requires no authentication. You can enter a new key at any time. + heading: Remove the stored API key? + menu_label: Remove API key + success: The API key has been removed. + title: Remove API key + disabled_notice: LLM features are switched off for this instance. Switch them on here first. + disconnect: + configured_from_env: This connection is configured through the environment and cannot be changed here. + description: OpenProject will stop using the LLM server. AI features will be unavailable until you connect again. + heading: Disconnect from the LLM server? + keeps_bindings: 'The model chosen for each feature is kept: %{features}.' + keeps_models: The model list, including any models you added manually, is kept. + keeps_settings: The endpoint and API format are kept. Only the stored API key is removed. + menu_label: Disconnect + success: OpenProject has disconnected from the LLM server. + title: Disconnect + form: + api_format_caption: Which API the server speaks. Choose OpenAI for most gateways and self-hosted servers. + api_key_caption: The key OpenProject authenticates with. Leave blank if the server requires no authentication. + api_key_caption_discarded: The key you entered was not saved and is not shown again. Enter it once more to save it, or leave blank to keep the stored key. + api_key_caption_env: The key comes from the environment. + api_key_caption_stored: A key is stored. Leave blank to keep the current key, or enter a new one to replace it. + api_key_placeholder_stored: API key stored + api_key_remove: Remove key + base_url_caption: The base URL of the server, for example https://example.com/v1. + env_applied: Applied from the environment on %{time}. Changed variables take effect the next time the database is seeded. + env_changed: The environment variables have changed since they were applied on %{time}. The values below stay in use until the database is seeded again. + env_pending: Environment variables configure this connection but have not been applied yet. The next database seed replaces the values below and locks this page. + label_connecting: Contacting the LLM server… + llm_features_enabled_caption: When turned off, all LLM-backed AI features stop working. The connection settings are kept. + server_description: Connect OpenProject to a server that speaks the %{api_format} API, so AI features can use it. The host URL below decides which server that is. + server_group: Server + show: + description: Connect OpenProject to an LLM server so that AI features can use it. + description_enabled: Once connected, review the models offered by the server on the [Models](models_url) tab. + tabs: + connection: Connection + features: Feature configuration + models: Models + update: + disabled: Saved. LLM features are switched off for this instance. + no_models: Saved, but no models are stored yet. Either the server offers no model list, or the endpoint is missing its API version segment (for example /v1). Refresh the list on the Models tab. + success: Successfully connected to the LLM server. + llm_feature_bindings: + dangling: "%{model} is no longer offered by the LLM server. This feature will not run until another model is selected." + form: + dimensions_caption: How many numbers each vector has. Leave blank to use whatever the server returns. + dimensions_caption_probed: The server returned %{dimensions}-dimension vectors for this model. Leave blank to use whatever it returns at index time. + model_caption_embedding: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + model_caption_ruled_out: Models known to lack a capability this feature needs are not offered. + index: + description: Choose which model each AI feature uses. Features without a choice use the default models set on the [Models](models_url) tab. + inherit_with_default: Use the default (%{model}) + inherit_without_default: Use the default (none set) + locked: "%{model} is in use by indexed data and cannot be changed here. Re-index to switch models." + locked_values_heading: Values fixed by the existing index + option_unqualified: "%{model} (no longer eligible for this feature)" + update: + model_incapable: The model for %{feature} has been saved, but the server just reported that it does not support %{capability}. Pick a different model, or assert the capability on the model if you know better. + success: The model for %{feature} has been saved. + llm_health_status: + create: + success: 'The checks have run: %{passed} passed, %{warnings} warnings, %{failures} failed.' + create_health_status_report: + success: The checks have run. + show: + blankslate_description: Run the checks to find out whether OpenProject can reach the LLM server, whether it accepts the API key, and whether every AI feature has a usable model. + blankslate_heading: This connection has not been checked yet + download: Download report + last_check: Last checked %{datetime}. + run_checks: Run checks + running: Running checks... + summary: "%{passed} passed, %{warnings} warnings, %{failures} failed." + title: Health status + llm_models: + configured_from_env: The environment configures this model as a default, so it cannot be removed or renamed here. + create: + success: "%{model} has been added." + defaults: + chat_caption: Embedding models are not offered. + description: Used by AI features that do not choose a model themselves. + embedding_caption: Only models known to create embeddings are offered. [Read more](docs_url) about model types. + embedding_none: No model is known to create embeddings. If you know one does, open it in the list below and set its type to Embedding model. + embedding_option_unqualified: "%{model} (not known to create embeddings)" + heading: Default models + success: The default models have been saved. + destroy: + description: The model will no longer be offered to AI features. + description_bound: This model is currently used by %{features}. Those features will stop working until another model is selected. + heading: Remove %{model}? + success: "%{model} has been removed." + title: Remove model + edit: + description: Edit how OpenProject uses this model. + form: + context_window: Context window + context_window_caption: How many tokens this model accepts. Leave blank if you do not know. + context_window_known: Leave blank to use %{value}, %{source}. + display_name_caption: An optional friendly name shown instead of the model id. + external_id_caption: The model name exactly as the server expects it. + model_type: Model type + model_type_caption: Chat models answer requests. Embedding models turn text into vectors for search. [Read more](docs_url). + model_type_chat: Chat model + model_type_embedding: Embedding model + model_type_unspecified: Not specified + state_inherited: Inherit from server (%{state}) + state_supported: Supported + state_unsupported: Not supported + index: + add_model: Model + blank_description: The server reported no models. Refresh the list once the server is reachable, or add one by hand. + blank_title: No models available + context_window: Context window + description: Reported by the server on %{fetched_at}. + description_unfetched: The server has not returned a model list yet. Refresh the models once it is reachable. + filter_label: Filter models + identifier: Model + kind: Type + refresh: Refresh models + source: Source + source_discovered: Server + source_discovered_description: Reported by the server + source_manual: Manual + source_manual_description: Added manually by an administrator + source_withdrawn: Withdrawn + source_withdrawn_description: No longer reported by the server + stale_warning: The connection settings changed after the model list was last refreshed, so the list may be out of date. Refresh the models to be sure. + new: + description: Name a model this server can use but does not advertise, and describe what it can do. + title: Add a model + refresh: + failure: The model list could not be refreshed. Please check that the LLM server is still reachable. + success: The model list has been refreshed. + update: + success: "%{model} has been updated." + llm: + api_formats: + anthropic: Anthropic + azure: Azure OpenAI + bedrock: AWS Bedrock + deepseek: DeepSeek + gemini: Google Gemini + gpustack: GPUStack + mistral: Mistral + ollama: Ollama + openai: OpenAI + openrouter: OpenRouter + perplexity: Perplexity + vertexai: Google Vertex AI + xai: xAI + capabilities: + embeddings: + label: Embeddings + function_calling: + label: Tool calling + reasoning: + label: Reasoning + structured_output: + label: Structured output + vision: + label: Vision + context_window_sources: + registry: the figure published for this model + server: reported by the server + features: + description_assistant: + caption: Rewrites and restructures work package text on request. + label: Description assistant + semantic_search: + caption: Indexes work packages so they can be found by meaning rather than by keyword. + label: Semantic search + health_checks: + configuration: + api_format_supported: Endpoint format is usable + base_url_present: Endpoint is configured + credentials_present: API key is stored + enabled: Connection is switched on + feature_flag: AI features are switched on + header: Configuration + errors: + api_key_missing: No API key is stored. This is only correct if the LLM server requires no authentication. + catalogue_never_fetched: The model list has never been retrieved from the server. + catalogue_stale: The model list was last retrieved on %{fetched_at} and may no longer match what the server offers. + catalogue_stale_settings: The connection settings changed after the model list was last refreshed. Refresh the models on the Models tab. + chat_failed: The server refused a request for %{model} with status %{status}. + connection_disabled: The connection is configured but switched off, so no feature will use it. + connection_error: The server could not be reached. Please ensure it is running and reachable from OpenProject. + default_model_missing: "%{model} is no longer offered by the server." + default_model_unset: No default model has been chosen on the Models tab, so features fall back to their own selection. + empty_completion: "%{model} answered with an empty message." + feature_flag_off: The LLM connection feature is switched off, so the connection is not used yet. + features_incapable: "%{features} cannot run, because the chosen model does not provide: %{capabilities}." + features_model_missing: "%{features} point at a model the server no longer offers." + features_unbound: "%{features} have no model chosen yet." + invalid_api_key: The server rejected the stored API key. + locked_model_missing: "%{features} indexed data with a model the server no longer offers. The index cannot be extended until it is rebuilt." + model_not_served: The server has no route for %{model} (404). Check that the model is still offered to your account and that the host URL includes the API version segment. + models_endpoint_missing: The server has no model list at this address, so the API key could not be verified either. Check that the URL includes the API version segment (for example https://example.com/v1). + no_model_to_test: No model is available to test with. Add a model or choose a default first. + no_models: The server does not publish a model list. Either it does not offer one, or the endpoint is missing its API version segment. Models can be added manually; the inference check is what proves the endpoint is right. + no_models_endpoint: The server does not offer a model list, so the API key could not be verified. Run the inference check to verify it. + not_configured: No endpoint has been configured. + not_openai_compatible: The endpoint did not return a valid model list. Please ensure it points at an OpenAI-API-compatible endpoint, including the API version segment. + request_timed_out: The server did not respond in time. + server_error: The server responded with status %{status}. + ssrf_filtered: The endpoint resolves to a blocked address. + unsupported_api_format: "%{api_format} needs credentials that OpenProject cannot store." + features: + bindings_resolvable: Every feature has a usable model + header: AI features + locked_bindings_intact: Indexed data still has its model + inference: + chat_round_trip: The server answers a request + header: Inference + models: + catalogue_fresh: Model list is up to date + catalogue_present: Models are available + default_chat_model: Default chat model + default_embedding_model: Default embedding model + header: Models + server: + credentials_accepted: The server accepts the API key + header: Server + reachable: The server can be reached + health_report_kinds: + full: Full check, including an inference request. + without_inference: Checked without an inference request, as the scheduled check does. Run the checks to include one. + model_kinds: + chat: Chat + embedding: Embedding + verdict_states: + supported: supported + unknown: not verified + unsupported: not supported + llm_connections: + side_panel: + health_status_component: + last_check: Last checked %{datetime}. + never_checked: This connection has not been checked yet. + open_report: Open full health report + run_checks: Run checks now + running: Running checks... + title: Health status + menus: + admin: + llm_connection: LLM settings diff --git a/modules/meeting/config/locales/crowdin/af.yml b/modules/meeting/config/locales/crowdin/af.yml index 2a92d4e5b797..61432208036f 100644 --- a/modules/meeting/config/locales/crowdin/af.yml +++ b/modules/meeting/config/locales/crowdin/af.yml @@ -24,13 +24,14 @@ af: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notas notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ af: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ af: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ af: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ af: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Skuif label_agenda_item_move_down: Skuif af label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ af: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ af: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ af: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ af: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ af: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ af: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ af: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ af: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ af: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/ar.yml b/modules/meeting/config/locales/crowdin/ar.yml index 468590c690ce..8b8e08a1ce9d 100644 --- a/modules/meeting/config/locales/crowdin/ar.yml +++ b/modules/meeting/config/locales/crowdin/ar.yml @@ -24,6 +24,7 @@ ar: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: المدّة end_time: End time location: الموقع @@ -31,7 +32,7 @@ ar: notify: Send notifications participant: zero: "%{count} Participants" - one: 1 Participant + one: "%{count} Participant" two: "%{count} Participants" few: "%{count} Participants" many: "%{count} Participants" @@ -92,14 +93,18 @@ ar: invalid_time_format: 'ليس وقتًا صالحًا. التصميم المطلوب: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -188,6 +193,10 @@ ar: meeting_agenda_opened: فُتِح جدول أعمال الاجتماع meeting_minutes: تحرير محضر الجلسة meeting_minutes_created: إنشاء محضر الجلسة + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -196,6 +205,8 @@ ar: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: إضافة ملاحظات label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -203,6 +214,7 @@ ar: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: نقل label_agenda_item_move_down: تحريك للأسفل label_agenda_item_move_to_backlog: Move to backlog @@ -267,7 +279,7 @@ ar: label_meeting_minutes: محضر الجلسة label_meeting_more: zero: There are %{count} more meetings. - one: There is one more meeting. + one: There is %{count} more meeting. two: There are %{count} more meetings. few: There are %{count} more meetings. many: There are %{count} more meetings. @@ -317,14 +329,14 @@ ar: label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: zero: There are %{count} more scheduled meetings (%{schedule}). - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). two: There are %{count} more scheduled meetings (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). many: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: zero: There are %{count} more past meetings. - one: There is one more past meeting. + one: There is %{count} more past meeting. two: There are %{count} more past meetings. few: There are %{count} more past meetings. many: There are %{count} more past meetings. @@ -358,6 +370,21 @@ ar: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -365,6 +392,9 @@ ar: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'نسخ من الاجتماع #%{id}' copy: agenda: Copy agenda @@ -408,6 +438,7 @@ ar: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -532,6 +563,7 @@ ar: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -609,7 +641,7 @@ ar: ends_on: This results in a series ending on %{date} occurrences: zero: This results in %{count} upcoming occurrences - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence two: This results in %{count} upcoming occurrences few: This results in %{count} upcoming occurrences many: This results in %{count} upcoming occurrences @@ -618,7 +650,7 @@ ar: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -695,7 +727,7 @@ ar: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -757,9 +789,10 @@ ar: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/az.yml b/modules/meeting/config/locales/crowdin/az.yml index f036be4748e7..0df33894f289 100644 --- a/modules/meeting/config/locales/crowdin/az.yml +++ b/modules/meeting/config/locales/crowdin/az.yml @@ -24,13 +24,14 @@ az: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ az: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ az: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ az: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ az: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ az: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ az: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ az: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ az: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ az: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ az: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ az: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ az: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ az: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/be.yml b/modules/meeting/config/locales/crowdin/be.yml index c230f0bedf4c..68ea6a3b7b93 100644 --- a/modules/meeting/config/locales/crowdin/be.yml +++ b/modules/meeting/config/locales/crowdin/be.yml @@ -24,13 +24,14 @@ be: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" few: "%{count} Participants" many: "%{count} Participants" other: "%{count} Participants" @@ -90,14 +91,18 @@ be: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -170,6 +175,10 @@ be: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Раздзел @@ -178,6 +187,8 @@ be: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -185,6 +196,7 @@ be: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -248,7 +260,7 @@ be: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. many: There are %{count} more meetings. other: There are %{count} more meetings. @@ -296,12 +308,12 @@ be: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). many: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. many: There are %{count} more past meetings. other: There are %{count} more past meetings. @@ -334,6 +346,21 @@ be: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -341,6 +368,9 @@ be: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -384,6 +414,7 @@ be: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -508,6 +539,7 @@ be: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -584,7 +616,7 @@ be: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences many: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences @@ -592,7 +624,7 @@ be: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -663,7 +695,7 @@ be: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -725,9 +757,10 @@ be: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/bg.yml b/modules/meeting/config/locales/crowdin/bg.yml index 2f760438a8a9..c81789d297af 100644 --- a/modules/meeting/config/locales/crowdin/bg.yml +++ b/modules/meeting/config/locales/crowdin/bg.yml @@ -24,14 +24,15 @@ bg: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Продължителност end_time: End time location: Местоположение notes: Бележки notify: Send notifications participant: - one: 1 участник - other: "%{count} Участника" + one: "%{count} Participant" + other: "%{count} Participants" participants: Участници participants_added: 'Participants added:' participants_attended: Присъстващи @@ -88,14 +89,18 @@ bg: invalid_time_format: 'не е валидно време. Задължителен формат: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ bg: meeting_agenda_opened: Дневния ред на среащата е открит meeting_minutes: Протоколът от срещата е редактиран meeting_minutes_created: Протоколът от срещата е създаден + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Добавяне към среща label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Раздел @@ -160,6 +169,8 @@ bg: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Добавяне на бележки label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ bg: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Премести label_agenda_item_move_down: Премести надолу label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ bg: label_meeting_last_updated: Last updated label_meeting_minutes: Минути label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Нова среща label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ bg: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ bg: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ bg: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Копирано от среща #%{id}' copy: agenda: Копиране на дневния ред @@ -360,6 +390,7 @@ bg: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ bg: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ bg: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ bg: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ bg: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Не са предоставени бележки diff --git a/modules/meeting/config/locales/crowdin/ca.yml b/modules/meeting/config/locales/crowdin/ca.yml index 9483a05b08b2..066321d548ae 100644 --- a/modules/meeting/config/locales/crowdin/ca.yml +++ b/modules/meeting/config/locales/crowdin/ca.yml @@ -24,14 +24,15 @@ ca: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Durada end_time: End time location: Ubicació notes: Notes notify: Send notifications participant: - one: 1 participant - other: "%{count} participants" + one: "%{count} Participant" + other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' participants_attended: Assistents @@ -88,14 +89,18 @@ ca: invalid_time_format: 'no és una hora vàlida. El format requerit és: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ ca: meeting_agenda_opened: Agenda de la reunió oberta meeting_minutes: Acta de la reunió editada meeting_minutes_created: Acta de la reunió creada + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Afegir a la reunió label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Secció @@ -160,6 +169,8 @@ ca: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Accions d'element de l'agenda label_agenda_item_add: Afegeix element d'agenda + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Afegir notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ ca: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Moure label_agenda_item_move_down: Mou avall label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ ca: label_meeting_last_updated: Última actualització label_meeting_minutes: Acta label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Nova reunió label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ ca: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ ca: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ ca: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copiat de la reunió #%{id}' copy: agenda: Copia l'agenda @@ -360,6 +390,7 @@ ca: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ ca: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ ca: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ ca: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ ca: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Notes no proporcionades diff --git a/modules/meeting/config/locales/crowdin/ckb-IR.yml b/modules/meeting/config/locales/crowdin/ckb-IR.yml index 65e691218645..df33c5ed296e 100644 --- a/modules/meeting/config/locales/crowdin/ckb-IR.yml +++ b/modules/meeting/config/locales/crowdin/ckb-IR.yml @@ -24,13 +24,14 @@ ckb-IR: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ ckb-IR: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ ckb-IR: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ ckb-IR: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ ckb-IR: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ ckb-IR: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ ckb-IR: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ ckb-IR: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ ckb-IR: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ ckb-IR: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ ckb-IR: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ ckb-IR: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ ckb-IR: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ ckb-IR: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/cs.yml b/modules/meeting/config/locales/crowdin/cs.yml index 854cc4f7533e..502b08c44d2c 100644 --- a/modules/meeting/config/locales/crowdin/cs.yml +++ b/modules/meeting/config/locales/crowdin/cs.yml @@ -24,16 +24,17 @@ cs: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Doba trvání end_time: Čas ukončení location: Místo notes: Poznámky notify: Send notifications participant: - one: 1 Účastník - few: "%{count} Účastníků" - many: "%{count} Účastníků" - other: "%{count} Účastníků" + one: "%{count} Participant" + few: "%{count} Participants" + many: "%{count} Participants" + other: "%{count} Participants" participants: Účastníci participants_added: 'Přidaní účastníci:' participants_attended: Účastníci @@ -90,14 +91,18 @@ cs: invalid_time_format: 'není platný čas. Požadovaný formát: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Sekce nepatří do stejné schůze. user_invalid: není platným účastníkem. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: není platným účastníkem. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -170,6 +175,10 @@ cs: meeting_agenda_opened: Agenda schůzky otevřena meeting_minutes: Zápis ze zasedání byl upraven meeting_minutes_created: Zápisy ze zasedání byly vytvořeny + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Přidat do schůzky label_add_work_package_to_meeting_dialog_title: Zvolte schůzku label_add_work_package_to_meeting_section_label: Sekce @@ -178,6 +187,8 @@ cs: label_agenda_backlog_clear_title: Vyčistit backlog programu? label_agenda_item_actions: volby pro body schůzky label_agenda_item_add: Přidat položku programu + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Přidat poznámky label_agenda_item_add_outcome: Přidat výsledek label_agenda_item_convert_to_work_package: Zkonvertovat na pracovní balíček @@ -185,6 +196,7 @@ cs: label_agenda_item_duplicate: Kopírovat label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Přesunout label_agenda_item_move_down: Přesunout níž label_agenda_item_move_to_backlog: Přesunout do backlogu @@ -250,10 +262,10 @@ cs: label_meeting_last_updated: Naposledy aktualizováno label_meeting_minutes: Zápisy label_meeting_more: - one: Proběhne ještě jedna schůzka. - few: Proběhne ještě %{count} dalších schůzek. - many: Proběhne ještě %{count} dalších schůzek. - other: Proběhne ještě %{count} dalších schůzek. + one: There is %{count} more meeting. + few: There are %{count} more meetings. + many: There are %{count} more meetings. + other: There are %{count} more meetings. label_meeting_new: Nová schůzka label_meeting_new_dynamic: Nová jednorázová schůzka label_meeting_new_recurring: Nová opakovaná schůzka @@ -298,15 +310,15 @@ cs: label_recurring_meeting_delete: Odstranit výskyt label_recurring_meeting_duplicate: Duplikovat jako jednorázovou schůzku label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). - few: Dalších %{count} naplánovaných schůzek (%{schedule}). - many: Dalších %{count} naplánovaných schůzek (%{schedule}). - other: Dalších %{count} naplánovaných schůzek (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + few: There are %{count} more scheduled meetings (%{schedule}). + many: There are %{count} more scheduled meetings (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. - few: 'Dalších %{count} minulých schůzek ' - many: 'Dalších %{count} minulých schůzek ' - other: 'Dalších %{count} minulých schůzek ' + one: There is %{count} more past meeting. + few: There are %{count} more past meetings. + many: There are %{count} more past meetings. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nová opakovaná schůzka label_recurring_meeting_next_occurrence: Další výskyt label_recurring_meeting_no_end_date: Jsou zde další naplánované schůzky (%{schedule}). @@ -338,6 +350,21 @@ cs: label_view_meeting_series: Zobrazit sérii schůzek label_write_outcome: Napište výsledek meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: Tyto přiložené soubory budou zahrnuty do všech budoucích schůzek v rámci série. @@ -345,6 +372,9 @@ cs: blankslate: desc: Můžete vytvořit novou schůzku nebo změnit kritéria filtru title: Žádné schůzky k zobrazení + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Zkopírováno ze schůzky #%{id}' copy: agenda: Kopírovat program @@ -388,6 +418,7 @@ cs: header: 'Zrušeno: Schůzka ''%{title}''' header_occurrence: 'Zrušeno: Schůzka ze série ''%{title}''' header_series: 'Zrušeno: Série schůzek ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' byla zrušena prostřednictvím %{actor}, nebo jste byli odstraněni jako účastník" summary_occurrence: Schůzka ze série '%{title}' byla zrušena prostřednictvím %{actor}, nebo jste byli odstraněni jako účastník summary_series: Série schůzek '%{title}' byla zrušena prostřednictvím %{actor}, nebo jste byli odstraněni jako účastník @@ -512,6 +543,7 @@ cs: no_items: Žádné body programu no_items_flash: Na programu nejsou žádné body. previous: Předchozí + slide_progress: Slide %{current}/%{total} title: Prezentační mód total_items: "%{current} z %{total}" types: @@ -571,7 +603,7 @@ cs: permission_create_meetings: 'Vytvořit schůzku ' - permission_delete_meetings: Odstranit schůzky + permission_delete_meetings: Smazat schůzku permission_edit_meetings: Upravit schůzku permission_manage_agendas: Správa zápisů permission_manage_agendas_explanation: Umožňuje vytvářet, upravovat a odebírat položky agendy @@ -590,15 +622,15 @@ cs: caption: ends_on: This results in a series ending on %{date} occurrences: - one: Výsledkem bude 1 nadcházející událost - few: Výsledkem budou %{count} nadcházející události - many: Výsledkem bude %{count} nadcházejících událostí - other: Výsledkem bude %{count} nadcházejících událostí + one: This results in %{count} upcoming occurrence + few: This results in %{count} upcoming occurrences + many: This results in %{count} upcoming occurrences + other: This results in %{count} upcoming occurrences occurrences_capped: Výsledkem je více než %{count} nadcházejících událostí day_of_month_skipping_info: Měsíce s méně než %{monthly_day} dny budou vynechány delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -669,7 +701,7 @@ cs: error_no_next: Na této schůzce není žádný další výskyt. error_template_draft: The meeting series template is still in draft mode. first_already_exists: První výskyt této série schůzek je již vytvořen. - first_created: 'První schůzka byla úspěšně vytvořena ze šablony. Všechny budoucí schůzky budou vytvořeny automaticky v čase předchozí události. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Tato schůzka je součástí opakované série schůzek. @@ -731,9 +763,10 @@ cs: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Poznámka: Přeskočení %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: Tento bod bude přesunut na příští schůzi v %{date} %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Bod programu přesunut na příští schůzi %{date} text_agenda_item_no_available_occurrence: Nejsou k dispozici žádné nadcházející výskyty událostí. text_agenda_item_no_notes: Nebyly poskytnuty žádné poznámky diff --git a/modules/meeting/config/locales/crowdin/da.yml b/modules/meeting/config/locales/crowdin/da.yml index a36906f14dfc..73c0938e8c5a 100644 --- a/modules/meeting/config/locales/crowdin/da.yml +++ b/modules/meeting/config/locales/crowdin/da.yml @@ -24,13 +24,14 @@ da: activerecord: attributes: meeting: + agenda_sorting_mode: Sortering duration: Varighed end_time: Sluttidspunkt location: Placering notes: Kommentarer notify: Send notifikationer participant: - one: 1 deltager + one: "%{count} deltager" other: "%{count} deltagere" participants: Deltagere participants_added: 'Deltagere tilføjet:' @@ -88,14 +89,18 @@ da: invalid_time_format: 'er ikke et gyldigt klokkeslæt. Påkrævet format: TT:MM' models: meeting_agenda_item: + meeting_closed: Mødet er lukket. Dets dagsordenspunkter kan ikke længere flyttes. + meeting_is_template: Dagsordenspunkter i en skabelon kan ikke flyttes til næste møde. + not_in_recurring_series: Dagsordenspunktet hører ikke til et tilbagevendende møde. section_not_belong_to_meeting: Afsnittet hører ikke til det samme møde. user_invalid: er ikke en gyldig deltager. + vote_based_sorting_required: Afstemning kræver, at dagsordenen sorteres efter stemmer. meeting_participant: user_invalid: er ikke en gyldig deltager. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Der er ét åbent møde i serien, som ikke er med i den nye tidsplan. Tilpas tidsplanen, så alle eksisterende møder er med. + one: Der er %{count} åbent møde i serien, som ikke er med i den nye tidsplan. Tilpas tidsplanen, så alle eksisterende møder er med. other: Der er %{count} åbne møder i serien, som ikke er med i den nye tidsplan. Tilpas tidsplanen, så alle eksisterende møder er med. recurring_meeting_interim_response: not_an_occurrence: er ikke et gyldigt tidspunkt for en forekomst af det tilbagevendende møde @@ -152,6 +157,10 @@ da: meeting_agenda_opened: Mødedagsorden er påbegyndt meeting_minutes: Mødereferat er ændret meeting_minutes_created: Mødereferat er udfærdiget + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Mødets historik er automatisk synkroniseret med mødets nuværende tilstand. Dagsordenens afsnit og resultater indgår fra nu af i historikken. label_add_work_package_to_meeting_dialog_button: Føj til møde label_add_work_package_to_meeting_dialog_title: Vælg møde label_add_work_package_to_meeting_section_label: Afsnit @@ -160,6 +169,8 @@ da: label_agenda_backlog_clear_title: Vil du rydde backloggen for dagsordenen? label_agenda_item_actions: Handlinger for dagsordenspunkter label_agenda_item_add: Tilføj dagsordenspunkt + label_agenda_item_add_above: Tilføj punkt ovenfor + label_agenda_item_add_below: Tilføj punkt nedenfor label_agenda_item_add_notes: Tilføj noter label_agenda_item_add_outcome: Tilføj resultat label_agenda_item_convert_to_work_package: Konvertér til arbejdspakke @@ -167,6 +178,7 @@ da: label_agenda_item_duplicate: Dupliker label_agenda_item_duplicate_in_next: Dupliker i næste møde label_agenda_item_duplicate_in_next_title: Vil du duplikere i næste møde? + label_agenda_item_include_outcomes: Medtag resultater label_agenda_item_move: Flyt label_agenda_item_move_down: Flyt ned label_agenda_item_move_to_backlog: Flyt til backlog @@ -230,7 +242,7 @@ da: label_meeting_last_updated: Senest opdateret label_meeting_minutes: Referat label_meeting_more: - one: Der er ét møde mere. + one: Der er %{count} møde mere. other: Der er %{count} møder mere. label_meeting_new: Nyt møde label_meeting_new_dynamic: Nyt enkeltstående møde @@ -276,10 +288,10 @@ da: label_recurring_meeting_delete: Slet forekomst label_recurring_meeting_duplicate: Dupliker som enkeltstående møde label_recurring_meeting_more: - one: Der er ét planlagt møde mere (%{schedule}). + one: Der er %{count} planlagt møde mere (%{schedule}). other: Der er %{count} planlagte møder mere (%{schedule}). label_recurring_meeting_more_past: - one: Der er ét tidligere møde mere. + one: Der er %{count} tidligere møde mere. other: Der er %{count} tidligere møder mere. label_recurring_meeting_new: Nyt tilbagevendende møde label_recurring_meeting_next_occurrence: Næste forekomst @@ -310,6 +322,21 @@ da: label_view_meeting_series: Vis mødeserie label_write_outcome: Skriv resultat meeting: + agenda_sorting: + change: Skift sortering + invalid_reaction: Kun stemmer op og ned er tilladt på dagsordenspunkter. + manual: Manuel + manual_description: Placer selv dagsordenspunkterne. Skifter du tilbage, gendannes den manuelle rækkefølge. + manual_order_disabled: Dagsordenspunkterne er sorteret efter stemmer. Skift til manuel sortering for at ændre rækkefølgen. + remove_thumbs_down: Fjern stemme ned + remove_thumbs_up: Fjern stemme op + sorted_by_votes: Dagsordenen er sorteret efter stemmer. + thumbs_down: Stem ned + thumbs_up: Stem op + title: Sortering + vote_based: Efter stemmer + vote_based_description: Sortér dagsordenspunkterne efter stemmer op minus stemmer ned i hvert afsnit. Afsnittene sorteres fortsat manuelt. + votes: 'Stemmer: %{count}' attachments: onetime_template: De vedhæftede filer kommer med i alle fremtidige møder, der bruger skabelonen. series_template: De vedhæftede filer kommer med i alle fremtidige møder i serien. @@ -317,6 +344,9 @@ da: blankslate: desc: Du kan oprette et nyt møde eller ændre filterkriterierne title: Der er ingen møder at vise + cancel: + reason_caption: Teksten kommer med i den e-mail om aflysning, som sendes til deltagerne, når notifikationer er slået til. + reason_label: Årsag til aflysning copied: 'Kopieret fra møde #%{id}' copy: agenda: Kopiér dagsorden @@ -360,6 +390,7 @@ da: header: 'Aflyst: Mødet ''%{title}''' header_occurrence: 'Aflyst: Forekomsten af mødet ''%{title}''' header_series: 'Aflyst: Mødeserien ''%{title}''' + reason: Årsag til aflysning summary: "'%{title}' er aflyst af %{actor}, eller du er fjernet som deltager" summary_occurrence: En forekomst af '%{title}' er aflyst af %{actor}, eller du er fjernet som deltager summary_series: Mødeserien '%{title}' er aflyst af %{actor}, eller du er fjernet som deltager @@ -484,6 +515,7 @@ da: no_items: Ingen dagsordenspunkter no_items_flash: Der er ingen dagsordenspunkter at præsentere. previous: Forrige + slide_progress: Slide %{current}/%{total} title: Præsentationstilstand total_items: "%{current} af %{total}" types: @@ -560,13 +592,13 @@ da: caption: ends_on: Det giver en serie, der slutter den %{date} occurrences: - one: Det giver 1 kommende forekomst + one: Det giver %{count} kommende forekomst other: Det giver %{count} kommende forekomster occurrences_capped: Det giver mere end %{count} kommende forekomster day_of_month_skipping_info: Måneder med færre end %{monthly_day} dage springes over delete_dialog: confirmation_message_html: - one: 'Hvis du sletter %{title}, slettes også én forekomst i serien. Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. + one: 'Hvis du sletter %{title}, slettes også %{count} forekomst i serien. Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. ' other: 'Hvis du sletter %{title}, slettes alle %{count} forekomster i serien. Handlingen kan ikke fortrydes. Fortsæt med forsigtighed. @@ -693,9 +725,10 @@ da: text_agenda_item_dialog_skipping_closed_many: "%{count} lukkede møder" text_agenda_item_dialog_skipping_closed_one: lukket møde den %{date} text_agenda_item_dialog_skipping_note: 'Bemærk: Springer %{details} over.' - text_agenda_item_duplicate_in_next_meeting: Er du sikker på, at du vil føje en kopi af dagsordenspunktet til næste møde den %{date} kl. %{time}? Resultater duplikeres ikke. + text_agenda_item_duplicate_in_next_meeting: Er du sikker på, at du vil føje en kopi af dagsordenspunktet til næste møde den %{date} kl. %{time}? text_agenda_item_duplicated_in_next_meeting: Dagsordenspunktet er duplikeret i næste møde den %{date} text_agenda_item_move_next_meeting: Punktet flyttes til næste møde den %{date} kl. %{time}. + text_agenda_item_moved_to_backlog: Dagsordenspunktet er flyttet til backloggen text_agenda_item_moved_to_next_meeting: Dagsordenspunktet er flyttet til næste møde den %{date} text_agenda_item_no_available_occurrence: Der er ingen kommende forekomster. text_agenda_item_no_notes: Ingen noter diff --git a/modules/meeting/config/locales/crowdin/de.yml b/modules/meeting/config/locales/crowdin/de.yml index 3086385a8fbf..7e6ae032afe7 100644 --- a/modules/meeting/config/locales/crowdin/de.yml +++ b/modules/meeting/config/locales/crowdin/de.yml @@ -24,14 +24,15 @@ de: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Dauer end_time: Endzeit location: Ort/Raum notes: Anmerkungen notify: Benachrichtigungen senden participant: - one: 1 Teilnehmer - other: "%{count} Teilnehmer" + one: "%{count} Participant" + other: "%{count} Participants" participants: Teilnehmer participants_added: 'Hinzugefügte Teilnehmer:' participants_attended: Anwesend @@ -88,17 +89,21 @@ de: invalid_time_format: 'ist keine gültige Zeit. Erforderliches Format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Die Sektion gehört nicht zur gleichen Besprechung. user_invalid: ist kein gültiger Teilnehmer. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: ist kein gültiger Teilnehmer. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Es gibt eine offene Besprechung in der Terminserie, die nicht durch den neuen Zeitplan abgedeckt ist. Passen Sie den Zeitplan an, um alle bestehenden Meetings einzuschließen. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Es gibt %{count} offene Besprechungen in der Terminserie, die nicht durch den neuen Zeitplan abgedeckt sind. Passen Sie den Zeitplan an, um alle bestehenden Meetings einzuschließen. recurring_meeting_interim_response: - not_an_occurrence: ist keine gültige Uhrzeit für diese wiederkehrende Besprechung + not_an_occurrence: ist keine gültige Uhrzeit für dieses wiederkehrende Treffen models: meeting: one: Einmalige Besprechung @@ -152,6 +157,10 @@ de: meeting_agenda_opened: Agenda geöffnet meeting_minutes: Protokoll bearbeitet meeting_minutes_created: Protokoll erstellt + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Zur Besprechung hinzufügen label_add_work_package_to_meeting_dialog_title: Besprechung auswählen label_add_work_package_to_meeting_section_label: Abschnitt @@ -160,6 +169,8 @@ de: label_agenda_backlog_clear_title: Backlog leeren? label_agenda_item_actions: Aktionen zu Tagesordnungspunkten label_agenda_item_add: Tagesordnungspunkt hinzufügen + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Notiz hinzufügen label_agenda_item_add_outcome: Ergebnis hinzufügen label_agenda_item_convert_to_work_package: In Arbeitspaket umwandeln @@ -167,6 +178,7 @@ de: label_agenda_item_duplicate: Duplizieren label_agenda_item_duplicate_in_next: In die nächste Besprechung duplizieren label_agenda_item_duplicate_in_next_title: In die nächste Besprechung duplizieren? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Verschieben label_agenda_item_move_down: Nach unten verschieben label_agenda_item_move_to_backlog: In Backlog verschieben @@ -230,8 +242,8 @@ de: label_meeting_last_updated: Zuletzt aktualisiert label_meeting_minutes: Protokoll label_meeting_more: - one: Es gibt eine weitere Besprechung. - other: Es gibt %{count} weitere Besprechungen. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Neue Besprechung label_meeting_new_dynamic: Neue einmalige Besprechung label_meeting_new_recurring: Neue Terminserie @@ -276,11 +288,11 @@ de: label_recurring_meeting_delete: Besprechung löschen label_recurring_meeting_duplicate: Als einmalige Besprechung duplizieren label_recurring_meeting_more: - one: Es gibt eine weitere Besprechung (%{schedule}). - other: Es gibt %{count} folgende Besprechungen (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Es gibt eine weitere vergangene Besprechung. - other: Es gibt %{count} weitere vergangene Besprechungen. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Neue Terminserie label_recurring_meeting_next_occurrence: Nächstes Ereignis label_recurring_meeting_no_end_date: Es sind weitere Besprechungen geplant (%{schedule}). @@ -310,6 +322,21 @@ de: label_view_meeting_series: Terminserie ansehen label_write_outcome: Ergebnis ergänzen meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Diese angehängten Dateien werden bei allen zukünftigen Besprechungen mit dieser Vorlage berücksichtigt. series_template: Die angehängten Dateien werden in alle künftigen Besprechungen dieser Terminserie einbezogen. @@ -317,6 +344,9 @@ de: blankslate: desc: Sie können eine neue Besprechung erstellen oder Filterkriterien ändern title: Es sind keine Besprechungen vorhanden + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Kopiert von Meeting #%{id}' copy: agenda: Tagesordnung kopieren @@ -360,6 +390,7 @@ de: header: 'Abgesagt: Besprechung ''%{title}''' header_occurrence: 'Abgesagt: Wiederkehrende Besprechung ''%{title}''' header_series: 'Abgesagt: Terminserie ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' wurde von %{actor} abgesagt, oder Sie wurden als Teilnehmer entfernt" summary_occurrence: Eine Besprechung der Terminserie '%{title}' wurde von %{actor} abgesagt, oder Sie wurden als Teilnehmer entfernt summary_series: Terminserie '%{title}' wurde von %{actor} gelöscht, oder Sie wurden als Teilnehmer entfernt @@ -484,6 +515,7 @@ de: no_items: Keine Tagesordnungspunkte no_items_flash: Es sind keine Tagesordnungspunkte vorhanden. previous: Zurück + slide_progress: Slide %{current}/%{total} title: Präsentationsmodus total_items: "%{current} von %{total}" types: @@ -552,21 +584,21 @@ de: placeholder_meeting_template_select_project_first: Wählen Sie zuerst ein Projekt aus placeholder_section_select_meeting_first: Besprechungsauswahl ist zuerst erforderlich plugin_openproject_meeting: - description: Besprechungen für OpenProject - name: OpenProject Besprechung + description: Dieses Modul fügt Funktionen zur Unterstützung von Besprechungen zu OpenProject hinzu. Sie können Besprechungen planen und dabei Teilnehmende aus demselben Projekt auswählen, die an der Besprechung teilnehmen sollen. Es kann eine Tagesordnung erstellt und an die Eingeladenen gesendet werden. Nach der Besprechung können die Teilnehmenden ausgewählt und Protokolle auf der Grundlage der Tagesordnung erstellt werden. Schließlich kann das Protokoll an alle Teilnehmenden und Eingeladenen gesendet werden. + name: OpenProject Besprechungen project_module_meetings: Besprechungen recurring_meeting: actual_first_occurrence_mismatch_html: 'Das erste Vorkommen dieses Serientermins wird sein: %{first_occurrence}' caption: ends_on: Dies führt zu einer Reihe, die am %{date} endet occurrences: - one: Dies führt zu 1 bevorstehenden Veranstaltungen - other: Dies führt zu %{count} bevorstehenden Veranstaltungen + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Dies führt zu mehr als %{count} bevorstehenden Veranstaltungen day_of_month_skipping_info: Monate mit weniger als %{monthly_day} Tagen werden übersprungen delete_dialog: confirmation_message_html: - one: 'Durch die Löschung von %{title} wird eine bestehende Besprechung in dieser Serie gelöscht. Diese Aktion ist nicht rückgängig zu machen. Bitte prüfen Sie die Angaben, bevor Sie fortfahren. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Durch die Löschung von %{title} werden alle %{count} Besprechungen in dieser Serie gelöscht. Diese Aktion ist nicht rückgängig zu machen. Bitte prüfen Sie die Angaben, bevor Sie fortfahren. @@ -631,7 +663,7 @@ de: error_no_next: Es gibt keinen nächsten Termin für diese Serie. error_template_draft: Die Vorlage für die Terminserie ist noch ein Entwurf. first_already_exists: Das erste Vorkommen dieser Terminserie wurde bereits angelegt. - first_created: 'Die erste Besprechung wurde erfolgreich aus der Vorlage erstellt. Weitere werden automatisch zu dem Zeitpunkt erstellt, wenn die vorhergehende Besprechung startet. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Diese Besprechung ist Teil einer Terminserie. @@ -693,9 +725,10 @@ de: text_agenda_item_dialog_skipping_closed_many: "%{count} geschlossene Besprechungen" text_agenda_item_dialog_skipping_closed_one: geschlossene Besprechung am %{date} text_agenda_item_dialog_skipping_note: 'Hinweis: %{details} wird übersprungen.' - text_agenda_item_duplicate_in_next_meeting: Sind Sie sicher, dass Sie eine Kopie dieses Tagesordnungspunktes in die nächste Besprechung am %{date} um %{time} aufnehmen wollen? Ergebnisse dieses Eintrags werden nicht kopiert. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Tagesordnungspunkt zum nächsten Besprechung am %{date} kopiert text_agenda_item_move_next_meeting: Dieser Punkt wird auf die nächste Sitzung am %{date} auf %{time} verschoben. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Tagesordnungspunkt zur nächsten Besprechung am %{date} verschoben text_agenda_item_no_available_occurrence: Es gibt keine verfügbaren bevorstehende Ereignisse. text_agenda_item_no_notes: Keine Notizen angegeben. diff --git a/modules/meeting/config/locales/crowdin/el.yml b/modules/meeting/config/locales/crowdin/el.yml index 7533e8c4e75d..4331b1cea07d 100644 --- a/modules/meeting/config/locales/crowdin/el.yml +++ b/modules/meeting/config/locales/crowdin/el.yml @@ -24,14 +24,15 @@ el: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Διάρκεια end_time: End time location: Τοποθεσία notes: Παρατηρήσεις notify: Send notifications participant: - one: 1 Συμμετέχων - other: "%{count} συμμετέχοντες" + one: "%{count} Participant" + other: "%{count} Participants" participants: Συμμετέχοντες participants_added: 'Participants added:' participants_attended: Παρευρισκόμενοι @@ -88,14 +89,18 @@ el: invalid_time_format: 'δεν είναι έγκυρη ώρα. Απαιτούμενη μορφοποίηση: ΩΩ:ΛΛ' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Το τμήμα δεν ανήκει στην ίδια συνάντηση. user_invalid: δεν είναι έγκυρος συμμετέχων. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: δεν είναι έγκυρος συμμετέχων. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Υπάρχει μια ανοιχτή συνάντηση στη σειρά που δεν καλύπτεται από το νέο χρονοδιάγραμμα. Προσαρμόστε το χρονοδιάγραμμα για να συμπεριλάβετε όλες τις υπάρχουσες συνεδριάσεις. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Υπάρχουν %{count} ανοικτές συναντήσεις στη σειρά που δεν καλύπτονται από το νέο χρονοδιάγραμμα. Προσαρμόστε το χρονοδιάγραμμα για να συμπεριλάβετε όλες τις υπάρχουσες συναντήσεις. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ el: meeting_agenda_opened: Η ατζέντα συνάντησης άνοιξε meeting_minutes: Τα πρακτικά της συνάντησης επεξεργάστηκαν meeting_minutes_created: Δημιουργήθηκαν τα πρακτικά της συνάντησης + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Ενότητα @@ -160,6 +169,8 @@ el: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Προσθήκη σημειώσεων label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ el: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Αντίγραφο στην επόμενη συνάντηση label_agenda_item_duplicate_in_next_title: Αντίγραφή στην επόμενη συνάντηση; + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Μετακίνηση label_agenda_item_move_down: Μετακίνηση προς τα κάτω label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ el: label_meeting_last_updated: Last updated label_meeting_minutes: Πρακτικά label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Νέα Συνάντηση label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ el: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ el: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ el: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Αντιγράφηκε από τη Συνάντηση #%{id}' copy: agenda: Αντιγραφή ατζέντας @@ -360,6 +390,7 @@ el: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ el: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ el: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ el: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ el: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/eo.yml b/modules/meeting/config/locales/crowdin/eo.yml index 4a88ea6999ed..bb0517960051 100644 --- a/modules/meeting/config/locales/crowdin/eo.yml +++ b/modules/meeting/config/locales/crowdin/eo.yml @@ -24,13 +24,14 @@ eo: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Daŭro end_time: Fina tempo location: Location notes: Notoj notify: Sendi sciigojn participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ eo: invalid_time_format: 'ne estas valida tempo. Bezonata formato: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Sekcio ne apartenas al la sama kunveno. user_invalid: ne estas valida partoprenanto. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: ne estas valida partoprenanto. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ eo: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Sekcio @@ -160,6 +169,8 @@ eo: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Aldoni notojn label_agenda_item_add_outcome: Aldoni rezulton label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ eo: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Movi label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,8 +242,8 @@ eo: label_meeting_last_updated: Laste ĝisdatigita label_meeting_minutes: Protokoloj label_meeting_more: - one: Estas ankoraŭ unu kunveno. - other: Estas %{count} pli da kunvenoj. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nova renkontiĝo label_meeting_new_dynamic: Nova unufoja kunveno label_meeting_new_recurring: New recurring meeting @@ -276,10 +288,10 @@ eo: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duobligi kiel unufoja kunveno label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ eo: label_view_meeting_series: Vidi serion de kunvenoj label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ eo: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ eo: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ eo: no_items: Neniuj agendaj punktoj no_items_flash: There are no agenda items to present. previous: Antaŭa + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} de %{total}" types: @@ -560,13 +592,13 @@ eo: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ eo: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ eo: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/es.yml b/modules/meeting/config/locales/crowdin/es.yml index 582e9e066cef..2dd079994463 100644 --- a/modules/meeting/config/locales/crowdin/es.yml +++ b/modules/meeting/config/locales/crowdin/es.yml @@ -24,14 +24,15 @@ es: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duración end_time: Hora de finalización location: Ubicación notes: Notas notify: Enviar notificaciones participant: - one: 1 Participante - other: "%{count} Participantes" + one: "%{count} Participant" + other: "%{count} Participants" participants: Participantes participants_added: 'Participantes añadidos:' participants_attended: Asistentes @@ -88,14 +89,18 @@ es: invalid_time_format: 'no es una hora válida. Formato requerido: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: La sección no pertenece a la misma reunión. user_invalid: no es un participante válido. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: no es un participante válido. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Hay una reunión abierta en la serie que no está cubierta por el nuevo calendario. Ajuste el calendario para incluir todas las reuniones existentes. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Hay %{count} reuniones abiertas en la serie que no están cubiertas por el nuevo calendario. Ajuste el calendario para incluir todas las reuniones existentes. recurring_meeting_interim_response: not_an_occurrence: no es una hora de repetición válida para esta reunión periódica @@ -152,6 +157,10 @@ es: meeting_agenda_opened: Agenda de reuniones abierta meeting_minutes: Minuta de reunión editada meeting_minutes_created: Minuta de reuniones creada + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Añadir a la reunión label_add_work_package_to_meeting_dialog_title: Seleccionar reunión label_add_work_package_to_meeting_section_label: Sección @@ -160,6 +169,8 @@ es: label_agenda_backlog_clear_title: "¿Borrar backlog de agenda?" label_agenda_item_actions: Acciones de elementos de la agenda label_agenda_item_add: Añadir punto a la agenda + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Añadir notas label_agenda_item_add_outcome: Añadir resultado label_agenda_item_convert_to_work_package: Convertir a paquete de trabajo @@ -167,6 +178,7 @@ es: label_agenda_item_duplicate: Duplicar label_agenda_item_duplicate_in_next: Duplicar en la próxima reunión label_agenda_item_duplicate_in_next_title: "¿Duplicar en la próxima reunión?" + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Mover label_agenda_item_move_down: Mover hacia abajo label_agenda_item_move_to_backlog: Mover al backlog @@ -230,8 +242,8 @@ es: label_meeting_last_updated: Última actualización label_meeting_minutes: Minutas label_meeting_more: - one: Hay una reunión más. - other: Hay %{count} reuniones más. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nueva reunión label_meeting_new_dynamic: Nueva reunión única label_meeting_new_recurring: Nueva reunión periódica @@ -276,11 +288,11 @@ es: label_recurring_meeting_delete: Eliminar repetición label_recurring_meeting_duplicate: Duplicar como una reunión única label_recurring_meeting_more: - one: Hay una reunión más programada (%{schedule}). - other: Hay %{count} reuniones más programadas (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Hay una reunión más pasada. - other: Hay %{count} reuniones más pasadas. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nueva reunión periódica label_recurring_meeting_next_occurrence: Siguiente repetición label_recurring_meeting_no_end_date: Hay más reuniones programadas (%{schedule}). @@ -310,6 +322,21 @@ es: label_view_meeting_series: Ver serie de reuniones label_write_outcome: Escribir resultado meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Estos archivos adjuntos se incluirán en todas las reuniones futuras en las que se utilice esta plantilla. series_template: Estos archivos adjuntos se incluirán en todas las reuniones futuras de la serie. @@ -317,6 +344,9 @@ es: blankslate: desc: Puedes crear una nueva reunión o cambiar los criterios de filtrado title: No hay reuniones que mostrar + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: Copiado de la reunión %{id} copy: agenda: Copiar agenda @@ -360,6 +390,7 @@ es: header: 'Cancelada: Reunión «%{title}»' header_occurrence: 'Cancelada: Repetición de la reunión «%{title}»' header_series: 'Cancelada: Serie de reuniones «%{title}»' + reason: Reason for cancellation summary: "%{actor} ha cancelado «%{title}» o se le ha eliminado como participante" summary_occurrence: "%{actor} ha cancelado una repetición de «%{title}» o se le ha eliminado como participante" summary_series: "%{actor} ha cancelado la serie de reuniones «%{title}» o se le ha eliminado como participante" @@ -484,6 +515,7 @@ es: no_items: No hay puntos en el orden del día no_items_flash: No hay puntos que tratar en el orden del día. previous: Anterior + slide_progress: Slide %{current}/%{total} title: Modo de presentación total_items: "%{current} de %{total}" types: @@ -560,13 +592,13 @@ es: caption: ends_on: Esto da lugar a una serie que finaliza el %{date} occurrences: - one: Esto da como resultado 1 repetición próxima - other: Esto da como resultado %{count} repeticiones próximas + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Esto da como resultado más de %{count} repeticiones próximas day_of_month_skipping_info: Se omitirán los meses con menos de %{monthly_day} días delete_dialog: confirmation_message_html: - one: 'Al eliminar %{title} también se eliminará una repetición de esta serie. Esta acción no es reversible. Proceda con precaución. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Al eliminar %{title} se eliminarán todas las apariciones de %{count} en esta serie. Esta acción no es reversible. Proceda con precaución. @@ -631,7 +663,7 @@ es: error_no_next: No hay próxima repetición para esta reunión. error_template_draft: La plantilla de serie de reuniones todavía está en modo borrador. first_already_exists: La primera repetición de esta serie de reuniones ya está instanciada. - first_created: 'La primera reunión se ha creado correctamente a partir de la plantilla. Todas las reuniones futuras se crearán automáticamente al mismo tiempo que la anterior. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Esta reunión forma parte de una serie de reuniones periódicas. @@ -691,9 +723,10 @@ es: text_agenda_item_dialog_skipping_closed_many: "%{count} reuniones cerradas" text_agenda_item_dialog_skipping_closed_one: cerró la reunión el %{date} text_agenda_item_dialog_skipping_note: 'Nota: Se omite %{details}.' - text_agenda_item_duplicate_in_next_meeting: "¿Seguro que deseas añadir una copia de este punto del orden del día a la próxima reunión, el %{date} a las %{time}? Los resultados no se duplicarán." + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Punto del orden del día duplicado a la próxima reunión, el %{date} text_agenda_item_move_next_meeting: Este punto se trasladará a la próxima reunión el %{date} a las %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Punto del orden del día movido a la próxima reunión, el %{date} text_agenda_item_no_available_occurrence: No hay repeticiones próximas disponibles. text_agenda_item_no_notes: No se han proporcionado notas diff --git a/modules/meeting/config/locales/crowdin/et.yml b/modules/meeting/config/locales/crowdin/et.yml index 11563f73b3ce..09fbd28d074c 100644 --- a/modules/meeting/config/locales/crowdin/et.yml +++ b/modules/meeting/config/locales/crowdin/et.yml @@ -24,14 +24,15 @@ et: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Kestus end_time: End time location: Asukoht notes: Märkmed notify: Send notifications participant: - one: 1 osaleja - other: "%{count} osalejat" + one: "%{count} Participant" + other: "%{count} Participants" participants: Osalejad participants_added: 'Participants added:' participants_attended: Osavõtjad @@ -88,14 +89,18 @@ et: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ et: meeting_agenda_opened: Koosoleku plaan on lahtine meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Sektsioon @@ -160,6 +169,8 @@ et: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Märkusi lisada label_agenda_item_add_outcome: Lisa tulemus label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ et: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Tõsta label_agenda_item_move_down: Nihuta alla label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ et: label_meeting_last_updated: Viimati uuendatud label_meeting_minutes: Minutit label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Uus koosolek label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ et: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ et: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ et: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ et: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ et: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ et: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ et: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ et: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/eu.yml b/modules/meeting/config/locales/crowdin/eu.yml index b2f892869b7c..eb26480e9a98 100644 --- a/modules/meeting/config/locales/crowdin/eu.yml +++ b/modules/meeting/config/locales/crowdin/eu.yml @@ -24,13 +24,14 @@ eu: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Iraupena end_time: End time location: Lekua notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Parte-hartzaileak participants_added: 'Participants added:' @@ -88,14 +89,18 @@ eu: invalid_time_format: 'ez da baliozko ordua. Eskatzen den formatua: OO:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ eu: meeting_agenda_opened: Hitzorduaren agenda ireki da meeting_minutes: Hitzorduaren aktak aldatu dira meeting_minutes_created: Hitzorduaren akta sortu da + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ eu: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ eu: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ eu: label_meeting_last_updated: Last updated label_meeting_minutes: Aktak label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Hitzordu berria label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ eu: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ eu: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ eu: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: "#%{id} Hitzordutik kopiatua" copy: agenda: Copy agenda @@ -360,6 +390,7 @@ eu: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ eu: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ eu: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ eu: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ eu: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/fa.yml b/modules/meeting/config/locales/crowdin/fa.yml index 96d2348c8c13..fc939ade6673 100644 --- a/modules/meeting/config/locales/crowdin/fa.yml +++ b/modules/meeting/config/locales/crowdin/fa.yml @@ -24,14 +24,15 @@ fa: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: مدت end_time: زمان پایان location: موقعیت مکانی notes: یادداشت‌ها notify: ارسال اعلان‌ها participant: - one: ۱ شرکت‌کننده - other: "%{count} شرکت‌کننده" + one: "%{count} Participant" + other: "%{count} Participants" participants: شركت كنندگان participants_added: 'شرکت‌کنندگان افزوده‌شده:' participants_attended: حاضران @@ -88,14 +89,18 @@ fa: invalid_time_format: 'زمان معتبری نیست. قالب الزامی: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: بخش به همان جلسه تعلق ندارد. user_invalid: شرکت‌کننده معتبری نیست. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: شرکت‌کننده معتبری نیست. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: یک جلسه باز در این مجموعه وجود دارد که برنامه جدید آن را پوشش نمی‌دهد. برنامه را طوری تنظیم کنید که همه جلسات موجود را شامل شود. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: "%{count} جلسه باز در این مجموعه وجود دارد که برنامه جدید آن‌ها را پوشش نمی‌دهد. برنامه را طوری تنظیم کنید که همه جلسات موجود را شامل شود." recurring_meeting_interim_response: not_an_occurrence: زمان نوبت معتبری برای این جلسه تکرارشونده نیست @@ -152,6 +157,10 @@ fa: meeting_agenda_opened: دستور جلسه باز شد meeting_minutes: صورت‌جلسه ویرایش شد meeting_minutes_created: صورت‌جلسه ایجاد شد + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: افزودن به جلسه label_add_work_package_to_meeting_dialog_title: انتخاب جلسه label_add_work_package_to_meeting_section_label: بخش @@ -160,6 +169,8 @@ fa: label_agenda_backlog_clear_title: بک‌لاگ دستور جلسه پاک شود؟ label_agenda_item_actions: اقدامات موارد دستور جلسه label_agenda_item_add: افزودن مورد دستور جلسه + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: افزودن یادداشت label_agenda_item_add_outcome: افزودن نتیجه label_agenda_item_convert_to_work_package: تبدیل به بسته کاری @@ -167,6 +178,7 @@ fa: label_agenda_item_duplicate: تکثیر label_agenda_item_duplicate_in_next: تکثیر در جلسه بعدی label_agenda_item_duplicate_in_next_title: در جلسه بعدی تکثیر شود؟ + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: انتقال label_agenda_item_move_down: انتقال به پایین label_agenda_item_move_to_backlog: انتقال به بک‌لاگ @@ -230,8 +242,8 @@ fa: label_meeting_last_updated: آخرین به‌روزرسانی label_meeting_minutes: صورت‌جلسه label_meeting_more: - one: یک جلسه دیگر وجود دارد. - other: "%{count} جلسه دیگر وجود دارد." + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: ایجاد جلسه label_meeting_new_dynamic: جلسه یک‌باره جدید label_meeting_new_recurring: جلسه تکرارشونده جدید @@ -276,11 +288,11 @@ fa: label_recurring_meeting_delete: حذف نوبت label_recurring_meeting_duplicate: تکثیر به‌عنوان جلسه یک‌باره label_recurring_meeting_more: - one: یک جلسه زمان‌بندی‌شده دیگر وجود دارد (%{schedule}). - other: "%{count} جلسه زمان‌بندی‌شده دیگر وجود دارد (%{schedule})." + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: یک جلسه گذشته دیگر وجود دارد. - other: "%{count} جلسه گذشته دیگر وجود دارد." + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: جلسه تکرارشونده جدید label_recurring_meeting_next_occurrence: نوبت بعدی label_recurring_meeting_no_end_date: جلسات زمان‌بندی‌شده بیشتری وجود دارند (%{schedule}). @@ -310,6 +322,21 @@ fa: label_view_meeting_series: مشاهده مجموعه جلسات label_write_outcome: ثبت نتیجه meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: این فایل‌های پیوست در همه جلسات آینده‌ای که از این الگو استفاده می‌کنند قرار خواهند گرفت. series_template: این فایل‌های پیوست در همه جلسات آینده این مجموعه قرار خواهند گرفت. @@ -317,6 +344,9 @@ fa: blankslate: desc: می‌توانید یک جلسه جدید ایجاد کنید یا معیارهای فیلتر را تغییر دهید title: جلسه‌ای برای نمایش وجود ندارد + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'کپی‌شده از جلسه #%{id}' copy: agenda: کپی دستور جلسه @@ -360,6 +390,7 @@ fa: header: 'لغوشده: جلسه «%{title}»' header_occurrence: 'لغوشده: نوبت جلسه «%{title}»' header_series: 'لغوشده: مجموعه جلسات «%{title}»' + reason: Reason for cancellation summary: "«%{title}» توسط %{actor} لغو شده یا شما از فهرست شرکت‌کنندگان حذف شده‌اید" summary_occurrence: یک نوبت از «%{title}» توسط %{actor} لغو شده یا شما از فهرست شرکت‌کنندگان حذف شده‌اید summary_series: مجموعه جلسات «%{title}» توسط %{actor} لغو شده یا شما از فهرست شرکت‌کنندگان حذف شده‌اید @@ -484,6 +515,7 @@ fa: no_items: بدون مورد دستور جلسه no_items_flash: هیچ مورد دستور جلسه‌ای برای ارائه وجود ندارد. previous: قبلی + slide_progress: Slide %{current}/%{total} title: حالت ارائه total_items: "%{current} از %{total}" types: @@ -560,13 +592,13 @@ fa: caption: ends_on: این تنظیم باعث می‌شود مجموعه در %{date} پایان یابد occurrences: - one: 'نتیجه: ۱ نوبت پیشِ رو' - other: 'نتیجه: %{count} نوبت پیشِ رو' + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: 'نتیجه: بیش از %{count} نوبت پیشِ رو' day_of_month_skipping_info: ماه‌هایی که کمتر از %{monthly_day} روز دارند نادیده گرفته می‌شوند delete_dialog: confirmation_message_html: - one: 'حذف %{title} یک نوبت از این مجموعه را نیز حذف خواهد کرد. این اقدام قابل بازگشت نیست. لطفاً با احتیاط ادامه دهید. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'حذف %{title} همه %{count} نوبت این مجموعه را حذف خواهد کرد. این اقدام قابل بازگشت نیست. لطفاً با احتیاط ادامه دهید. @@ -631,7 +663,7 @@ fa: error_no_next: نوبت بعدی برای این جلسه وجود ندارد. error_template_draft: الگوی مجموعه جلسات هنوز در حالت پیش‌نویس است. first_already_exists: اولین نوبت این مجموعه جلسات قبلاً ایجاد شده است. - first_created: 'اولین جلسه با موفقیت از روی الگو ایجاد شد. همه جلسات آینده در زمان نوبت قبلی به‌طور خودکار ایجاد خواهند شد. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: این جلسه بخشی از یک مجموعه جلسات تکرارشونده است. @@ -693,9 +725,10 @@ fa: text_agenda_item_dialog_skipping_closed_many: "%{count} جلسه بسته" text_agenda_item_dialog_skipping_closed_one: جلسه بسته در %{date} text_agenda_item_dialog_skipping_note: 'توجه: %{details} نادیده گرفته می‌شود.' - text_agenda_item_duplicate_in_next_meeting: آیا مطمئن هستید که می‌خواهید یک کپی از این مورد دستور جلسه را به جلسه بعدی در %{date} ساعت %{time} اضافه کنید؟ نتایج تکثیر نخواهند شد. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: مورد دستور جلسه در جلسه بعدی، در %{date} تکثیر شد text_agenda_item_move_next_meeting: این مورد به جلسه بعدی در %{date} ساعت %{time} منتقل خواهد شد. + text_agenda_item_moved_to_backlog: مورد دستور جلسه به فهرست کارهای معوق منتقل شد text_agenda_item_moved_to_next_meeting: مورد دستور جلسه به جلسه بعدی، در %{date} منتقل شد text_agenda_item_no_available_occurrence: نوبت پیشِ رویی در دسترس نیست. text_agenda_item_no_notes: یادداشتی ارائه نشده است diff --git a/modules/meeting/config/locales/crowdin/fi.yml b/modules/meeting/config/locales/crowdin/fi.yml index 63b9a6345050..8a328d6f34fd 100644 --- a/modules/meeting/config/locales/crowdin/fi.yml +++ b/modules/meeting/config/locales/crowdin/fi.yml @@ -24,13 +24,14 @@ fi: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Kesto end_time: End time location: Sijainti notes: Kommentit notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Osallistujat participants_added: 'Participants added:' @@ -88,14 +89,18 @@ fi: invalid_time_format: 'ei ole kelvollinen aika. Vaadittava muoto: TT:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ fi: meeting_agenda_opened: Kokouksen esityslista avattu meeting_minutes: Kokouksen pöytäkirjaa muokattu meeting_minutes_created: Kokouksen pöytäkirja luotu + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ fi: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Lisää kommentteja label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ fi: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Siirrä label_agenda_item_move_down: Siirrä alas label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ fi: label_meeting_last_updated: Last updated label_meeting_minutes: Pöytäkirja label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Uusi kokous label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ fi: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ fi: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ fi: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Kopioitu kokouksesta #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ fi: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ fi: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ fi: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ fi: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ fi: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/fil.yml b/modules/meeting/config/locales/crowdin/fil.yml index 0594f86a73b3..95ed4c0e63df 100644 --- a/modules/meeting/config/locales/crowdin/fil.yml +++ b/modules/meeting/config/locales/crowdin/fil.yml @@ -24,13 +24,14 @@ fil: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Tagal end_time: End time location: Lokasyon notes: Ang mga tala notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Mga Kalahok participants_added: 'Participants added:' @@ -88,14 +89,18 @@ fil: invalid_time_format: 'ay hindi balidong oras. Ang hinihinging format ay: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ fil: meeting_agenda_opened: Binuksan ang adyenda ng pagpupulong meeting_minutes: Inedit ang minutes ng pagpupulong meeting_minutes_created: Nilikha ang minutes ng pagpupulong + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ fil: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Magdagdag ng mga talaan label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ fil: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Ilipat label_agenda_item_move_down: Ilipat sa ibaba label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ fil: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Bagong Pagpupulong label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ fil: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ fil: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ fil: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ fil: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ fil: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ fil: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ fil: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ fil: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/fr.yml b/modules/meeting/config/locales/crowdin/fr.yml index 60ff5da425a1..f202a79aaf42 100644 --- a/modules/meeting/config/locales/crowdin/fr.yml +++ b/modules/meeting/config/locales/crowdin/fr.yml @@ -24,13 +24,14 @@ fr: activerecord: attributes: meeting: + agenda_sorting_mode: Mode de tri duration: Durée end_time: Heure de fin location: Lieu notes: Notes notify: Envoyer les notifications participant: - one: 1 participant + one: "%{count} participant" other: "%{count} participants" participants: Participant(s) participants_added: 'Participants ajoutés :' @@ -88,14 +89,18 @@ fr: invalid_time_format: 'n''est pas une heure valide. Format requis : HH:MM' models: meeting_agenda_item: + meeting_closed: La séance est levée. Les points à l'ordre du jour ne peuvent plus être modifiés. + meeting_is_template: Les points de l'ordre du jour figurant dans le modèle ne peuvent pas être reportés à la prochaine réunion. + not_in_recurring_series: Le point de l'ordre du jour n'appartient pas à une réunion récurrente. section_not_belong_to_meeting: La section n'appartient pas à la même réunion. user_invalid: n'est pas un participant valide. + vote_based_sorting_required: Le vote nécessite un tri par ordre du jour basé sur le vote. meeting_participant: user_invalid: n'est pas un participant valide. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Il y a une réunion ouverte dans la série qui n'est pas couverte par le nouvel horaire. Modifiez l'horaire pour inclure toutes les réunions existantes. + one: Il y a %{count} réunions ouvertes dans la série qui ne sont pas couvertes par le nouvel horaire. Modifiez l'horaire pour inclure toutes les réunions existantes. other: Il y a %{count} réunions ouvertes dans la série qui ne sont pas couvertes par le nouvel horaire. Modifiez l'horaire pour inclure toutes les réunions existantes. recurring_meeting_interim_response: not_an_occurrence: n'est pas une heure d'occurrence valide pour cette réunion récurrente @@ -152,6 +157,10 @@ fr: meeting_agenda_opened: Ordre du jour de la réunion ouvert meeting_minutes: Compte rendu de la réunion modifié meeting_minutes_created: Compte rendu de la réunion créé + journals: + cause_descriptions: + system_update: + meeting_journal_sync: L'historique de la réunion est désormais synchronisé automatiquement avec l'état actuel de la réunion. Les points à l'ordre du jour et les conclusions font désormais partie de cet historique. label_add_work_package_to_meeting_dialog_button: Ajouter à la réunion label_add_work_package_to_meeting_dialog_title: Sélectionner la réunion label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ fr: label_agenda_backlog_clear_title: Effacer le backlog de l'ordre du jour ? label_agenda_item_actions: Actions des points de l'ordre du jour label_agenda_item_add: Ajouter un point à l'ordre du jour + label_agenda_item_add_above: Ajouter un élément ci-dessus + label_agenda_item_add_below: Ajouter un élément en dessous label_agenda_item_add_notes: Ajouter des notes label_agenda_item_add_outcome: Ajouter un résultat label_agenda_item_convert_to_work_package: Convertir en lot de travaux @@ -167,6 +178,7 @@ fr: label_agenda_item_duplicate: Dupliquer label_agenda_item_duplicate_in_next: Dupliquer lors de la prochaine réunion label_agenda_item_duplicate_in_next_title: Duplication lors de la prochaine réunion ? + label_agenda_item_include_outcomes: Inclure les résultats label_agenda_item_move: Déplacer label_agenda_item_move_down: Descendre label_agenda_item_move_to_backlog: Déplacer vers le backlog @@ -230,8 +242,8 @@ fr: label_meeting_last_updated: Dernière mise à jour label_meeting_minutes: Compte rendu label_meeting_more: - one: Il reste une réunion. - other: Il reste %{count} réunions. + one: There is %{count} more meeting. + other: Il y a %{count} réunions supplémentaires. label_meeting_new: Nouvelle réunion label_meeting_new_dynamic: Nouvelle réunion ponctuelle label_meeting_new_recurring: Nouvelle réunion récurrente @@ -276,11 +288,11 @@ fr: label_recurring_meeting_delete: Supprimer l'occurrence label_recurring_meeting_duplicate: Dupliquer en tant que réunion ponctuelle label_recurring_meeting_more: - one: Il y a encore une réunion prévue (%{schedule}). - other: Il y a %{count} autres réunions prévues (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Il y a encore une réunion passée. - other: Il y a %{count} autres réunions passées. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nouvelle réunion récurrente label_recurring_meeting_next_occurrence: Occurrence suivante label_recurring_meeting_no_end_date: Il y a d'autres réunions planifiées (%{schedule}). @@ -310,6 +322,21 @@ fr: label_view_meeting_series: Voir la série de réunions label_write_outcome: Rédiger un résultat meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Retirer le vote négatif + remove_thumbs_up: Retirer le vote positif + sorted_by_votes: Ordre du jour classé par nombre de votes. + thumbs_down: Voter contre + thumbs_up: Voter pour + title: Mode de tri + vote_based: Basé sur les votes + vote_based_description: Classer les points de l'ordre du jour en fonction du nombre de votes positifs moins le nombre de votes négatifs au sein de chaque section. Le classement des sections reste manuel. + votes: 'Votes : %{count}' attachments: onetime_template: Ces fichiers joints seront inclus dans toutes les futures réunions créées à l'aide de ce modèle. series_template: Ces fichiers joints seront inclus dans toutes les réunions futures de la série. @@ -317,6 +344,9 @@ fr: blankslate: desc: Vous pouvez créer une nouvelle réunion ou modifier les critères de filtrage title: Il n'y a pas de réunions à afficher + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Raison de l'annulation copied: 'Copié depuis la réunion #%{id}' copy: agenda: Copier l'ordre du jour @@ -360,6 +390,7 @@ fr: header: 'Annulée : Réunion « %{title} »' header_occurrence: 'Annulée : occurrence de la réunion « %{title} »' header_series: 'Annulée : série de réunions « %{title} »' + reason: Raison de l'annulation summary: "« %{title} » a été annulé par %{actor}, ou vous avez été supprimé(e) en tant que participant(e)" summary_occurrence: Une occurrence de « %{title} » a été annulée par %{actor}, ou vous avez été supprimé(e) en tant que participant(e) summary_series: La série de réunions « %{title} » a été annulée par %{actor}, ou vous avez été supprimé(e) en tant que participant(e) @@ -484,6 +515,7 @@ fr: no_items: Aucun point à l'ordre du jour no_items_flash: Il n'y a aucun point à l'ordre du jour à présenter. previous: Précédent + slide_progress: Diapositive %{current}/%{total} title: Mode de présentation total_items: "%{current} sur %{total}" types: @@ -560,13 +592,13 @@ fr: caption: ends_on: Il en résulte une série qui se termine le %{date} occurrences: - one: Il en résulte 1 occurrence à venir - other: Il en résulte %{count} occurrences à venir + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Il en résulte plus de %{count} occurrences à venir day_of_month_skipping_info: Les mois comportant moins de %{monthly_day} jours seront ignorés delete_dialog: confirmation_message_html: - one: 'La suppression de %{title} supprimera également une occurrence de cette série. Cette action est irréversible. Veuillez procéder avec prudence. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'La suppression de %{title} supprimera les %{count} occurrences de cette série. Cette action est irréversible. Veuillez procéder avec prudence. @@ -631,7 +663,7 @@ fr: error_no_next: Il n'y a pas de prochaine occurrence pour cette réunion. error_template_draft: Le modèle de la série de réunions est encore à l'état de brouillon. first_already_exists: La première occurrence de cette série de réunions est déjà instanciée. - first_created: 'La première réunion a été créée avec succès à partir du modèle. Toutes les réunions futures seront créées automatiquement au moment de l''occurrence précédente. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Cette réunion fait partie d'une série de réunions récurrentes. @@ -693,9 +725,10 @@ fr: text_agenda_item_dialog_skipping_closed_many: "%{count} réunions clôturées" text_agenda_item_dialog_skipping_closed_one: réunion clôturée le %{date} text_agenda_item_dialog_skipping_note: 'Note : passer %{details}.' - text_agenda_item_duplicate_in_next_meeting: Voulez-vous vraiment ajouter une copie de ce point de l'ordre du jour à la prochaine réunion, le %{date} à %{time} ? Les résultats ne seront pas dupliqués. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Le point de l'ordre du jour a été dupliqué dans la prochaine réunion, le %{date} text_agenda_item_move_next_meeting: Ce point sera reporté à la prochaine réunion le %{date} à %{time}. + text_agenda_item_moved_to_backlog: Point de l'ordre du jour déplacé vers le backlog text_agenda_item_moved_to_next_meeting: L'ordre du jour a été déplacé vers la prochaine réunion, le %{date} text_agenda_item_no_available_occurrence: Aucune occurrence à venir n'est disponible. text_agenda_item_no_notes: Aucune note fournie diff --git a/modules/meeting/config/locales/crowdin/he.yml b/modules/meeting/config/locales/crowdin/he.yml index 9bce0ba0ce83..0cc453c9f6c3 100644 --- a/modules/meeting/config/locales/crowdin/he.yml +++ b/modules/meeting/config/locales/crowdin/he.yml @@ -24,13 +24,14 @@ he: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: משך זמן end_time: End time location: מיקום notes: הערות notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" two: "%{count} Participants" other: "%{count} Participants" participants: משתתפים @@ -89,14 +90,18 @@ he: invalid_time_format: 'תבנית הזמן אינה תקינה. התבנית הנדרשת היא: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -161,6 +166,10 @@ he: meeting_agenda_opened: סדר היום לפגישה נפתח meeting_minutes: דקות פגישה נערך meeting_minutes_created: דקות פגישה נוצר + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -169,6 +178,8 @@ he: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: הוסף הערות label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -176,6 +187,7 @@ he: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: העבר label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -239,7 +251,7 @@ he: label_meeting_last_updated: Last updated label_meeting_minutes: דקות label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. two: There are %{count} more meetings. other: There are %{count} more meetings. label_meeting_new: פגישה חדשה @@ -286,11 +298,11 @@ he: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). two: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. two: There are %{count} more past meetings. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting @@ -322,6 +334,21 @@ he: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -329,6 +356,9 @@ he: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -372,6 +402,7 @@ he: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -496,6 +527,7 @@ he: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -572,14 +604,14 @@ he: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence two: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -647,7 +679,7 @@ he: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -709,9 +741,10 @@ he: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/hi.yml b/modules/meeting/config/locales/crowdin/hi.yml index e649fca4ac4a..9cb86f3c51b7 100644 --- a/modules/meeting/config/locales/crowdin/hi.yml +++ b/modules/meeting/config/locales/crowdin/hi.yml @@ -24,13 +24,14 @@ hi: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: टिप्पणियाँ notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ hi: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ hi: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ hi: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ hi: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: स्थानांतरित करें label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ hi: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ hi: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ hi: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ hi: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ hi: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ hi: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ hi: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ hi: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ hi: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/hr.yml b/modules/meeting/config/locales/crowdin/hr.yml index 247a42900b51..64d3ba54ce69 100644 --- a/modules/meeting/config/locales/crowdin/hr.yml +++ b/modules/meeting/config/locales/crowdin/hr.yml @@ -24,13 +24,14 @@ hr: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Trajanje end_time: End time location: Lokacija notes: Bilješke notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" few: "%{count} Participants" other: "%{count} Participants" participants: Učesnici @@ -89,14 +90,18 @@ hr: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -161,6 +166,10 @@ hr: meeting_agenda_opened: Dnevni red sastanka otvoren meeting_minutes: Minute sastanka uređene meeting_minutes_created: Minute sastanka dodane + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -169,6 +178,8 @@ hr: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Dodaj bilješke label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -176,6 +187,7 @@ hr: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Premjesti label_agenda_item_move_down: Pomakni dolje label_agenda_item_move_to_backlog: Move to backlog @@ -239,7 +251,7 @@ hr: label_meeting_last_updated: Last updated label_meeting_minutes: Minute label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. other: There are %{count} more meetings. label_meeting_new: Novi sastanak @@ -286,11 +298,11 @@ hr: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting @@ -322,6 +334,21 @@ hr: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -329,6 +356,9 @@ hr: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -372,6 +402,7 @@ hr: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -496,6 +527,7 @@ hr: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -572,14 +604,14 @@ hr: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -647,7 +679,7 @@ hr: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -709,9 +741,10 @@ hr: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/hu.yml b/modules/meeting/config/locales/crowdin/hu.yml index 92b0e3fd8844..1044c0c5d262 100644 --- a/modules/meeting/config/locales/crowdin/hu.yml +++ b/modules/meeting/config/locales/crowdin/hu.yml @@ -24,14 +24,15 @@ hu: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Időtartam end_time: End time location: Helyszín notes: Jegyzet notify: Send notifications participant: - one: 1 résztvevő - other: "%{count} résztvevő" + one: "%{count} Participant" + other: "%{count} Participants" participants: Közreműködők participants_added: 'Participants added:' participants_attended: Résztvevők @@ -88,14 +89,18 @@ hu: invalid_time_format: 'nem egy érvényes időpont. Előírt formátum: óó:pp' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}\n" - one: Az ismétlődő megbeszélésben van egy nyitott megbeszélés, amelyre nem vonatkozik az új ütemezés. Az ütemezésnek az összes létező meeting-et tartalmaznia kell. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Az új ütemezésben hiányzik %{count} db nyitott megbeszélés. Az ütemezésnek az összes létező megbeszélést tartalmaznia kell. recurring_meeting_interim_response: not_an_occurrence: ez nem érvényes időpont az ismétlődő megbeszéléshez @@ -152,6 +157,10 @@ hu: meeting_agenda_opened: Esemény napirendje megnyitva meeting_minutes: Jegyzőkönyv szerkesztve meeting_minutes_created: Jegyzőkönyv létrehozva + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Hozzáadás a megbeszéléshez label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: 'Szekció ' @@ -160,6 +169,8 @@ hu: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: A napirendi pontok intézkedései label_agenda_item_add: Napirendi pont hozzáadása + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Megjegyzések hozzáadása label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ hu: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Ismételje meg a következő megbeszélésen label_agenda_item_duplicate_in_next_title: Ismételje meg a következő megbeszélésen? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Mozgatás label_agenda_item_move_down: Mozgás lefelé label_agenda_item_move_to_backlog: Move to backlog @@ -230,8 +242,8 @@ hu: label_meeting_last_updated: Utoljára frissítve label_meeting_minutes: Jegyzőkönyv label_meeting_more: - one: Már csak egy megbeszélés van hátra. - other: Még %{count} megbeszélés van hátra. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Új megbeszélés label_meeting_new_dynamic: Új egyszeri megbeszélés label_meeting_new_recurring: Új ismétlődő megbeszélés @@ -276,11 +288,11 @@ hu: label_recurring_meeting_delete: Elem törlése label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: Még egy ülés van betervezve (%{schedule}). - other: További %{count} tervezett (%{schedule}) találkozó található. + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Már csak egy megbeszélés van hátra. - other: Még %{count} megbeszélés van hátra. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Új ismétlődő megbeszélés label_recurring_meeting_next_occurrence: Következő esemény label_recurring_meeting_no_end_date: Több tervezett megbeszélés is van (%{schedule}). @@ -310,6 +322,21 @@ hu: label_view_meeting_series: Ismétlődő megbeszélések megtekintése label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Ezeket a csatolt fájlok minden ismételt megbeszélésben szerepelni fognak. series_template: Ezeket a csatolt fájlok minden megbeszélés sorozatban szerepelni fognak. @@ -317,6 +344,9 @@ hu: blankslate: desc: You can create a new meeting or change filter criteria title: Nincsenek megjelenítendő találkozók + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: "#%{id} megbeszélésből másolva" copy: agenda: Napirend másolása @@ -360,6 +390,7 @@ hu: header: 'Elmarad: „%{title} ” című megbeszélés' header_occurrence: 'Elmarad: „%{title} ” című megbeszélés előfordulás' header_series: 'Elmarad: „%{title} ” című megbeszélés sorozat' + reason: Reason for cancellation summary: A „%{title}” című megbeszélést a %{actor} törölte, vagy Önt eltávolították a résztvevők közül summary_occurrence: Egy „%{title}” című megbeszélés előfordulást a %{actor} törölte, vagy Önt eltávolították a résztvevők közül summary_series: A „%{title}” megbeszélés sorozatot a %{actor} törölte, vagy Önt eltávolították a résztvevők közül @@ -484,6 +515,7 @@ hu: no_items: Nincsenek napirendi pontok no_items_flash: There are no agenda items to present. previous: Előző + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ hu: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ hu: error_no_next: Ennek a megbeszélésnek nincs következő időpontja. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Az első megbeszélés már megtörtént. - first_created: 'Az első megbeszélés sikeresen létrehozásra került a sablonból. Az összes jövőbeli megbeszélés automatikusan létrehozásra kerül az előző megbeszélés időpontjában. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Ez a megbeszélés egy ismétlődő megbeszélés része. @@ -693,9 +725,10 @@ hu: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: 'Nincs hozzáadott jegyzet. ' diff --git a/modules/meeting/config/locales/crowdin/hy.yml b/modules/meeting/config/locales/crowdin/hy.yml index 13a42642399b..9e22d5226c7f 100644 --- a/modules/meeting/config/locales/crowdin/hy.yml +++ b/modules/meeting/config/locales/crowdin/hy.yml @@ -24,14 +24,15 @@ hy: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Տևողություն end_time: Ավարտի ժամ location: Վայր notes: Նշումներ notify: Ուղարկել ծանուցումներ participant: - one: 1 մասնակից - other: "%{count} մասնակից" + one: "%{count} Participant" + other: "%{count} Participants" participants: Մասնակիցներ participants_added: Ավելացված մասնակիցներ՝ participants_attended: Ներկաներ @@ -88,14 +89,18 @@ hy: invalid_time_format: վավեր ժամ չէ։ Պահանջվող ձևաչափը՝ HH:MM models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Բաժինը չի պատկանում նույն հանդիպմանը։ user_invalid: վավեր մասնակից չէ։ + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: վավեր մասնակից չէ։ recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Շարքում կա մեկ բաց հանդիպում, որը ներառված չէ նոր ժամանակացույցում։ Ճշգրտեք ժամանակացույցը՝ բոլոր առկա հանդիպումները ներառելու համար։ + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Շարքում կա %{count} բաց հանդիպում, որոնք ներառված չեն նոր ժամանակացույցում։ Ճշգրտեք ժամանակացույցը՝ բոլոր առկա հանդիպումները ներառելու համար։ recurring_meeting_interim_response: not_an_occurrence: վավեր կրկնության ժամանակ չէ այս կրկնվող հանդիպման համար @@ -152,6 +157,10 @@ hy: meeting_agenda_opened: Հանդիպման օրակարգը բացվել է meeting_minutes: Հանդիպման արձանագրությունը խմբագրվել է meeting_minutes_created: Հանդիպման արձանագրությունը ստեղծվել է + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Ավելացնել հանդիպմանը label_add_work_package_to_meeting_dialog_title: Ընտրեք հանդիպումը label_add_work_package_to_meeting_section_label: Բաժին @@ -160,6 +169,8 @@ hy: label_agenda_backlog_clear_title: Մաքրե՞լ օրակարգի բեքլոգը։ label_agenda_item_actions: Օրակարգի կետերի գործողություններ label_agenda_item_add: Ավելացնել օրակարգի կետ + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Ավելացնել նշումներ label_agenda_item_add_outcome: Ավելացնել արդյունք label_agenda_item_convert_to_work_package: Փոխարկել աշխատանքային փաթեթի @@ -167,6 +178,7 @@ hy: label_agenda_item_duplicate: Կրկնօրինակել label_agenda_item_duplicate_in_next: Կրկնօրինակել հաջորդ հանդիպումում label_agenda_item_duplicate_in_next_title: Կրկնօրինակե՞լ հաջորդ հանդիպումում։ + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Տեղափոխել label_agenda_item_move_down: Տեղափոխել ներքև label_agenda_item_move_to_backlog: Տեղափոխել բեքլոգ @@ -230,8 +242,8 @@ hy: label_meeting_last_updated: Վերջին թարմացումը label_meeting_minutes: Արձանագրություն label_meeting_more: - one: Կա ևս մեկ հանդիպում։ - other: Կա ևս %{count} հանդիպում։ + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Նոր հանդիպում label_meeting_new_dynamic: Նոր մեկանգամյա հանդիպում label_meeting_new_recurring: Նոր կրկնվող հանդիպում @@ -276,11 +288,11 @@ hy: label_recurring_meeting_delete: Ջնջել կրկնությունը label_recurring_meeting_duplicate: Կրկնօրինակել որպես մեկանգամյա հանդիպում label_recurring_meeting_more: - one: Կա ևս մեկ պլանավորված հանդիպում (%{schedule})։ - other: Կա ևս %{count} պլանավորված հանդիպում (%{schedule})։ + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Կա ևս մեկ անցած հանդիպում։ - other: Կա ևս %{count} անցած հանդիպում։ + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Նոր կրկնվող հանդիպում label_recurring_meeting_next_occurrence: Հաջորդ կրկնություն label_recurring_meeting_no_end_date: Կան ևս պլանավորված հանդիպումներ (%{schedule})։ @@ -310,6 +322,21 @@ hy: label_view_meeting_series: Դիտել հանդիպումների շարքը label_write_outcome: Գրել արդյունքը meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Այս կցված նիշքերը կներառվեն այս ձևանմուշն օգտագործող բոլոր ապագա հանդիպումներում։ series_template: Այս կցված նիշքերը կներառվեն շարքի բոլոր ապագա հանդիպումներում։ @@ -317,6 +344,9 @@ hy: blankslate: desc: Դուք կարող եք ստեղծել նոր հանդիպում կամ փոփոխել զտիչի չափանիշները title: Ցուցադրելու հանդիպումներ չկան + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Պատճենվել է #%{id} հանդիպումից' copy: agenda: Պատճենել օրակարգը @@ -360,6 +390,7 @@ hy: header: Չեղարկված՝ '%{title}' հանդիպումը header_occurrence: Չեղարկված՝ '%{title}' հանդիպման կրկնությունը header_series: Չեղարկված՝ '%{title}' հանդիպումների շարքը + reason: Reason for cancellation summary: "'%{title}'-ը չեղարկվել է %{actor}-ի կողմից, կամ Դուք հեռացվել եք որպես մասնակից" summary_occurrence: "'%{title}'-ի կրկնությունը չեղարկվել է %{actor}-ի կողմից, կամ Դուք հեռացվել եք որպես մասնակից" summary_series: "'%{title}' հանդիպումների շարքը չեղարկվել է %{actor}-ի կողմից, կամ Դուք հեռացվել եք որպես մասնակից" @@ -484,6 +515,7 @@ hy: no_items: Օրակարգի կետեր չկան no_items_flash: Ներկայացնելու օրակարգի կետեր չկան։ previous: Նախորդ + slide_progress: Slide %{current}/%{total} title: Ներկայացման ռեժիմ total_items: "%{current}-ը %{total}-ից" types: @@ -560,13 +592,15 @@ hy: caption: ends_on: Արդյունքում շարքն ավարտվում է %{date}-ին occurrences: - one: Արդյունքում ստացվում է 1 առաջիկա կրկնություն - other: Արդյունքում ստացվում է %{count} առաջիկա կրկնություն + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Արդյունքում ստացվում է ավելի քան %{count} առաջիկա կրկնություն day_of_month_skipping_info: "%{monthly_day} օրից քիչ օր ունեցող ամիսները բաց կթողնվեն" delete_dialog: confirmation_message_html: - one: "%{title}-ի ջնջումը կջնջի նաև այս շարքի մեկ կրկնությունը։ Այս գործողությունն անշրջելի է։ Խնդրում ենք զգույշ լինել։\n" + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. + + ' other: "%{title}-ի ջնջումը կջնջի այս շարքի բոլոր %{count} կրկնությունները։ Այս գործողությունն անշրջելի է։ Խնդրում ենք զգույշ լինել։\n" zero: "%{title} հանդիպումների շարքը չունի հանդիպումների կրկնություններ։ Շարքը կջնջվի բոլորի համար։ Խնդրում ենք զգույշ լինել։\n" heading: Ընդմիշտ ջնջե՞լ այս հանդիպումների շարքը։ @@ -625,7 +659,7 @@ hy: error_no_next: Այս հանդիպման համար հաջորդ կրկնություն չկա։ error_template_draft: Հանդիպումների շարքի ձևանմուշը դեռևս սևագիր ռեժիմում է։ first_already_exists: Այս հանդիպումների շարքի առաջին կրկնությունն արդեն ստեղծված է։ - first_created: 'Առաջին հանդիպումը հաջողությամբ ստեղծվել է ձևանմուշից։ Բոլոր ապագա հանդիպումներն ավտոմատ կերպով կստեղծվեն նախորդ կրկնության պահին։ + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Այս հանդիպումը կրկնվող հանդիպումների շարքի մաս է։ @@ -687,9 +721,10 @@ hy: text_agenda_item_dialog_skipping_closed_many: "%{count} փակված հանդիպում" text_agenda_item_dialog_skipping_closed_one: "%{date}-ի փակված հանդիպումը" text_agenda_item_dialog_skipping_note: Նշում՝ բաց է թողնվում %{details}։ - text_agenda_item_duplicate_in_next_meeting: Համոզվա՞ծ եք, որ ցանկանում եք այս օրակարգի կետի պատճենն ավելացնել հաջորդ հանդիպմանը՝ %{date}, ժամը %{time}։ Արդյունքները չեն կրկնօրինակվի։ + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Օրակարգի կետը կրկնօրինակվել է հաջորդ հանդիպումում՝ %{date} text_agenda_item_move_next_meeting: Այս տարրը կտեղափոխվի հաջորդ հանդիպում՝ %{date}, ժամը %{time}։ + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Օրակարգի կետը տեղափոխվել է հաջորդ հանդիպում՝ %{date} text_agenda_item_no_available_occurrence: Առաջիկա կրկնություններ հասանելի չեն։ text_agenda_item_no_notes: Նշումներ տրամադրված չեն diff --git a/modules/meeting/config/locales/crowdin/id.yml b/modules/meeting/config/locales/crowdin/id.yml index f8ac56c0225b..74da7c7c139e 100644 --- a/modules/meeting/config/locales/crowdin/id.yml +++ b/modules/meeting/config/locales/crowdin/id.yml @@ -24,13 +24,14 @@ id: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Durasi end_time: End time location: Lokasi notes: Note notify: Send notifications participant: - other: "%{count} Peserta" + other: "%{count} Participants" participants: Partisipan participants_added: 'Participants added:' participants_attended: Peserta @@ -87,14 +88,18 @@ id: invalid_time_format: bukanlah waktu yang valid. Format seharusnya; JJ:MM models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Terdapat satu pertemuan terbuka dalam rangkaian pertemuan yang tidak tercakup dalam jadwal baru. Sesuaikan jadwal untuk mencakup semua pertemuan yang sudah ada. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Terdapat %{count} pertemuan terbuka dalam rangkaian pertemuan yang tidak tercakup dalam jadwal baru. Sesuaikan jadwal untuk mencakup semua pertemuan yang sudah ada. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ id: meeting_agenda_opened: Agenda rapat dibuka meeting_minutes: Laporan rapat diedit meeting_minutes_created: Laporan rapat dibuat + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Tambahkan ke rapat label_add_work_package_to_meeting_dialog_title: Pilih rapat label_add_work_package_to_meeting_section_label: Bagian @@ -151,6 +160,8 @@ id: label_agenda_backlog_clear_title: Hapus backlog agenda? label_agenda_item_actions: Tindakan item agenda label_agenda_item_add: Tambahkan item agenda + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Tambahkan catatan label_agenda_item_add_outcome: Tambahkan hasil label_agenda_item_convert_to_work_package: Convert to work package @@ -158,6 +169,7 @@ id: label_agenda_item_duplicate: Duplikat label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Pindahkan label_agenda_item_move_down: Pindahkan ke bawah label_agenda_item_move_to_backlog: Pindahkan ke backlog @@ -221,7 +233,7 @@ id: label_meeting_last_updated: Terakhir diperbarui label_meeting_minutes: Laporan label_meeting_more: - other: Terdapat %{count} rapat lagi. + other: There are %{count} more meetings. label_meeting_new: Rapat Baru label_meeting_new_dynamic: Rapat satu waktu baru label_meeting_new_recurring: Rapat berulang baru @@ -266,9 +278,9 @@ id: label_recurring_meeting_delete: Hapus acara label_recurring_meeting_duplicate: Duplikat sebagai pertemuan sekali saja label_recurring_meeting_more: - other: Terdapat %{count} rapat terjadwal lagi (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: Terdapat %{count} rapat sebelumnya lagi. + other: There are %{count} more past meetings. label_recurring_meeting_new: Rapat berulang baru label_recurring_meeting_next_occurrence: Acara berikutnya label_recurring_meeting_no_end_date: Ada lebih banyak rapat yang dijadwalkan (%{schedule}). @@ -298,6 +310,21 @@ id: label_view_meeting_series: Lihat jajaran rapat label_write_outcome: Tulis hasil meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -305,6 +332,9 @@ id: blankslate: desc: Anda dapat membuat pertemuan baru atau mengubah kriteria filter title: Tidak ada rapat yang ditampilkan + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Disalin dari Meeting #%{id}' copy: agenda: Salin agenda @@ -348,6 +378,7 @@ id: header: 'Dibatalkan: Rapat ''%{title}''' header_occurrence: 'Dibatalkan: Rapat terjadwal ''%{title}''' header_series: 'Dibatalkan: Seri rapat ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -472,6 +503,7 @@ id: no_items: Tidak ada agenda no_items_flash: Tidak ada agenda yang akan dibahas. previous: Sebelumnya + slide_progress: Slide %{current}/%{total} title: Mode Presentasi total_items: "%{current} dari %{total}" types: @@ -553,7 +585,7 @@ id: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Menghapus %{title} juga akan menghapus satu entri dalam seri ini. Tindakan ini tidak dapat dibatalkan. Harap berhati-hati saat melakukannya. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Menghapus %{title} akan menghapus %{count} entri dalam seri ini. Tindakan ini tidak dapat dibatalkan. Harap berhati-hati saat melakukannya. @@ -615,7 +647,7 @@ id: error_no_next: Tidak ada jadwal acara berikutnya untuk rapat ini. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Rapat pertama dalam rangkaian rapat ini telah dilaksanakan. - first_created: 'Rapat pertama telah berhasil dibuat dari templat. Semua rapat berikutnya akan dibuat secara otomatis pada waktu terjadinya acara sebelumnya. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Rapat ini merupakan bagian dari rangkaian rapat yang berkala. @@ -677,9 +709,10 @@ id: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Apakah Anda yakin ingin menambahkan salinan item agenda ini ke rapat berikutnya pada %{date} pukul %{time}? Hasil rapat tidak akan diduplikasi. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item yang sama terulang dalam rapat berikutnya, yaitu pada %{date} text_agenda_item_move_next_meeting: Item ini akan dipindahkan ke rapat selanjutnya pada %{date} pukul %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Item agenda ini dipindahkan ke rapat berikutnya, yaitu pada %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Tidak ada catatan yang diberikan diff --git a/modules/meeting/config/locales/crowdin/it.yml b/modules/meeting/config/locales/crowdin/it.yml index fcb240b04679..8da715727522 100644 --- a/modules/meeting/config/locales/crowdin/it.yml +++ b/modules/meeting/config/locales/crowdin/it.yml @@ -24,14 +24,15 @@ it: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Durata end_time: Ora di fine location: Luogo notes: Note notify: Invia notifiche participant: - one: 1 partecipante - other: "%{count} partecipanti" + one: "%{count} Participant" + other: "%{count} Participants" participants: Partecipanti participants_added: 'Partecipanti aggiunti:' participants_attended: Invitati @@ -88,14 +89,18 @@ it: invalid_time_format: 'non è un tempo valido. Formato richiesto: HH: mm' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: La sezione non appartiene alla stessa riunione. user_invalid: non è un partecipante valido. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: non è un partecipante valido. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: C'è una riunione aperta nella serie che non è coperta dal nuovo programma. Adatta il programma per includere tutte le riunioni esistenti. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Ci sono %{count} riunioni aperte nella serie che non sono coperte dal nuovo programma. Adatta il programma per includere tutte le riunioni esistenti. recurring_meeting_interim_response: not_an_occurrence: non è un orario di occorrenza valido per questa riunione ricorrente @@ -152,6 +157,10 @@ it: meeting_agenda_opened: Agenda riunione aperta meeting_minutes: Verbali riunione modificati meeting_minutes_created: Verbale riunione creato + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Aggiungi alla riunione label_add_work_package_to_meeting_dialog_title: Seleziona riunione label_add_work_package_to_meeting_section_label: Sezione @@ -160,6 +169,8 @@ it: label_agenda_backlog_clear_title: Ripulire il backlog dell'ordine del giorno? label_agenda_item_actions: Azioni all'ordine del giorno label_agenda_item_add: Aggiungi punto all'ordine del giorno + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Aggiungi nota label_agenda_item_add_outcome: Aggiungi risultato label_agenda_item_convert_to_work_package: Converti in macro-attività @@ -167,6 +178,7 @@ it: label_agenda_item_duplicate: Duplica label_agenda_item_duplicate_in_next: Duplica nella prossima riunione label_agenda_item_duplicate_in_next_title: Duplicare nella prossima riunione? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Sposta label_agenda_item_move_down: Sposta giu label_agenda_item_move_to_backlog: Sposta nel backlog @@ -230,8 +242,8 @@ it: label_meeting_last_updated: Ultimo aggiornamento label_meeting_minutes: Verbali label_meeting_more: - one: C'è un'altra riunione. - other: Ci sono altre %{count} riunioni. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nuova riunione label_meeting_new_dynamic: Nuova riunione una tantum label_meeting_new_recurring: Nuova riunione ricorrente @@ -276,11 +288,11 @@ it: label_recurring_meeting_delete: Elimina ricorrenza label_recurring_meeting_duplicate: Duplica come riunione singola label_recurring_meeting_more: - one: C'è un'altra riunione programmata (%{schedule}). - other: Ci sono altre %{count} riunioni programmate (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: C'è un'altra riunione passata. - other: Ci sono altre %{count} riunioni passate. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nuova riunione ricorrente label_recurring_meeting_next_occurrence: Occorrenza successiva label_recurring_meeting_no_end_date: Ci sono altre riunioni programmate (%{schedule}). @@ -310,6 +322,21 @@ it: label_view_meeting_series: Visualizza la serie di riunioni label_write_outcome: Scrivi risultato meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Questi file allegati saranno inclusi in tutte le riunioni future che utilizzano questo modello. series_template: Questi file allegati saranno inclusi in tutte le prossime riunioni della serie. @@ -317,6 +344,9 @@ it: blankslate: desc: Puoi creare una nuova riunione o modificare i criteri di filtro title: Non ci sono riunioni da visualizzare + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copiato dalla riunione #%{id}' copy: agenda: Copia ordine del giorno @@ -360,6 +390,7 @@ it: header: 'Cancellata: riunione "%{title}"' header_occurrence: 'Cancellata: occorrenza della riunione "%{title}"' header_series: 'Cancellata: serie di riunioni "%{title}"' + reason: Reason for cancellation summary: "'%{title}' è stata annullata da %{actor} oppure ti hanno rimosso come partecipante" summary_occurrence: Un'occorrenza di '%{title}' è stata annullata da %{actor}, oppure ti hanno rimosso come partecipante summary_series: La serie di riunioni '%{title}' è stata annullata da %{actor} oppure ti hanno rimosso come partecipante @@ -484,6 +515,7 @@ it: no_items: Nessun punto all'ordine del giorno no_items_flash: Non ci sono punti all'ordine del giorno da presentare. previous: Precedente + slide_progress: Slide %{current}/%{total} title: Modalità Presentazione total_items: "%{current} di %{total}" types: @@ -560,13 +592,13 @@ it: caption: ends_on: Ciò porta a una serie che si conclude il giorno %{date} occurrences: - one: Questo genera 1 occorrenza futura - other: Questo genera %{count} occorrenze future + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Questo genera più di %{count} occorrenze future day_of_month_skipping_info: I mesi con meno di %{monthly_day} giorni verranno saltati delete_dialog: confirmation_message_html: - one: 'Eliminando %{title} eliminerai anche un''occorrenza di questa serie. Questa azione non è reversibile. Procedi con cautela. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Eliminando %{title} cancellerai tutte le %{count} occorrenze in questa serie. Questa azione non è reversibile. Procedi con cautela. @@ -631,7 +663,7 @@ it: error_no_next: Non ci sono ricorrenze successive per questa riunione. error_template_draft: Il modello per la serie di riunioni è ancora in fase di bozza. first_already_exists: La prima occorrenza di questa serie di riunioni è già istanziata. - first_created: 'La prima riunione è stata creata con successo dal modello. Tutte le riunioni future saranno create automaticamente al momento della ricorrenza precedente. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Questa riunione fa parte di una serie di riunioni ricorrenti. @@ -693,9 +725,10 @@ it: text_agenda_item_dialog_skipping_closed_many: "%{count} riunioni chiuse" text_agenda_item_dialog_skipping_closed_one: riunione chiusa il %{date} text_agenda_item_dialog_skipping_note: 'Nota: salta %{details}.' - text_agenda_item_duplicate_in_next_meeting: Vuoi davvero aggiungere una copia di questo punto all'ordine del giorno della prossima riunione, il giorno %{date} alle ore %{time}? I risultati non verranno duplicati. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Punto all'ordine del giorno duplicato nella prossima riunione, il giorno %{date} text_agenda_item_move_next_meeting: Questo punto sarà spostato alla prossima riunione il giorno %{date} alle ore %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Punto all'ordine del giorno spostato alla prossima riunione, il giorno %{date} text_agenda_item_no_available_occurrence: Non sono disponibili occorrenze imminenti. text_agenda_item_no_notes: Nessuna nota fornita diff --git a/modules/meeting/config/locales/crowdin/ja.yml b/modules/meeting/config/locales/crowdin/ja.yml index 844169371207..4a86b66463a2 100644 --- a/modules/meeting/config/locales/crowdin/ja.yml +++ b/modules/meeting/config/locales/crowdin/ja.yml @@ -24,13 +24,14 @@ ja: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: 期間 end_time: End time location: 場所 notes: 注記 notify: Send notifications participant: - other: 参加者 %{count} + other: "%{count} Participants" participants: 参加者 participants_added: 'Participants added:' participants_attended: 出席者 @@ -87,14 +88,18 @@ ja: invalid_time_format: '有効な時間ではありません。必要なフォーマット: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: 新しいスケジュールではカバーされていない一連の会議があります。すべての会議を含むようにスケジュールを調整してください。 + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: "%{count}個の新しいスケジュールではカバーされていない一連の会議があります。すべての会議を含むようにスケジュールを調整してください。" recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ ja: meeting_agenda_opened: 会議の議題を開始しました meeting_minutes: 会議の議事録が編集されました meeting_minutes_created: 議事録の作成 + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: 会議に追加 label_add_work_package_to_meeting_dialog_title: 会議の選択 label_add_work_package_to_meeting_section_label: セクション @@ -151,6 +160,8 @@ ja: label_agenda_backlog_clear_title: 議題のバックログをクリアしますか? label_agenda_item_actions: 議題項目のアクション label_agenda_item_add: アジェンダを追加 + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: 注記の追加 label_agenda_item_add_outcome: 結果を追加 label_agenda_item_convert_to_work_package: Convert to work package @@ -158,6 +169,7 @@ ja: label_agenda_item_duplicate: 重複 label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: 移動 label_agenda_item_move_down: 下へ移動 label_agenda_item_move_to_backlog: バックログに移動 @@ -221,7 +233,7 @@ ja: label_meeting_last_updated: 最終更新日 label_meeting_minutes: 議事録 label_meeting_more: - other: あと%{count}の会議があります。 + other: There are %{count} more meetings. label_meeting_new: 新しい会議 label_meeting_new_dynamic: 新しい一度限りの会議 label_meeting_new_recurring: 定期的な会議の作成 @@ -298,6 +310,21 @@ ja: label_view_meeting_series: 一連の会議を表示する label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -305,6 +332,9 @@ ja: blankslate: desc: 新しい会議を作成したりフィルタ条件を変更することができます title: 表示する会議がありません + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 会議#%{id} からコピーしました copy: agenda: 議題をコピー @@ -318,7 +348,7 @@ ja: delete_dialog: occurrence: confirm_button: 発生をキャンセル - confirmation_message_html: 'テンプレートにない会議情報は失われます。 続行しますか? + confirmation_message_html: 'テンプレートにない会議情報は失われます。 続けますか? ' heading: この会議をキャンセルしますか? @@ -344,10 +374,11 @@ ja: title: 会議を削除 email: cancelled: - date_time: 予定日時 + date_time: スケジュールされた日時 header: キャンセルされました:会議「%{title}」 header_occurrence: 'キャンセル: 会議発生''%{title}''' header_series: 'キャンセル: 一連の会議 ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -472,6 +503,7 @@ ja: no_items: 議題なし no_items_flash: 発表する議題はない。 previous: 前 + slide_progress: Slide %{current}/%{total} title: プレゼンテーションモード total_items: "%{current} / %{total}" types: @@ -526,7 +558,7 @@ ja: title: iCalendar for meetings notice_meeting_template_created: Template successfully created notice_meeting_updated: このページは他の誰かによって更新されました。変更を表示するには再読み込みしてください。 - notice_successful_notification: 参加者全員にカレンダー更新の電子メールを送信 + notice_successful_notification: すべての出席者にカレンダーの更新をメールしました notice_timezone_missing: タイムゾーンが設定されていない場合、%{zone} が使用されます。タイムゾーンを選択するには、ここをクリックしてください。 permission_create_meetings: 会議を作成 permission_delete_meetings: 会議の削除 @@ -553,7 +585,9 @@ ja: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: "%{title} を削除すると、このシリーズで発生したものも削除されます。この操作は元に戻せません。注意してください。\n" + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. + + ' other: "%{title} を削除すると、この系列内のすべての %{count} オカレンスが削除されます。この操作は元に戻せません。注意してください。\n" zero: '一連の会議 %{title}には会議の発生がありません。このシリーズは削除されます。ご注意ください。 @@ -611,7 +645,7 @@ ja: error_no_next: 次回の開催はありません。 error_template_draft: The meeting series template is still in draft mode. first_already_exists: この一連の会議の最初の発生は既にサイト化されています。 - first_created: '最初の会議がテンプレートから正常に作成されました。今後作成される会議はすべて、前回の開催時に自動的に作成されます。 + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: この会議は、定期的に開催される一連の会議の一環である。 @@ -665,7 +699,7 @@ ja: text_agenda_backlog: 'このバックログは、このワンタイム会議に固有のものです.アイテムをドラッグして追加または会議の議題から削除することができます. ' - text_agenda_backlog_clear_description: '現在アジェンダバックログにあるすべての項目を削除してもよろしいですか?このアクションは元に戻せません。 + text_agenda_backlog_clear_description: '議題のバックログ内のすべての項目を削除してもよろしいですか?この操作は取り消せません。 ' text_agenda_item_dialog_skipping_cancelled_many: "%{count} cancelled meetings" @@ -673,9 +707,10 @@ ja: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: このアイテムは、 %{date} の %{time} の次の会議に移動されます。 + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: 議題アイテムが %{date}の次の会議に移動されました text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: メモは提供されていません @@ -705,7 +740,7 @@ ja: text_meeting_ics_description: 会議へのリンク: %{url} text_meeting_ics_meeting_series_description: 一連の会議へのリンク: %{url} text_meeting_in_progress_description: 議題を変更したり、各項目のアウトカムを記録したり、参加者の出席を追跡することができます。 会議が完了すると、会議をクローズとしてマークしてロックできます。 - text_meeting_in_progress_dropdown_description: 会議中に必要な情報や決定事項などの成果を文書化する。 + text_meeting_in_progress_dropdown_description: 会議中に取られた情報のニーズや意思決定などの成果を記録します。 text_meeting_minutes_for_meeting: 会議の議事録 "%{meeting}" text_meeting_not_editable_anymore: この会議はもう編集できません。 text_meeting_not_present_anymore: この会議は削除されました。別の会議を選択してください。 diff --git a/modules/meeting/config/locales/crowdin/ka.yml b/modules/meeting/config/locales/crowdin/ka.yml index 7ad2893afdc3..beece8f90311 100644 --- a/modules/meeting/config/locales/crowdin/ka.yml +++ b/modules/meeting/config/locales/crowdin/ka.yml @@ -24,14 +24,15 @@ ka: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: ხანგრძლივობა end_time: End time location: მდებარეობა notes: შენიშვნები notify: Send notifications participant: - one: 1 მონაწილე - other: "%{count} მონაწილე" + one: "%{count} Participant" + other: "%{count} Participants" participants: მონაწილეები participants_added: 'Participants added:' participants_attended: დამსწრეები @@ -88,14 +89,18 @@ ka: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ ka: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: შეხვედრისთვის დამატება label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ ka: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: შენიშვნების დამატება label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ ka: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: გადატანა label_agenda_item_move_down: ქვემოთ ჩატანა label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ ka: label_meeting_last_updated: უკანასკნელი განახლება label_meeting_minutes: წუთი label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: ახალი შეხვედრა label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ ka: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ ka: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ ka: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ ka: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ ka: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ ka: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ ka: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ ka: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/kk.yml b/modules/meeting/config/locales/crowdin/kk.yml index fb0e524493b7..f5654c59ff36 100644 --- a/modules/meeting/config/locales/crowdin/kk.yml +++ b/modules/meeting/config/locales/crowdin/kk.yml @@ -24,13 +24,14 @@ kk: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ kk: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ kk: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ kk: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ kk: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ kk: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ kk: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ kk: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ kk: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ kk: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ kk: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ kk: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ kk: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ kk: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/ko.yml b/modules/meeting/config/locales/crowdin/ko.yml index 66369d4b8488..9fb7a4c2e5e0 100644 --- a/modules/meeting/config/locales/crowdin/ko.yml +++ b/modules/meeting/config/locales/crowdin/ko.yml @@ -24,13 +24,14 @@ ko: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: 기간 end_time: 종료 시간 location: 위치 notes: 노트 notify: 알림 보내기 participant: - other: 참가자 %{count}명 + other: "%{count} Participants" participants: 참가자 participants_added: '참가자 추가됨:' participants_attended: 참석자 @@ -87,14 +88,18 @@ ko: invalid_time_format: '은(는) 유효한 시간이 아닙니다. 필요한 형식: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: 섹션이 같은 미팅에 속하지 않습니다. user_invalid: "- 유효한 참가자가 아닙니다." + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: "- 유효한 참가자가 아닙니다." recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: 이 시리즈에는 새로운 스케줄에 포함되지 않은 오픈 미팅이 하나 있습니다. 모든 기존 미팅을 포함하도록 스케줄을 조정하세요. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: 이 시리즈에는 새로운 스케줄에 포함되지 않은 오픈 미팅이 %{count}개 있습니다. 모든 기존 미팅을 포함하도록 스케줄을 조정하세요. recurring_meeting_interim_response: not_an_occurrence: "- 이 반복 미팅에 유효한 항목 시간이 아닙니다" @@ -143,6 +148,10 @@ ko: meeting_agenda_opened: 미팅 의제 열림 meeting_minutes: 미팅 의제 편집됨 meeting_minutes_created: 미팅 의제 생성됨 + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: 미팅에 추가 label_add_work_package_to_meeting_dialog_title: 미팅 선택 label_add_work_package_to_meeting_section_label: 섹션 @@ -151,6 +160,8 @@ ko: label_agenda_backlog_clear_title: 의제 백로그를 지우시겠습니까? label_agenda_item_actions: 의제 항목 작업 label_agenda_item_add: 의제 항목 추가 + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: 메모 추가 label_agenda_item_add_outcome: 결과 추가 label_agenda_item_convert_to_work_package: 작업 패키지로 전환 @@ -158,6 +169,7 @@ ko: label_agenda_item_duplicate: 복제 label_agenda_item_duplicate_in_next: 다음 미팅에 복제 label_agenda_item_duplicate_in_next_title: 다음 미팅에 복제하시겠습니까? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: 이동 label_agenda_item_move_down: 아래로 이동 label_agenda_item_move_to_backlog: 백로그로 이동 @@ -221,7 +233,7 @@ ko: label_meeting_last_updated: 마지막 업데이트 label_meeting_minutes: 의사록 label_meeting_more: - other: 미팅이 %{count}개 더 있습니다. + other: There are %{count} more meetings. label_meeting_new: 새 미팅 label_meeting_new_dynamic: 새로운 일회성 미팅 label_meeting_new_recurring: 새로운 반복 미팅 @@ -266,9 +278,9 @@ ko: label_recurring_meeting_delete: 항목 삭제 label_recurring_meeting_duplicate: 일회성 미팅으로 복제 label_recurring_meeting_more: - other: 예정된 미팅(%{schedule})이 %{count}개 더 있습니다. + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: 지난 미팅이 %{count}개 더 있습니다. + other: There are %{count} more past meetings. label_recurring_meeting_new: 새로운 반복 미팅 label_recurring_meeting_next_occurrence: 다음 항목 label_recurring_meeting_no_end_date: 예정된 미팅(%{schedule})이 더 있습니다. @@ -298,6 +310,21 @@ ko: label_view_meeting_series: 미팅 시리즈 보기 label_write_outcome: 결과 작성 meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: 이러한 첨부 파일은 이 템플릿을 사용하는 모든 향후 미팅에 포함됩니다. series_template: 이러한 첨부 파일은 시리즈의 모든 향후 미팅에 포함됩니다. @@ -305,6 +332,9 @@ ko: blankslate: desc: 새 미팅을 만들거나 필터 기준을 변경할 수 있습니다 title: 표시할 미팅이 없습니다 + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: '미팅 #%{id}에서 복사됨' copy: agenda: 의제 복사 @@ -348,6 +378,7 @@ ko: header: '취소됨: 미팅 ''%{title}''' header_occurrence: '취소됨: 미팅 항목 ''%{title}''' header_series: '취소됨: 미팅 시리즈 ''%{title}''' + reason: Reason for cancellation summary: "'%{title}'이(가) %{actor} 님에 의해 취소되었거나, 참가자에서 회원님이 제거되었습니다" summary_occurrence: "'%{title}' 항목이 %{actor} 님에 의해 취소되었거나, 참가자에서 회원님이 제거되었습니다" summary_series: "'%{title}' 미팅 시리즈가 %{actor} 님에 의해 취소되었거나, 참가자에서 회원님이 제거되었습니다" @@ -472,6 +503,7 @@ ko: no_items: 의제 항목 없음 no_items_flash: 발표할 의제 항목이 없습니다. previous: 이전 + slide_progress: Slide %{current}/%{total} title: 프레젠테이션 모드 total_items: "%{current}/%{total}" types: @@ -548,12 +580,14 @@ ko: caption: ends_on: 이렇게 하면 시리즈가 %{date}에 종료됩니다 occurrences: - other: 이렇게 하면 향후 항목이 %{count}개가 됩니다 + other: This results in %{count} upcoming occurrences occurrences_capped: 이렇게 하면 향후 항목이 %{count}개를 초과하게 됩니다 day_of_month_skipping_info: "%{monthly_day}일보다 적은 달은 건너뜁니다" delete_dialog: confirmation_message_html: - one: "%{title} 삭제를 하면 이 시리즈에서 하나의 항목도 삭제됩니다. 이 작업은 되돌릴 수 없습니다. 주의하여 진행하세요.\n" + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. + + ' other: "%{title} 삭제를 하면 이 시리즈에서 %{count}개 항목 모두가 삭제됩니다. 이 작업은 되돌릴 수 없습니다. 주의하여 진행하세요.\n" zero: '미팅 시리즈 %{title}에는 미팅 항목이 없습니다. 모든 사용자에 대해 이 시리즈가 삭제됩니다. 주의하여 진행하세요. @@ -611,7 +645,7 @@ ko: error_no_next: 이 미팅의 다음 항목이 없습니다. error_template_draft: 미팅 시리즈 템플릿이 아직 초안 모드에 있습니다. first_already_exists: 이 미팅 시리즈의 첫 번째 항목은 이미 인스턴스화되었습니다. - first_created: '첫 번째 미팅이 템플릿에서 성공적으로 생성되었습니다. 향후 모든 미팅은 이전 항목이 발생한 시점에 자동으로 생성됩니다. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: 이 미팅은 반복 미팅 시리즈의 일부입니다. @@ -673,9 +707,10 @@ ko: text_agenda_item_dialog_skipping_closed_many: 종료된 미팅 %{count}개 text_agenda_item_dialog_skipping_closed_one: "%{date}에 종료된 미팅" text_agenda_item_dialog_skipping_note: '참고: %{details}을(를) 건너뜁니다.' - text_agenda_item_duplicate_in_next_meeting: "%{date}, %{time}의 다음 미팅에 이 의제의 사본을 추가하시겠습니까? 결과는 복제되지 않습니다." + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: 의제 항목이 %{date}의 다음 미팅에서 복제되었습니다 text_agenda_item_move_next_meeting: 이 항목은 %{date}, %{time}에 다음 미팅으로 이동됩니다. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: 의제 항목이 %{date}의 다음 미팅으로 이동되었습니다. text_agenda_item_no_available_occurrence: 향후 항목이 없습니다. text_agenda_item_no_notes: 제공된 메모 없음 diff --git a/modules/meeting/config/locales/crowdin/li.yml b/modules/meeting/config/locales/crowdin/li.yml index d0e51b51f57e..f638f865c17f 100644 --- a/modules/meeting/config/locales/crowdin/li.yml +++ b/modules/meeting/config/locales/crowdin/li.yml @@ -24,13 +24,14 @@ li: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: Ind tied location: Lokatie notes: Opmerkinge notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ li: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ li: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Sectie @@ -160,6 +169,8 @@ li: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Notities toevooge label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ li: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Verplaats label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ li: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Nieje vergadering label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ li: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ li: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ li: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ li: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ li: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ li: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ li: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ li: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/lt.yml b/modules/meeting/config/locales/crowdin/lt.yml index b9ba213ec912..a4708b22222a 100644 --- a/modules/meeting/config/locales/crowdin/lt.yml +++ b/modules/meeting/config/locales/crowdin/lt.yml @@ -24,16 +24,17 @@ lt: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Trukmė end_time: End time location: Vieta notes: Pastabos notify: Send notifications participant: - one: 1 dalyvis - few: "%{count} dalyviai" - many: "%{count} dalyvių" - other: "%{count} dalyviai" + one: "%{count} Participant" + few: "%{count} Participants" + many: "%{count} Participants" + other: "%{count} Participants" participants: Dalyviai participants_added: 'Participants added:' participants_attended: Būtinas dalyvis @@ -90,14 +91,18 @@ lt: invalid_time_format: 'netinkamas laikas. Reikalingas formatas: HH:MM (pvz.: 10:30)' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -170,6 +175,10 @@ lt: meeting_agenda_opened: Susitikimo darbotvarkė atidaryta meeting_minutes: Pasitarimo minutės redaguotos meeting_minutes_created: Pasitarimo minutės sukurtos + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Pridėti į susitikimą label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Skiltis @@ -178,6 +187,8 @@ lt: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Darbotvarkės elemento veiksmai label_agenda_item_add: Pridėti darbotvarkės klausimą + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Pridėti pastabų label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -185,6 +196,7 @@ lt: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Perkelti label_agenda_item_move_down: Žemyn label_agenda_item_move_to_backlog: Move to backlog @@ -248,7 +260,7 @@ lt: label_meeting_last_updated: Atnaujinta label_meeting_minutes: Minutės label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. many: There are %{count} more meetings. other: There are %{count} more meetings. @@ -296,12 +308,12 @@ lt: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). many: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. many: There are %{count} more past meetings. other: There are %{count} more past meetings. @@ -334,6 +346,21 @@ lt: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -341,6 +368,9 @@ lt: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Nukopijuota iš susitikimo #%{id}' copy: agenda: Kopijuoti dienotvarkę @@ -384,6 +414,7 @@ lt: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -508,6 +539,7 @@ lt: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -584,7 +616,7 @@ lt: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences many: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences @@ -592,7 +624,7 @@ lt: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -663,7 +695,7 @@ lt: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -725,9 +757,10 @@ lt: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Pastabos nepateiktos diff --git a/modules/meeting/config/locales/crowdin/lv.yml b/modules/meeting/config/locales/crowdin/lv.yml index f49391569f88..fb052a6c5d18 100644 --- a/modules/meeting/config/locales/crowdin/lv.yml +++ b/modules/meeting/config/locales/crowdin/lv.yml @@ -24,6 +24,7 @@ lv: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Ilgums end_time: End time location: Atrašanās vieta @@ -31,7 +32,7 @@ lv: notify: Send notifications participant: zero: "%{count} Participants" - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Dalībnieki participants_added: 'Participants added:' @@ -89,14 +90,18 @@ lv: invalid_time_format: 'nav derīgs laiks. Vajadzīgais formāts: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -161,6 +166,10 @@ lv: meeting_agenda_opened: Sanāksmes darba kārtības atklāšana meeting_minutes: Sanāksmju protokolu rediģēšana meeting_minutes_created: Izveidots sanāksmes protokols + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -169,6 +178,8 @@ lv: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -176,6 +187,7 @@ lv: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -240,7 +252,7 @@ lv: label_meeting_minutes: Protokols label_meeting_more: zero: There are %{count} more meetings. - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Jauna sanāksme label_meeting_new_dynamic: New one-time meeting @@ -287,11 +299,11 @@ lv: label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: zero: There are %{count} more scheduled meetings (%{schedule}). - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: zero: There are %{count} more past meetings. - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -322,6 +334,21 @@ lv: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -329,6 +356,9 @@ lv: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -372,6 +402,7 @@ lv: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -496,6 +527,7 @@ lv: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -573,13 +605,13 @@ lv: ends_on: This results in a series ending on %{date} occurrences: zero: This results in %{count} upcoming occurrences - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -647,7 +679,7 @@ lv: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -709,9 +741,10 @@ lv: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/mn.yml b/modules/meeting/config/locales/crowdin/mn.yml index dada228af7fe..036fad0c11bf 100644 --- a/modules/meeting/config/locales/crowdin/mn.yml +++ b/modules/meeting/config/locales/crowdin/mn.yml @@ -24,13 +24,14 @@ mn: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ mn: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ mn: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ mn: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ mn: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ mn: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ mn: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ mn: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ mn: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ mn: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ mn: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ mn: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ mn: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ mn: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/ms.yml b/modules/meeting/config/locales/crowdin/ms.yml index 5a2f12dbebad..e70fb91483b6 100644 --- a/modules/meeting/config/locales/crowdin/ms.yml +++ b/modules/meeting/config/locales/crowdin/ms.yml @@ -24,13 +24,14 @@ ms: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Tempoh end_time: End time location: Lokasi notes: Nota-nota notify: Send notifications participant: - other: "%{count} Peserta" + other: "%{count} Participants" participants: Peserta-peserta participants_added: 'Participants added:' participants_attended: Penghadir @@ -87,14 +88,18 @@ ms: invalid_time_format: 'bukan masa yang sah. Format yang diperlukan: JJ:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ ms: meeting_agenda_opened: Agenda mesyuarat dibuka meeting_minutes: Minit mesyuarat diedit meeting_minutes_created: Minit mesyuarat dicipta + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Tambah ke mesyuarat label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Bahagian @@ -151,6 +160,8 @@ ms: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Tindakan item agenda label_agenda_item_add: Tambah item agenda + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Tambah nota label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -158,6 +169,7 @@ ms: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Alih label_agenda_item_move_down: Alih ke bawah label_agenda_item_move_to_backlog: Move to backlog @@ -268,9 +280,9 @@ ms: label_recurring_meeting_delete: Padam kejadian label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - other: Terdapat %{count} lagi mesyuarat yang dijadualkan (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: Terdapat %{count} lagi mesyuarat yang lalu. + other: There are %{count} more past meetings. label_recurring_meeting_new: Mesyuarat berulang yang baru label_recurring_meeting_next_occurrence: Next occurrence label_recurring_meeting_no_end_date: There are more scheduled meetings (%{schedule}). @@ -300,6 +312,21 @@ ms: label_view_meeting_series: Lihat siri mesyuarat label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -307,6 +334,9 @@ ms: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Disalin daripada Mesyuarat #%{id}' copy: agenda: Salin agenda @@ -350,6 +380,7 @@ ms: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -474,6 +505,7 @@ ms: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -555,7 +587,7 @@ ms: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -617,7 +649,7 @@ ms: error_no_next: Tiada kejadian seterusnya untuk mesyuarat ini. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Kejadian pertama siri mesyuarat ini telah pun dibuat seketika. - first_created: 'Mesyuarat pertama telah berjaya dibuat daripada templat. Semua mesyuarat akan datang akan dibuat secara automatik pada masa kejadian sebelumnya. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Mesyuarat ini adalah sebahagian daripada siri mesyuarat berulang. @@ -679,9 +711,10 @@ ms: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Tiada nota disediakan diff --git a/modules/meeting/config/locales/crowdin/ne.yml b/modules/meeting/config/locales/crowdin/ne.yml index f89a4306d084..b2b7188c9eab 100644 --- a/modules/meeting/config/locales/crowdin/ne.yml +++ b/modules/meeting/config/locales/crowdin/ne.yml @@ -24,13 +24,14 @@ ne: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: द्रष्टव्यहरु notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ ne: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ ne: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ ne: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ ne: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ ne: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ ne: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ ne: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ ne: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ ne: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ ne: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ ne: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ ne: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ ne: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/nl.yml b/modules/meeting/config/locales/crowdin/nl.yml index f3da2101104b..85d672ee7598 100644 --- a/modules/meeting/config/locales/crowdin/nl.yml +++ b/modules/meeting/config/locales/crowdin/nl.yml @@ -24,14 +24,15 @@ nl: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duur end_time: Eindtijd location: Locatie notes: Notities notify: Verstuur meldingen participant: - one: 1 Deelnemer - other: "%{count} Deelnemers" + one: "%{count} Participant" + other: "%{count} Participants" participants: Deelnemers participants_added: 'Deelnemers toegevoegd:' participants_attended: Aanwezigen @@ -88,14 +89,18 @@ nl: invalid_time_format: 'is geen geldige tijd. Vereist formaat: UH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Sectie behoort niet tot dezelfde vergadering. user_invalid: is geen geldige deelnemer. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is geen geldige deelnemer. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Er is één openstaande vergadering in de reeks die niet in het nieuwe schema is opgenomen. Pas het schema aan zodat alle bestaande vergaderingen erin zijn opgenomen. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ nl: meeting_agenda_opened: Vergaderagenda geopend meeting_minutes: Notulen van de vergadering bewerkt meeting_minutes_created: Notulen gemaakt + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Toevoegen aan vergadering label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Sectie @@ -160,6 +169,8 @@ nl: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items acties label_agenda_item_add: Agendapunt toevoegen + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Notities toevoegen label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ nl: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Verplaatsen label_agenda_item_move_down: Omlaag label_agenda_item_move_to_backlog: Move to backlog @@ -230,8 +242,8 @@ nl: label_meeting_last_updated: Laatst bijgewerkt label_meeting_minutes: Minuten label_meeting_more: - one: Er is nog één vergadering. - other: Er zijn nog %{count} vergaderingen. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nieuwe vergadering label_meeting_new_dynamic: Nieuwe eenmalige vergadering label_meeting_new_recurring: Nieuwe terugkerende vergadering @@ -276,11 +288,11 @@ nl: label_recurring_meeting_delete: Gebeurtenis verwijderen label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). - other: Er zijn nog %{count} geplande vergaderingen (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. - other: Er zijn %{count} meer eerdere vergaderingen. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nieuwe terugkerende vergadering label_recurring_meeting_next_occurrence: Volgende gebeurtenis label_recurring_meeting_no_end_date: Er zijn meer geplande vergaderingen (%{schedule}). @@ -310,6 +322,21 @@ nl: label_view_meeting_series: Bekijk vergaderreeksen label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ nl: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Gekopieerd van vergadering #%{id}' copy: agenda: Agenda kopiëren @@ -360,6 +390,7 @@ nl: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ nl: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Vorige + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ nl: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ nl: error_no_next: Er is geen volgende gebeurtenis voor deze vergadering. error_template_draft: The meeting series template is still in draft mode. first_already_exists: De eerste gebeurtenis van deze vergaderreeks is al geïnitieerd. - first_created: 'De eerste vergadering is succesvol aangemaakt vanuit het sjabloon. Alle toekomstige vergaderingen worden automatisch aangemaakt op het moment van de vorige vergadering. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Deze vergadering is onderdeel van een herhalende vergaderreeks. @@ -693,9 +725,10 @@ nl: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Geen aantekeningen voorzien diff --git a/modules/meeting/config/locales/crowdin/no.yml b/modules/meeting/config/locales/crowdin/no.yml index 98f11707bbfe..9efa1b7ccbef 100644 --- a/modules/meeting/config/locales/crowdin/no.yml +++ b/modules/meeting/config/locales/crowdin/no.yml @@ -24,14 +24,15 @@ activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Varighet end_time: End time location: Sted notes: Notater notify: Send notifications participant: - one: 1 Deltaker - other: "%{count} Deltakere" + one: "%{count} Participant" + other: "%{count} Participants" participants: Deltagere participants_added: 'Participants added:' participants_attended: Tilsluttete @@ -88,14 +89,18 @@ invalid_time_format: er ikke et gyldig tidpunkt. Formatet må være HH:MM models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ meeting_agenda_opened: Saksliste opprettet meeting_minutes: Møtereferater endret meeting_minutes_created: Møtereferater opprettet + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Legg til i møte label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Seksjon @@ -160,6 +169,8 @@ label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Tiltak på punkter i dagsorden label_agenda_item_add: Legg til punkt på dagsorden + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Legg til notater label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Flytt label_agenda_item_move_down: Flytt ned label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ label_meeting_last_updated: Sist oppdatert label_meeting_minutes: Referat label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: Nytt møte label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Kopiert fra møte #%{id}' copy: agenda: Kopier saksliste @@ -360,6 +390,7 @@ header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Ingen merknader finnes diff --git a/modules/meeting/config/locales/crowdin/pl.yml b/modules/meeting/config/locales/crowdin/pl.yml index c6d3931e097c..e0766e19a99b 100644 --- a/modules/meeting/config/locales/crowdin/pl.yml +++ b/modules/meeting/config/locales/crowdin/pl.yml @@ -24,16 +24,17 @@ pl: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Czas trwania end_time: Czas zakończenia location: Lokalizacja notes: Notatki notify: Wysyłaj powiadomienia participant: - one: 1 uczestnik - few: "%{count} uczestników" - many: "%{count} uczestników" - other: "%{count} uczestnika" + one: "%{count} Participant" + few: "%{count} Participants" + many: "%{count} Participants" + other: "%{count} Participants" participants: Uczestnicy participants_added: 'Dodani uczestnicy:' participants_attended: Uczestnicy @@ -90,14 +91,18 @@ pl: invalid_time_format: 'nie jest prawidłowy. Wymagany format to: GG:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Sekcja nie należy do tego samego spotkania. user_invalid: nie jest prawidłowym uczestnikiem. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: nie jest prawidłowym uczestnikiem. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: W serii znajduje się jedno otwarte spotkanie, które nie jest uwzględnione w nowym harmonogramie. Dostosuj harmonogram tak, aby obejmował wszystkie istniejące spotkania. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: W serii znajdują się otwarte spotkania (%{count}), które nie są uwzględnione w nowym harmonogramie. Dostosuj harmonogram tak, aby obejmował wszystkie istniejące spotkania. recurring_meeting_interim_response: not_an_occurrence: nie jest prawidłowym czasem wystąpienia tego spotkania cyklicznego @@ -170,6 +175,10 @@ pl: meeting_agenda_opened: Otwarto plan spotkania meeting_minutes: Protokół ze spotkania edytowany meeting_minutes_created: Protokół ze spotkania utworzony + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Dodaj do spotkania label_add_work_package_to_meeting_dialog_title: Wybierz spotkanie label_add_work_package_to_meeting_section_label: Sekcja @@ -178,6 +187,8 @@ pl: label_agenda_backlog_clear_title: Wyczyścić backlog planu spotkania? label_agenda_item_actions: Działania punktów planu spotkania label_agenda_item_add: Dodaj punkt planu spotkania + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Dodawanie notatek label_agenda_item_add_outcome: Dodaj wynik label_agenda_item_convert_to_work_package: Przekonwertuj na pakiet roboczy @@ -185,6 +196,7 @@ pl: label_agenda_item_duplicate: Duplikuj label_agenda_item_duplicate_in_next: Duplikuj w następnym spotkaniu label_agenda_item_duplicate_in_next_title: Zduplikować w następnym spotkaniu? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Przenieś label_agenda_item_move_down: Przenieś niżej label_agenda_item_move_to_backlog: Przenieś do backlogu @@ -248,10 +260,10 @@ pl: label_meeting_last_updated: Ostatnia aktualizacja label_meeting_minutes: Protokół ze spotkania label_meeting_more: - one: Jest jeszcze jedno spotkanie. - few: Są jeszcze %{count} spotkania. - many: Jest jeszcze %{count} spotkań. - other: Jest jeszcze %{count} spotkania. + one: There is %{count} more meeting. + few: There are %{count} more meetings. + many: There are %{count} more meetings. + other: There are %{count} more meetings. label_meeting_new: Nowe spotkanie label_meeting_new_dynamic: Nowe spotkanie jednorazowe label_meeting_new_recurring: Nowe spotkanie cykliczne @@ -296,15 +308,15 @@ pl: label_recurring_meeting_delete: Usuń wystąpienie label_recurring_meeting_duplicate: Duplikuj jako jednorazowe spotkanie label_recurring_meeting_more: - one: Jest jeszcze jedno zaplanowane spotkanie (%{schedule}). - few: Są jeszcze %{count} zaplanowane spotkania (%{schedule}). - many: Jest jeszcze %{count} zaplanowanych spotkań (%{schedule}). - other: Jest jeszcze %{count} zaplanowanego spotkania (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + few: There are %{count} more scheduled meetings (%{schedule}). + many: There are %{count} more scheduled meetings (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Jest jeszcze jedno poprzednie spotkanie. - few: Są jeszcze %{count} poprzednie spotkania. - many: Jest jeszcze %{count} poprzednich spotkań. - other: Jest jeszcze %{count} poprzedniego spotkania. + one: There is %{count} more past meeting. + few: There are %{count} more past meetings. + many: There are %{count} more past meetings. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nowe spotkanie cykliczne label_recurring_meeting_next_occurrence: Następne wystąpienie label_recurring_meeting_no_end_date: Jest więcej zaplanowanych spotkań (%{schedule}). @@ -334,6 +346,21 @@ pl: label_view_meeting_series: Wyświetl serię spotkań label_write_outcome: Zapisz wynik meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Załączone pliki będą uwzględniane we wszystkich przyszłych spotkaniach używających tego szablonu. series_template: Załączone pliki zostaną uwzględnione we wszystkich przyszłych spotkaniach z tej serii. @@ -341,6 +368,9 @@ pl: blankslate: desc: Możesz utworzyć nowe spotkanie lub zmienić kryteria filtrowania title: Nie ma żadnych spotkań do wyświetlenia + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Skopiowano ze spotkania #%{id}' copy: agenda: Kopiuj agendę spotkania @@ -384,6 +414,7 @@ pl: header: 'Anulowano: spotkanie „%{title}”' header_occurrence: 'Anulowano: wystąpienie spotkania „%{title}”' header_series: 'Anulowano: serię spotkań „%{title}”' + reason: Reason for cancellation summary: "„%{title}” anulował użytkownik %{actor} lub usunięto Cię jako uczestnika" summary_occurrence: Wystąpienie „%{title}” zostało anulowane przez użytkownika %{actor} lub usunięto Cię jako uczestnika summary_series: Seria spotkań „%{title}” została anulowana przez użytkownika %{actor} lub usunięto Cię jako uczestnika @@ -508,6 +539,7 @@ pl: no_items: Brak pozycji planu spotkania no_items_flash: Nie ma żadnych pozycji planu spotkania do zaprezentowania. previous: Poprzedni + slide_progress: Slide %{current}/%{total} title: Tryb prezentacji total_items: "%{current} z %{total}" types: @@ -584,15 +616,15 @@ pl: caption: ends_on: To skutkuje serią kończącą się %{date} occurrences: - one: To skutkuje 1 nadchodzącym wystąpieniem - few: To skutkuje %{count} nadchodzącymi wystąpieniami - many: To skutkuje %{count} nadchodzącymi wystąpieniami - other: To skutkuje %{count} nadchodzącego wystąpienia + one: This results in %{count} upcoming occurrence + few: This results in %{count} upcoming occurrences + many: This results in %{count} upcoming occurrences + other: This results in %{count} upcoming occurrences occurrences_capped: To skutkuje ponad %{count} nadchodzącymi wystąpieniami day_of_month_skipping_info: Miesiące z liczbą dni mniejszą niż %{monthly_day} zostaną pominięte delete_dialog: confirmation_message_html: - one: 'Usunięcie %{title} usunie także jedno wystąpienie w tej serii. To działanie jest nieodwracalne. Postępuj ostrożnie. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Usunięcie %{title} usunie wszystkie wystąpienia (%{count}) w tej serii. To działanie jest nieodwracalne. Postępuj ostrożnie. @@ -663,7 +695,7 @@ pl: error_no_next: Nie ma następnego wystąpienia tego spotkania. error_template_draft: Szablon serii spotkań jest nadal w trybie wersji roboczej. first_already_exists: Pierwsze wystąpienie tej serii spotkań jest już tworzone. - first_created: 'Pierwsze spotkanie zostało utworzone z szablonu. Wszystkie przyszłe spotkania zostaną utworzone automatycznie o godzinie poprzedniego wystąpienia. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Spotkanie to jest częścią serii spotkań cyklicznych. @@ -725,9 +757,10 @@ pl: text_agenda_item_dialog_skipping_closed_many: "%{count} zamkniętych spotkań" text_agenda_item_dialog_skipping_closed_one: spotkania zamkniętego w dniu %{date} text_agenda_item_dialog_skipping_note: 'Uwaga: pomijanie %{details}.' - text_agenda_item_duplicate_in_next_meeting: Czy na pewno chcesz dodać kopię tego punktu planu spotkania do następnego spotkania w dniu %{date} o godzinie %{time}? Wyniki nie będą duplikowane. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Pozycję planu spotkania zduplikowano w następnym spotkaniu w dniu %{date} text_agenda_item_move_next_meeting: Punkt ten zostanie przeniesiony na następne spotkanie w dniu %{date} o %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Punkt planu spotkania przeniesiono na następne spotkanie w dniu %{date} text_agenda_item_no_available_occurrence: Nie są dostępne żadne nadchodzące wystąpienia. text_agenda_item_no_notes: Brak uwag diff --git a/modules/meeting/config/locales/crowdin/pt-BR.yml b/modules/meeting/config/locales/crowdin/pt-BR.yml index 555346a13001..e9693a6b33c1 100644 --- a/modules/meeting/config/locales/crowdin/pt-BR.yml +++ b/modules/meeting/config/locales/crowdin/pt-BR.yml @@ -24,14 +24,15 @@ pt-BR: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duração end_time: Hora de término location: Local notes: Anotações notify: Enviar notificações participant: - one: 1 participante - other: "%{count} participantes" + one: "%{count} Participant" + other: "%{count} Participants" participants: Participantes participants_added: 'Participantes adicionados:' participants_attended: Presentes @@ -88,14 +89,18 @@ pt-BR: invalid_time_format: 'não é um horário válido. Formato exigido: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: A seção não pertence à mesma reunião. user_invalid: não é um participante válido. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: não é um participante válido. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Há uma reunião aberta na série que não está contemplada na nova programação. Ajuste a programação para incluir todas as reuniões existentes. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Há %{count} reuniões abertas na série que não estão contempladas na nova programação. Ajuste a programação para incluir todas as reuniões existentes. recurring_meeting_interim_response: not_an_occurrence: não é um horário válido para esta reunião recorrente @@ -152,6 +157,10 @@ pt-BR: meeting_agenda_opened: Agenda da reunião aberta meeting_minutes: Ata da reunião editada meeting_minutes_created: Ata da reunião criada + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Adicionar à reunião label_add_work_package_to_meeting_dialog_title: Selecionar reunião label_add_work_package_to_meeting_section_label: Seção @@ -160,6 +169,8 @@ pt-BR: label_agenda_backlog_clear_title: Limpar backlog da agenda? label_agenda_item_actions: Ações dos itens da agenda label_agenda_item_add: Adicionar item da agenda + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Adicionar anotações label_agenda_item_add_outcome: Adicionar resultado label_agenda_item_convert_to_work_package: Converter para pacote de trabalho @@ -167,6 +178,7 @@ pt-BR: label_agenda_item_duplicate: Duplicar label_agenda_item_duplicate_in_next: Duplicar na próxima reunião label_agenda_item_duplicate_in_next_title: Duplicar na próxima reunião? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Mover label_agenda_item_move_down: Mover para baixo label_agenda_item_move_to_backlog: Mover para o backlog @@ -232,8 +244,8 @@ pt-BR: label_meeting_last_updated: Última atualização label_meeting_minutes: Atas label_meeting_more: - one: Há mais uma reunião. - other: Há mais %{count} reuniões. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nova Reunião label_meeting_new_dynamic: Nova reunião única label_meeting_new_recurring: Nova reunião recorrente @@ -278,11 +290,11 @@ pt-BR: label_recurring_meeting_delete: Excluir ocorrência label_recurring_meeting_duplicate: Duplicar como reunião única label_recurring_meeting_more: - one: Há mais uma reunião programada (%{schedule}). - other: Há mais %{count} reuniões programadas (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Há mais uma reunião passada. - other: Há mais %{count} reuniões anteriores. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nova reunião recorrente label_recurring_meeting_next_occurrence: Próxima ocorrência label_recurring_meeting_no_end_date: Há mais reuniões programadas (%{schedule}). @@ -312,6 +324,21 @@ pt-BR: label_view_meeting_series: Visualizar série de reuniões label_write_outcome: Gravar resultado meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Esses arquivos anexados serão adicionados a todas as reuniões futuras usando este modelo. series_template: Esses arquivos anexados serão adicionados a todas as reuniões futuras da série. @@ -319,6 +346,9 @@ pt-BR: blankslate: desc: Você pode criar uma nova reunião ou mudar o critério de filtro title: Não há reuniões para exibir + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copiado para a Reunião #%{id}' copy: agenda: Copiar agenda @@ -362,6 +392,7 @@ pt-BR: header: 'Cancelada: Reunião "%{title}"' header_occurrence: 'Cancelada: Ocorrência de reunião "%{title}"' header_series: 'Cancelada: série de reuniões "%{title}"' + reason: Reason for cancellation summary: '"%{title}" foi cancelada por %{actor}, ou você foi removido como participante' summary_occurrence: Uma ocorrência de "%{title}" foi cancelada por %{actor}, ou você foi removido como participante summary_series: A série de reuniões "%{title}" foi cancelada por %{actor}, ou você foi removido como participante @@ -486,6 +517,7 @@ pt-BR: no_items: Sem itens na pauta no_items_flash: Não há itens na pauta para apresentar. previous: Anterior + slide_progress: Slide %{current}/%{total} title: Modo de apresentação total_items: "%{current} de %{total}" types: @@ -562,13 +594,13 @@ pt-BR: caption: ends_on: Isso resulta em uma série que termina em %{date} occurrences: - one: Isso resulta em 1 ocorrência futura - other: Isso resulta em %{count} ocorrências futuras + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Isso resulta em mais de %{count} ocorrências futuras day_of_month_skipping_info: Meses com menos de %{monthly_day} dias serão ignorados delete_dialog: confirmation_message_html: - one: 'Excluir %{title} também removerá uma ocorrência desta série. Essa ação não pode ser desfeita. Prossiga com cuidado. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Excluir %{title} removerá todas as ocorrências %{count} desta série. Essa ação não pode ser desfeita. Prossiga com cuidado. @@ -633,7 +665,7 @@ pt-BR: error_no_next: Não há uma próxima ocorrência desta reunião. error_template_draft: O modelo da série de reuniões ainda está no modo de rascunho. first_already_exists: A primeira ocorrência desta série de reuniões já foi agendada. - first_created: 'A primeira reunião foi criada com sucesso a partir do modelo. Todas as reuniões subsequentes serão criadas automaticamente no horário da ocorrência anterior. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Esta reunião faz parte de uma série de reuniões recorrentes. @@ -695,9 +727,10 @@ pt-BR: text_agenda_item_dialog_skipping_closed_many: "%{count} reuniões encerradas" text_agenda_item_dialog_skipping_closed_one: reunião encerrada em %{date} text_agenda_item_dialog_skipping_note: 'Observação: Ignorando %{details}.' - text_agenda_item_duplicate_in_next_meeting: Tem certeza de que deseja adicionar uma cópia deste item da pauta à próxima reunião, em %{date} às %{time}? Os resultados não serão duplicados. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Item da pauta duplicado na próxima reunião, em %{date} text_agenda_item_move_next_meeting: Este item será transferido para a próxima reunião em %{date} às %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Item da pauta movido para a próxima reunião em %{date} text_agenda_item_no_available_occurrence: Não há ocorrências futuras disponíveis. text_agenda_item_no_notes: Nenhum comentário foi feito diff --git a/modules/meeting/config/locales/crowdin/pt-PT.yml b/modules/meeting/config/locales/crowdin/pt-PT.yml index 81969ee681f4..071d2598cf5a 100644 --- a/modules/meeting/config/locales/crowdin/pt-PT.yml +++ b/modules/meeting/config/locales/crowdin/pt-PT.yml @@ -24,14 +24,15 @@ pt-PT: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duração end_time: Hora de fim location: Localização notes: Notas notify: Enviar notificações participant: - one: 1 Participante - other: "%{count} Participantes" + one: "%{count} Participant" + other: "%{count} Participants" participants: Participantes participants_added: 'Participantes adicionados:' participants_attended: Participantes @@ -88,14 +89,18 @@ pt-PT: invalid_time_format: 'não é uma hora válida. Formato exigido: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: A secção não pertence à mesma reunião. user_invalid: não é um participante válido. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: não é um participante válido. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Há uma reunião aberta na série que não é abrangida pelo novo calendário. Ajuste o calendário para incluir todas as reuniões existentes. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Existem %{count} reuniões abertas na série que não são abrangidas pelo novo calendário. Ajuste o calendário para incluir todas as reuniões existentes. recurring_meeting_interim_response: not_an_occurrence: não é uma hora de ocorrência válida para esta reunião periódica @@ -152,6 +157,10 @@ pt-PT: meeting_agenda_opened: Agenda de reunião aberta meeting_minutes: Minutos de reunião editados meeting_minutes_created: Minutos de reunião criados + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Adicionar à reunião label_add_work_package_to_meeting_dialog_title: Selecionar reunião label_add_work_package_to_meeting_section_label: Secção @@ -160,6 +169,8 @@ pt-PT: label_agenda_backlog_clear_title: Limpar backlog da agenda? label_agenda_item_actions: Ações dos itens da agenda label_agenda_item_add: Adicionar ponto à ordem de trabalhos + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Adicionar notas label_agenda_item_add_outcome: Adicionar resultado label_agenda_item_convert_to_work_package: Converter em pacote de trabalho @@ -167,6 +178,7 @@ pt-PT: label_agenda_item_duplicate: Duplicar label_agenda_item_duplicate_in_next: Duplicar na próxima reunião label_agenda_item_duplicate_in_next_title: Duplicar na próxima reunião? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Mover label_agenda_item_move_down: Mover para baixo label_agenda_item_move_to_backlog: Mover para o backlog @@ -230,8 +242,8 @@ pt-PT: label_meeting_last_updated: Ultima atualização label_meeting_minutes: Minutos label_meeting_more: - one: Há mais uma reunião. - other: Há mais %{count} reuniões. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nova reunião label_meeting_new_dynamic: Nova reunião única label_meeting_new_recurring: Nova reunião recorrente @@ -276,11 +288,11 @@ pt-PT: label_recurring_meeting_delete: Eliminar ocorrência label_recurring_meeting_duplicate: Duplicar como reunião única label_recurring_meeting_more: - one: Existe mais uma reunião agendada (%{schedule}). - other: Existem mais %{count} reuniões agendadas (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Existe mais uma reunião anterior. - other: Existem mais %{count} reuniões anteriores. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nova reunião recorrente label_recurring_meeting_next_occurrence: Próxima ocorrência label_recurring_meeting_no_end_date: Existem mais reuniões agendadas (%{schedule}). @@ -310,6 +322,21 @@ pt-PT: label_view_meeting_series: Ver séries de reuniões label_write_outcome: Escrever o resultado meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Estes ficheiros em anexo serão incluídos em todas as futuras reuniões que utilizem este modelo. series_template: Estes ficheiros em anexo serão incluídos em todas as futuras reuniões da série. @@ -317,6 +344,9 @@ pt-PT: blankslate: desc: Pode criar uma nova reunião ou alterar os critérios de filtragem title: Não há reuniões para apresentar + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copiado da reunião #%{id}' copy: agenda: Copiar agenda @@ -360,6 +390,7 @@ pt-PT: header: 'Cancelada: Reunião "%{title}"' header_occurrence: 'Cancelada: ocorrência de reunião "%{title}"' header_series: 'Cancelada: série de reuniões "%{title}"' + reason: Reason for cancellation summary: "'%{title}' foi cancelado por %{actor}, ou foi removido como participante" summary_occurrence: Uma ocorrência de '%{title}' foi cancelada por %{actor}, ou foi removido como participante summary_series: A série de reuniões '%{title}' foi cancelada por %{actor}, ou foi removido como participante @@ -484,6 +515,7 @@ pt-PT: no_items: Sem elementos na agenda no_items_flash: Não há elementos na agenda para apresentar. previous: Anterior + slide_progress: Slide %{current}/%{total} title: Modo de apresentação total_items: "%{current} de %{total}" types: @@ -560,13 +592,13 @@ pt-PT: caption: ends_on: Resulta numa série que termina em %{date} occurrences: - one: Resulta em 1 ocorrência futura - other: Resulta em %{count} ocorrências futuras + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Resulta em mais de %{count} ocorrências futuras day_of_month_skipping_info: Os meses com menos de %{monthly_day} dias serão ignorados delete_dialog: confirmation_message_html: - one: 'A eliminação de %{title} também irá eliminar uma ocorrência nesta série. Esta ação não é reversível. Proceda com cuidado. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'A eliminação de %{title} irá eliminar as %{count} ocorrências nesta série. Esta ação não é reversível. Proceda com cuidado. @@ -631,7 +663,7 @@ pt-PT: error_no_next: Esta reunião não tem data prevista para a sua próxima ocorrência. error_template_draft: O modelo da série de reuniões ainda está no modo rascunho. first_already_exists: A primeira ocorrência desta série de reuniões já está instanciada. - first_created: 'A primeira reunião foi criada com êxito a partir do modelo. Todas as reuniões futuras serão criadas automaticamente na altura da ocorrência anterior. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Esta reunião faz parte de uma série de reuniões recorrentes. @@ -693,9 +725,10 @@ pt-PT: text_agenda_item_dialog_skipping_closed_many: "%{count} reuniões fechadas" text_agenda_item_dialog_skipping_closed_one: reunião fechada em %{date} text_agenda_item_dialog_skipping_note: 'Nota: A saltar %{details}.' - text_agenda_item_duplicate_in_next_meeting: Tem a certeza de que quer acrescentar uma cópia deste ponto da ordem de trabalhos à próxima reunião, em %{date} em %{time}? Os resultados não serão duplicados. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Ponto da ordem de trabalhos duplicado na próxima reunião, em %{date} text_agenda_item_move_next_meeting: Este ponto será transferido para a próxima reunião em %{date} em %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Ponto da ordem de trabalhos transferido para a reunião seguinte, a %{date} text_agenda_item_no_available_occurrence: Não estão disponíveis ocorrências futuras. text_agenda_item_no_notes: Nenhuma nota fornecida. diff --git a/modules/meeting/config/locales/crowdin/ro.yml b/modules/meeting/config/locales/crowdin/ro.yml index 5c7cc96cbf17..054e465c8316 100644 --- a/modules/meeting/config/locales/crowdin/ro.yml +++ b/modules/meeting/config/locales/crowdin/ro.yml @@ -24,15 +24,16 @@ ro: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Durată end_time: End time location: Locație notes: Mențiuni notify: Send notifications participant: - one: 1 participant - few: "%{count} participanți" - other: "%{count} participanți" + one: "%{count} Participant" + few: "%{count} Participants" + other: "%{count} Participants" participants: Participanţi participants_added: 'Participants added:' participants_attended: Participanți @@ -89,14 +90,18 @@ ro: invalid_time_format: 'nu este o oră valabilă. Format necesar: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Există o întâlnire deschisă în seria care nu este acoperită de noul program. Reglează programul pentru a include toate întâlnirile existente. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Există %{count} întâlniri deschise în seria care nu sunt acoperite de noul program. Reglaţi programul pentru a include toate întâlnirile existente. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -161,6 +166,10 @@ ro: meeting_agenda_opened: Agenda întâlnirii e deschisă meeting_minutes: Procesele-verbale ale reuniunii au fost editate meeting_minutes_created: Procese-verbale de ședință create + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Secțiune @@ -169,6 +178,8 @@ ro: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Adaugă note label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -176,6 +187,7 @@ ro: label_agenda_item_duplicate: Dublează label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Mută label_agenda_item_move_down: Mută în jos label_agenda_item_move_to_backlog: Move to backlog @@ -239,7 +251,7 @@ ro: label_meeting_last_updated: Ultima actualizare label_meeting_minutes: Minute label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. other: There are %{count} more meetings. label_meeting_new: Noua întâlnire @@ -286,11 +298,11 @@ ro: label_recurring_meeting_delete: Șterge apariția label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. other: There are %{count} more past meetings. label_recurring_meeting_new: Întâlnire periodică nouă @@ -322,6 +334,21 @@ ro: label_view_meeting_series: Vezi seria de întâlniri label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -329,6 +356,9 @@ ro: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copiat de la Întâlnire #%{id}' copy: agenda: Copiază agenda @@ -372,6 +402,7 @@ ro: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -496,6 +527,7 @@ ro: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Înapoi + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -572,14 +604,14 @@ ro: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -647,7 +679,7 @@ ro: error_no_next: Nu există un eveniment următor pentru această reuniune. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Prima apariție a acestei serii de întâlniri este deja instantiă. - first_created: 'Prima întâlnire a fost creată cu succes din șablon, toate întâlnirile viitoare vor fi create automat în momentul apariției anterioare. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Această întâlnire face parte dintr-o serie de întâlniri recurente. @@ -709,9 +741,10 @@ ro: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/ru.yml b/modules/meeting/config/locales/crowdin/ru.yml index f0a723c6317e..60a16ad69ae0 100644 --- a/modules/meeting/config/locales/crowdin/ru.yml +++ b/modules/meeting/config/locales/crowdin/ru.yml @@ -24,16 +24,17 @@ ru: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Длительность end_time: Время завершения location: Расположение notes: Заметки notify: Отправлять уведомления participant: - one: 1 Участник - few: "%{count} Участников" - many: "%{count} Участников" - other: "%{count} Участников" + one: "%{count} Participant" + few: "%{count} Participants" + many: "%{count} Participants" + other: "%{count} Participants" participants: Участники participants_added: 'Участников добавлено:' participants_attended: Участники @@ -90,14 +91,18 @@ ru: invalid_time_format: 'недопустимое время. Требуемый формат: ЧЧ:ММ' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Раздел не принадлежит к одному и тому же совещанию. user_invalid: не является действительным участником. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: не является действительным участником. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: В серии есть одно открытое совещание, которое не включено в новый график. Измените график, чтобы включить все существующие совещания. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: В серии есть %{count} открытых совещаний, которые не включены в новый график. Измените график, чтобы включить все существующие совещания. recurring_meeting_interim_response: not_an_occurrence: не является допустимым временем повторения совещания @@ -170,6 +175,10 @@ ru: meeting_agenda_opened: Повестка совещания открыта meeting_minutes: Править протокол заседания meeting_minutes_created: Создан протокол заседания + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Добавить в совещание label_add_work_package_to_meeting_dialog_title: Выберите совещание label_add_work_package_to_meeting_section_label: Раздел @@ -178,6 +187,8 @@ ru: label_agenda_backlog_clear_title: Очистить бэклог по повестке дня? label_agenda_item_actions: Действия по пунктам повестки label_agenda_item_add: Добавить пункт повестки + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Добавить заметки label_agenda_item_add_outcome: Добавить итог label_agenda_item_convert_to_work_package: Преобразовать в пакет работ @@ -185,6 +196,7 @@ ru: label_agenda_item_duplicate: Дубликат label_agenda_item_duplicate_in_next: Продублировать в следующее совещание label_agenda_item_duplicate_in_next_title: Продублировать в следующее совещание? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Переместить label_agenda_item_move_down: Вниз label_agenda_item_move_to_backlog: Переместить в бэклог @@ -248,10 +260,10 @@ ru: label_meeting_last_updated: Последнее обновление label_meeting_minutes: Протокол(-ы) label_meeting_more: - one: Есть еще одно совещание. - few: Есть еще %{count} совещания. - many: Есть еще %{count} совещаний. - other: Есть еще %{count} совещаний. + one: There is %{count} more meeting. + few: There are %{count} more meetings. + many: There are %{count} more meetings. + other: There are %{count} more meetings. label_meeting_new: Новое совещание label_meeting_new_dynamic: Новое однократное совещание label_meeting_new_recurring: Новое повторяющееся совещание @@ -296,15 +308,15 @@ ru: label_recurring_meeting_delete: Удалить событие label_recurring_meeting_duplicate: Дублировать как одноразовое совещание label_recurring_meeting_more: - one: Есть еще одно запланированное совещание (%{schedule}). - few: Есть еще %{count} запланированных совещаний (%{schedule}). - many: Есть еще %{count} запланированных совещаний (%{schedule}). - other: Есть еще %{count} запланированных совещаний (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + few: There are %{count} more scheduled meetings (%{schedule}). + many: There are %{count} more scheduled meetings (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Есть еще одно прошедшее совещание. - few: Есть еще %{count} прошедших совещаний. - many: Есть еще %{count} прошедших совещаний. - other: Есть еще %{count} прошедших совещаний. + one: There is %{count} more past meeting. + few: There are %{count} more past meetings. + many: There are %{count} more past meetings. + other: There are %{count} more past meetings. label_recurring_meeting_new: Новое повторяющееся совещание label_recurring_meeting_next_occurrence: Следующее событие label_recurring_meeting_no_end_date: Есть и другие запланированные совещания (%{schedule}). @@ -334,6 +346,21 @@ ru: label_view_meeting_series: Посмотреть серию совещаний label_write_outcome: Зафиксировать итог meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Эти прикрепленные файлы будут включены во все последующие совещания, проводимые по этому шаблону. series_template: Эти прикрепленные файлы будут включены во все последующие совещания этой серии. @@ -341,6 +368,9 @@ ru: blankslate: desc: Вы можете создать новое совещание или изменить критерии фильтра title: Нет совещаний для отображения + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Скопировано с совещания #%{id}' copy: agenda: Копировать повестку @@ -384,6 +414,7 @@ ru: header: 'Отменено: совещание ''%{title}''' header_occurrence: 'Отменено: событие совещания ''%{title}''' header_series: 'Отменено: серия совещаний ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' было отменено %{actor}, или вы были удалены из списка участников" summary_occurrence: Начало '%{title}' было отменено %{actor}, или вы были удалены из списка участников summary_series: Серия совещаний '%{title}' была отменена %{actor}, или вы были удалены из списка участников @@ -508,6 +539,7 @@ ru: no_items: Нет пунктов повестки дня no_items_flash: На повестке дня нет никаких вопросов. previous: Предыдущий + slide_progress: Slide %{current}/%{total} title: Режим презентации total_items: "%{current} из %{total}" types: @@ -584,15 +616,15 @@ ru: caption: ends_on: В результате серия заканчивается %{date} occurrences: - one: В результате будет одно предстоящее событие - few: В результате будет %{count} предстоящих события - many: В результате будет %{count} предстоящих событий - other: В результате будет %{count} предстоящих событий + one: This results in %{count} upcoming occurrence + few: This results in %{count} upcoming occurrences + many: This results in %{count} upcoming occurrences + other: This results in %{count} upcoming occurrences occurrences_capped: В результате получается более %{count} предстоящих событий day_of_month_skipping_info: Месяцы, в которых число дней меньше, чем %{monthly_day}, будут пропущены delete_dialog: confirmation_message_html: - one: 'Удаление %{title} также удалит одно вхождение в эту серию. Это действие необратимо. Пожалуйста, действуйте с осторожностью. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Удаление %{title} удалит все %{count} вхождений в эту серию. Это действие необратимо. Пожалуйста, действуйте с осторожностью. @@ -663,7 +695,7 @@ ru: error_no_next: Следующее событие для этого совещания не состоится. error_template_draft: Шаблон серии встреч все еще находится в режиме черновика. first_already_exists: Первое событие этой серии совещаний уже произошло. - first_created: 'Первое совещание было успешно создано из шаблона. Все последующие совещания будут создаваться автоматически в момент предыдущего. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Это совещание является частью повторяющейся серии совещаний. @@ -725,9 +757,10 @@ ru: text_agenda_item_dialog_skipping_closed_many: "%{count} отмененных встреч" text_agenda_item_dialog_skipping_closed_one: отмененная встреча на %{date} text_agenda_item_dialog_skipping_note: 'Примечание: Пропуск %{details}.' - text_agenda_item_duplicate_in_next_meeting: Вы уверены, что хотите добавить копию этого пункта повестки дня к следующему совещанию на %{date} в %{time}? Результаты не будут дублироваться. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Пункт повестки дня дублируется на следующем совещании %{date} text_agenda_item_move_next_meeting: Этот элемент будет перемещен на следующую встречу на %{date} в %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Пункт повестки дня перенесен на следующее совещание на %{date} text_agenda_item_no_available_occurrence: Предстоящие события отсутствуют. text_agenda_item_no_notes: Примечания отсутствуют diff --git a/modules/meeting/config/locales/crowdin/rw.yml b/modules/meeting/config/locales/crowdin/rw.yml index 3964fce97bee..bc17ffacac71 100644 --- a/modules/meeting/config/locales/crowdin/rw.yml +++ b/modules/meeting/config/locales/crowdin/rw.yml @@ -24,13 +24,14 @@ rw: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ rw: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ rw: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ rw: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ rw: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ rw: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ rw: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ rw: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ rw: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ rw: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ rw: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ rw: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ rw: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ rw: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/si.yml b/modules/meeting/config/locales/crowdin/si.yml index 464b94cbb785..b9986572f692 100644 --- a/modules/meeting/config/locales/crowdin/si.yml +++ b/modules/meeting/config/locales/crowdin/si.yml @@ -24,13 +24,14 @@ si: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: කාල සීමාව end_time: End time location: Location notes: සටහන් notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ si: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ si: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ si: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: සටහන් එකතු කරන්න label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ si: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: ගෙනයන්න label_agenda_item_move_down: පහළට ගෙනයන්න label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ si: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ si: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ si: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ si: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ si: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ si: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ si: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ si: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ si: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/sk.yml b/modules/meeting/config/locales/crowdin/sk.yml index d96c9fb378a8..bbe0b235a632 100644 --- a/modules/meeting/config/locales/crowdin/sk.yml +++ b/modules/meeting/config/locales/crowdin/sk.yml @@ -24,13 +24,14 @@ sk: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Trvanie end_time: End time location: Miesto notes: Poznámky notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" few: "%{count} Participants" many: "%{count} Participants" other: "%{count} Participants" @@ -90,14 +91,18 @@ sk: invalid_time_format: 'nie je platný čas. Požadovaný formát: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -170,6 +175,10 @@ sk: meeting_agenda_opened: Agenda stretnutia otvorená meeting_minutes: Zápisnica zo stretnutia upravená meeting_minutes_created: Zápisnica zo stretnutia vytvorená + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -178,6 +187,8 @@ sk: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Pridať poznámky label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -185,6 +196,7 @@ sk: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Presunúť label_agenda_item_move_down: Presunúť nižšie label_agenda_item_move_to_backlog: Move to backlog @@ -248,7 +260,7 @@ sk: label_meeting_last_updated: Last updated label_meeting_minutes: Zápisnica label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. many: There are %{count} more meetings. other: There are %{count} more meetings. @@ -296,12 +308,12 @@ sk: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). many: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. many: There are %{count} more past meetings. other: There are %{count} more past meetings. @@ -334,6 +346,21 @@ sk: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -341,6 +368,9 @@ sk: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -384,6 +414,7 @@ sk: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -508,6 +539,7 @@ sk: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -584,7 +616,7 @@ sk: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences many: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences @@ -592,7 +624,7 @@ sk: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -663,7 +695,7 @@ sk: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -725,9 +757,10 @@ sk: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/sl.yml b/modules/meeting/config/locales/crowdin/sl.yml index b1816aa39130..f0afd68df084 100644 --- a/modules/meeting/config/locales/crowdin/sl.yml +++ b/modules/meeting/config/locales/crowdin/sl.yml @@ -24,13 +24,14 @@ sl: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Trajanje end_time: End time location: Lokacija notes: Opombe notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" two: "%{count} Participants" few: "%{count} Participants" other: "%{count} Participants" @@ -90,14 +91,18 @@ sl: invalid_time_format: 'ni veljaven čas. Potreben format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -170,6 +175,10 @@ sl: meeting_agenda_opened: Dnevni red odprt meeting_minutes: Zapisnik sestanka je bil spremenjen meeting_minutes_created: Zapisnik sestanka je ustvarjen + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -178,6 +187,8 @@ sl: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Dodaj zapiske label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -185,6 +196,7 @@ sl: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Premakni label_agenda_item_move_down: Premakni dol label_agenda_item_move_to_backlog: Move to backlog @@ -248,7 +260,7 @@ sl: label_meeting_last_updated: Last updated label_meeting_minutes: Zapisnik label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. two: There are %{count} more meetings. few: There are %{count} more meetings. other: There are %{count} more meetings. @@ -296,12 +308,12 @@ sl: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). two: There are %{count} more scheduled meetings (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. two: There are %{count} more past meetings. few: There are %{count} more past meetings. other: There are %{count} more past meetings. @@ -334,6 +346,21 @@ sl: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -341,6 +368,9 @@ sl: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Kopirano iz sestanka #%{id}' copy: agenda: Copy agenda @@ -384,6 +414,7 @@ sl: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -508,6 +539,7 @@ sl: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -584,7 +616,7 @@ sl: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence two: This results in %{count} upcoming occurrences few: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences @@ -592,7 +624,7 @@ sl: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -663,7 +695,7 @@ sl: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -725,9 +757,10 @@ sl: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/sr.yml b/modules/meeting/config/locales/crowdin/sr.yml index 0dc13c9c0651..bc8c5121fd41 100644 --- a/modules/meeting/config/locales/crowdin/sr.yml +++ b/modules/meeting/config/locales/crowdin/sr.yml @@ -24,13 +24,14 @@ sr: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" few: "%{count} Participants" other: "%{count} Participants" participants: Participants @@ -89,14 +90,18 @@ sr: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -161,6 +166,10 @@ sr: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -169,6 +178,8 @@ sr: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -176,6 +187,7 @@ sr: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -239,7 +251,7 @@ sr: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. few: There are %{count} more meetings. other: There are %{count} more meetings. label_meeting_new: New Meeting @@ -286,11 +298,11 @@ sr: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). few: There are %{count} more scheduled meetings (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. few: There are %{count} more past meetings. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting @@ -322,6 +334,21 @@ sr: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -329,6 +356,9 @@ sr: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -372,6 +402,7 @@ sr: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -496,6 +527,7 @@ sr: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -572,14 +604,14 @@ sr: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence few: This results in %{count} upcoming occurrences other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -647,7 +679,7 @@ sr: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -709,9 +741,10 @@ sr: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/sv.yml b/modules/meeting/config/locales/crowdin/sv.yml index aa28e31ce3c5..a8b57024bc25 100644 --- a/modules/meeting/config/locales/crowdin/sv.yml +++ b/modules/meeting/config/locales/crowdin/sv.yml @@ -24,14 +24,15 @@ sv: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Varaktighet end_time: Sluttid location: Plats notes: Anteckningar notify: Skicka aviseringar participant: - one: 1 deltagare - other: "%{count} deltagare" + one: "%{count} Participant" + other: "%{count} Participants" participants: Deltagare participants_added: 'Deltagare tillagda:' participants_attended: Deltagare @@ -88,14 +89,18 @@ sv: invalid_time_format: är inte en giltig tid. Använd formatet HH:MM models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Avsnittet tillhör inte samma möte. user_invalid: är inte en giltig deltagare. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: är inte en giltig deltagare. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Det finns ett öppet möte i serien som inte omfattas av det nya schemat. Justera schemat för att inkludera alla befintliga möten. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Det finns %{count} öppna möten i serien som inte omfattas av det nya schemat. Justera schemat för att inkludera alla befintliga möten. recurring_meeting_interim_response: not_an_occurrence: är inte en giltig förekomsttid för det här återkommande mötet @@ -152,6 +157,10 @@ sv: meeting_agenda_opened: Mötets agenda öppnat meeting_minutes: Mötesprotokoll redigerat meeting_minutes_created: Mötesprotokoll skapat + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Lägg till i möte label_add_work_package_to_meeting_dialog_title: Välj möte label_add_work_package_to_meeting_section_label: Sektion @@ -160,6 +169,8 @@ sv: label_agenda_backlog_clear_title: Rensa dagordningens backlog? label_agenda_item_actions: Åtgärder enligt dagordningspunkter label_agenda_item_add: Lägg till punkt på dagordningen + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Lägg till anteckningar label_agenda_item_add_outcome: Lägg till resultat label_agenda_item_convert_to_work_package: Konvertera till arbetspaket @@ -167,6 +178,7 @@ sv: label_agenda_item_duplicate: Duplicera label_agenda_item_duplicate_in_next: Duplicera i nästa möte label_agenda_item_duplicate_in_next_title: Duplicera i nästa möte? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Flytta label_agenda_item_move_down: Flytta ned label_agenda_item_move_to_backlog: Flytta till backlog @@ -230,8 +242,8 @@ sv: label_meeting_last_updated: Senast uppdaterad label_meeting_minutes: Protokoll label_meeting_more: - one: Det finns ytterligare ett möte. - other: Det finns %{count} fler möten. + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Nytt möte label_meeting_new_dynamic: Nytt engångsmöte label_meeting_new_recurring: Nytt återkommande möte @@ -276,11 +288,11 @@ sv: label_recurring_meeting_delete: Ta bort förekomst label_recurring_meeting_duplicate: Duplicera som ett engångsmöte label_recurring_meeting_more: - one: Det finns ytterligare ett schemalagt möte (%{schedule}). - other: Det finns %{count} fler inplanerade möten (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Det finns ytterligare ett tidigare möte. - other: Det finns %{count} fler tidigare möten. + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Nytt återkommande möte label_recurring_meeting_next_occurrence: Nästa förekomst label_recurring_meeting_no_end_date: Det finns fler schemalagda möten (%{schedule}). @@ -310,6 +322,21 @@ sv: label_view_meeting_series: Visa mötesserier label_write_outcome: Skriv resultat meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Dessa bifogade filer kommer att ingå i alla framtida möten som använder denna mall. series_template: Dessa bifogade filer kommer att ingå i alla framtida möten i serien. @@ -317,6 +344,9 @@ sv: blankslate: desc: Du kan skapa ett nytt möte eller ändra filtervillkoren title: Det finns inga möten att visa + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Kopierat från möte #%{id}' copy: agenda: Kopiera agenda @@ -360,6 +390,7 @@ sv: header: 'Inställt: Möte ''%{title}''' header_occurrence: 'Inställt: Mötesförekomst ''%{title}''' header_series: 'Inställt: Mötesserie ''%{title}''' + reason: Reason for cancellation summary: '"%{title}" har ställts in av %{actor}, eller så har du tagits bort som deltagare' summary_occurrence: En förekomst av "%{title}" har ställts in av %{actor}, eller så har du tagits bort som deltagare summary_series: Mötesserien "%{title}" har ställts in av %{actor}, eller så har du tagits bort som deltagare @@ -484,6 +515,7 @@ sv: no_items: Inga punkter på dagordningen no_items_flash: Det finns inga punkter på dagordningen att presentera. previous: Föregående + slide_progress: Bild %{current}/%{total} title: Presentationsläge total_items: "%{current} av %{total}" types: @@ -560,13 +592,13 @@ sv: caption: ends_on: Detta resulterar i en serie som avslutas %{date} occurrences: - one: Detta resulterar i 1 kommande förekomst - other: Detta resulterar i %{count} kommande förekomster + one: This results in %{count} upcoming occurrence + other: This results in %{count} upcoming occurrences occurrences_capped: Detta resulterar i fler än %{count} kommande förekomster day_of_month_skipping_info: Månader med färre än %{monthly_day} dagar hoppas över delete_dialog: confirmation_message_html: - one: 'Borttagning av %{title} kommer också att ta bort en förekomst i denna serie. Denna åtgärd är inte reversibel. Vänligen fortsätt med försiktighet. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Borttagning av %{title} kommer att ta bort alla %{count} förekomster i denna serie. Denna åtgärd är inte reversibel. Vänligen fortsätt med försiktighet. @@ -631,7 +663,7 @@ sv: error_no_next: Det finns ingen nästa händelse för detta möte. error_template_draft: Mötesseriesmallen är fortfarande i utkastläge. first_already_exists: Den första förekomsten av denna mötesserie är existerar redan. - first_created: 'Det första mötet har skapats från mallen. Alla framtida möten kommer att skapas automatiskt vid tiden för den föregående händelsen. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Mötet ingår i en återkommande mötesserie. @@ -693,9 +725,10 @@ sv: text_agenda_item_dialog_skipping_closed_many: "%{count} stängda möten" text_agenda_item_dialog_skipping_closed_one: stängt möte den %{date} text_agenda_item_dialog_skipping_note: Obs! Hoppar över %{details}. - text_agenda_item_duplicate_in_next_meeting: Är du säker på att du vill lägga till en kopia av den här dagordningspunkten till nästa möte den %{date} kl. %{time}? Resultat dupliceras inte. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Dagordningspunkten duplicerades till nästa möte den %{date} text_agenda_item_move_next_meeting: Detta objekt kommer att flyttas till nästa möte på %{date} på %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Dagordningspunkten flyttad till nästa möte, på %{date} text_agenda_item_no_available_occurrence: Det finns inga kommande förekomster tillgängliga. text_agenda_item_no_notes: Inga anteckningar tillhandahållna diff --git a/modules/meeting/config/locales/crowdin/th.yml b/modules/meeting/config/locales/crowdin/th.yml index 7f6ecb00122d..b4393b2720d7 100644 --- a/modules/meeting/config/locales/crowdin/th.yml +++ b/modules/meeting/config/locales/crowdin/th.yml @@ -24,6 +24,7 @@ th: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: ระยะเวลา end_time: End time location: Location @@ -87,14 +88,18 @@ th: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ th: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -151,6 +160,8 @@ th: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: เพิ่มหมายเหตุ label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -158,6 +169,7 @@ th: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: ย้าย label_agenda_item_move_down: เลื่อนลง label_agenda_item_move_to_backlog: Move to backlog @@ -298,6 +310,21 @@ th: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -305,6 +332,9 @@ th: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -348,6 +378,7 @@ th: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -472,6 +503,7 @@ th: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -553,7 +585,7 @@ th: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -615,7 +647,7 @@ th: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -677,9 +709,10 @@ th: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/tr.yml b/modules/meeting/config/locales/crowdin/tr.yml index fcd41e5fd215..69848be2ab16 100644 --- a/modules/meeting/config/locales/crowdin/tr.yml +++ b/modules/meeting/config/locales/crowdin/tr.yml @@ -24,14 +24,15 @@ tr: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Süre end_time: End time location: Yer notes: Notlar notify: Send notifications participant: - one: 1 Katılımcı - other: "%{count} Katılımcı" + one: "%{count} Participant" + other: "%{count} Participants" participants: Katılımcılar participants_added: 'Participants added:' participants_attended: Katılımcılar @@ -88,14 +89,18 @@ tr: invalid_time_format: 'geçerli bir zaman değil. Gerekli format: SS:DD' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: geçerli bir katılımcı değildir. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: geçerli bir katılımcı değildir. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Seride yeni zamanlamaya uymayan ve açık bir toplantı bulunmakta. Mevcut toplantıları kapsaması için zamanlayın. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Seride yeni zamanlamaya uymayan ve açık %{count} toplantı bulunmakta. Mevcut toplantıları kapsaması için zamanlayın. recurring_meeting_interim_response: not_an_occurrence: yinelenen toplantı için geçerli bir gerçekleşme zamanı değil @@ -152,6 +157,10 @@ tr: meeting_agenda_opened: Toplantı gündemi açıldı meeting_minutes: Toplantı dakikaları düzenlendi meeting_minutes_created: Toplantı tutanakları oluşturuldu + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Toplantıya ekle label_add_work_package_to_meeting_dialog_title: Toplantı seç label_add_work_package_to_meeting_section_label: Bölüm @@ -160,6 +169,8 @@ tr: label_agenda_backlog_clear_title: Gündemdeki birikmiş iş listesi temizlensin mi? label_agenda_item_actions: Gündem maddeleri için eylemler label_agenda_item_add: Gündem maddesi ekle + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Not ekle label_agenda_item_add_outcome: Sonuç ekle label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ tr: label_agenda_item_duplicate: Çoğalt label_agenda_item_duplicate_in_next: Bir sonraki toplantıda tekrarlayın label_agenda_item_duplicate_in_next_title: Bir sonraki toplantıda tekrarlansın mı? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Taşı label_agenda_item_move_down: Aşağı taşı label_agenda_item_move_to_backlog: Birikmiş iş listesine taşı @@ -230,8 +242,8 @@ tr: label_meeting_last_updated: Son güncelleme label_meeting_minutes: Dakika label_meeting_more: - one: Bir toplantı daha var. - other: "%{count} toplantı daha var." + one: There is %{count} more meeting. + other: There are %{count} more meetings. label_meeting_new: Yeni Toplantı label_meeting_new_dynamic: Tek seferlik yeni toplantı label_meeting_new_recurring: Yeni yinelenen toplantı @@ -276,11 +288,11 @@ tr: label_recurring_meeting_delete: İptal et label_recurring_meeting_duplicate: Tek seferlik toplantı olarak çoğaltın label_recurring_meeting_more: - one: Planlanmış bir toplantı daha var (%{schedule}). - other: "%{count} ek planlanmış toplantı bulunmaktadır (%{schedule})." + one: There is %{count} more scheduled meeting (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Geçmiş bir toplantı daha var. - other: "%{count} toplantı daha var." + one: There is %{count} more past meeting. + other: There are %{count} more past meetings. label_recurring_meeting_new: Yeni yinelenen toplantı label_recurring_meeting_next_occurrence: Sonraki gerçekleşme label_recurring_meeting_no_end_date: Daha fazla planlanmış toplantı var (%{schedule}). @@ -310,6 +322,21 @@ tr: label_view_meeting_series: Toplantı serisini görüntüle label_write_outcome: Sonuç yazın meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ tr: blankslate: desc: Yeni bir toplantı oluşturabilir veya filtre kriterlerini değiştirebilirsiniz title: Gösterilecek toplantı yok + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: "#%{id} numaralı toplantıdan kopyalandı" copy: agenda: Gündemi kopyala @@ -360,6 +390,7 @@ tr: header: 'İptal edildi: Toplantı ''%{title}''' header_occurrence: 'İptal edildi: Toplantı ''%{title}''' header_series: 'İptal edildi: Toplantı serisi ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' %{actor}tarafından iptal edildi veya katılımcı olarak çıkarıldınız" summary_occurrence: Bir '%{title}' oluşumu %{actor}tarafından iptal edildi veya katılımcı olarak çıkarıldınız summary_series: Toplantı serisi '%{title}' %{actor}tarafından iptal edildi veya katılımcı olarak çıkarıldınız @@ -484,6 +515,7 @@ tr: no_items: Gündem maddesi yok no_items_flash: Sunulacak herhangi bir gündem maddesi bulunmamaktadır. previous: Önceki + slide_progress: Slide %{current}/%{total} title: Sunum modu total_items: "%{current} / %{total}" types: @@ -560,13 +592,15 @@ tr: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: "%{title} toplantı serisini silmek ayrıca gerçekleşen bir toplantıyı da silecektir. Bu işlem geri alınamaz. Lütfen dikkatli olun.\n" + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. + + ' other: "%{title} toplantı serisini silmek ayrıca gerçekleşen %{count} toplantıyı da silecektir. Bu işlem geri alınamaz. Lütfen dikkatli olun.\n" zero: "%{title} toplantı serisinde herhangi bir toplantıya gerçekleşmedi. Seri herkesten silinecek. Lütfen dikkatli olun.\n" heading: Bu toplantı serisi kalıcı olarak silinsin mi? @@ -625,7 +659,7 @@ tr: error_no_next: Bu seri için bir toplantı yoktur. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Bu toplantı serisinin ilk toplantısı zaten oluşturulmuş. - first_created: 'Şablondan ilk toplantı oluşturuldu. Gelecek toplantılar önceki gerçekleşenin saatinde oluşturulacak. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Bu toplantı, yinelenen bir toplantı serisinin parçasıdır. @@ -687,9 +721,10 @@ tr: text_agenda_item_dialog_skipping_closed_many: "%{count} kapalı toplantılar" text_agenda_item_dialog_skipping_closed_one: "%{date} adresinde kapalı toplantı" text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: "%{time}Bu gündem maddesinin bir kopyasını %{date} adresindeki bir sonraki toplantıya eklemek istediğinizden emin misiniz? Sonuçlar çoğaltılmayacaktır." + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Gündem maddesi bir sonraki toplantıda tekrarlandı, %{date}adresinde text_agenda_item_move_next_meeting: Bu madde %{date} tarihindeki %{time} saatli bir sonraki toplantıya taşınacaktır. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Gündem maddesi %{date} tarihli sonraki toplantıya taşındı text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Not verilmemiştir diff --git a/modules/meeting/config/locales/crowdin/uk.yml b/modules/meeting/config/locales/crowdin/uk.yml index 30f3ec64a2f5..68d35ee9f006 100644 --- a/modules/meeting/config/locales/crowdin/uk.yml +++ b/modules/meeting/config/locales/crowdin/uk.yml @@ -24,16 +24,17 @@ uk: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Тривалість end_time: Час завершення location: Місцезнаходження notes: Примітки notify: Надсилання сповіщень participant: - one: 1 учасник - few: "%{count} учасники" - many: "%{count} учасників" - other: "%{count} учасника" + one: "%{count} Participant" + few: "%{count} Participants" + many: "%{count} Participants" + other: "%{count} Participants" participants: Учасники participants_added: 'Учасників додано:' participants_attended: Учасники @@ -90,14 +91,18 @@ uk: invalid_time_format: 'не є допустимим часом. Необхідний формат: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Розділ не належить до тієї самої наради. user_invalid: не є дійсним учасником. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: не є дійсним учасником. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Одна відкрита нарада в серії не входить у новий розклад. Налаштуйте розклад так, щоб він охоплював усі наявні наради. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Кілька відкритих нарад (%{count}) у серії не входить у новий розклад. Налаштуйте розклад так, щоб він охоплював усі наявні наради. recurring_meeting_interim_response: not_an_occurrence: не є дійсним часом проведення цієї повторюваної наради @@ -170,6 +175,10 @@ uk: meeting_agenda_opened: Порядок зустрічей був відкритий meeting_minutes: Відредаговані хвилини наради meeting_minutes_created: Створено протокол зустрічей + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Додати до наради label_add_work_package_to_meeting_dialog_title: Вибрати нараду label_add_work_package_to_meeting_section_label: Розділ @@ -178,6 +187,8 @@ uk: label_agenda_backlog_clear_title: Очистити чергу завдань порядку денного? label_agenda_item_actions: Дії з пунктами порядку денного label_agenda_item_add: Додати пункт порядку денного + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Додати примітки label_agenda_item_add_outcome: Додати результат label_agenda_item_convert_to_work_package: Перетворити в пакет робіт @@ -185,6 +196,7 @@ uk: label_agenda_item_duplicate: Дублювати label_agenda_item_duplicate_in_next: Дублювати в наступну нараду label_agenda_item_duplicate_in_next_title: Дублювати в наступну нараду? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Перемістити label_agenda_item_move_down: Перемістити вниз label_agenda_item_move_to_backlog: Перемістити в чергу завдань @@ -248,10 +260,10 @@ uk: label_meeting_last_updated: Востаннє оновлено label_meeting_minutes: Хвилини label_meeting_more: - one: Є ще одна нарада. - few: Є ще %{count} наради. - many: Є ще %{count} нарад. - other: Є ще %{count} наради. + one: There is %{count} more meeting. + few: There are %{count} more meetings. + many: There are %{count} more meetings. + other: There are %{count} more meetings. label_meeting_new: Нова зустріч label_meeting_new_dynamic: Нова одноразова нарада label_meeting_new_recurring: Нова повторювана нарада @@ -296,15 +308,15 @@ uk: label_recurring_meeting_delete: Видалити повторення label_recurring_meeting_duplicate: Дублювати як одноразову зустріч label_recurring_meeting_more: - one: Є ще одна запланована нарада (%{schedule}). - few: Є інші (%{count}) заплановані наради (%{schedule}). - many: Є інші (%{count}) заплановані наради (%{schedule}). - other: Є інші (%{count}) заплановані наради (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). + few: There are %{count} more scheduled meetings (%{schedule}). + many: There are %{count} more scheduled meetings (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: Є ще одна завершена нарада. - few: Є інші (%{count}) завершені наради. - many: Є інші (%{count}) завершені наради. - other: Є інші (%{count}) завершені наради. + one: There is %{count} more past meeting. + few: There are %{count} more past meetings. + many: There are %{count} more past meetings. + other: There are %{count} more past meetings. label_recurring_meeting_new: Нова повторювана нарада label_recurring_meeting_next_occurrence: Наступна нарада серії label_recurring_meeting_no_end_date: Є інші заплановані наради (%{schedule}). @@ -334,6 +346,21 @@ uk: label_view_meeting_series: Переглянути серію нарад label_write_outcome: Записати результат meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: Ці прикріплені файли додаватимуться в усі наради, які буде створено із використанням цього шаблону в майбутньому. series_template: Ці прикріплені файли додаватимуться до всіх майбутніх нарад серії. @@ -341,6 +368,9 @@ uk: blankslate: desc: Створіть зустріч або змініть параметри фільтра title: Зустрічей не знайдено + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Скопійовано з наради #%{id} ' copy: agenda: Копіювати порядок денний @@ -384,6 +414,7 @@ uk: header: 'Скасовано: нарада «%{title}»' header_occurrence: 'Скасовано: нарада серії «%{title}»' header_series: 'Скасовано: серія нарад «%{title}»' + reason: Reason for cancellation summary: Нараду «%{title}» скасував(-ла) %{actor}, або вас видалено з учасників summary_occurrence: Нараду серії «%{title}» скасував(-ла) %{actor}, або вас видалено з учасників summary_series: Серію нарад «%{title}» скасував(-ла) %{actor}, або вас видалено з учасників @@ -508,6 +539,7 @@ uk: no_items: Не має плану зустрічі no_items_flash: Не доданий план зустрічі. previous: Попереднє + slide_progress: Slide %{current}/%{total} title: Режим презентації total_items: "%{current} з %{total}" types: @@ -584,15 +616,15 @@ uk: caption: ends_on: Як результат, серія закінчиться %{date} occurrences: - one: Як результат, буде %{count} майбутня нарада - few: Як результат, буде %{count} майбутні наради - many: Як результат, буде %{count} майбутніх нарад - other: Як результат, буде %{count} майбутньої наради + one: This results in %{count} upcoming occurrence + few: This results in %{count} upcoming occurrences + many: This results in %{count} upcoming occurrences + other: This results in %{count} upcoming occurrences occurrences_capped: Як результат, кількість майбутніх нарад перевищує %{count} day_of_month_skipping_info: Місяці з меншою кількістю днів, ніж %{monthly_day}, буде пропущено delete_dialog: confirmation_message_html: - one: 'Якщо видалити %{title}, буде також видалено одну нараду в цій серії. Зверніть увагу: цю дію не можна відмінити. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Якщо видалити %{title}, буде видалено всі наради (%{count}) у цій серії. Зверніть увагу: цю дію не можна відмінити. @@ -663,7 +695,7 @@ uk: error_no_next: Це одноразова нарада. error_template_draft: Шаблон серії нарад усе ще в режимі чернетки. first_already_exists: Перша нарада із цієї серії вже відбулася. - first_created: 'Першу нараду створено на основі шаблона. Усі наступні наради створюватимуться автоматично в момент початку попередніх. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Ця нарада належить до серії повторюваних нарад. @@ -725,9 +757,10 @@ uk: text_agenda_item_dialog_skipping_closed_many: кілька закритих нарад (%{count}) text_agenda_item_dialog_skipping_closed_one: закрита нарада, запланована на %{date} text_agenda_item_dialog_skipping_note: 'Примітка: пропускається %{details}.' - text_agenda_item_duplicate_in_next_meeting: Справді додати копію цього пункту порядку денного в наступну нараду, що відбудеться %{date} о %{time}? Результати не дублюватимуться. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Пункт порядку денного продубльовано в нову нараду, що відбудеться %{date} text_agenda_item_move_next_meeting: Цей пункт буде перенесено на наступну нараду, що відбудеться %{date} о %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Пункт порядку денного переміщено в нову нараду, що відбудеться %{date} text_agenda_item_no_available_occurrence: Немає майбутніх подій. text_agenda_item_no_notes: Примітки не надано diff --git a/modules/meeting/config/locales/crowdin/uz.yml b/modules/meeting/config/locales/crowdin/uz.yml index 8afee9050207..2a577a6c9aa1 100644 --- a/modules/meeting/config/locales/crowdin/uz.yml +++ b/modules/meeting/config/locales/crowdin/uz.yml @@ -24,13 +24,14 @@ uz: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: Duration end_time: End time location: Location notes: Notes notify: Send notifications participant: - one: 1 Participant + one: "%{count} Participant" other: "%{count} Participants" participants: Participants participants_added: 'Participants added:' @@ -88,14 +89,18 @@ uz: invalid_time_format: 'is not a valid time. Required format: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: There is one open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: There are %{count} open meetings in the series that are not covered by the new schedule. Adjust the schedule to include all existing meetings. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -152,6 +157,10 @@ uz: meeting_agenda_opened: Meeting agenda opened meeting_minutes: Meeting minutes edited meeting_minutes_created: Meeting minutes created + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Add to meeting label_add_work_package_to_meeting_dialog_title: Select meeting label_add_work_package_to_meeting_section_label: Section @@ -160,6 +169,8 @@ uz: label_agenda_backlog_clear_title: Clear agenda backlog? label_agenda_item_actions: Agenda items actions label_agenda_item_add: Add agenda item + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Add notes label_agenda_item_add_outcome: Add outcome label_agenda_item_convert_to_work_package: Convert to work package @@ -167,6 +178,7 @@ uz: label_agenda_item_duplicate: Duplicate label_agenda_item_duplicate_in_next: Duplicate in next meeting label_agenda_item_duplicate_in_next_title: Duplicate in next meeting? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Move label_agenda_item_move_down: Move down label_agenda_item_move_to_backlog: Move to backlog @@ -230,7 +242,7 @@ uz: label_meeting_last_updated: Last updated label_meeting_minutes: Minutes label_meeting_more: - one: There is one more meeting. + one: There is %{count} more meeting. other: There are %{count} more meetings. label_meeting_new: New Meeting label_meeting_new_dynamic: New one-time meeting @@ -276,10 +288,10 @@ uz: label_recurring_meeting_delete: Delete occurrence label_recurring_meeting_duplicate: Duplicate as a one-time meeting label_recurring_meeting_more: - one: There is one more scheduled meeting (%{schedule}). + one: There is %{count} more scheduled meeting (%{schedule}). other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - one: There is one more past meeting. + one: There is %{count} more past meeting. other: There are %{count} more past meetings. label_recurring_meeting_new: New recurring meeting label_recurring_meeting_next_occurrence: Next occurrence @@ -310,6 +322,21 @@ uz: label_view_meeting_series: View meeting series label_write_outcome: Write outcome meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -317,6 +344,9 @@ uz: blankslate: desc: You can create a new meeting or change filter criteria title: There are no meetings to display + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Copied from Meeting #%{id}' copy: agenda: Copy agenda @@ -360,6 +390,7 @@ uz: header: 'Cancelled: Meeting ''%{title}''' header_occurrence: 'Cancelled: Meeting occurrence ''%{title}''' header_series: 'Cancelled: Meeting series ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' has been cancelled by %{actor}, or you have been removed as a participant" summary_occurrence: An occurrence of '%{title}' has been cancelled by %{actor}, or you have been removed as a participant summary_series: Meeting series '%{title}' has been cancelled by %{actor}, or you have been removed as a participant @@ -484,6 +515,7 @@ uz: no_items: No agenda items no_items_flash: There are no agenda items to present. previous: Previous + slide_progress: Slide %{current}/%{total} title: Presentation Mode total_items: "%{current} of %{total}" types: @@ -560,13 +592,13 @@ uz: caption: ends_on: This results in a series ending on %{date} occurrences: - one: This results in 1 upcoming occurrence + one: This results in %{count} upcoming occurrence other: This results in %{count} upcoming occurrences occurrences_capped: This results in more than %{count} upcoming occurrences day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Deleting %{title} will also delete one occurrence in this series. This action is not reversible. Please proceed with caution. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Deleting %{title} will delete all %{count} occurrences in this series. This action is not reversible. Please proceed with caution. @@ -631,7 +663,7 @@ uz: error_no_next: There is no next occurrence for this meeting. error_template_draft: The meeting series template is still in draft mode. first_already_exists: The first occurrence of this meeting series is already instantiated. - first_created: 'The first meeting has been successfuly created from template. All future meetings will be created automatically at the time of the previous occurrence. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: This meeting is part of a recurring meeting series. @@ -693,9 +725,10 @@ uz: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? Outcomes will not be duplicated. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Agenda item duplicated in the next meeting, on %{date} text_agenda_item_move_next_meeting: This item will be moved to the next meeting on %{date} at %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Agenda item moved to the next meeting, on %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: No notes provided diff --git a/modules/meeting/config/locales/crowdin/vi.yml b/modules/meeting/config/locales/crowdin/vi.yml index 87397ff46ae9..ab06355cb509 100644 --- a/modules/meeting/config/locales/crowdin/vi.yml +++ b/modules/meeting/config/locales/crowdin/vi.yml @@ -24,13 +24,14 @@ vi: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: thời lượng end_time: End time location: Địa điểm notes: Ghi chú notify: Send notifications participant: - other: "%{count} Người tham gia" + other: "%{count} Participants" participants: Người tham gia participants_added: 'Participants added:' participants_attended: Người dự khán @@ -87,14 +88,18 @@ vi: invalid_time_format: 'không phải giờ hợp lệ. Yêu cầu định dạng: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: Section does not belong to the same meeting. user_invalid: is not a valid participant. + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: is not a valid participant. recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: Có một cuộc họp mở trong chuỗi không có trong lịch trình mới. Điều chỉnh lịch trình để bao gồm tất cả các cuộc họp hiện có. + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: Có %{count} cuộc họp mở trong chuỗi không nằm trong lịch trình mới. Điều chỉnh lịch trình để bao gồm tất cả các cuộc họp hiện có. recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ vi: meeting_agenda_opened: Đã mở chương trình họp meeting_minutes: Biên bản họp đã được chỉnh sửa meeting_minutes_created: Đã tạo biên bản cuộc họp + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: Thêm vào cuộc họp label_add_work_package_to_meeting_dialog_title: Chọn cuộc họp label_add_work_package_to_meeting_section_label: phần @@ -151,6 +160,8 @@ vi: label_agenda_backlog_clear_title: Xóa Backlog cuộc họp? label_agenda_item_actions: Hành động của mục chương trình nghị sự label_agenda_item_add: Thêm mục chương trình nghị sự + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: Thêm ghi chú label_agenda_item_add_outcome: Thêm kết quả label_agenda_item_convert_to_work_package: Convert to work package @@ -158,6 +169,7 @@ vi: label_agenda_item_duplicate: trùng lặp label_agenda_item_duplicate_in_next: Lặp lại trong cuộc họp tiếp theo label_agenda_item_duplicate_in_next_title: Có lặp lại trong cuộc họp tiếp theo không? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: Di chuyển label_agenda_item_move_down: Dịch xuống label_agenda_item_move_to_backlog: Chuyển sang Backlog @@ -221,7 +233,7 @@ vi: label_meeting_last_updated: Cập nhật lần cuối label_meeting_minutes: phút label_meeting_more: - other: Còn %{count} cuộc họp nữa. + other: There are %{count} more meetings. label_meeting_new: Cuộc họp mới label_meeting_new_dynamic: Cuộc họp một lần mới label_meeting_new_recurring: Cuộc họp định kỳ mới @@ -266,9 +278,9 @@ vi: label_recurring_meeting_delete: Xóa lần xuất hiện label_recurring_meeting_duplicate: Nhân bản dưới dạng cuộc họp một lần label_recurring_meeting_more: - other: Có thêm %{count} cuộc họp đã lên lịch (%{schedule}). + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: Có thêm %{count} cuộc họp trước đây. + other: There are %{count} more past meetings. label_recurring_meeting_new: Cuộc họp định kỳ mới label_recurring_meeting_next_occurrence: Lần xuất hiện tiếp theo label_recurring_meeting_no_end_date: Có nhiều cuộc họp theo lịch trình hơn (%{schedule}). @@ -298,6 +310,21 @@ vi: label_view_meeting_series: Xem chuỗi cuộc họp label_write_outcome: Viết kết quả meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -305,6 +332,9 @@ vi: blankslate: desc: Bạn có thể tạo cuộc họp mới hoặc thay đổi tiêu chí lọc title: Không có cuộc họp nào để hiển thị + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: 'Sao chép từ Cuộc họp #%{id}' copy: agenda: Sao chép chương trình làm việc @@ -348,6 +378,7 @@ vi: header: 'Đã hủy: Cuộc họp ''%{title}''' header_occurrence: 'Đã hủy: Cuộc họp diễn ra ''%{title}''' header_series: 'Đã hủy: Chuỗi cuộc họp ''%{title}''' + reason: Reason for cancellation summary: "'%{title}' đã bị hủy bởi ' %{actor}' hoặc bạn đã bị loại khỏi danh sách người tham gia" summary_occurrence: Sự kiện '%{title}' đã bị hủy bởi %{actor}, hoặc bạn đã bị loại khỏi danh sách tham gia summary_series: Chuỗi cuộc họp '%{title}' đã bị hủy bởi %{actor}, hoặc bạn đã bị loại khỏi danh sách tham gia @@ -472,6 +503,7 @@ vi: no_items: Không có mục chương trình nghị sự no_items_flash: Không có mục chương trình nghị sự để trình bày. previous: trước đó + slide_progress: Slide %{current}/%{total} title: Chế độ trình bày total_items: "%{current} trong số %{total}" types: @@ -553,7 +585,7 @@ vi: day_of_month_skipping_info: Months with fewer than %{monthly_day} days will be skipped delete_dialog: confirmation_message_html: - one: 'Xóa %{title} cũng sẽ xóa một lần xuất hiện trong chuỗi này. Hành động này không thể đảo ngược. Hãy tiến hành thận trọng. + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: 'Xóa %{title} sẽ xóa tất cả %{count} lần xuất hiện trong chuỗi này. Hành động này không thể đảo ngược. Hãy tiến hành thận trọng. @@ -615,7 +647,7 @@ vi: error_no_next: Không có sự xuất hiện tiếp theo cho cuộc họp này. error_template_draft: The meeting series template is still in draft mode. first_already_exists: Lần xuất hiện đầu tiên của chuỗi cuộc họp này đã được khởi tạo. - first_created: 'Cuộc họp đầu tiên đã được tạo thành công từ mẫu. Tất cả các cuộc họp trong tương lai sẽ được tạo tự động tại thời điểm diễn ra trước đó. + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: Cuộc họp này là một phần của chuỗi cuộc họp định kỳ. @@ -677,9 +709,10 @@ vi: text_agenda_item_dialog_skipping_closed_many: "%{count} closed meetings" text_agenda_item_dialog_skipping_closed_one: closed meeting on %{date} text_agenda_item_dialog_skipping_note: 'Note: Skipping %{details}.' - text_agenda_item_duplicate_in_next_meeting: Bạn có chắc chắn muốn thêm bản sao của mục chương trình này vào cuộc họp tiếp theo, vào %{date} lúc %{time} không? Kết quả sẽ không bị trùng lặp. + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: Mục chương trình nghị sự được sao chép trong cuộc họp tiếp theo, vào ngày %{date} text_agenda_item_move_next_meeting: Mục này sẽ được chuyển sang cuộc họp tiếp theo vào %{date} lúc %{time}. + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: Mục chương trình nghị sự đã được chuyển sang cuộc họp tiếp theo, vào %{date} text_agenda_item_no_available_occurrence: No upcoming occurrences are available. text_agenda_item_no_notes: Không có ghi chú nào được cung cấp diff --git a/modules/meeting/config/locales/crowdin/zh-CN.yml b/modules/meeting/config/locales/crowdin/zh-CN.yml index 7f7c50f2895a..ae94ced0c590 100644 --- a/modules/meeting/config/locales/crowdin/zh-CN.yml +++ b/modules/meeting/config/locales/crowdin/zh-CN.yml @@ -24,13 +24,14 @@ zh-CN: activerecord: attributes: meeting: + agenda_sorting_mode: Sorting mode duration: 时长 end_time: 结束时间 location: 地点 notes: 备注 notify: 发送通知 participant: - other: "%{count}位参与者" + other: "%{count} Participants" participants: 参加者 participants_added: 参会人已添加: participants_attended: 与会者 @@ -87,14 +88,18 @@ zh-CN: invalid_time_format: 不是有效时间。所需格式:HH:MM models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: 该部分不属于同一个会议。 user_invalid: 不是有效的参与者。 + vote_based_sorting_required: Voting requires vote-based agenda sorting. meeting_participant: user_invalid: 不是有效的参与者。 recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: 该系列会议中有一次公开会议未列入新时间表。请调整时间表,将会议包含在内。 + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: "%{count} 个公开会议未列入新时间表。请调整时间表,将会议包含在内。" recurring_meeting_interim_response: not_an_occurrence: 不是此定期会议的有效事件时间 @@ -143,6 +148,10 @@ zh-CN: meeting_agenda_opened: 会议议程已开启 meeting_minutes: 会议记录已编辑 meeting_minutes_created: 会议记录已建立 + journals: + cause_descriptions: + system_update: + meeting_journal_sync: Meeting history automatically synchronized with the current state of the meeting. Agenda sections and outcomes are part of the history from now on. label_add_work_package_to_meeting_dialog_button: 添加到会议 label_add_work_package_to_meeting_dialog_title: 选择会议 label_add_work_package_to_meeting_section_label: 节 @@ -151,6 +160,8 @@ zh-CN: label_agenda_backlog_clear_title: 清除议程待办事项? label_agenda_item_actions: 议程项目行动 label_agenda_item_add: 添加议程项 + label_agenda_item_add_above: Add item above + label_agenda_item_add_below: Add item below label_agenda_item_add_notes: 添加备注 label_agenda_item_add_outcome: 添加成果 label_agenda_item_convert_to_work_package: 转换为工作包 @@ -158,6 +169,7 @@ zh-CN: label_agenda_item_duplicate: 复制 label_agenda_item_duplicate_in_next: 在下次会议中重复 label_agenda_item_duplicate_in_next_title: 是否在下次会议中重复? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: 移动 label_agenda_item_move_down: 向下移动 label_agenda_item_move_to_backlog: 移至待办事项 @@ -221,7 +233,7 @@ zh-CN: label_meeting_last_updated: 最后更新 label_meeting_minutes: 会议记录 label_meeting_more: - other: 还有至少 %{count} 个会议。 + other: There are %{count} more meetings. label_meeting_new: 新增会议 label_meeting_new_dynamic: 新的动态会议 label_meeting_new_recurring: 新的定期会议 @@ -266,9 +278,9 @@ zh-CN: label_recurring_meeting_delete: 删除事件 label_recurring_meeting_duplicate: 作为一次性会议复制 label_recurring_meeting_more: - other: 还有 %{count} 个已安排的会议 (%{schedule})。 + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: 还有 %{count} 次过往会议。 + other: There are %{count} more past meetings. label_recurring_meeting_new: 新的定期会议 label_recurring_meeting_next_occurrence: 下一个事件 label_recurring_meeting_no_end_date: 还有更多预定会议 (%{schedule})。 @@ -298,6 +310,21 @@ zh-CN: label_view_meeting_series: 查看会议系列 label_write_outcome: 编写成果 meeting: + agenda_sorting: + change: Change sorting mode + invalid_reaction: Only upvotes and downvotes are allowed on agenda items. + manual: Manual + manual_description: Arrange agenda items yourself. Switching back restores the manual order. + manual_order_disabled: Agenda items are ordered by votes. Switch to manual sorting to reorder them. + remove_thumbs_down: Remove downvote + remove_thumbs_up: Remove upvote + sorted_by_votes: Agenda sorted by votes. + thumbs_down: Downvote + thumbs_up: Upvote + title: Sorting mode + vote_based: Vote-based + vote_based_description: Order agenda items by upvotes minus downvotes within each section. Sections remain manually sorted. + votes: 'Votes: %{count}' attachments: onetime_template: 今后所有使用此模板的会议都将包含这些随附文件。 series_template: 今后此系列中的所有会议都将包含这些随附文件。 @@ -305,6 +332,9 @@ zh-CN: blankslate: desc: 您可以创建新会议或更改筛选条件 title: 没有可显示的会议 + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: '从会议 #%{id} 复制' copy: agenda: 复制议程 @@ -348,6 +378,7 @@ zh-CN: header: 已取消:会议 '%{title}' header_occurrence: 已取消:会议事件 '%{title}' header_series: 已取消:会议系列 '%{title}' + reason: Reason for cancellation summary: "'%{title}' 已被 %{actor} 取消,或者您的参与者身份已被移除" summary_occurrence: "'%{title}' 的事件已被 %{actor} 取消,或者您的参与者身份已被移除" summary_series: 会议系列 '%{title}' 已被 %{actor} 取消,或者您的参与者身份已被移除 @@ -472,6 +503,7 @@ zh-CN: no_items: 无议程条目 no_items_flash: 没有要演示的议程条目。 previous: 上一页 + slide_progress: Slide %{current}/%{total} title: 演示模式 total_items: "%{current}/%{total}" types: @@ -548,12 +580,12 @@ zh-CN: caption: ends_on: 这将导致一个在 %{date}结束的系列 occurrences: - other: 这将导致 %{count} 个即将发生的事件 + other: This results in %{count} upcoming occurrences occurrences_capped: 这将导致超过 %{count} 个即将发生的事件 day_of_month_skipping_info: 将跳过天数少于 %{monthly_day} 天的月份 delete_dialog: confirmation_message_html: - one: '删除 %{title} 也会删除此系列中的一次事件。此操作不可逆转。请谨慎操作。 + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: '删除 %{title} 将删除此系列中的全部 %{count} 个事件。此操作不可逆转。请谨慎操作。 @@ -619,7 +651,7 @@ zh-CN: error_no_next: 此会议没有下一个发生时间。 error_template_draft: 会议系列模板仍处于草稿模式。 first_already_exists: 此会议系列的第一次发生已经被实例化。 - first_created: '第一次会议已成功从模板创建。所有未来的会议将会在上一次发生的时间自动创建。 + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: 本次会议是定期会议系列的一部分。 @@ -681,9 +713,10 @@ zh-CN: text_agenda_item_dialog_skipping_closed_many: "%{count} 个关闭的会议" text_agenda_item_dialog_skipping_closed_one: 已于 %{date}关闭会议 text_agenda_item_dialog_skipping_note: 注:跳过 %{details}。 - text_agenda_item_duplicate_in_next_meeting: 确定要将此议程条目的副本添加到 %{date} %{time} 的下一个会议吗?结果不会复制。 + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: 在 %{date}的下一个会议中复制的议程条目 text_agenda_item_move_next_meeting: 此条目将被移至 %{date} %{time} 召开的下一次会议。 + text_agenda_item_moved_to_backlog: Agenda item moved to the backlog text_agenda_item_moved_to_next_meeting: 议程项目移至下次会议,日期 %{date} text_agenda_item_no_available_occurrence: 没有即将发生的事件。 text_agenda_item_no_notes: 未提供备注 diff --git a/modules/meeting/config/locales/crowdin/zh-TW.yml b/modules/meeting/config/locales/crowdin/zh-TW.yml index 54f5b73526d4..04559d28d177 100644 --- a/modules/meeting/config/locales/crowdin/zh-TW.yml +++ b/modules/meeting/config/locales/crowdin/zh-TW.yml @@ -24,13 +24,14 @@ zh-TW: activerecord: attributes: meeting: + agenda_sorting_mode: 排序模式 duration: 持續時間 end_time: 結束時間 location: 地點 notes: 備註 notify: 發送通知 participant: - other: "%{count} 位參與者" + other: "%{count} Participants" participants: 參加人員 participants_added: 已加入參與者: participants_attended: 出席人員 @@ -87,14 +88,18 @@ zh-TW: invalid_time_format: '不是有效時間。所需格式: HH:MM' models: meeting_agenda_item: + meeting_closed: The meeting is closed. Its agenda items can no longer be moved. + meeting_is_template: Template agenda items cannot be moved to the next meeting. + not_in_recurring_series: The agenda item does not belong to a recurring meeting. section_not_belong_to_meeting: 區段不屬於同一會議。 user_invalid: 不是有效的參與者。 + vote_based_sorting_required: 投票需要根據投票結果對議程進行排序。 meeting_participant: user_invalid: 不是有效的參與者。 recurring_meeting: must_cover_existing_meetings: format: "%{message}" - one: 該系列中有一個公開會議未包含在新的時間表中。調整時間表以包含所有現有會議。 + one: There is %{count} open meeting in the series that is not covered by the new schedule. Adjust the schedule to include all existing meetings. other: 系列會議中,有 %{count} 個公開會議未包含在新的時間表中。調整時間表以包含所有現有會議。 recurring_meeting_interim_response: not_an_occurrence: is not a valid occurrence time for this recurring meeting @@ -143,6 +148,10 @@ zh-TW: meeting_agenda_opened: 會議大綱開啟 meeting_minutes: 會議記錄已編輯 meeting_minutes_created: 會議記錄已建立 + journals: + cause_descriptions: + system_update: + meeting_journal_sync: 會議記錄會自動與會議的當前狀態同步。從現在起,議程項目與會議成果都將納入會議記錄中。 label_add_work_package_to_meeting_dialog_button: 增加到會議 label_add_work_package_to_meeting_dialog_title: 選擇會議 label_add_work_package_to_meeting_section_label: 區段 @@ -151,6 +160,8 @@ zh-TW: label_agenda_backlog_clear_title: 清除議程待辦清單? label_agenda_item_actions: 議程項目行動 label_agenda_item_add: 新增議程項目 + label_agenda_item_add_above: 在上方新增項目 + label_agenda_item_add_below: 在下方新增項目 label_agenda_item_add_notes: 新增註記 label_agenda_item_add_outcome: 新增結果 label_agenda_item_convert_to_work_package: 轉換為工作項目 @@ -158,6 +169,7 @@ zh-TW: label_agenda_item_duplicate: 複製 label_agenda_item_duplicate_in_next: 在下次會議中重複 label_agenda_item_duplicate_in_next_title: 在下次會議中重複? + label_agenda_item_include_outcomes: Include outcomes label_agenda_item_move: 移動 label_agenda_item_move_down: '向下移 ' label_agenda_item_move_to_backlog: 移至待辦清單 @@ -223,7 +235,7 @@ zh-TW: label_meeting_last_updated: 最後更新於 label_meeting_minutes: 會議記錄 label_meeting_more: - other: 還有 %{count} 更多的會議。 + other: There are %{count} more meetings. label_meeting_new: 新增會議 label_meeting_new_dynamic: 建立一次性會議 label_meeting_new_recurring: 新的重複性會議 @@ -268,9 +280,9 @@ zh-TW: label_recurring_meeting_delete: 刪除此事件 label_recurring_meeting_duplicate: 複製為一次性會議 label_recurring_meeting_more: - other: 還有 %{count} 預定會議 (%{schedule})。 + other: There are %{count} more scheduled meetings (%{schedule}). label_recurring_meeting_more_past: - other: 還有 %{count} 個更多過去的會議。 + other: There are %{count} more past meetings. label_recurring_meeting_new: 新的重複性會議 label_recurring_meeting_next_occurrence: 下一次會議 label_recurring_meeting_no_end_date: 有更多排定的會議 (%{schedule})。 @@ -300,6 +312,21 @@ zh-TW: label_view_meeting_series: 檢視會議 label_write_outcome: 編輯結果 meeting: + agenda_sorting: + change: 變更排序模式 + invalid_reaction: 議程項目僅允許投贊成票和反對票。 + manual: 使用說明 + manual_description: 請自行安排議程項目。切換回原模式將恢復手動排序。 + manual_order_disabled: 議程項目是按投票數排序的。若要重新排序,請切換至手動排序。 + remove_thumbs_down: 撤銷負評 + remove_thumbs_up: 撤銷讚 + sorted_by_votes: 議程依票數排序。 + thumbs_down: 投反對票 + thumbs_up: 投贊成票 + title: 排序模式 + vote_based: 基於投票的 + vote_based_description: 依各區塊內「贊成票數減去反對票數」的結果,對議程項目進行排序。各區塊的排序順序仍由手動設定。 + votes: 投票數: %{count} attachments: onetime_template: These attached files will be included in all future meetings using this template. series_template: These attached files will be included in all future meetings in the series. @@ -307,6 +334,9 @@ zh-TW: blankslate: desc: 您可以建立新的會議或變更篩選條件 title: 沒有會議要顯示 + cancel: + reason_caption: This will be included in the cancellation email sent to participants when notifications are enabled. + reason_label: Reason for cancellation copied: '從會議紀錄 #%{id} 中複製' copy: agenda: 複製議程 @@ -350,6 +380,7 @@ zh-TW: header: 取消:會議 '%{title}' header_occurrence: 取消:會議發起 '%{title}' header_series: 取消:系列會議 '%{title}' + reason: Reason for cancellation summary: "%{title}' 已被 %{actor}取消,或者您已被刪除為參賽者" summary_occurrence: "%{actor}已取消「%{title}」的發生,或您已被移除為參與者" summary_series: 會議系列 '%{title}' 已被 %{actor}取消, 或您已被移除為參與者 @@ -474,6 +505,7 @@ zh-TW: no_items: 沒有議程項目 no_items_flash: 沒有要提出的議程項目。 previous: 上一頁 + slide_progress: 簡報 %{current}/%{total} title: 簡報模式 total_items: "%{current} of %{total}" types: @@ -550,12 +582,12 @@ zh-TW: caption: ends_on: 這會導致該系列將以……作為結尾 %{date} occurrences: - other: 這會導致 %{count} 即將出現的情況 + other: This results in %{count} upcoming occurrences occurrences_capped: 這導致即將發生的事件數量超過 %{count} 個 day_of_month_skipping_info: 天數少於 %{monthly_day} 天的月份將被跳過 delete_dialog: confirmation_message_html: - one: '刪除 %{title}也會刪除此系列中已發之會議。此動作不可還原。請小心操作。 + one: 'Deleting %{title} will also delete %{count} occurrence in this series. This action is not reversible. Please proceed with caution. ' other: '刪除 %{title}將刪除此系列中的所有 %{count} 個已發起會議。此動作不可還原。請小心操作。 @@ -617,7 +649,7 @@ zh-TW: error_no_next: 本次會議無下次會議。 error_template_draft: 該系列會議的範本目前仍處於草稿階段。 first_already_exists: 此會議系列的第一次出現已經實體化。 - first_created: '第一次會議已從範本成功建立。以後所有的會議都會在前一次發生時自動建立。 + first_created: 'The first meeting has been successfully created from template. All future meetings will be created automatically at the time of the previous occurrence. ' infoline: 此會議為定期舉行的系列會議之一。 @@ -679,9 +711,10 @@ zh-TW: text_agenda_item_dialog_skipping_closed_many: "%{count} 已關閉的會議" text_agenda_item_dialog_skipping_closed_one: 會議關閉於 %{date} text_agenda_item_dialog_skipping_note: 註:跳過 %{details}。 - text_agenda_item_duplicate_in_next_meeting: 您確定要在下次會議中加入此議程項目的副本, %{date} ,網址為 %{time}? 結果不會重複。 + text_agenda_item_duplicate_in_next_meeting: Are you sure you want to add a copy of this agenda item to the next meeting, on %{date} at %{time}? text_agenda_item_duplicated_in_next_meeting: 與下次會議重複的議程項目, %{date} text_agenda_item_move_next_meeting: 本項目將移至 %{date} %{time}的下次會議上討論。 + text_agenda_item_moved_to_backlog: 該議程項目已移至待辦事項清單 text_agenda_item_moved_to_next_meeting: 議程項目移至下次會議討論: %{date} text_agenda_item_no_available_occurrence: 目前沒有即將舉行的活動。 text_agenda_item_no_notes: 沒註記 diff --git a/modules/openid_connect/config/locales/crowdin/af.yml b/modules/openid_connect/config/locales/crowdin/af.yml index a8ccbfa76821..ea90b9a62b74 100644 --- a/modules/openid_connect/config/locales/crowdin/af.yml +++ b/modules/openid_connect/config/locales/crowdin/af.yml @@ -50,7 +50,7 @@ af: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ af: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ af: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ af: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ar.yml b/modules/openid_connect/config/locales/crowdin/ar.yml index 838c3fee9b59..8841688f8058 100644 --- a/modules/openid_connect/config/locales/crowdin/ar.yml +++ b/modules/openid_connect/config/locales/crowdin/ar.yml @@ -58,7 +58,7 @@ ar: few: OpenID Connect tokens many: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'لقد تم تسجيل خروجك. قد يتم فقدان محتويات أي نموذج تقوم بإرساله. يرجى [تسجيل الدخول]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -87,9 +87,9 @@ ar: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -112,7 +112,7 @@ ar: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: مزودو OpenID providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -172,7 +172,7 @@ ar: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/az.yml b/modules/openid_connect/config/locales/crowdin/az.yml index 8600259b60c2..b1e07f20bae5 100644 --- a/modules/openid_connect/config/locales/crowdin/az.yml +++ b/modules/openid_connect/config/locales/crowdin/az.yml @@ -50,7 +50,7 @@ az: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ az: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ az: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ az: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/be.yml b/modules/openid_connect/config/locales/crowdin/be.yml index e1fa02ab9203..9c692630dff3 100644 --- a/modules/openid_connect/config/locales/crowdin/be.yml +++ b/modules/openid_connect/config/locales/crowdin/be.yml @@ -54,7 +54,7 @@ be: few: OpenID Connect tokens many: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ be: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -108,7 +108,7 @@ be: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -168,7 +168,7 @@ be: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/bg.yml b/modules/openid_connect/config/locales/crowdin/bg.yml index 97b844b6cf40..1a1427e7c095 100644 --- a/modules/openid_connect/config/locales/crowdin/bg.yml +++ b/modules/openid_connect/config/locales/crowdin/bg.yml @@ -50,7 +50,7 @@ bg: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Излезли сте от системата. Съдържанието на всеки изпратен от вас формуляр, може да бъде изгубено. Моля, [влезте отново]! + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ bg: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ bg: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID доставчици providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ bg: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ca.yml b/modules/openid_connect/config/locales/crowdin/ca.yml index cd8d187c9a38..b04b4dd21b6c 100644 --- a/modules/openid_connect/config/locales/crowdin/ca.yml +++ b/modules/openid_connect/config/locales/crowdin/ca.yml @@ -50,7 +50,7 @@ ca: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'S''ha tancat la teva sessió. Es poden haver perdut els continguts de qualsevol formulari sotmès. Si us plau, [inicia sessió]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ ca: display_name: El nom del proveïdor. Això es mostrarà com el botó d'inici de sessió i a la llista de proveïdors. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ ca: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Proveïdor d’OpenID providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ ca: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ckb-IR.yml b/modules/openid_connect/config/locales/crowdin/ckb-IR.yml index 27817d1ec6c7..3e8cc182e523 100644 --- a/modules/openid_connect/config/locales/crowdin/ckb-IR.yml +++ b/modules/openid_connect/config/locales/crowdin/ckb-IR.yml @@ -50,7 +50,7 @@ ckb-IR: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ ckb-IR: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ ckb-IR: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ ckb-IR: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/cs.yml b/modules/openid_connect/config/locales/crowdin/cs.yml index b38ef9b494e0..d42d41d240d0 100644 --- a/modules/openid_connect/config/locales/crowdin/cs.yml +++ b/modules/openid_connect/config/locales/crowdin/cs.yml @@ -54,7 +54,7 @@ cs: few: OpenID Connect tokens many: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'Byli jste odhlášeni. Obsah formuláře může být ztracen. Prosím, [přihlaste se]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ cs: display_name: Jméno poskytovatele. Bude zobrazeno jako tlačítko pro přihlášení a v seznamu poskytovatelů. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -108,7 +108,7 @@ cs: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Poskytovatelé OpenID providers: client_details_description: Podrobnosti o konfiguraci OpenProject jako klienta OIDC @@ -166,7 +166,7 @@ cs: delete_result_1: Odstranit poskytovatele ze seznamu dostupných poskytovatelů. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: Jeden uživatel v současné době stále používá tohoto poskytovatele. Musí být znovu pozván nebo přihlášen přes jiného poskytovatele. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} uživatelé v současné době stále používají tohoto poskytovatele. Budou muset být znovu pozváni nebo přihlášeni přes jiného poskytovatele." zero: Tohoto poskytovatele v současné době nepoužívají žádní uživatelé. Není třeba podnikat žádné další kroky. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/da.yml b/modules/openid_connect/config/locales/crowdin/da.yml index 3866dd7cd4a3..584bf087decd 100644 --- a/modules/openid_connect/config/locales/crowdin/da.yml +++ b/modules/openid_connect/config/locales/crowdin/da.yml @@ -50,7 +50,7 @@ da: openid_connect/user_token: one: OpenID Connect-token other: OpenID Connect-tokens - logout_warning: 'Du er logget ud. Indholdet af formularer, du sender, kan gå tabt. [Log ind]. + logout_warning_link: 'Du er logget ud. Indholdet af formularer, du sender, kan gå tabt. [Log ind](login). ' openid_connect: @@ -76,10 +76,10 @@ da: ' client_id: Det klient-id, som du har fået af din OpenID Connect-udbyder client_secret: Den klienthemmelighed, som du har fået af din OpenID Connect-udbyder - display_name: Udbydernavnet. Dette vises som login-knappen samt på udbyderlisten. + display_name: Udbyderens navn. Det vises på login-knappen og i listen over udbydere. endpoint_url: Den endepunkts-URL, som du har fået af OpenID Connect-udbyderen group_regexes: Ét mønster med regulære udtryk pr. linje. Læs [dokumentationen](docs_url) for at få flere oplysninger om, hvordan du gør. - group_regexes_detail: Definér eventuelt mønstre med regulære udtryk, der finder gruppenavne i claimet for grupper. Et mønster som ^Level1/Level2/([\w/]+)$ udtrækker fx gruppen “Groupname/SubGroup” fra et svar, der indeholder “Level1/Level2/GroupName/SubGroup”. Hvis intet mønster matcher, ignoreres gruppen. Lad feltet stå tomt for at synkronisere alle grupper med deres fulde gruppenavn. + group_regexes_detail_html: Definér eventuelt mønstre med regulære udtryk, der finder gruppenavne i claimet for grupper. Et mønster som ^Level1/Level2/([\w/]+)$ udtrækker fx gruppen “Groupname/SubGroup” fra et svar, der indeholder “Level1/Level2/GroupName/SubGroup”. Hvis intet mønster matcher, ignoreres gruppen. Lad feltet stå tomt for at synkronisere alle grupper med deres fulde gruppenavn. group_regexes_testing: Klik på 'Test mønster' for at teste dit mønster med regulære udtryk mod eksempler på OIDC-userinfo. group_sync: Udtræk og synkroniser automatisk oplysninger om gruppemedlemskab fra identitetsudbyderen. groups_claim: Angiv navnet på det claim, der forventes at angive navnene på de grupper, som brugeren er medlem af. @@ -104,7 +104,7 @@ da: oidc_information: Disse værdier er nødvendige for at konfigurere OpenID Connect-udbyderen. post_logout_redirect_uri: Den URL, som OpenID Connect-udbyderen skal omdirigere til efter en anmodning om logud. scope: Hvis du vil anmode om egne scopes, kan du angive en eller flere scope-værdier her, adskilt med mellemrum. Se [dokumentationen om OpenID Connect](docs_url) for at få flere oplysninger. - tenant: Erstat standard-tenanten med jeres egen, hvis det er relevant. Se her. + tenant_html: Erstat standard-tenanten med jeres egen, hvis det er relevant. Se her. menu_title: OpenID-udbydere providers: client_details_description: Konfigurationsoplysninger for OpenProject som OIDC-klient @@ -149,7 +149,7 @@ da: description: Forbind OpenProject med en OpenID Connect-identitetsudbyder title: Single sign-on (SSO) med OpenID Connect setting_instructions: - limit_self_registration: 'Hvis aktiveret, kan brugere kun registrere sig vha. denne udbyder, hvis selv-registreringsindstillingen tillader dette. + limit_self_registration: 'Når indstillingen er slået til, kan brugere kun registrere sig via denne udbyder, hvis indstillingen for selvregistrering tillader det. ' settings: @@ -164,7 +164,7 @@ da: delete_result_1: Fjerne udbyderen fra listen over tilgængelige udbydere. delete_result_direct: Udbyderen er markeret som udbyder til direkte login. Indstillingen fjernes, og brugerne bliver ikke længere sendt videre til udbyderen ved login. delete_result_user_count: - one: Én bruger bruger stadig denne udbyder. Vedkommende skal inviteres igen eller logge ind med en anden udbyder. + one: "%{count} bruger bruger stadig denne udbyder. Vedkommende skal inviteres igen eller logge ind med en anden udbyder." other: "%{count} brugere bruger stadig denne udbyder. De skal inviteres igen eller logge ind med en anden udbyder." zero: Ingen brugere bruger denne udbyder i øjeblikket. Der skal ikke gøres mere. input_delete_confirmation_html: Skriv udbyderens navn %{name} for at bekræfte sletningen. diff --git a/modules/openid_connect/config/locales/crowdin/de.yml b/modules/openid_connect/config/locales/crowdin/de.yml index 3e837378cc98..f73cc9be4422 100644 --- a/modules/openid_connect/config/locales/crowdin/de.yml +++ b/modules/openid_connect/config/locales/crowdin/de.yml @@ -50,7 +50,7 @@ de: openid_connect/user_token: one: OpenID Connect-Token other: OpenID Connect-Token - logout_warning: 'Sie wurden abgemeldet. Der Inhalt eines Formulars, das Sie uns übermitteln, kann verloren gehen. Bitte [einloggen]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ de: display_name: Der Name des Anbieters. Dieser wird in der Login-Schaltfläche und in der Liste der Anbieter angezeigt. endpoint_url: Die Endpunkt-URL, die Sie vom OpenID Connect-Anbieter erhalten haben group_regexes: Ein regulärer Ausdruck pro Zeile. Bitte lesen Sie [die Dokumentation](docs_url) für weitere Informationen hierzu. - group_regexes_detail: Definieren Sie optional Pattern mit regulären Ausdrücken, um Gruppennamen aus dem Gruppenanspruch abzugleichen. Wenn Sie beispielsweise ein Pattern wie ^Level1/Level2/ ([\w/]+)$ eingeben, wird die Gruppe "Gruppenname/Untergruppe" aus einer Antwort mit "Level1/Level2/Gruppenname/Untergruppe" extrahiert. Wenn kein Pattern übereinstimmt, wird die Gruppe ignoriert. Lassen Sie das Feld leer, um alle Gruppen mit ihrem vollständigen Gruppennamen zu synchronisieren. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Klicken Sie auf 'Muster testen', um Ihr Muster für den regulären Ausdruck mit der OIDC-Benutzerinfo zu vergleichen. - group_sync: Gruppenzugehörigkeit von Benutzern automatisch vom Identitätsanbieter übertragen. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Geben Sie den Namen des Claims an, der die Namen von Gruppen enthält, bei denen der Nutzer Mitglied ist. limit_self_registration: Wenn diese Option aktiviert ist, können sich Benutzer nur dann über diesen Anbieter registrieren, wenn die Konfiguration aufseiten des Anbieters dies zulässt. mapping_admin: 'Benutzerdefinierte Zuordnung in der Antwort des Userinfo-Endpunkts für den Admin-Status eines Benutzers. Ein boolesches Attribut wird erwartet. @@ -104,7 +104,7 @@ de: oidc_information: Diese Werte werden für die Konfiguration des OpenID Connect-Anbieters benötigt. post_logout_redirect_uri: Die URL, an die der OpenID Connect-Anbieter nach einer erfolgreichen Abmeldung weiterleiten soll. scope: Wenn Sie benutzerdefinierte Scopes anfordern möchten, können Sie hier einen oder mehrere durch Leerzeichen getrennte Werte hinzufügen. Weitere Informationen finden Sie in der [OpenID Connect Dokumentation](docs_url). - tenant: Bitte ersetzen Sie den vorgegebenen Mandanten durch Ihren eigenen, falls zutreffend. Siehe diese Dokumentation von Microsoft Entra. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID-Anbieter providers: client_details_description: Konfigurationsdetails von OpenProject als OIDC-Client @@ -164,7 +164,7 @@ de: delete_result_1: Entfernt diese SSO-Anmeldemöglichkeit aus der Liste der verfügbaren Anbieter. delete_result_direct: Dieser SSO-Anbieter wird für den direkten Login verwendet. Die Einstellung wird entfernt und die Benutzer werden nicht mehr automatisch zur Anmeldung an diesen Anbieter weitergeleitet. delete_result_user_count: - one: Ein Benutzer verwendet derzeit noch diesen Anbieter. Er muss erneut eingeladen werden oder sich bei einem anderen Anbieter anmelden. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} Benutzer verwenden derzeit noch diesen Anbieter. Diese müssen erneut eingeladen werden oder sich bei einem anderen Anbieter anmelden." zero: Derzeit verwenden keine Benutzer diesen SSO-Anbieter. Es sind keine weiteren Maßnahmen erforderlich. input_delete_confirmation_html: Geben Sie den Namen des SSO-Anbieters %{name} ein, um die Löschung zu bestätigen. diff --git a/modules/openid_connect/config/locales/crowdin/el.yml b/modules/openid_connect/config/locales/crowdin/el.yml index 9930a93b0049..70e1bf5e5d77 100644 --- a/modules/openid_connect/config/locales/crowdin/el.yml +++ b/modules/openid_connect/config/locales/crowdin/el.yml @@ -50,7 +50,7 @@ el: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Έχετε αποσυνδεθεί. Τα περιεχόμενα οποιασδήποτε φόρμας που υποβάλετε ενδέχεται να χαθούν. Παρακαλούμε [συνδεθείτε]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ el: display_name: Το όνομα του παρόχου. Θα εμφανίζεται στο κουμπί σύνδεσης και στη λίστα παρόχων. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: Εάν είναι ενεργοποιημένη, οι χρήστες μπορούν να εγγραφούν μόνο χρησιμοποιώντας αυτόν τον πάροχο, εάν οι ρυθμίσεις στη μεριά του παρόχου το επιτρέπουν. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ el: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: Εάν θέλετε να ζητήσετε προσαρμοσμένα πεδία εφαρμογής, μπορείτε να προσθέσετε μία ή περισσότερες τιμές πεδίου εφαρμογής που χωρίζονται με κενά εδώ. Για περισσότερες πληροφορίες, ανατρέξτε στην [τεκμηρίωση του OpenID Connect](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Πάροχοι OpenID providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ el: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/eo.yml b/modules/openid_connect/config/locales/crowdin/eo.yml index 69882d2d932c..0b58cf66b571 100644 --- a/modules/openid_connect/config/locales/crowdin/eo.yml +++ b/modules/openid_connect/config/locales/crowdin/eo.yml @@ -50,7 +50,7 @@ eo: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ eo: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ eo: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ eo: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/es.yml b/modules/openid_connect/config/locales/crowdin/es.yml index 3fb06af86e25..cfa1aaa6b3f5 100644 --- a/modules/openid_connect/config/locales/crowdin/es.yml +++ b/modules/openid_connect/config/locales/crowdin/es.yml @@ -50,7 +50,7 @@ es: openid_connect/user_token: one: Token de OpenID Connect other: Tokens de OpenID Connect - logout_warning: 'Se ha cerrado la sesión. Puede que se haya perdido el contenido de cualquier formulario que haya enviado. [Inicie la sesión]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ es: display_name: El nombre del proveedor. Aparecerá como botón de inicio de sesión y en la lista de proveedores. endpoint_url: La URL del terminal que le ha proporcionado el proveedor de OpenID Connect group_regexes: Un patrón de expresión regular por línea. Lea [la documentación](docs_url) para obtener más información sobre cómo hacerlo. - group_regexes_detail: Defina patrones opcionalmente usando expresiones regulares para emparejar los nombres de los grupos a partir de la reclamación de los grupos. Por ejemplo, introducir un patrón como ^Level1/Level2/([\w/]+)$ extraerá el grupo «Groupname/SubGroup» de una respuesta incluyendo «Level1/Level2/GroupName/SubGroup». Si no hay patrones coincidentes, el grupo se ignora. Deje en blanco para sincronizar todos los grupos usando su nombre de grupo completo. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Haga clic en «Patrón de prueba» para comprobar su patrón de expresión regular con la información de usuario OIDC de muestra. - group_sync: Extraiga y sincronice automáticamente la información de pertenencia a grupos del proveedor de identidad. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Especifique el nombre de la reclamación que se espera que indique los nombres de los grupos a los que pertenece el usuario. limit_self_registration: Si está activada, los usuarios solo podrán registrarse utilizando este proveedor si la configuración del proveedor lo permite. mapping_admin: 'Proporciona una asignación personalizada en la respuesta userinfo que se utilizará para el estado administrador. Espera que se devuelva un atributo booleano. @@ -104,7 +104,7 @@ es: oidc_information: Estos valores son necesarios para configurar el proveedor OpenID Connect. post_logout_redirect_uri: La URL a la que debe redirigir el proveedor de OpenID Connect tras una solicitud de cierre de sesión. scope: Si desea solicitar ámbitos personalizados, puede añadir aquí uno o varios valores de ámbito separados por espacios. Para más información, consulte la [documentación de OpenID Connect](docs_url). - tenant: Sustituya el inquilino predeterminado por el suyo si procede. Consulte esto. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Proveedores de OpenID providers: client_details_description: Detalles de configuración de OpenProject como cliente OIDC @@ -164,7 +164,7 @@ es: delete_result_1: Elimine al proveedor de la lista de proveedores disponibles. delete_result_direct: Este proveedor está marcado como proveedor de inicio de sesión directo. La configuración se eliminará y ya no se redirigirá a los usuarios al proveedor para iniciar sesión. delete_result_user_count: - one: Actualmente, un usuario sigue utilizando este proveedor. Deberá ser invitado de nuevo o iniciar sesión con otro proveedor. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} usuarios siguen utilizando actualmente este proveedor. Deberán ser invitados de nuevo o iniciar sesión con otro proveedor." zero: Ningún usuario utiliza actualmente este proveedor. No se requiere ninguna acción adicional. input_delete_confirmation_html: Escribe el nombre del proveedor %{name} para confirmar la eliminación. diff --git a/modules/openid_connect/config/locales/crowdin/et.yml b/modules/openid_connect/config/locales/crowdin/et.yml index 39a52b02bdd2..045eb6349530 100644 --- a/modules/openid_connect/config/locales/crowdin/et.yml +++ b/modules/openid_connect/config/locales/crowdin/et.yml @@ -50,7 +50,7 @@ et: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ et: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ et: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ et: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/eu.yml b/modules/openid_connect/config/locales/crowdin/eu.yml index ca16d61b44dd..c3ffe0ea0c13 100644 --- a/modules/openid_connect/config/locales/crowdin/eu.yml +++ b/modules/openid_connect/config/locales/crowdin/eu.yml @@ -50,7 +50,7 @@ eu: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ eu: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ eu: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ eu: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/fa.yml b/modules/openid_connect/config/locales/crowdin/fa.yml index 1d690624af6d..5afb8ed5a41b 100644 --- a/modules/openid_connect/config/locales/crowdin/fa.yml +++ b/modules/openid_connect/config/locales/crowdin/fa.yml @@ -50,7 +50,7 @@ fa: openid_connect/user_token: one: توکن OpenID Connect other: توکن‌های OpenID Connect - logout_warning: 'از سیستم خارج شده‌اید. ممکن است محتوای فرم‌هایی که ارسال می‌کنید از دست برود. لطفاً [وارد شوید]. + logout_warning_link: 'از سیستم خارج شده‌اید. محتوای هر فرمی که ارسال کنید ممکن است از دست برود. لطفاً [وارد شوید](login). ' openid_connect: @@ -79,9 +79,9 @@ fa: display_name: نام ارائه‌دهنده. این نام روی دکمه ورود و در فهرست ارائه‌دهندگان نمایش داده می‌شود. endpoint_url: نشانی نقطه پایانی ارائه‌شده توسط ارائه‌دهنده OpenID Connect group_regexes: در هر خط یک الگوی عبارت منظم وارد کنید. برای اطلاعات بیشتر [مستندات](docs_url) را بخوانید. - group_regexes_detail: در صورت نیاز، با استفاده از عبارت‌های منظم الگوهایی برای تطبیق نام گروه‌ها از Claim گروه‌ها تعریف کنید. برای نمونه، الگوی ^Level1/Level2/([\w/]+)$ از پاسخی شامل “Level1/Level2/GroupName/SubGroup”، گروه “Groupname/SubGroup” را استخراج می‌کند. اگر هیچ الگویی تطبیق نکند، گروه نادیده گرفته می‌شود. برای همگام‌سازی همه گروه‌ها با نام کاملشان این قسمت را خالی بگذارید. + group_regexes_detail_html: در صورت تمایل، الگوهایی را با استفاده از عبارت‌های منظم تعریف کنید تا نام گروه‌ها از claim گروه‌ها تطبیق داده شوند. برای مثال، وارد کردن الگویی مانند ^Level1/Level2/([\w/]+)$ گروه «Groupname/SubGroup» را از پاسخی شامل «Level1/Level2/GroupName/SubGroup» استخراج می‌کند. اگر هیچ الگویی تطبیق نکند، گروه نادیده گرفته می‌شود. برای همگام‌سازی همه گروه‌ها با نام کاملشان، این قسمت را خالی بگذارید. group_regexes_testing: برای آزمایش الگوی عبارت منظم روی نمونه userinfo مربوط به OIDC، روی 'آزمایش الگو' کلیک کنید. - group_sync: اطلاعات عضویت گروه را به‌طور خودکار از ارائه‌دهنده هویت استخراج و همگام‌سازی کنید. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: نام Claimای را مشخص کنید که انتظار می‌رود نام گروه‌های عضو کاربر را ارائه کند. limit_self_registration: اگر فعال باشد، کاربران فقط زمانی می‌توانند با این ارائه‌دهنده ثبت‌نام کنند که پیکربندی سمت ارائه‌دهنده اجازه دهد. mapping_admin: 'یک نگاشت سفارشی در پاسخ userinfo برای وضعیت مدیر ارائه کنید. مقدار این ویژگی باید بولی باشد. @@ -104,7 +104,7 @@ fa: oidc_information: این مقادیر برای پیکربندی ارائه‌دهنده OpenID Connect لازم هستند. post_logout_redirect_uri: نشانی‌ای که ارائه‌دهنده OpenID Connect پس از درخواست خروج باید به آن هدایت کند. scope: اگر می‌خواهید Scopeهای سفارشی درخواست کنید، یک یا چند مقدار Scope را با فاصله در اینجا وارد کنید. برای اطلاعات بیشتر [مستندات OpenID Connect](docs_url) را ببینید. - tenant: در صورت نیاز، Tenant پیش‌فرض را با Tenant خودتان جایگزین کنید. این راهنما را ببینید. + tenant_html: در صورت نیاز، tenant پیش‌فرض را با tenant خود جایگزین کنید. اینجا را ببینید. menu_title: ارائه‌دهندگان OpenID providers: client_details_description: جزئیات پیکربندی OpenProject به‌عنوان کلاینت OIDC @@ -164,7 +164,7 @@ fa: delete_result_1: ارائه‌دهنده را از فهرست ارائه‌دهندگان در دسترس حذف کنید. delete_result_direct: این ارائه‌دهنده به‌عنوان ارائه‌دهنده ورود مستقیم مشخص شده است. این تنظیم حذف می‌شود و کاربران دیگر برای ورود به ارائه‌دهنده هدایت نخواهند شد. delete_result_user_count: - one: در حال حاضر یک کاربر هنوز از این ارائه‌دهنده استفاده می‌کند. باید دوباره دعوت شود یا با ارائه‌دهنده دیگری وارد شود. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: در حال حاضر %{count} کاربر هنوز از این ارائه‌دهنده استفاده می‌کنند. باید دوباره دعوت شوند یا با ارائه‌دهنده دیگری وارد شوند. zero: در حال حاضر هیچ کاربری از این ارائه‌دهنده استفاده نمی‌کند. اقدام دیگری لازم نیست. input_delete_confirmation_html: برای تأیید حذف، نام ارائه‌دهنده %{name} را وارد کنید. diff --git a/modules/openid_connect/config/locales/crowdin/fi.yml b/modules/openid_connect/config/locales/crowdin/fi.yml index 78bc5cb999ce..b51f09f36d3e 100644 --- a/modules/openid_connect/config/locales/crowdin/fi.yml +++ b/modules/openid_connect/config/locales/crowdin/fi.yml @@ -50,7 +50,7 @@ fi: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ fi: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ fi: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ fi: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/fil.yml b/modules/openid_connect/config/locales/crowdin/fil.yml index bf3231515da8..b14ae9fbf470 100644 --- a/modules/openid_connect/config/locales/crowdin/fil.yml +++ b/modules/openid_connect/config/locales/crowdin/fil.yml @@ -50,7 +50,7 @@ fil: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ fil: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ fil: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ fil: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/fr.yml b/modules/openid_connect/config/locales/crowdin/fr.yml index 89a0a81cc061..e4e554ebc45d 100644 --- a/modules/openid_connect/config/locales/crowdin/fr.yml +++ b/modules/openid_connect/config/locales/crowdin/fr.yml @@ -50,7 +50,7 @@ fr: openid_connect/user_token: one: Jeton OpenID Connect other: Jetons OpenID Connect - logout_warning: 'Vous avez été déconnecté. Le contenu de tout formulaire que vous soumettez peut être perdu. Veuillez [vous connecter]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ fr: display_name: Le nom du fournisseur. Il sera affiché comme bouton de connexion et dans la liste des fournisseurs. endpoint_url: L'URL du point de terminaison qui vous a été communiquée par le fournisseur OpenID Connect group_regexes: Un motif d'expression régulière par ligne. Veuillez lire [la documentation](docs_url) pour en savoir plus sur la manière de procéder. - group_regexes_detail: Vous pouvez également définir des motifs à l'aide d'expressions régulières pour faire correspondre les noms de groupes aux revendications de groupes. Par exemple, si vous saisissez un motif tel que ^Level1/Level2/([\w/]+)$, le groupe « Groupname/SubGroup » sera extrait d'une réponse comprenant « Level1/Level2/GroupName/SubGroup ». Si aucun motif ne correspond, le groupe est ignoré. Laissez le champ vide pour synchroniser tous les groupes en utilisant leur nom complet. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Cliquez sur « Tester le modèle » pour tester votre expression régulière par rapport aux informations userinfo OIDC. - group_sync: Extraire et synchroniser automatiquement les informations relatives à l'appartenance à un groupe à partir du fournisseur d'identité. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Indiquez le nom de la revendication censée indiquer les noms des groupes dont l'utilisateur est membre. limit_self_registration: Si cette option est activée, les utilisateurs peuvent s'inscrire par le biais de ce fournisseur uniquement si la configuration du côté du fournisseur le permet. mapping_admin: 'Fournissez un mapping personnalisé dans la réponse userinfo à utiliser pour le statut d''administrateur. Le retour devrait être un attribut booléen. @@ -104,7 +104,7 @@ fr: oidc_information: Ces valeurs sont nécessaires pour configurer le fournisseur OpenID Connect. post_logout_redirect_uri: L'URL vers laquelle le fournisseur OpenID Connect doit rediriger le client après une demande de déconnexion. scope: Si vous voulez demander des portées personnalisées, vous pouvez ajouter une ou plusieurs valeurs de portée séparées par des espaces. Consultez voir la [documentation OpenID Connect](docs_url) pour obtenir plus d'informations. - tenant: Veuillez remplacer le locataire par défaut par le vôtre, le cas échéant. Vous pouvez en savoir plus ici. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Fournisseurs OpenID providers: client_details_description: Détails de la configuration d'OpenProject en tant que client OIDC @@ -164,7 +164,7 @@ fr: delete_result_1: Supprimez le fournisseur de la liste des fournisseurs disponibles. delete_result_direct: Ce fournisseur est marqué comme fournisseur de connexion directe. Le paramètre sera supprimé et les utilisateurs ne seront plus redirigés vers le fournisseur pour se connecter. delete_result_user_count: - one: Un utilisateur utilise encore ce fournisseur. Il devra être réinvité ou se connecter par le biais d'un autre fournisseur. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} utilisateurs utilisent encore ce fournisseur. Ils devront être réinvités ou se connecter par le biais d'un autre fournisseur." zero: Aucun utilisateur n'utilise actuellement ce fournisseur. Aucune action supplémentaire n'est requise. input_delete_confirmation_html: Saisissez le nom du fournisseur %{name} pour confirmer la suppression. diff --git a/modules/openid_connect/config/locales/crowdin/he.yml b/modules/openid_connect/config/locales/crowdin/he.yml index d830957317d5..f3c6c34afcd5 100644 --- a/modules/openid_connect/config/locales/crowdin/he.yml +++ b/modules/openid_connect/config/locales/crowdin/he.yml @@ -52,7 +52,7 @@ he: one: OpenID Connect token two: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -81,9 +81,9 @@ he: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -106,7 +106,7 @@ he: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -166,7 +166,7 @@ he: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/hi.yml b/modules/openid_connect/config/locales/crowdin/hi.yml index ce3b6622913a..1b1834664e89 100644 --- a/modules/openid_connect/config/locales/crowdin/hi.yml +++ b/modules/openid_connect/config/locales/crowdin/hi.yml @@ -50,7 +50,7 @@ hi: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ hi: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ hi: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ hi: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/hr.yml b/modules/openid_connect/config/locales/crowdin/hr.yml index d177312f2e61..e31405069a61 100644 --- a/modules/openid_connect/config/locales/crowdin/hr.yml +++ b/modules/openid_connect/config/locales/crowdin/hr.yml @@ -52,7 +52,7 @@ hr: one: OpenID Connect token few: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -81,9 +81,9 @@ hr: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -106,7 +106,7 @@ hr: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -166,7 +166,7 @@ hr: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/hu.yml b/modules/openid_connect/config/locales/crowdin/hu.yml index 674a996b5610..1dbadc961dbb 100644 --- a/modules/openid_connect/config/locales/crowdin/hu.yml +++ b/modules/openid_connect/config/locales/crowdin/hu.yml @@ -50,7 +50,7 @@ hu: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Kijelentkeztél. A benyújtott űrlap tartalma elveszhet. Kérjük jelentkezz be. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ hu: display_name: A szolgáltató neve. Ez jelenik meg a bejelentkezés gombon és a szolgáltatók listájában. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: Ha ez be van kapcsolva, a felhasználók csak akkor regisztrálhatnak ezen szolgáltatón keresztül, ha a szolgáltató oldalán végzett beállítások ezt lehetővé teszik. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ hu: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: Ha egyedi hatóköröket szeretnél kérni, itt szóközökkel elválasztva adhatsz meg egy vagy több hatókörértéket. További információkért lásd az [OpenID Connect dokumentációt](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID szolgáltató providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ hu: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/hy.yml b/modules/openid_connect/config/locales/crowdin/hy.yml index 70ae92e093ac..aa4f0f27ca34 100644 --- a/modules/openid_connect/config/locales/crowdin/hy.yml +++ b/modules/openid_connect/config/locales/crowdin/hy.yml @@ -50,7 +50,7 @@ hy: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Դուք դուրս եք եկել համակարգից։ Ցանկացած ձևի բովանդակություն, որը կուղարկեք, կարող է կորչել։ Խնդրում ենք [մտնել համակարգ]։ + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ hy: display_name: Մատակարարի անվանումը։ Այն կցուցադրվի որպես մուտքի կոճակ և մատակարարների ցանկում։ endpoint_url: Վերջնակետի URL-ը, որը Ձեզ տրամադրել է OpenID Connect մատակարարը group_regexes: Յուրաքանչյուր տողում՝ մեկ կանոնավոր արտահայտության կաղապար։ Խնդրում ենք կարդալ [փաստաթղթերը](docs_url)՝ դա անելու մասին լրացուցիչ տեղեկությունների համար։ - group_regexes_detail: Ըստ ցանկության սահմանեք կաղապարներ՝ կանոնավոր արտահայտությունների միջոցով խմբերի պնդումից խմբերի անվանումները համապատասխանեցնելու համար։ Օրինակ՝ ^Level1/Level2/([\w/]+)$ կաղապարի մուտքագրումը “Level1/Level2/GroupName/SubGroup” պարունակող պատասխանից դուրս կբերի “Groupname/SubGroup” խումբը։ Եթե ոչ մի կաղապար չի համապատասխանում, խումբն անտեսվում է։ Թողեք դատարկ՝ բոլոր խմբերն իրենց ամբողջական անվանումով համաժամացնելու համար։ + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Սեղմեք 'Փորձարկել կաղապարը'՝ Ձեր կանոնավոր արտահայտության կաղապարը նմուշային OIDC userinfo-ի վրա փորձարկելու համար։ - group_sync: Ավտոմատ կերպով դուրս բերել և համաժամացնել խմբերի անդամակցության տեղեկությունները ինքնության մատակարարից։ + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Նշեք այն պնդման անվանումը, որը պետք է ցույց տա այն խմբերի անվանումները, որոնց անդամ է օգտատերը։ limit_self_registration: Եթե միացված է, օգտատերերը կարող են այս մատակարարի միջոցով գրանցվել միայն այն դեպքում, երբ մատակարարի կողմում կազմաձևումը դա թույլ է տալիս։ mapping_admin: 'Տրամադրեք հատուկ համապատասխանեցում userinfo պատասխանում՝ ադմինիստրատորի կարգավիճակի համար։ Ակնկալվում է, որ կվերադարձվի բուլյան հատկանիշ։ @@ -104,7 +104,7 @@ hy: oidc_information: Այս արժեքներն անհրաժեշտ են OpenID Connect մատակարարը կազմաձևելու համար։ post_logout_redirect_uri: URL-ը, որին OpenID Connect մատակարարը պետք է վերահղի ելքի հարցումից հետո։ scope: Եթե ցանկանում եք հայցել հատուկ շրջանակներ, կարող եք այստեղ ավելացնել շրջանակի մեկ կամ մի քանի արժեք՝ բաժանված բացատներով։ Լրացուցիչ տեղեկությունների համար տեսեք [OpenID Connect-ի փաստաթղթերը](docs_url)։ - tenant: Խնդրում ենք անհրաժեշտության դեպքում կանխադրված tenant-ը փոխարինել Ձեր սեփականով։ Տեսեք սա։ + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID մատակարարներ providers: client_details_description: OpenProject-ի՝ որպես OIDC հաճախորդի կազմաձևման մանրամասներ @@ -164,7 +164,7 @@ hy: delete_result_1: Մատակարարը կհեռացվի հասանելի մատակարարների ցանկից։ delete_result_direct: Այս մատակարարը նշված է որպես ուղիղ մուտքի մատակարար։ Կարգավորումը կհեռացվի, և օգտատերերն այլևս չեն վերահղվի մատակարարին՝ մուտք գործելու համար։ delete_result_user_count: - one: Ներկայումս մեկ օգտատեր դեռ օգտագործում է այս մատակարարը։ Նա պետք է կրկին հրավիրվի կամ մուտք գործի այլ մատակարարի միջոցով։ + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: Ներկայումս %{count} օգտատեր դեռ օգտագործում է այս մատակարարը։ Նրանք պետք է կրկին հրավիրվեն կամ մուտք գործեն այլ մատակարարի միջոցով։ zero: Ներկայումս ոչ մի օգտատեր չի օգտագործում այս մատակարարը։ Լրացուցիչ գործողություն չի պահանջվում։ input_delete_confirmation_html: Ջնջումը հաստատելու համար մուտքագրեք մատակարարի անվանումը՝ %{name}։ diff --git a/modules/openid_connect/config/locales/crowdin/id.yml b/modules/openid_connect/config/locales/crowdin/id.yml index 0828ec7a018c..00756425a12a 100644 --- a/modules/openid_connect/config/locales/crowdin/id.yml +++ b/modules/openid_connect/config/locales/crowdin/id.yml @@ -48,7 +48,7 @@ id: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: 'Anda telah keluar. Isi formulir apa pun yang Anda kirim mungkin akan hilang. Silahkan [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ id: display_name: Nama penyedia. Nama ini akan ditampilkan sebagai tombol login dan dalam daftar penyedia. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: Jika diaktifkan, pengguna hanya dapat mendaftar menggunakan penyedia ini jika konfigurasi di sisi penyedia mengizinkannya. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -102,7 +102,7 @@ id: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: Jika Anda ingin meminta ruang lingkup khusus, Anda dapat menambahkan satu atau beberapa nilai ruang lingkup yang dipisahkan oleh spasi di sini. Untuk informasi lebih lanjut, lihat [dokumentasi OpenID Connect](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: penyedia OpenID providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -162,7 +162,7 @@ id: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/it.yml b/modules/openid_connect/config/locales/crowdin/it.yml index 27a75ca20864..88c9954fdd52 100644 --- a/modules/openid_connect/config/locales/crowdin/it.yml +++ b/modules/openid_connect/config/locales/crowdin/it.yml @@ -50,7 +50,7 @@ it: openid_connect/user_token: one: Token OpenID Connect other: Token OpenID Connect - logout_warning: 'Sei stato disconnesso. Il contenuto di qualsiasi modulo che invii potrebbe essere perso. Per favore [accedi]. + logout_warning_link: 'La sessione è stata disconnessa. Il contenuto dei moduli inviati potrebbe andare perso. [Accedi](login). ' openid_connect: @@ -79,9 +79,9 @@ it: display_name: Il nome del fornitore. Questo verrà visualizzato come pulsante di accesso e nell'elenco dei fornitori. endpoint_url: L'URL dell'endpoint fornito dal fornitore OpenID Connect group_regexes: Una espressione regolare per riga. Consulta la [documentazione](docs_url) per maggiori informazioni. - group_regexes_detail: Facoltativamente, definisci pattern utilizzando espressioni regolari per trovare nomi di gruppo dal claim dei gruppi. Ad esempio, inserendo un pattern come ^Level1/Level2/([\w/]+)$ verrà estratto il gruppo “Groupname/SubGroup” da una risposta che include “Level1/Level2/GroupName/SubGroup”. Se nessun pattern corrisponde, il gruppo viene ignorato. Lascia vuoto per sincronizzare tutti i gruppi utilizzando il loro nome completo. + group_regexes_detail_html: Facoltativamente, definisci dei pattern mediante espressioni regolari per trovare corrispondenze con i nomi dei gruppi presenti nel claim dei gruppi. Ad esempio, inserendo un pattern come ^Level1/Level2/([\w/]+)$, verrà estratto il gruppo "GroupName/SubGroup" da una risposta contenente "Level1/Level2/GroupName/SubGroup". Se nessun pattern corrisponde, il gruppo viene ignorato. Lascia vuoto per sincronizzare tutti i gruppi utilizzando il relativo nome completo. group_regexes_testing: Fai clic su 'Prova il modello' per verificare il tuo modello di espressione regolare sui dati di esempio OIDC userinfo. - group_sync: Estrai e sincronizza automaticamente le informazioni di appartenenza al gruppo dal fornitore di identità. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specifica il nome della richiesta che dovrebbe indicare i nomi dei gruppi di cui l'utente è membro. limit_self_registration: Se l'opzione è abilitata, gli utenti possono registrarsi utilizzando questo fornitore solo se la configurazione da parte del fornitore lo consente. mapping_admin: 'Fornisci una mappatura personalizzata nella risposta userinfo da utilizzare per lo stato di amministrazione. È atteso un valore booleano. @@ -104,7 +104,7 @@ it: oidc_information: Questi valori sono necessari per configurare il provider OpenID Connect. post_logout_redirect_uri: L'URL a cui il fornitore OpenID Connect deve reindirizzare dopo una richiesta di logout. scope: Se vuoi richiedere ambiti personalizzati, puoi aggiungere uno o più valori di ambito separati da spazi qui. Per maggiori informazioni, consulta la [documentazione di OpenID Connect](docs_url). - tenant: Sostituisci il tenant predefinito con il proprio se applicabile. Consulta questa pagina. + tenant_html: Se necessario, sostituisci il tenant predefinito con il tuo. Consulta questa pagina. menu_title: OpenID provider providers: client_details_description: Dettagli di configurazione di OpenProject come client OIDC @@ -164,7 +164,7 @@ it: delete_result_1: Rimuovi il fornitore dall'elenco dei fornitori disponibili. delete_result_direct: Questo fornitore è contrassegnato come fornitore di accesso diretto. L'impostazione sarà rimossa e gli utenti non saranno più reindirizzati al fornitore per l'accesso. delete_result_user_count: - one: Un utente sta attualmente ancora utilizzando questo fornitore. Dovrà essere invitato nuovamente o effettuare l'accesso con un altro fornitore. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} utenti stanno attualmente ancora utilizzando questo fornitore. Dovrà essere invitato nuovamente o effettuare l'accesso con un altro fornitore." zero: Nessun utente sta attualmente utilizzando questo fornitore. Non sono necessarie ulteriori azioni. input_delete_confirmation_html: Inserisci il nome del fornitore %{name} per confermare l'eliminazione. diff --git a/modules/openid_connect/config/locales/crowdin/ja.yml b/modules/openid_connect/config/locales/crowdin/ja.yml index 13b11e6fac66..036606576f89 100644 --- a/modules/openid_connect/config/locales/crowdin/ja.yml +++ b/modules/openid_connect/config/locales/crowdin/ja.yml @@ -48,7 +48,7 @@ ja: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: 'ログアウトしています。送信したフォームの内容は失われる可能性があります。 [ログイン] してください。 + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ ja: display_name: プロバイダーの名前。これはログインボタンとプロバイダーリストに表示されます。 endpoint_url: OpenID Connectプロバイダーから与えられたエンドポイントURL group_regexes: 1行に1つの正規表現パターン。この方法については[ドキュメント](docs_url)を読んでください。 - group_regexes_detail: オプションで、正規表現を使用してパターンを定義し、グループ・クレームからグループ名をマッ チさせます。例えば、^Level1/Level2/([ \w/]+)$ のようなパターンを入力すると、"Level1/Level2/GroupName/SubGroup" を含む応答から "Groupname/SubGroup" というグループが抽出されます。パターンが一致しない場合、グループは無視されます。完全なグループ名を使用してすべてのグループを同期するには、空のままにします。 + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: アイデンティティ・プロバイダからグループ・メンバーシップ情報を自動的に抽出し、同期する。 + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: ユーザーがメンバーであるグループ名を示すと予想される請求の名前を指定する。 limit_self_registration: 有効にした場合、ユーザーはプロバイダーのエンドに設定が許可されている場合にのみ、このプロバイダーを使用して登録できます。 mapping_admin: 'userinfo レスポンスに、admin ステータスに使用するカスタムマッピングを指定します。boolean 属性が返されることを期待します。 @@ -102,7 +102,7 @@ ja: oidc_information: これらの値は OpenID Connect プロバイダーを構成するために必要です。 post_logout_redirect_uri: ログアウト要求後にOpenID ConnectプロバイダがリダイレクトすべきURL。 scope: カスタムスコープをリクエストしたい場合は、スペースで区切られた1つまたは複数のスコープ値を追加できます。 詳細については、[OpenID Connect documentation](docs_url)を参照してください。 - tenant: 該当する場合は、デフォルトのテナントをご自身のテナントに置き換えてください。こちらをご覧ください。 + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID プロバイダー providers: client_details_description: OIDCクライアントとしてのOpenProjectの設定詳細 @@ -162,7 +162,7 @@ ja: delete_result_1: 利用可能なプロバイダのリストからプロバイダを削除します。 delete_result_direct: このプロバイダは直接ログインプロバイダとしてマークされています。この設定は削除され、ユーザはログインのためにプロバイダにリダイレクトされなくなります。 delete_result_user_count: - one: 1人のユーザーが現在このプロバイダーを使用しています。再招待または別のプロバイダーでログインする必要があります。 + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count}人のユーザーが現在このプロバイダーを使用しています。再招待または別のプロバイダーでログインする必要があります。" zero: 現在、このプロバイダを使用しているユーザーはいません。これ以上の操作は必要ありません。 input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ka.yml b/modules/openid_connect/config/locales/crowdin/ka.yml index e404ff9b3c58..3fa09baaa718 100644 --- a/modules/openid_connect/config/locales/crowdin/ka.yml +++ b/modules/openid_connect/config/locales/crowdin/ka.yml @@ -50,7 +50,7 @@ ka: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ ka: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ ka: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ ka: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/kk.yml b/modules/openid_connect/config/locales/crowdin/kk.yml index 3d1be1621df3..6e39b9618bba 100644 --- a/modules/openid_connect/config/locales/crowdin/kk.yml +++ b/modules/openid_connect/config/locales/crowdin/kk.yml @@ -50,7 +50,7 @@ kk: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ kk: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ kk: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ kk: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ko.yml b/modules/openid_connect/config/locales/crowdin/ko.yml index 35c4ac5509da..00d0a70c1544 100644 --- a/modules/openid_connect/config/locales/crowdin/ko.yml +++ b/modules/openid_connect/config/locales/crowdin/ko.yml @@ -48,7 +48,7 @@ ko: other: OpenID Connect 공급자 openid_connect/user_token: other: OpenID Connect 토큰 - logout_warning: '로그아웃되었습니다. 제출한 양식의 내용이 손실될 수 있습니다. [로그인]하십시오. + logout_warning_link: '로그아웃되었습니다. 제출하는 양식의 내용이 손실될 수 있습니다. [로그인](login)하세요. ' openid_connect: @@ -77,9 +77,9 @@ ko: display_name: 공급자 이름입니다. 로그인 버튼으로 표시되며 공급자 목록에 표시됩니다. endpoint_url: OpenID Connect 공급자가 귀하에게 제공한 엔드포인트 URL group_regexes: 라인별로 하나의 정규 표현식 패턴을 사용하세요. 작업 방법에 대한 자세한 내용은 [설명서](docs_url)를 참조하세요. - group_regexes_detail: 선택적으로 정규 표현식을 사용하여 그룹 클레임의 그룹 이름과 일치하는 패턴을 정의할 수 있습니다. 예를 들어, ^Level1/Level2/([\w/]+)$ 같은 패턴을 입력하면 응답에서 “Level1/Level2/GroupName/SubGroup”을 포함한 “Groupname/SubGroup” 그룹이 추출됩니다. 일치하는 패턴이 없으면 해당 그룹은 무시됩니다. 전체 그룹 이름을 사용하여 모든 그룹을 동기화하려면 비워 두세요. + group_regexes_detail_html: 선택적으로 정규 표현식을 사용하여 그룹 클레임의 그룹 이름과 일치하는 패턴을 정의할 수 있습니다. 예를 들어, ^Level1/Level2/([\w/]+)$ 같은 패턴을 입력하면 응답에서 “Level1/Level2/GroupName/SubGroup”을 포함한 “Groupname/SubGroup” 그룹이 추출됩니다. 일치하는 패턴이 없으면 해당 그룹은 무시됩니다. 전체 그룹 이름을 사용하여 모든 그룹을 동기화하려면 비워 두세요. group_regexes_testing: "'패턴 테스트'를 클릭하여 샘플 OIDC 사용자 정보에 대해 정규 표현식 패턴을 테스트하세요." - group_sync: ID 공급자로부터 그룹 멤버십 정보를 자동으로 추출하고 동기화합니다. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: 사용자가 속한 그룹 이름을 나타내는 클레임의 이름을 지정합니다. limit_self_registration: 활성화된 경우, 사용자는 공급자 측의 구성에서 허용하는 경우에만 이 공급자를 사용하여 등록할 수 있습니다. mapping_admin: '관리자 상태에 사용할 사용자 정보 응답에 사용자 지정 매핑을 제공합니다. 부울 특성이 반환될 것으로 예상됩니다. @@ -102,7 +102,7 @@ ko: oidc_information: 이러한 값은 OpenID Connect 공급자를 구성하는 데 필요합니다. post_logout_redirect_uri: 로그아웃 요청 후 OpenID Connect 공급자가 리디렉션해야 하는 URL입니다. scope: 사용자 지정 범위를 요청하려면 여기에 하나 이상의 범위 값을 공백으로 구분하여 추가할 수 있습니다. 자세한 내용은 [OpenID Connect 설명서](docs_url)를 참조하세요. - tenant: 해당되는 경우 기본 테넌트를 고유한 테넌트로 교체하세요. 여기를 참조하세요. + tenant_html: 해당되는 경우 기본 테넌트를 고유한 테넌트로 교체하세요. 여기를 참조하세요. menu_title: OpenID 공급자 providers: client_details_description: OIDC 클라이언트인 OpenProject의 구성 세부 정보 @@ -162,7 +162,7 @@ ko: delete_result_1: 사용 가능한 공급자 목록에서 공급자를 제거합니다. delete_result_direct: 이 공급자는 직접 로그인 공급자로 표시됩니다. 이 설정은 제거되며 사용자는 더 이상 로그인을 위해 해당 공급자로 리디렉션되지 않습니다. delete_result_user_count: - one: 1명의 사용자가 이 공급자를 계속 사용하고 있습니다. 해당 사용자를 다시 초대하거나 다른 공급자로 로그인해야 합니다. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count}명의 사용자가 이 공급자를 계속 사용하고 있습니다. 해당 사용자를 다시 초대하거나 다른 공급자로 로그인해야 합니다." zero: 현재 이 공급자를 사용하는 사용자가 없습니다. 추가 조치가 필요하지 않습니다. input_delete_confirmation_html: 삭제를 확인하려면 공급자 이름 %{name}(을)를 입력하세요. diff --git a/modules/openid_connect/config/locales/crowdin/li.yml b/modules/openid_connect/config/locales/crowdin/li.yml index dcbf01b7d856..031f165af08a 100644 --- a/modules/openid_connect/config/locales/crowdin/li.yml +++ b/modules/openid_connect/config/locales/crowdin/li.yml @@ -50,7 +50,7 @@ li: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ li: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ li: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ li: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/lt.yml b/modules/openid_connect/config/locales/crowdin/lt.yml index 1a1c7964ec25..cf1d848324d9 100644 --- a/modules/openid_connect/config/locales/crowdin/lt.yml +++ b/modules/openid_connect/config/locales/crowdin/lt.yml @@ -54,7 +54,7 @@ lt: few: OpenID Connect tokens many: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'Jūs atsijungėte. Bet kurios siunčiamos formos turinys gali būti prarastas. Prašome [prisijungti]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ lt: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -108,7 +108,7 @@ lt: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID tiekėjai providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -168,7 +168,7 @@ lt: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/lv.yml b/modules/openid_connect/config/locales/crowdin/lv.yml index 628f11535ef1..e22bfdf0f248 100644 --- a/modules/openid_connect/config/locales/crowdin/lv.yml +++ b/modules/openid_connect/config/locales/crowdin/lv.yml @@ -52,7 +52,7 @@ lv: zero: OpenID Connect tokens one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -81,9 +81,9 @@ lv: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -106,7 +106,7 @@ lv: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -166,7 +166,7 @@ lv: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/mn.yml b/modules/openid_connect/config/locales/crowdin/mn.yml index 477063dd8d59..b29c87f69fbf 100644 --- a/modules/openid_connect/config/locales/crowdin/mn.yml +++ b/modules/openid_connect/config/locales/crowdin/mn.yml @@ -50,7 +50,7 @@ mn: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ mn: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ mn: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ mn: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ms.yml b/modules/openid_connect/config/locales/crowdin/ms.yml index 31f8872d3204..4d2da118c24c 100644 --- a/modules/openid_connect/config/locales/crowdin/ms.yml +++ b/modules/openid_connect/config/locales/crowdin/ms.yml @@ -48,7 +48,7 @@ ms: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: 'Anda telah log keluar. Sebarang bentuk kandungan yang anda hantar mungkin hilang. Sila [log masuk]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ ms: display_name: Nama pembekal. Ini akan dipaparkan sebagai butang log masuk dan dalam senarai pembekal. endpoint_url: URL titik akhir yang diberikan kepada anda oleh pembekal OpenID Connect group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: Jika didayakan, pengguna hanya boleh mendaftar menggunakan pembekal ini jika konfigurasi di hujung pembekal membenarkannya. mapping_admin: 'Sediakan pemetaan tersuai dalam respons info pengguna untuk digunakan untuk status pentadbir. Ia menjangkakan atribut boolean akan dikembalikan. @@ -102,7 +102,7 @@ ms: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: URL penyedia OpenID Connect harus mengubah hala selepas permintaan log keluar. scope: Jika anda ingin meminta skop tersuai, anda boleh menambah satu atau berbilang nilai skop yang dipisahkan oleh ruang di sini. Untuk mendapatkan maklumat lanjut, lihat [dokumentasi OpenID Connect](docs_url). - tenant: Sila gantikan penyewa lalai dengan penyewa anda sendiri jika berkenaan. Lihat ini. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Penyedia OpenID providers: client_details_description: Butiran konfigurasi OpenProject sebagai pelanggan OIDC @@ -162,7 +162,7 @@ ms: delete_result_1: Alih keluar pembekal daripada senarai pembekal yang tersedia. delete_result_direct: Pembekal ini ditandakan sebagai pembekal log masuk langsung. Tetapan akan dialih keluar dan pengguna tidak lagi akan diubah hala ke pembekal untuk log masuk. delete_result_user_count: - one: Seorang pengguna masih menggunakan penyedia ini pada masa ini. Mereka perlu dijemput semula atau log masuk dengan penyedia lain. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} pengguna pada masa ini masih menggunakan penyedia ini. Mereka perlu dijemput semula atau log masuk dengan penyedia lain." zero: Tiada pengguna yang menggunakan penyedia ini pada masa ini. Tiada tindakan lanjut diperlukan. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ne.yml b/modules/openid_connect/config/locales/crowdin/ne.yml index baf320a00982..b13aeae6b1b1 100644 --- a/modules/openid_connect/config/locales/crowdin/ne.yml +++ b/modules/openid_connect/config/locales/crowdin/ne.yml @@ -50,7 +50,7 @@ ne: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ ne: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ ne: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ ne: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/nl.yml b/modules/openid_connect/config/locales/crowdin/nl.yml index 68ef6e792e58..8ca7b0d879a3 100644 --- a/modules/openid_connect/config/locales/crowdin/nl.yml +++ b/modules/openid_connect/config/locales/crowdin/nl.yml @@ -50,7 +50,7 @@ nl: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'U bent uitgelogd. De inhoud van uw formulier kan verloren gaan. Alstublieft [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ nl: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: De endpoint URL die u van de OpenID Connect provider heeft gekregen group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Geef een aangepaste toewijzing in het userinfo antwoord om te gebruiken voor de beheerdersstatus. Er wordt een booleaans attribuut verwacht dat wordt geretourneerd. @@ -104,7 +104,7 @@ nl: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: De URL waarnaar de OpenID Connect provider moet doorsturen na een uitlogverzoek. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Vervang de standaard tenant door uw eigen tenant, indien van toepassing. Bekijk dit. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID aanbieders providers: client_details_description: Configuratie details van OpenProject als een OIDC client @@ -164,7 +164,7 @@ nl: delete_result_1: Verwijder de provider uit de lijst met beschikbare providers. delete_result_direct: Deze provider is gemarkeerd als een directe aanmeldprovider. De instelling wordt verwijderd en gebruikers worden niet langer omgeleid naar deze provider om in te loggen. delete_result_user_count: - one: Eén gebruiker gebruikt momenteel nog deze provider. Zij moeten opnieuw worden uitgenodigd of zich aanmelden bij een andere provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} gebruikers maken momenteel nog gebruik van deze provider. Zij moeten opnieuw worden uitgenodigd of inloggen bij een andere provider." zero: Er zijn momenteel geen gebruikers die deze provider gebruiken. Er is geen verdere actie vereist. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/no.yml b/modules/openid_connect/config/locales/crowdin/no.yml index 71e5c7dabb18..16afc782f998 100644 --- a/modules/openid_connect/config/locales/crowdin/no.yml +++ b/modules/openid_connect/config/locales/crowdin/no.yml @@ -50,7 +50,7 @@ openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Du har blitt logget ut. Innholdet kan gå tapt. Vennligst [logg in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID-leverandører providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/pl.yml b/modules/openid_connect/config/locales/crowdin/pl.yml index e8eb80f28476..781f4c2ebd7c 100644 --- a/modules/openid_connect/config/locales/crowdin/pl.yml +++ b/modules/openid_connect/config/locales/crowdin/pl.yml @@ -54,7 +54,7 @@ pl: few: Tokeny OpenID Connect many: Tokeny OpenID Connect other: Tokeny OpenID Connect - logout_warning: 'Wylogowano cię. Zawartość każdego przesłanego formularza może zostać utracona. [Zaloguj się]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ pl: display_name: Nazwa dostawcy. Zostanie wyświetlona jako przycisk logowania i element listy dostawców. endpoint_url: Adres URL punktu końcowego podany Ci przez dostawcę OpenID Connect group_regexes: Jeden wzorzec wyrażenia regularnego w wierszu. Przeczytaj [dokumentację](docs_url), aby uzyskać więcej informacji na temat tego, jak to zrobić. - group_regexes_detail: Opcjonalnie można zdefiniować wzorce za pomocą wyrażeń regularnych, aby dopasować nazwy grup z oświadczenia grup. Na przykład wprowadzenie wzorca takiego jak ^Level1/Level2/ ([\w/]+)$ wyodrębni grupę „Groupname/SubGroup” z odpowiedzi zawierającej ciąg „Level1/Level2/GroupName/SubGroup”. Jeśli żaden wzorzec nie pasuje, grupa jest ignorowana. Pozostaw puste, aby zsynchronizować wszystkie grupy przy użyciu pełnej nazwy grupy. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Kliknij przycisk „Testuj wzorzec”, aby przetestować wzorzec wyrażenia regularnego na przykładowych informacjach o użytkowniku OIDC. - group_sync: Automatycznie wyodrębniaj i synchronizuj informacje o członkostwie w grupie od dostawcy tożsamości. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Określ nazwę oświadczenia, które ma wskazywać nazwy grup, których użytkownik jest członkiem. limit_self_registration: Jeśli opcja jest włączona, użytkownicy mogą rejestrować się przy użyciu tego dostawcy tylko wtedy, gdy pozwala na to konfiguracja po stronie dostawcy. mapping_admin: 'Podaj w odpowiedzi userinfo niestandardowe mapowanie, które będzie stosowane do statusu administratora. Oczekuje ono zwrócenia atrybutu logicznego. @@ -108,7 +108,7 @@ pl: oidc_information: Wartości te są wymagane do skonfigurowania dostawcy OpenID Connect. post_logout_redirect_uri: Adres URL, do którego ma przekierowywać dostawca OpenID Connect po żądaniu wylogowania. scope: Jeśli chcesz zażądać niestandardowych zakresów, możesz dodać tutaj jedną lub wiele wartości zakresu rozdzielonych spacjami. Więcej informacji można znaleźć w [dokumentacji OpenID Connect](docs_url). - tenant: W razie potrzeby zastąp dzierżawcę domyślnego własnym. Zobacz to. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Dostawcy OpenID providers: client_details_description: Szczegóły konfiguracji OpenProject jako klienta OIDC @@ -168,7 +168,7 @@ pl: delete_result_1: Usunięcie dostawcy z listy dostępnych dostawców. delete_result_direct: Ten dostawca jest oznaczony jako dostawca logowania bezpośredniego. Ustawienie zostanie usunięte, a użytkownicy nie będą już przekierowywani do dostawcy w celu zalogowania. delete_result_user_count: - one: Jeden użytkownik nadal korzysta z usług tego dostawcy. Będzie on musiał zostać ponownie zaproszony lub zalogować się za pomocą innego dostawcy. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} użytkowników nadal korzysta z usług tego dostawcy. Będą oni musieli zostać ponownie zaproszeni lub zalogować się za pomocą innego dostawcy." zero: Żaden użytkownik nie korzysta obecnie z tego dostawcy. Nie są wymagane żadne dalsze działania. input_delete_confirmation_html: Wprowadź nazwę dostawcy %{name}, aby potwierdzić usunięcie. diff --git a/modules/openid_connect/config/locales/crowdin/pt-BR.yml b/modules/openid_connect/config/locales/crowdin/pt-BR.yml index d8bfa34d4372..149efcf4733b 100644 --- a/modules/openid_connect/config/locales/crowdin/pt-BR.yml +++ b/modules/openid_connect/config/locales/crowdin/pt-BR.yml @@ -50,7 +50,7 @@ pt-BR: openid_connect/user_token: one: Token do OpenID Connect other: Tokens do OpenID Connect - logout_warning: 'Você foi desconectado. O conteúdo de qualquer formulário que você enviar poderá ser perdido. Por favor [faça login]. + logout_warning_link: 'Você foi desconectado. O conteúdo de qualquer formulário que você enviar pode ser perdido. Por favor [faça login](login). ' openid_connect: @@ -79,9 +79,9 @@ pt-BR: display_name: Nome do provedor. Ele será exibido como o botão de login e na lista de provedores. endpoint_url: O URL de endpoint fornecido pelo seu provedor OpenID Connect group_regexes: Um padrão de expressão regular por linha. Leia [a documentação](docs_url) para obter mais informações sobre como fazer isso. - group_regexes_detail: Opcionalmente, defina padrões usando expressões regulares para corresponder aos nomes de grupos da reivindicação de grupos. Por exemplo, o padrão ^Level1/Level2/([\w/]+)$ extrairá o grupo “GroupName/SubGroup” de uma resposta que inclua “Level1/Level2/GroupName/SubGroup”. Se nenhum padrão corresponder, o grupo será ignorado. Deixe o campo vazio para sincronizar todos os grupos usando seus nomes completos. + group_regexes_detail_html: Opcionalmente, defina padrões usando expressões regulares para corresponder aos nomes de grupos da reivindicação de grupos. Por exemplo, o padrão ^Level1/Level2/([\w/]+)$ extrairá o grupo “GroupName/SubGroup” de uma resposta que inclua “Level1/Level2/GroupName/SubGroup”. Se nenhum padrão corresponder, o grupo será ignorado. Deixe o campo vazio para sincronizar todos os grupos usando seus nomes completos. group_regexes_testing: Clique em “Testar padrão” para testar seu padrão de expressão regular com dados de exemplo do OIDC userinfo. - group_sync: Extraia e sincronize automaticamente as informações de associação a grupos fornecidas pelo provedor de identidade. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Informe o nome da declaração que indica os grupos dos quais o usuário é membro. limit_self_registration: Se ativado, os usuários só poderão se registrar usando este provedor se a configuração no lado do provedor permitir. mapping_admin: 'Forneça um mapeamento personalizado na resposta do userinfo para ser usado no status de administrador. Espera-se que um atributo booleano seja retornado. @@ -104,7 +104,7 @@ pt-BR: oidc_information: Esses valores são necessários para configurar o provedor OpenID Connect. post_logout_redirect_uri: O URL para a qual o provedor OpenID Connect deve redirecionar após a solicitação de logout. scope: Se você quiser solicitar escopos personalizados, pode adicionar um ou vários valores de escopo separados por espaços aqui. Para mais informações, consulte a [documentação do OpenID Connect](docs_url). - tenant: Substitua o cliente padrão pelo seu, se necessário. Consulte aqui. + tenant_html: Substitua o cliente padrão pelo seu, se necessário. Consulte aqui. menu_title: Provedores OpenID providers: client_details_description: Detalhes de configuração do OpenProject como cliente OIDC @@ -164,7 +164,7 @@ pt-BR: delete_result_1: Remover o provedor da lista de provedores disponíveis. delete_result_direct: Este provedor está configurado como provedor de login direto. A configuração será removida e os usuários não serão mais redirecionados para ele para realizar o login. delete_result_user_count: - one: Há um usuário utilizando este provedor. Ele precisará ser re-convidado ou fazer login com outro provedor. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: Há %{count} usuários utilizando este provedor. Eles precisarão ser re-convidados ou fazer login com outro provedor. zero: Nenhum usuário está utilizando este provedor no momento. Não é necessária nenhuma ação adicional. input_delete_confirmation_html: Digite o nome do provedor %{name} para confirmar a exclusão. diff --git a/modules/openid_connect/config/locales/crowdin/pt-PT.yml b/modules/openid_connect/config/locales/crowdin/pt-PT.yml index f3a7b10ab24b..26b586bddda8 100644 --- a/modules/openid_connect/config/locales/crowdin/pt-PT.yml +++ b/modules/openid_connect/config/locales/crowdin/pt-PT.yml @@ -50,7 +50,7 @@ pt-PT: openid_connect/user_token: one: Token OpenID Connect other: Tokens OpenID Connect - logout_warning: 'A sua sessão foi terminada. O conteúdo de qualquer formulário que enviar poderá ser perdido. Por favor [inicie a sessão]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ pt-PT: display_name: O nome do fornecedor. Este nome será apresentado no botão de início de sessão e na lista de fornecedores. endpoint_url: O URL do endpoint que lhe foi fornecido pelo fornecedor do OpenID Connect group_regexes: Um padrão de expressão regular por linha. Leia [a documentação](docs_url) para mais informações sobre como fazer isto. - group_regexes_detail: Opcionalmente, defina padrões usando expressões regulares para corresponder aos nomes de grupos da declaração de grupos. Por exemplo, introduzir um padrão como ^Level1/Level2/([\w/]+)$ extrairá o grupo "Groupname/SubGroup" de uma resposta que inclua "Level1/Level2/GroupName/SubGroup". Se nenhum padrão corresponder, o grupo é ignorado. Deixe em branco para sincronizar todos os grupos utilizando o seu nome de grupo completo. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Clique em "Testar padrão" para testar o seu padrão de expressão regular em relação a um exemplo de informação de utilizador do OIDC. - group_sync: Extraia e sincronize automaticamente as informações de associação de grupos do fornecedor de identidade. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Especifique o nome da afirmação que se espera que indique os nomes dos grupos de que o utilizador é membro. limit_self_registration: Se esta opção estiver ativada, os utilizadores só poderão registar-se através deste prestador se a configuração do prestador o permitir. mapping_admin: 'Forneça um mapeamento personalizado na resposta userinfo a ser utilizado para o estado do administrador. Espera que seja devolvido um atributo booleano. @@ -104,7 +104,7 @@ pt-PT: oidc_information: Estes valores são necessários para configurar o fornecedor OpenID Connect. post_logout_redirect_uri: O URL para o qual o fornecedor do OpenID Connect deve redirecionar após um pedido de encerramento de sessão. scope: Se pretender solicitar âmbitos personalizados, pode adicionar um ou vários valores de âmbito separados por espaços aqui. Para obter mais informações, consulte a [documentação do OpenID Connect](docs_url). - tenant: Substitua o inquilino predefinido pelo seu próprio inquilino, se aplicável. Consulte este artigo. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Fornecedores de OpenID providers: client_details_description: Detalhes de configuração do OpenProject como um cliente OIDC @@ -164,7 +164,7 @@ pt-PT: delete_result_1: Remova o fornecedor da lista de fornecedores disponíveis. delete_result_direct: Este fornecedor está marcado como um fornecedor de início de sessão direto. A definição será removida e os utilizadores deixarão de ser redirecionados para o fornecedor para iniciar sessão. delete_result_user_count: - one: Um utilizador ainda está a utilizar este fornecedor. Terá de ser convidado novamente ou iniciar sessão através de outro fornecedor. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} utilizadores ainda estão a utilizar este fornecedor. Terão de ser convidados novamente ou iniciar sessão através de outro fornecedor." zero: Nenhum utilizador está atualmente a utilizar este fornecedor. Não é necessária mais nenhuma ação. input_delete_confirmation_html: Insira o nome do fornecedor %{name} para confirmar a eliminação. diff --git a/modules/openid_connect/config/locales/crowdin/ro.yml b/modules/openid_connect/config/locales/crowdin/ro.yml index 9997c1220d38..0920cd610bd5 100644 --- a/modules/openid_connect/config/locales/crowdin/ro.yml +++ b/modules/openid_connect/config/locales/crowdin/ro.yml @@ -52,7 +52,7 @@ ro: one: OpenID Connect token few: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'Ai fost deconectat. Conținutul oricărui formular pe care îl trimiți poate fi pierdut. Te rog să [te conectezi]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -81,9 +81,9 @@ ro: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -106,7 +106,7 @@ ro: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Furnizori OpenID providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -166,7 +166,7 @@ ro: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/ru.yml b/modules/openid_connect/config/locales/crowdin/ru.yml index 8d9b55547804..b5209f6d1aca 100644 --- a/modules/openid_connect/config/locales/crowdin/ru.yml +++ b/modules/openid_connect/config/locales/crowdin/ru.yml @@ -54,7 +54,7 @@ ru: few: OpenID Connect tokens many: OpenID Connect tokens other: Токены OpenID Connect - logout_warning: 'Вы вышли из системы. Содержимое любой формы, которую вы можете отправить, может быть потеряно. Пожалуйста [войдите в систему]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ ru: display_name: Имя провайдера. Оно будет отображаться как кнопка входа и в списке провайдеров. endpoint_url: URL-адрес конечной точки, указанный поставщиком OpenID Connect group_regexes: По одному регулярному выражению на строку. Пожалуйста, прочитайте [документацию](docs_url) для получения дополнительной информации о том, как это сделать. - group_regexes_detail: В качестве опции задайте шаблоны с помощью регулярных выражений для сопоставления имен групп из формулы групп. Например, если ввести шаблон ^Level1/Level2/([\w/]+)$, то из ответа, включающего "Level1/Level2/GroupName/SubGroup", будет извлечена группа "Groupname/SubGroup". Если шаблон не совпадает, группа игнорируется. Оставьте пустым, чтобы синхронизировать все группы, используя их полное групповое имя. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Нажмите на кнопку 'Тест шаблона' для проверки шаблона регулярных выражений на примере пользовательской информации OIDC. - group_sync: Автоматически извлекать и синхронизировать информацию о членстве в группах от поставщика идентификационных данных. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Укажите имя формулы, которая, как ожидается, будет указывать на имена групп, членом которых является пользователь. limit_self_registration: Если эта опция включена, пользователи смогут регистрироваться у этого провайдера только в том случае, если конфигурация провайдера позволяет это делать. mapping_admin: 'Предоставьте пользовательское отображение в ответе userinfo, которое будет использоваться для определения статуса администратора. Ожидается, что будет возвращен атрибут boolean. @@ -108,7 +108,7 @@ ru: oidc_information: Эти значения необходимы для настройки провайдера OpenID Connect. post_logout_redirect_uri: URL-адрес, на который провайдер OpenID Connect должен перенаправить Вас после запроса на выход из системы. scope: Если Вы хотите запросить пользовательские области видимости, Вы можете добавить здесь одно или несколько значений диапазона, разделенных пробелами. Более подробную информацию Вы найдете в [документации OpenID Connect](docs_url). - tenant: Пожалуйста, замените владельца по умолчанию на своего собственного, если это применимо. См. это. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Провайдеры OpenID providers: client_details_description: Информация о настройке OpenProject в качестве клиента OIDC @@ -168,7 +168,7 @@ ru: delete_result_1: Удалить провайдера из списка доступных провайдеров. delete_result_direct: Этот провайдер отмечен как провайдер прямого входа в систему. Эта настройка будет удалена, и пользователи больше не будут перенаправляться к этому провайдеру для входа в систему. delete_result_user_count: - one: Один пользователь в настоящее время все еще использует этого провайдера. Его нужно будет заново пригласить или войти в систему с другим провайдером. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} пользователей все еще используют этого провайдера. Они должны быть повторно приглашены или авторизованы через другого провайдера." zero: Нет пользователей в настоящее время с этим провайдером. Никаких дальнейших действий не требуется. input_delete_confirmation_html: Введите имя провайдера %{name} для подтверждения удаления. diff --git a/modules/openid_connect/config/locales/crowdin/rw.yml b/modules/openid_connect/config/locales/crowdin/rw.yml index 4a78a49ea59d..590940fdde3c 100644 --- a/modules/openid_connect/config/locales/crowdin/rw.yml +++ b/modules/openid_connect/config/locales/crowdin/rw.yml @@ -50,7 +50,7 @@ rw: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ rw: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ rw: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ rw: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/si.yml b/modules/openid_connect/config/locales/crowdin/si.yml index 27fb51f7d1d0..cd236a8be8ec 100644 --- a/modules/openid_connect/config/locales/crowdin/si.yml +++ b/modules/openid_connect/config/locales/crowdin/si.yml @@ -50,7 +50,7 @@ si: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ si: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ si: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ si: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/sk.yml b/modules/openid_connect/config/locales/crowdin/sk.yml index e2a15bdd45d2..13ec404b0c2d 100644 --- a/modules/openid_connect/config/locales/crowdin/sk.yml +++ b/modules/openid_connect/config/locales/crowdin/sk.yml @@ -54,7 +54,7 @@ sk: few: OpenID Connect tokens many: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ sk: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -108,7 +108,7 @@ sk: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -168,7 +168,7 @@ sk: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/sl.yml b/modules/openid_connect/config/locales/crowdin/sl.yml index efe6726d11c5..4ce44e437753 100644 --- a/modules/openid_connect/config/locales/crowdin/sl.yml +++ b/modules/openid_connect/config/locales/crowdin/sl.yml @@ -54,7 +54,7 @@ sl: two: OpenID Connect tokens few: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'Bili ste izpisani. Oddana vsebina katerekoli oblike se lahko izgubi. Prosim [prijavi se]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -83,9 +83,9 @@ sl: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -108,7 +108,7 @@ sl: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID ponudniki providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -168,7 +168,7 @@ sl: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/sr.yml b/modules/openid_connect/config/locales/crowdin/sr.yml index b0d6fd0032bc..fcb25c436ff5 100644 --- a/modules/openid_connect/config/locales/crowdin/sr.yml +++ b/modules/openid_connect/config/locales/crowdin/sr.yml @@ -52,7 +52,7 @@ sr: one: OpenID Connect token few: OpenID Connect tokens other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -81,9 +81,9 @@ sr: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -106,7 +106,7 @@ sr: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -166,7 +166,7 @@ sr: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/sv.yml b/modules/openid_connect/config/locales/crowdin/sv.yml index 8f1dee46b5b7..5ae170a993c2 100644 --- a/modules/openid_connect/config/locales/crowdin/sv.yml +++ b/modules/openid_connect/config/locales/crowdin/sv.yml @@ -50,7 +50,7 @@ sv: openid_connect/user_token: one: OpenID Connect-token other: OpenID Connect-token - logout_warning: 'Du har loggats ut. Innehållet i alla formulär du skickar kan försvinna. Vänligen [logga in]. + logout_warning_link: 'Du har loggats ut. Innehållet i formulär som du skickar kan gå förlorat. [Logga in](login). ' openid_connect: @@ -79,9 +79,9 @@ sv: display_name: Namnet på leverantören. Detta kommer att visas som inloggningsknapp och i listan över leverantörer. endpoint_url: Slutpunkts-URL:en som du fått av OpenID Connect-leverantören group_regexes: Ett mönster med reguljärt uttryck per rad. Läs [dokumentationen](docs_url) för mer information om hur du gör detta. - group_regexes_detail: Du kan valfritt definiera mönster med reguljära uttryck för att matcha gruppnamn från gruppanspråket. Om du till exempel anger mönstret ^Level1/Level2/([\w/]+)$ extraheras gruppen ”Groupname/SubGroup” från ett svar som innehåller ”Level1/Level2/GroupName/SubGroup”. Om inget mönster matchar ignoreras gruppen. Lämna tomt för att synkronisera alla grupper med deras fullständiga gruppnamn. + group_regexes_detail_html: Du kan valfritt definiera mönster med reguljära uttryck för att matcha gruppnamn från gruppanspråket. Om du till exempel anger mönstret ^Level1/Level2/([\w/]+)$ extraheras gruppen ”Groupname/SubGroup” från ett svar som innehåller ”Level1/Level2/GroupName/SubGroup”. Om inget mönster matchar ignoreras gruppen. Lämna tomt för att synkronisera alla grupper med deras fullständiga gruppnamn. group_regexes_testing: Klicka på ”Testa mönster” för att testa ditt reguljära uttryck mot exempeldata från OIDC userinfo. - group_sync: Extrahera och synkronisera automatiskt information om gruppmedlemskap från identitetsleverantören. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Ange namnet på det anspråk som förväntas innehålla namnen på de grupper som användaren är medlem i. limit_self_registration: Om aktiverad, kan användare bara registrera sig med denna leverantör om konfigurationen på leverantörens ände tillåter det. mapping_admin: 'Ange en anpassad mappning i userinfo-svaret som ska användas för administratörsstatusen. Ett booleskt attribut förväntas returneras. @@ -104,7 +104,7 @@ sv: oidc_information: Dessa värden behövs för att konfigurera OpenID Connect-leverantören. post_logout_redirect_uri: Den URL som OpenID Connect-leverantören ska omdirigera till efter en begäran om utloggning. scope: Om du vill begära anpassade omfattningar, kan du lägga till ett eller flera omfattningsvärden separerade med mellanslag här. För mer information, se [OpenID Connect dokumentation](docs_url). - tenant: Ersätt standardklientorganisationen med din egen om det är tillämpligt. Se detta. + tenant_html: Ersätt standardklientorganisationen med din egen om det är tillämpligt. Se detta. menu_title: OpenID leverantörer providers: client_details_description: Konfigurationsinformation för OpenProject som OIDC-klient @@ -164,7 +164,7 @@ sv: delete_result_1: Ta bort leverantören från listan över tillgängliga leverantörer. delete_result_direct: Den här leverantören är markerad som leverantör för direktinloggning. Inställningen tas bort och användarna omdirigeras inte längre till leverantören för inloggning. delete_result_user_count: - one: En användare använder fortfarande den här leverantören. Användaren måste bjudas in på nytt eller logga in med en annan leverantör. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} användare använder fortfarande den här leverantören. De måste bjudas in på nytt eller logga in med en annan leverantör." zero: Ingen användare använder för närvarande den här leverantören. Ingen ytterligare åtgärd krävs. input_delete_confirmation_html: Ange leverantörsnamnet %{name} för att bekräfta borttagningen. diff --git a/modules/openid_connect/config/locales/crowdin/th.yml b/modules/openid_connect/config/locales/crowdin/th.yml index bda106455a9a..2d94e6761907 100644 --- a/modules/openid_connect/config/locales/crowdin/th.yml +++ b/modules/openid_connect/config/locales/crowdin/th.yml @@ -48,7 +48,7 @@ th: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ th: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -102,7 +102,7 @@ th: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -162,7 +162,7 @@ th: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/tr.yml b/modules/openid_connect/config/locales/crowdin/tr.yml index 35168e6439fe..42c0ad782d91 100644 --- a/modules/openid_connect/config/locales/crowdin/tr.yml +++ b/modules/openid_connect/config/locales/crowdin/tr.yml @@ -50,7 +50,7 @@ tr: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'Çıkış yaptınız. Gönderdiğiniz herhangi bir formun içeriği kaybolabilir. Lütfen giriş yapın]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ tr: display_name: Sağlayıcının adı. Bu, oturum açma düğmesi olarak ve sağlayıcılar listesinde görüntülenecektir. endpoint_url: OpenID Connect sağlayıcısı tarafından size verilen uç nokta URL'si group_regexes: Satır başına bir düzenli ifade kalıbı. Bunun nasıl yapılacağı hakkında daha fazla bilgi için lütfen [belgeleri](docs_url) okuyun. - group_regexes_detail: İsteğe bağlı olarak, gruplar talebinden grup adlarını eşleştirmek için düzenli ifadeler kullanarak kalıplar tanımlayın. Örneğin, ^Level1/Level2/([\w/]+)$ gibi bir kalıp girilmesi, "Level1/Level2/GroupName/SubGroup" içeren bir yanıttan "Groupname/SubGroup" grubunu çıkaracaktır. Hiçbir kalıp eşleşmezse, grup yok sayılır. Tüm grupları tam grup adlarını kullanarak senkronize etmek için boş bırakın. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Düzenli ifade kalıbınızı örnek OIDC kullanıcı bilgilerine karşı test etmek için 'Kalıbı test et' seçeneğine tıklayın. - group_sync: Grup üyeliği bilgilerini kimlik sağlayıcısından otomatik olarak alın ve senkronize edin. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Kullanıcının üyesi olduğu grup adlarını belirtmesi beklenen talebin adını belirtin. limit_self_registration: Etkinleştirilirse, kullanıcılar yalnızca sağlayıcı tarafındaki yapılandırma izin veriyorsa bu sağlayıcıyı kullanarak kaydolabilir. mapping_admin: 'Yönetici durumu için kullanılmak üzere userinfo yanıtında özel bir eşleme sağlayın. Bir boolean özniteliğinin döndürülmesini bekler. @@ -104,7 +104,7 @@ tr: oidc_information: Bu değerler OpenID Connect sağlayıcısını yapılandırmak için gereklidir. post_logout_redirect_uri: OpenID Connect sağlayıcısının bir oturum kapatma isteğinden sonra yeniden yönlendirmesi gereken URL. scope: Özel kapsamlar talep etmek istiyorsanız, buraya boşluklarla ayrılmış bir veya birden fazla kapsam değeri ekleyebilirsiniz. Daha fazla bilgi için [OpenID Connect belgelerine](docs_url) bakın. - tenant: Lütfen öntanımlı müşteriyi kendinizinkiyle değiştirin, mümkünse. Bu belgeye bakın. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID sağlayıcıları providers: client_details_description: OpenProject'in bir OIDC istemcisi olarak yapılandırma ayrıntıları @@ -164,7 +164,7 @@ tr: delete_result_1: Sağlayıcının adını mevcut sağlayıcılardan kaldır. delete_result_direct: Bu sağlayıcı doğrudan oturum açma sağlayıcısı olarak işaretlenmiştir. Ayar kaldırılacak ve kullanıcılar artık oturum açmak için sağlayıcıya yönlendirilmeyecektir. delete_result_user_count: - one: Bir kullanıcı bu sağlayıcıyı kullanıyor. Tekrar davet edilmesi ya da başka bir kullanıcı ile giriş yapması gerekecek. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} kullanıcı bu sağlayıcıyı kullanıyor. Tekrar davet edilmeleri ya da başka bir kullanıcı ile giriş yapmaları gerekecek." zero: Bu sağlayıcıyı hiçbir kullanıcı kullanmıyor. Ek bir işleme gerek yok. input_delete_confirmation_html: Silme işlemini onaylamak için sağlayıcı %{name} ismini girin. diff --git a/modules/openid_connect/config/locales/crowdin/uk.yml b/modules/openid_connect/config/locales/crowdin/uk.yml index baa41f8788af..9fe4b6f26ea8 100644 --- a/modules/openid_connect/config/locales/crowdin/uk.yml +++ b/modules/openid_connect/config/locales/crowdin/uk.yml @@ -54,7 +54,7 @@ uk: few: Маркери OpenID Connect many: Маркери OpenID Connect other: Маркери OpenID Connect - logout_warning: 'Ви вийшли з системи. Вміст будь-якої форми, яку ви надішлете, може бути втрачено. Спробуйте, [увійти]. + logout_warning_link: 'Ви вийшли із системи. Вміст будь-якої форми, яку ви надішлете, може бути втрачено. Спробуйте, [увійти](login). ' openid_connect: @@ -83,9 +83,9 @@ uk: display_name: Ім’я постачальника послуг. Відображатиметься як кнопка входу й пункт у списку постачальників послуг. endpoint_url: URL-адреса кінцевої точки, надана вам постачальником послуг OpenID Connect group_regexes: Використовуйте один шаблон регулярного виразу на рядок. Щоб дізнатися більше про те, як це робити, перегляньте [документацію](docs_url). - group_regexes_detail: За потреби визначте шаблони, використовуючи регулярні вирази, щоб отримати відповідні назви груп із запиту груп. Наприклад, якщо ввести шаблон на зразок ^Level1/Level2/([\w/]+)$, ви отримаєте групу Groupname/SubGroup із відповіді, що містить запис Level1/Level2/GroupName/SubGroup. Якщо немає шаблонів, які відповідають запису, відповідну групу буде проігноровано. Щоб синхронізувати всі групи, використовуючи їх повні назви, не вказуйте нічого. + group_regexes_detail_html: За потреби визначте шаблони, використовуючи регулярні вирази, щоб отримати відповідні назви груп із запиту груп. Наприклад, якщо ввести шаблон на зразок ^Level1/Level2/([\w/]+)$, ви отримаєте групу Groupname/SubGroup із відповіді, що містить запис Level1/Level2/GroupName/SubGroup. Якщо немає шаблонів, які відповідають запиту, відповідну групу буде проігноровано. Щоб синхронізувати всі групи, використовуючи їх повні назви, не вказуйте нічого. group_regexes_testing: Натисніть «Тестовий шаблон», щоб протестувати свій шаблон регулярного виразу на зразку інформації про користувача OIDC. - group_sync: Автоматично отримувати й синхронізувати інформацію про членство в групі від постачальника ідентифікаційних даних. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Укажіть назву запиту, яка має вказувати на назви груп, членом яких є користувач. limit_self_registration: Якщо увімкнено, користувачі можуть зареєструватися через цього постачальника послуг лише за умови, що його конфігурація це дозволяє. mapping_admin: 'Надайте користувацьке зіставлення у відповіді на запит даних користувача, яке використовуватиметься для статусу атрибута «Адміністратор». Має повертатися значення логічного типу. @@ -108,7 +108,7 @@ uk: oidc_information: Ці значення потрібні для налаштування постачальника OpenID Connect. post_logout_redirect_uri: URL-адреса, на яку постачальник послуг OpenID Connect має виконувати переспрямування після отримання запиту на вихід. scope: Якщо ви хочете запросити користувацькі області, ви можете додати одне або кілька значень областей, розділених пробілами, тут. Для отримання додаткової інформації дивіться [OpenID Connect documentation](docs_url). - tenant: Замініть клієнта за замовчуванням власним, якщо це можливо. Див. тут. + tenant_html: Замініть клієнта за замовчуванням власним, якщо це можливо. Див. тут. menu_title: Постачальники OpenID providers: client_details_description: Деталі конфігурації OpenProject як клієнта OIDC @@ -168,7 +168,7 @@ uk: delete_result_1: Вилучіть постачальника послуг зі списку доступних постачальників. delete_result_direct: Цього постачальника визначено як постачальника послуг прямого входу. Цей параметр буде вилучено, і користувачам більше не пропонуватиметься вхід за допомогою цього постачальника. delete_result_user_count: - one: Зараз у цього постачальника послуг один користувач. Надішліть йому нове запрошення. Або ж він має ввійти за допомогою іншого постачальника. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: 'Зараз у цього постачальника послуг стільки користувачів: %{count}. Надішліть їм нові запрошення. Або ж вони мають увійти за допомогою іншого постачальника.' zero: Зараз у цього постачальника послуг немає користувачів. Нічого робити не потрібно. input_delete_confirmation_html: Введіть ім’я постачальника послуг %{name}, щоб підтвердити видалення. diff --git a/modules/openid_connect/config/locales/crowdin/uz.yml b/modules/openid_connect/config/locales/crowdin/uz.yml index 5254b3e6a129..56491626344d 100644 --- a/modules/openid_connect/config/locales/crowdin/uz.yml +++ b/modules/openid_connect/config/locales/crowdin/uz.yml @@ -50,7 +50,7 @@ uz: openid_connect/user_token: one: OpenID Connect token other: OpenID Connect tokens - logout_warning: 'You have been logged out. The contents of any form you submit may be lost. Please [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -79,9 +79,9 @@ uz: display_name: The name of the provider. This will be displayed as the login button and in the list of providers. endpoint_url: The endpoint URL given to you by the OpenID Connect provider group_regexes: One regular expression pattern per line. Please read [the documentation](docs_url) for more information on how to do this. - group_regexes_detail: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Click on 'Test pattern' to test your regular expression pattern against sample OIDC userinfo. - group_sync: Automatically extract and synchronise group membership information from the identity provider. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Specify the name of the claim that's expected to indicate the group names that the user is a member of. limit_self_registration: If enabled, users can only register using this provider if configuration on the provider's end allows it. mapping_admin: 'Provide a custom mapping in the userinfo response to be used for the admin status. It expects a boolean attribute to be returned. @@ -104,7 +104,7 @@ uz: oidc_information: These values are needed to configure the OpenID Connect provider. post_logout_redirect_uri: The URL the OpenID Connect provider should redirect to after a logout request. scope: If you want to request custom scopes, you can add one or multiple scope values separated by spaces here. For more information, see the [OpenID Connect documentation](docs_url). - tenant: Please replace the default tenant with your own if applicable. See this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID providers providers: client_details_description: Configuration details of OpenProject as an OIDC client @@ -164,7 +164,7 @@ uz: delete_result_1: Remove the provider from the list of available providers. delete_result_direct: This provider is marked as a direct login provider. The setting will be removed and users will no longer be redirected to the provider for login. delete_result_user_count: - one: One user is currently still using this provider. They will need to be re-invited or logging in with another provider. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} users are currently still using this provider. They will need to be re-invited or logging in with another provider." zero: No users are currently using this provider. No further action is required. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/vi.yml b/modules/openid_connect/config/locales/crowdin/vi.yml index e8f64192ff5b..15bd7d491948 100644 --- a/modules/openid_connect/config/locales/crowdin/vi.yml +++ b/modules/openid_connect/config/locales/crowdin/vi.yml @@ -48,7 +48,7 @@ vi: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: 'Bạn đã đăng xuất. Nội dung của bất kỳ hình thức nào bạn gửi có thể bị mất. Xin vui lòng [log in]. + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ vi: display_name: Tên của nhà cung cấp. Điều này sẽ được hiển thị dưới dạng nút đăng nhập và trong danh sách các nhà cung cấp. endpoint_url: URL điểm cuối do nhà cung cấp OpenID Connect cung cấp cho bạn group_regexes: Một mẫu biểu thức chính quy trên mỗi dòng. Vui lòng đọc [the documentation](docs_url) để biết thêm thông tin về cách thực hiện việc này. - group_regexes_detail: 'Tùy ý xác định các mẫu bằng cách sử dụng biểu thức chính quy để khớp với tên nhóm từ yêu cầu của nhóm. Ví dụ: nhập mẫu như ^Level1/Level2/([\w/]+)$ sẽ trích xuất nhóm “Tên nhóm/Nhóm con” từ một phản hồi bao gồm “Cấp1/Cấp2/Tên nhóm/Nhóm con”. Nếu không có mẫu nào khớp, nhóm sẽ bị bỏ qua. Để trống để đồng bộ hóa tất cả các nhóm bằng tên nhóm đầy đủ của họ.' + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: Nhấp vào 'Mẫu thử nghiệm' để kiểm tra mẫu biểu thức chính quy của bạn dựa trên thông tin người dùng OIDC mẫu. - group_sync: Tự động trích xuất và đồng bộ hóa thông tin thành viên nhóm từ nhà cung cấp danh tính. + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: Chỉ định tên của xác nhận quyền sở hữu dự kiến ​​sẽ cho biết tên nhóm mà người dùng là thành viên. limit_self_registration: Nếu được bật, người dùng chỉ có thể đăng ký sử dụng nhà cung cấp này nếu cấu hình phía nhà cung cấp cho phép. mapping_admin: 'Cung cấp ánh xạ tùy chỉnh trong phản hồi thông tin người dùng để sử dụng cho trạng thái quản trị viên. Nó mong đợi một thuộc tính boolean được trả về. @@ -102,7 +102,7 @@ vi: oidc_information: Những giá trị này là cần thiết để định cấu hình nhà cung cấp OpenID Connect. post_logout_redirect_uri: URL mà nhà cung cấp OpenID Connect sẽ chuyển hướng đến sau khi có yêu cầu đăng xuất. scope: Nếu muốn yêu cầu phạm vi tùy chỉnh, bạn có thể thêm một hoặc nhiều giá trị phạm vi, phân tách bằng dấu cách tại đây. Để biết thêm thông tin, hãy xem [OpenID Connect documentation](docs_url). - tenant: Vui lòng thay thế đối tượng thuê mặc định bằng đối tượng thuê của riêng bạn nếu có. Xem this. + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: Nhà cung cấp OpenID providers: client_details_description: Chi tiết cấu hình của OpenProject với tư cách là máy khách OIDC @@ -162,7 +162,7 @@ vi: delete_result_1: Xóa nhà cung cấp khỏi danh sách các nhà cung cấp có sẵn. delete_result_direct: Nhà cung cấp này được đánh dấu là nhà cung cấp đăng nhập trực tiếp. Cài đặt này sẽ bị xóa và người dùng sẽ không được chuyển hướng đến nhà cung cấp để đăng nhập nữa. delete_result_user_count: - one: Một người dùng hiện vẫn đang sử dụng nhà cung cấp này. Họ sẽ cần được mời lại hoặc đăng nhập với nhà cung cấp khác. + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} người dùng hiện vẫn đang sử dụng nhà cung cấp này. Họ sẽ cần được mời lại hoặc đăng nhập với nhà cung cấp khác." zero: Không có người dùng hiện đang sử dụng nhà cung cấp này. Không cần thực hiện thêm hành động nào. input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/openid_connect/config/locales/crowdin/zh-CN.yml b/modules/openid_connect/config/locales/crowdin/zh-CN.yml index 12b43ca46cc3..0310473130b8 100644 --- a/modules/openid_connect/config/locales/crowdin/zh-CN.yml +++ b/modules/openid_connect/config/locales/crowdin/zh-CN.yml @@ -48,7 +48,7 @@ zh-CN: other: OpenID Connect 提供商 openid_connect/user_token: other: OpenID Connect 令牌 - logout_warning: '您已退出登录。您提交的任何表单的内容可能丢失。请[登录]。 + logout_warning_link: '您已退出登录。您提交的任何表单的内容可能丢失。请[登录](login)。 ' openid_connect: @@ -77,9 +77,9 @@ zh-CN: display_name: 提供商的名称。这将显示为登录按钮以及提供商列表中的名称。 endpoint_url: OpenID Connect 提供商给您的端点 URL group_regexes: 每行一个正则表达式模式。有关如何操作的更多信息,请阅读[文档](docs_url)。 - group_regexes_detail: 可以选择使用正则表达式定义模式,以匹配群组声明中的群组名称。例如,输入类似 ^Level1/Level2/([\w/]+)$ 的模式将从包含“Level1/Level2/GroupName/SubGroup”的响应中提取群组“Groupname/SubGroup”。如果没有模式匹配,则会忽略该群组。留空可使用完整群组名称同步所有群组。 + group_regexes_detail_html: 可以选择使用正则表达式定义模式,以匹配群组声明中的群组名称。例如,输入类似 ^Level1/Level2/([\w/]+)$ 的模式将从包含“Level1/Level2/GroupName/SubGroup”的响应中提取群组“Groupname/SubGroup”。如果没有模式匹配,则会忽略该群组。留空可使用完整群组名称同步所有群组。 group_regexes_testing: 点击“测试模式”,以根据样本 OIDC 用户信息测试正则表达式模式。 - group_sync: 自动从身份提供商提取并同步群组成员信息。 + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: 指定预期表示用户所属群组名称的声明的名称。 limit_self_registration: 如果启用,用户只能在提供商的配置允许的情况下使用该提供商进行注册。 mapping_admin: '在用户信息响应中提供自定义映射,用于管理员状态。它期望返回一个布尔属性。 @@ -102,7 +102,7 @@ zh-CN: oidc_information: 配置 OpenID Connect 提供商需要使用这些值。 post_logout_redirect_uri: OpenID Connect 提供商在注销请求后应重定向到的 URL。 scope: 如果你需要自定义场景值,可以在这里添加一个值,或者用空格分开的多个值。详情参考 [OpenID 连接文档](docs_url)。 - tenant: 如果适用,请将默认租户替换为您自己的租户。请参阅此处。 + tenant_html: 在适用情况下,请将默认租户替换为您自己的租户。请参阅此处。 menu_title: OpenID 提供商 providers: client_details_description: OpenProject 作为 OIDC 客户端的配置详细信息 @@ -162,7 +162,7 @@ zh-CN: delete_result_1: 从可用的提供商列表中删除提供商。 delete_result_direct: 此提供商被标记为直接登录提供商。 设置将被删除,用户将不再被重定向到提供商登录。 delete_result_user_count: - one: 目前有一个用户仍在使用此提供商。他们需要被重新邀请或使用其他提供商登录。 + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: 目前有 %{count} 个用户仍在使用该提供商。他们需要重新邀请或使用其他提供商登录。 zero: 目前没有用户正在使用此提供商。无需采取进一步操作。 input_delete_confirmation_html: 输入提供商名称 %{name} 以确认删除。 diff --git a/modules/openid_connect/config/locales/crowdin/zh-TW.yml b/modules/openid_connect/config/locales/crowdin/zh-TW.yml index 5ed4b5cc834b..d4253d9ccc00 100644 --- a/modules/openid_connect/config/locales/crowdin/zh-TW.yml +++ b/modules/openid_connect/config/locales/crowdin/zh-TW.yml @@ -48,7 +48,7 @@ zh-TW: other: OpenID Connect providers openid_connect/user_token: other: OpenID Connect tokens - logout_warning: '你已被登出,你嘗試送出的內容可能都會遺失。請登入。 + logout_warning_link: 'You have been logged out. The contents of any form you submit may be lost. Please [log in](login). ' openid_connect: @@ -77,9 +77,9 @@ zh-TW: display_name: 提供商的名稱。這將會顯示在登入按鈕及提供商清單中。 endpoint_url: OpenID Connect 提供者給予您的端點 URL group_regexes: 每行一個正則表達模式。請閱讀 [說明文件](docs_url) 以取得更多相關資訊。 - group_regexes_detail: 可選擇使用正規表達式定義模式,以從群組聲稱中匹配群組名稱。例如,輸入類似 ^Level1/Level2/([\w/]+)$的模式將從包含「Level1/Level2/GroupName/SubGroup」的回覆中抽取「Groupname/SubGroup」的群組。如果沒有模式匹配,群組會被忽略。留空可使用群組全名同步處理所有群組。 + group_regexes_detail_html: Optionally define patterns using regular expressions to match group names from the groups claim. For example, entering a pattern like ^Level1/Level2/([\w/]+)$ will extract the group “Groupname/SubGroup” from a response including “Level1/Level2/GroupName/SubGroup”. If no pattern matches, the group is ignored. Leave empty to synchronize all groups using their full group name. group_regexes_testing: 按一下「測試樣式」,針對 OIDC 使用者資訊範例測試您的正則表達式樣式。 - group_sync: 自動從身分提供者擷取和同步群組成員資訊。 + group_sync: Automatically extract and synchronize group membership information from the identity provider. groups_claim: 請指定用來表示使用者所屬群組名稱的 claim 名稱。 limit_self_registration: 如果啟用,只有在提供商端的設定允許的情況下,使用者才能使用此提供商註冊。 mapping_admin: '在使用者資料回應中,提供用於管理狀態的自訂對應。它預期會傳回一個布林屬性。 @@ -102,7 +102,7 @@ zh-TW: oidc_information: 這些值需要用來設定 OpenID Connect 提供者。 post_logout_redirect_uri: OpenID Connect 提供者應在登出請求後重定向至的 URL。 scope: 如果您想要要求自訂範圍,您可以在此新增一個或多個範圍值,並以空格分隔。如需詳細資訊,請參閱 [OpenID Connect 文件](docs_url)。 - tenant: 如果適用,請用您自己的租戶取代預設租戶。請參閱此內容。 + tenant_html: Please replace the default tenant with your own if applicable. See this. menu_title: OpenID 提供商 providers: client_details_description: OpenProject 作為 OIDC 用戶端的細節設定 @@ -162,7 +162,7 @@ zh-TW: delete_result_1: 從可用提供者清單中移除提供者。 delete_result_direct: 此提供商標記為直接登入提供商。該設定將被移除,使用者將不再被重定向到提供者進行登入。 delete_result_user_count: - one: 目前有一位使用者仍在使用此供應商。他們需要重新邀請或使用其他提供者登入。 + one: "%{count} user is currently still using this provider. They will need to be re-invited or logging in with another provider." other: "%{count} 使用者目前仍在使用此供應商。他們需要重新邀請或使用其他提供者登入。" zero: 目前沒有使用者使用此供應商。不需要採取進一步的行動。 input_delete_confirmation_html: Enter the provider name %{name} to confirm deletion. diff --git a/modules/reporting/config/locales/crowdin/af.yml b/modules/reporting/config/locales/crowdin/af.yml index b09ef93295ce..acd73c5d6355 100644 --- a/modules/reporting/config/locales/crowdin/af.yml +++ b/modules/reporting/config/locales/crowdin/af.yml @@ -22,10 +22,17 @@ --- af: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Opmerking cost_reports_title: Time and costs @@ -99,7 +106,6 @@ af: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/ar.yml b/modules/reporting/config/locales/crowdin/ar.yml index adf9ef1c5028..72ef8f0097bc 100644 --- a/modules/reporting/config/locales/crowdin/ar.yml +++ b/modules/reporting/config/locales/crowdin/ar.yml @@ -22,6 +22,10 @@ --- ar: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: zero: Cost reports @@ -30,6 +34,13 @@ ar: few: Cost reports many: Cost reports other: Cost reports + cost_report: + zero: Cost reports + one: Cost report + two: Cost reports + few: Cost reports + many: Cost reports + other: Cost reports button_save_report_as: حفظ التقرير بشكل... comments: التعليق cost_reports_title: الوقت والتكاليف @@ -103,7 +114,6 @@ ar: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: تقارير التكلفة reporting: group_by: selected_columns: الاعمدة المحددة diff --git a/modules/reporting/config/locales/crowdin/az.yml b/modules/reporting/config/locales/crowdin/az.yml index 93e818d4596e..7f3bc56b40f1 100644 --- a/modules/reporting/config/locales/crowdin/az.yml +++ b/modules/reporting/config/locales/crowdin/az.yml @@ -22,10 +22,17 @@ --- az: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ az: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/be.yml b/modules/reporting/config/locales/crowdin/be.yml index 23a79048482a..5163fa709745 100644 --- a/modules/reporting/config/locales/crowdin/be.yml +++ b/modules/reporting/config/locales/crowdin/be.yml @@ -22,12 +22,21 @@ --- be: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports many: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + many: Cost reports + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -101,7 +110,6 @@ be: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/bg.yml b/modules/reporting/config/locales/crowdin/bg.yml index 60c4f5955f84..af1a77ceeb7f 100644 --- a/modules/reporting/config/locales/crowdin/bg.yml +++ b/modules/reporting/config/locales/crowdin/bg.yml @@ -22,10 +22,17 @@ --- bg: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Запазване на отчета като... comments: Коментар cost_reports_title: Време и разходи @@ -99,7 +106,6 @@ bg: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Доклад за разходите reporting: group_by: selected_columns: Избрани колони diff --git a/modules/reporting/config/locales/crowdin/ca.yml b/modules/reporting/config/locales/crowdin/ca.yml index 69b35e998afc..9041f6f05d60 100644 --- a/modules/reporting/config/locales/crowdin/ca.yml +++ b/modules/reporting/config/locales/crowdin/ca.yml @@ -22,10 +22,17 @@ --- ca: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Desa l'informe com... comments: Comentari cost_reports_title: Temps i costs @@ -99,7 +106,6 @@ ca: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Informes de costs reporting: group_by: selected_columns: Columnes seleccionades diff --git a/modules/reporting/config/locales/crowdin/ckb-IR.yml b/modules/reporting/config/locales/crowdin/ckb-IR.yml index 97b0295fbde8..26d188ac05cb 100644 --- a/modules/reporting/config/locales/crowdin/ckb-IR.yml +++ b/modules/reporting/config/locales/crowdin/ckb-IR.yml @@ -22,10 +22,17 @@ --- ckb-IR: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ ckb-IR: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/cs.yml b/modules/reporting/config/locales/crowdin/cs.yml index 3956629768a9..a0ef093bb75f 100644 --- a/modules/reporting/config/locales/crowdin/cs.yml +++ b/modules/reporting/config/locales/crowdin/cs.yml @@ -22,12 +22,21 @@ --- cs: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports many: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + many: Cost reports + other: Cost reports button_save_report_as: Uložit report jako... comments: Komentář cost_reports_title: Čas a náklady @@ -101,7 +110,6 @@ cs: plugin_openproject_reporting: description: Tento modul umožňuje vytvářet vlastní přehledy nákladů s filtrováním a seskupením vytvořených OpenProject plugin čas & náklady . name: Reportování OpenProject - project_module_reporting_module: Výkazy nákladů reporting: group_by: selected_columns: Vybrané sloupce diff --git a/modules/reporting/config/locales/crowdin/da.yml b/modules/reporting/config/locales/crowdin/da.yml index 2bf6f26772fc..8a29dab6458e 100644 --- a/modules/reporting/config/locales/crowdin/da.yml +++ b/modules/reporting/config/locales/crowdin/da.yml @@ -22,10 +22,17 @@ --- da: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Rækker og kolonner skal tilsammen dække præcis visningens grupperingskriterier. models: cost_query: one: Omkostningsrapport other: Omkostningsrapporter + cost_report: + one: Omkostningsrapport + other: Omkostningsrapporter button_save_report_as: Gem rapport som... comments: Kommentér cost_reports_title: Tid og omkostninger @@ -99,7 +106,6 @@ da: plugin_openproject_reporting: description: Pluginnet gør det muligt at oprette egne omkostningsrapporter med filtrering og gruppering ud fra data fra OpenProject-pluginnet Tid og omkostninger. name: OpenProject Reporting - project_module_reporting_module: Omkostningsrapporter reporting: group_by: selected_columns: Valgte kolonner diff --git a/modules/reporting/config/locales/crowdin/de.yml b/modules/reporting/config/locales/crowdin/de.yml index f4833d9e1c52..5c255396e6ed 100644 --- a/modules/reporting/config/locales/crowdin/de.yml +++ b/modules/reporting/config/locales/crowdin/de.yml @@ -22,10 +22,17 @@ --- de: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Die Zeilen und Spalten müssen zusammen genau die Gruppierungskriterien der Abfrage abdecken. models: cost_query: one: Kostenbericht other: Kostenberichte + cost_report: + one: Kostenbericht + other: Kostenberichte button_save_report_as: Speichern unter ... comments: Kommentar cost_reports_title: Zeit und Kosten @@ -99,7 +106,6 @@ de: plugin_openproject_reporting: description: Dieses Plugin ermöglicht die Erstellung benutzerdefinierter Kostenberichte mit Filtern und Gruppierungen name: OpenProject Berichterstattung - project_module_reporting_module: Kostenauswertungen reporting: group_by: selected_columns: Ausgewählte Spalten diff --git a/modules/reporting/config/locales/crowdin/el.yml b/modules/reporting/config/locales/crowdin/el.yml index 8fb002f23272..01d6adbc5258 100644 --- a/modules/reporting/config/locales/crowdin/el.yml +++ b/modules/reporting/config/locales/crowdin/el.yml @@ -22,10 +22,17 @@ --- el: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Αποθήκευση αναφοράς ως... comments: Σχόλιο cost_reports_title: Χρόνος και κόστος @@ -99,7 +106,6 @@ el: plugin_openproject_reporting: description: Αυτό το πρόσθετο επιτρέπει τη δημιουργία προσαρμοσμένων αναφορών κόστους με φιλτράρισμα και ομαδοποίηση που δημιουργούνται από το πρόσθετο OpenProject Χρόνου και Κόστους. name: Αναφορές OpenProject - project_module_reporting_module: Αναφορές κόστους reporting: group_by: selected_columns: Επιλεγμένες στήλες diff --git a/modules/reporting/config/locales/crowdin/eo.yml b/modules/reporting/config/locales/crowdin/eo.yml index 0d20d990b66a..b64106f24756 100644 --- a/modules/reporting/config/locales/crowdin/eo.yml +++ b/modules/reporting/config/locales/crowdin/eo.yml @@ -22,10 +22,17 @@ --- eo: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Komento cost_reports_title: Tempo kaj kostoj @@ -99,7 +106,6 @@ eo: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/es.yml b/modules/reporting/config/locales/crowdin/es.yml index ad3ace92a082..0222f78dc47a 100644 --- a/modules/reporting/config/locales/crowdin/es.yml +++ b/modules/reporting/config/locales/crowdin/es.yml @@ -22,10 +22,17 @@ --- es: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Las filas y las columnas deben abarcar, en su conjunto, exactamente los criterios de agrupación de la consulta. models: cost_query: one: Informe de costes other: Informes de costes + cost_report: + one: Informe de costes + other: Informes de costes button_save_report_as: Guardar informe como... comments: Comentario cost_reports_title: Tiempo y costos @@ -99,7 +106,6 @@ es: plugin_openproject_reporting: description: Este plug-in permite crear reportes de costos personalizados con filtrado y agrupación creados por los plug-ins OpenProject Time y costes. name: Informes de OpenProject - project_module_reporting_module: Reportes de costo reporting: group_by: selected_columns: Columnas seleccionadas diff --git a/modules/reporting/config/locales/crowdin/et.yml b/modules/reporting/config/locales/crowdin/et.yml index d784c0400e03..75f60603f819 100644 --- a/modules/reporting/config/locales/crowdin/et.yml +++ b/modules/reporting/config/locales/crowdin/et.yml @@ -22,10 +22,17 @@ --- et: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Salvesta aruanne kui... comments: Kommentaar cost_reports_title: Time and costs @@ -99,7 +106,6 @@ et: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Kulude aruanded reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/eu.yml b/modules/reporting/config/locales/crowdin/eu.yml index 57cdc0cda0b6..dc0094f862af 100644 --- a/modules/reporting/config/locales/crowdin/eu.yml +++ b/modules/reporting/config/locales/crowdin/eu.yml @@ -22,10 +22,17 @@ --- eu: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ eu: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/fa.yml b/modules/reporting/config/locales/crowdin/fa.yml index 406a7566f5d5..0f0e24eabdc9 100644 --- a/modules/reporting/config/locales/crowdin/fa.yml +++ b/modules/reporting/config/locales/crowdin/fa.yml @@ -22,10 +22,17 @@ --- fa: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: گزارش هزینه other: گزارش‌های هزینه + cost_report: + one: گزارش هزینه + other: گزارش‌های هزینه button_save_report_as: ذخیره گزارش با نام... comments: دیدگاه cost_reports_title: زمان و هزینه‌ها @@ -99,7 +106,6 @@ fa: plugin_openproject_reporting: description: این افزونه به شما امکان ایجاد گزارش‌های سفارشی هزینه با فیلتر کردن و گروه‌بندی ایجاد شده توسط افزونه زمان و هزینه اوپن‌پروژه را می‌دهد. name: گزارش OpenProject - project_module_reporting_module: گزارش‌های هزینه reporting: group_by: selected_columns: ستون‌های انتخاب‌شده diff --git a/modules/reporting/config/locales/crowdin/fi.yml b/modules/reporting/config/locales/crowdin/fi.yml index 1afc0fba096d..f29a6283e649 100644 --- a/modules/reporting/config/locales/crowdin/fi.yml +++ b/modules/reporting/config/locales/crowdin/fi.yml @@ -22,10 +22,17 @@ --- fi: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Tallenna raportti nimellä... comments: Kommentti cost_reports_title: Työaika ja kustannukset @@ -99,7 +106,6 @@ fi: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Kustannusraportit reporting: group_by: selected_columns: Valitut sarakkeet diff --git a/modules/reporting/config/locales/crowdin/fil.yml b/modules/reporting/config/locales/crowdin/fil.yml index efcebe476da0..f90ae495f7ba 100644 --- a/modules/reporting/config/locales/crowdin/fil.yml +++ b/modules/reporting/config/locales/crowdin/fil.yml @@ -22,10 +22,17 @@ --- fil: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Komento cost_reports_title: Time and costs @@ -99,7 +106,6 @@ fil: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/fr.yml b/modules/reporting/config/locales/crowdin/fr.yml index 079b8a54230e..93d0e254a4c4 100644 --- a/modules/reporting/config/locales/crowdin/fr.yml +++ b/modules/reporting/config/locales/crowdin/fr.yml @@ -22,10 +22,17 @@ --- fr: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Les lignes et les colonnes doivent, ensemble, couvrir exactement les critères de regroupement de la requête. models: cost_query: one: Rapport de coûts other: Rapports de coûts + cost_report: + one: Rapport de coûts + other: Rapports de coûts button_save_report_as: Enregistrer le rapport sous... comments: Commentaire cost_reports_title: Temps et coûts @@ -99,7 +106,6 @@ fr: plugin_openproject_reporting: description: Ce plugin permet de créer des rapports de coûts personnalisés à l'aide des fonctions de filtrage et de regroupement fournies par le plugin OpenProject Temps et coûts. name: Rapports OpenProject - project_module_reporting_module: Rapports de coût reporting: group_by: selected_columns: Colonnes sélectionnées diff --git a/modules/reporting/config/locales/crowdin/he.yml b/modules/reporting/config/locales/crowdin/he.yml index 724b80c22220..47c3501a8267 100644 --- a/modules/reporting/config/locales/crowdin/he.yml +++ b/modules/reporting/config/locales/crowdin/he.yml @@ -22,11 +22,19 @@ --- he: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report two: Cost reports other: Cost reports + cost_report: + one: Cost report + two: Cost reports + other: Cost reports button_save_report_as: שמור דוח כ... comments: הערה cost_reports_title: עלויות @@ -100,7 +108,6 @@ he: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: דוחות עלות reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/hi.yml b/modules/reporting/config/locales/crowdin/hi.yml index dc31abe80c99..77e0a7d29496 100644 --- a/modules/reporting/config/locales/crowdin/hi.yml +++ b/modules/reporting/config/locales/crowdin/hi.yml @@ -22,10 +22,17 @@ --- hi: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: टिप्पणी cost_reports_title: Time and costs @@ -99,7 +106,6 @@ hi: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/hr.yml b/modules/reporting/config/locales/crowdin/hr.yml index 258ca4b9d3e9..98776394014a 100644 --- a/modules/reporting/config/locales/crowdin/hr.yml +++ b/modules/reporting/config/locales/crowdin/hr.yml @@ -22,11 +22,19 @@ --- hr: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + other: Cost reports button_save_report_as: Spremi izvješće kao... comments: Komentar cost_reports_title: Time and costs @@ -100,7 +108,6 @@ hr: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Izvješća troškova reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/hu.yml b/modules/reporting/config/locales/crowdin/hu.yml index bbed197f263f..b9aaa95f4d98 100644 --- a/modules/reporting/config/locales/crowdin/hu.yml +++ b/modules/reporting/config/locales/crowdin/hu.yml @@ -22,10 +22,17 @@ --- hu: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Mentés másként... comments: Megjegyzés cost_reports_title: Idő és költség @@ -99,7 +106,6 @@ hu: plugin_openproject_reporting: description: Ez a bővítmény lehetővé teszi az OpenProjekt „Idő és költségek” bővítmény által létrehozott, szűréssel és csoportosítással ellátott egyedi költségjelentések készítését. name: OpenProjekt jelentések - project_module_reporting_module: Költség jelentések reporting: group_by: selected_columns: A kijelölt oszlopok diff --git a/modules/reporting/config/locales/crowdin/hy.yml b/modules/reporting/config/locales/crowdin/hy.yml index f27aecae6da2..cc02b5415c09 100644 --- a/modules/reporting/config/locales/crowdin/hy.yml +++ b/modules/reporting/config/locales/crowdin/hy.yml @@ -22,10 +22,17 @@ --- hy: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Պահպանել հաշվետվությունը որպես... comments: Մեկնաբանություն cost_reports_title: Ժամանակ և ծախսեր @@ -99,7 +106,6 @@ hy: plugin_openproject_reporting: description: Այս հավելումը թույլ է տալիս ստեղծել հատուկ ծախսերի հաշվետվություններ՝ զտմամբ և խմբավորմամբ, որոնք ստեղծվել են OpenProject-ի Ժամանակ և ծախսեր հավելումի կողմից։ name: OpenProject-ի հաշվետվություն - project_module_reporting_module: Ծախսերի հաշվետվություններ reporting: group_by: selected_columns: Ընտրված սյունակներ diff --git a/modules/reporting/config/locales/crowdin/id.yml b/modules/reporting/config/locales/crowdin/id.yml index cfc25ad8594d..0b503f08a34c 100644 --- a/modules/reporting/config/locales/crowdin/id.yml +++ b/modules/reporting/config/locales/crowdin/id.yml @@ -22,9 +22,15 @@ --- id: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: other: Cost reports + cost_report: + other: Cost reports button_save_report_as: Simpan sebagai... comments: Komentar cost_reports_title: Waktu dan biaya @@ -98,7 +104,6 @@ id: plugin_openproject_reporting: description: Plugin ini memungkinkan pembuatan laporan biaya kustom dengan fitur penyaringan dan pengelompokan yang dibuat oleh plugin Waktu dan Biaya OpenProject. name: Laporan OpenProject - project_module_reporting_module: Pelaporan biaya reporting: group_by: selected_columns: Kolom terpilih diff --git a/modules/reporting/config/locales/crowdin/it.yml b/modules/reporting/config/locales/crowdin/it.yml index c6e508f0ab9a..6e3b2b98130b 100644 --- a/modules/reporting/config/locales/crowdin/it.yml +++ b/modules/reporting/config/locales/crowdin/it.yml @@ -22,10 +22,17 @@ --- it: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Le righe e le colonne devono coprire complessivamente ed esattamente i criteri di raggruppamento della query. models: cost_query: one: Report dei costi other: Report dei costi + cost_report: + one: Report dei costi + other: Report dei costi button_save_report_as: Salva il report come... comments: Commento cost_reports_title: Tempi e costi @@ -99,7 +106,6 @@ it: plugin_openproject_reporting: description: Questo plugin consente di creare report di costo personalizzati con filtraggio e raggruppamento creato dal plugin OpenProject Time and costs. name: Reportistica OpenProject - project_module_reporting_module: Report costi reporting: group_by: selected_columns: Colonne selezionate diff --git a/modules/reporting/config/locales/crowdin/ja.yml b/modules/reporting/config/locales/crowdin/ja.yml index aa547e2f550e..a52c97b6ca44 100644 --- a/modules/reporting/config/locales/crowdin/ja.yml +++ b/modules/reporting/config/locales/crowdin/ja.yml @@ -22,9 +22,15 @@ --- ja: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: other: Cost reports + cost_report: + other: Cost reports button_save_report_as: 名前を付けてレポートの保存 comments: コメント cost_reports_title: 時間とコスト @@ -98,7 +104,6 @@ ja: plugin_openproject_reporting: description: このプラグインは、OpenProject の時間とコストプラグインによって作成されたフィルタリングとグループ化でカスタムコストレポートを作成することができます。 name: OpenProject レポート - project_module_reporting_module: コストレポート reporting: group_by: selected_columns: 選択された列 diff --git a/modules/reporting/config/locales/crowdin/ka.yml b/modules/reporting/config/locales/crowdin/ka.yml index 36c09668ac70..1a95989ae4a6 100644 --- a/modules/reporting/config/locales/crowdin/ka.yml +++ b/modules/reporting/config/locales/crowdin/ka.yml @@ -22,10 +22,17 @@ --- ka: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: კომენტარი cost_reports_title: დრო და ღირებულებები @@ -99,7 +106,6 @@ ka: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: ფასის ანგარიშები reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/kk.yml b/modules/reporting/config/locales/crowdin/kk.yml index 996a35c852af..d9cb5a915941 100644 --- a/modules/reporting/config/locales/crowdin/kk.yml +++ b/modules/reporting/config/locales/crowdin/kk.yml @@ -22,10 +22,17 @@ --- kk: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ kk: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/ko.yml b/modules/reporting/config/locales/crowdin/ko.yml index a2dc071fe0b8..9b2d4c2f0e5d 100644 --- a/modules/reporting/config/locales/crowdin/ko.yml +++ b/modules/reporting/config/locales/crowdin/ko.yml @@ -22,9 +22,15 @@ --- ko: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: 행과 열은 함께 쿼리의 그룹화 기준을 정확하게 충족해야 합니다. models: cost_query: other: 비용 보고서 + cost_report: + other: 비용 보고서 button_save_report_as: 다른 이름으로 보고서로 저장... comments: 코멘트 cost_reports_title: 시간 및 비용 @@ -98,7 +104,6 @@ ko: plugin_openproject_reporting: description: 이 플러그인을 사용하면 OpenProject 시간 및 비용 플러그인에서 생성된 필터링 및 그룹화를 사용하여 사용자 지정 비용 보고서를 생성할 수 있습니다. name: OpenProject 보고 - project_module_reporting_module: 비용 보고서 reporting: group_by: selected_columns: 선택된 열 diff --git a/modules/reporting/config/locales/crowdin/li.yml b/modules/reporting/config/locales/crowdin/li.yml index a846ef921289..28287b976acb 100644 --- a/modules/reporting/config/locales/crowdin/li.yml +++ b/modules/reporting/config/locales/crowdin/li.yml @@ -22,10 +22,17 @@ --- li: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Commentaar cost_reports_title: Time and costs @@ -99,7 +106,6 @@ li: plugin_openproject_reporting: description: Deze plugin mak ut meugelik um aangepaste kosterapporte te make mit filtering en groepering gemak door de OpenProject Tied en Koste plugin. name: OpenProject Rapportage - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/lt.yml b/modules/reporting/config/locales/crowdin/lt.yml index 0f80bc40c448..977632a2377d 100644 --- a/modules/reporting/config/locales/crowdin/lt.yml +++ b/modules/reporting/config/locales/crowdin/lt.yml @@ -22,12 +22,21 @@ --- lt: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports many: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + many: Cost reports + other: Cost reports button_save_report_as: Įrašyti ataskaitą kaip... comments: Komentaras cost_reports_title: Laikas ir išlaidos @@ -101,7 +110,6 @@ lt: plugin_openproject_reporting: description: Šis priedas leidžia kurti savo kaštų ataskaitas su OpenProject laiko ir kašto priedo sukurtu filtravimu ir grupavimu. name: OpenProject ataskaitos - project_module_reporting_module: Kaštų ataskaitos reporting: group_by: selected_columns: Pasirinkti stulpeliai diff --git a/modules/reporting/config/locales/crowdin/lv.yml b/modules/reporting/config/locales/crowdin/lv.yml index 0fb79edaf3f0..43bff012c8fe 100644 --- a/modules/reporting/config/locales/crowdin/lv.yml +++ b/modules/reporting/config/locales/crowdin/lv.yml @@ -22,11 +22,19 @@ --- lv: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: zero: Cost reports one: Cost report other: Cost reports + cost_report: + zero: Cost reports + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Komentârs cost_reports_title: Laiks un izmaksas @@ -100,7 +108,6 @@ lv: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Izmaksu pārskati reporting: group_by: selected_columns: Izvēlētās kolonnas diff --git a/modules/reporting/config/locales/crowdin/mn.yml b/modules/reporting/config/locales/crowdin/mn.yml index 84e3a4d41d73..42fe5f2a4678 100644 --- a/modules/reporting/config/locales/crowdin/mn.yml +++ b/modules/reporting/config/locales/crowdin/mn.yml @@ -22,10 +22,17 @@ --- mn: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Цаг хугацаа ба зардал @@ -99,7 +106,6 @@ mn: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/ms.yml b/modules/reporting/config/locales/crowdin/ms.yml index 02a42fa78bdb..60d8960005a0 100644 --- a/modules/reporting/config/locales/crowdin/ms.yml +++ b/modules/reporting/config/locales/crowdin/ms.yml @@ -22,9 +22,15 @@ --- ms: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: other: Cost reports + cost_report: + other: Cost reports button_save_report_as: Simpan laporan sebagai... comments: Komen cost_reports_title: Masa dan kos @@ -98,7 +104,6 @@ ms: plugin_openproject_reporting: description: Plugin ini membenarkan untuk mencipta laporan kos tersuai dengan penyaring dan pengumpulan yang dibuat oleh plugin Masa dan kos OpenProject. name: Pelaporan OpenProject - project_module_reporting_module: Laporan kos reporting: group_by: selected_columns: Kolum terpilih diff --git a/modules/reporting/config/locales/crowdin/ne.yml b/modules/reporting/config/locales/crowdin/ne.yml index 87a923da0d2a..aa3001da8a7e 100644 --- a/modules/reporting/config/locales/crowdin/ne.yml +++ b/modules/reporting/config/locales/crowdin/ne.yml @@ -22,10 +22,17 @@ --- ne: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ ne: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/nl.yml b/modules/reporting/config/locales/crowdin/nl.yml index e6e1a5358aee..c78e1536b776 100644 --- a/modules/reporting/config/locales/crowdin/nl.yml +++ b/modules/reporting/config/locales/crowdin/nl.yml @@ -22,10 +22,17 @@ --- nl: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Rapport opslaan als... comments: Commentaar cost_reports_title: Tijd en kosten @@ -99,7 +106,6 @@ nl: plugin_openproject_reporting: description: Deze plugin maakt het mogelijk om aangepaste kostenrapporten te maken met filtering en groepering gemaakt door de OpenProject Tijd en Kosten plugin. name: OpenProject Rapportage - project_module_reporting_module: Kostenrapporten reporting: group_by: selected_columns: Geselecteerde kolommen diff --git a/modules/reporting/config/locales/crowdin/no.yml b/modules/reporting/config/locales/crowdin/no.yml index 9962c5169b40..b3e85942f9ab 100644 --- a/modules/reporting/config/locales/crowdin/no.yml +++ b/modules/reporting/config/locales/crowdin/no.yml @@ -22,10 +22,17 @@ --- 'no': activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Lagre rapport som... comments: Kommentar cost_reports_title: Tid og kostnader @@ -99,7 +106,6 @@ plugin_openproject_reporting: description: Dette programtillegget gjør det mulig å lage egendefinerte kostnadsrapporter med filtrering og gruppering opprettet av OpenProject -utvidelsen Tid og kostnad. name: OpenProject rapportering - project_module_reporting_module: Kostnadsrapporter reporting: group_by: selected_columns: Valgte kolonner diff --git a/modules/reporting/config/locales/crowdin/pl.yml b/modules/reporting/config/locales/crowdin/pl.yml index 041c07aa045b..88f0acf00fe5 100644 --- a/modules/reporting/config/locales/crowdin/pl.yml +++ b/modules/reporting/config/locales/crowdin/pl.yml @@ -22,12 +22,21 @@ --- pl: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Wiersze i kolumny muszą łącznie dokładnie odpowiadać kryteriom grupowania z zapytania. models: cost_query: one: Raport kosztów few: Raporty kosztów many: Raporty kosztów other: Raporty kosztów + cost_report: + one: Raport dotyczący kosztów + few: Raporty dotyczące kosztów + many: Raporty dotyczące kosztów + other: Raporty dotyczące kosztów button_save_report_as: Zapisz raport jako... comments: Komentarz cost_reports_title: Czas i koszty @@ -101,7 +110,6 @@ pl: plugin_openproject_reporting: description: Ta wtyczka umożliwia tworzenie niestandardowych raportów kosztów z filtrowaniem i grupowaniem utworzonym przez wtyczkę OpenProject Czas i koszty. name: Raportowanie OpenProject - project_module_reporting_module: Raporty kosztów reporting: group_by: selected_columns: Wybrane kolumny diff --git a/modules/reporting/config/locales/crowdin/pt-BR.yml b/modules/reporting/config/locales/crowdin/pt-BR.yml index c40dc3f879bf..862878c2fac9 100644 --- a/modules/reporting/config/locales/crowdin/pt-BR.yml +++ b/modules/reporting/config/locales/crowdin/pt-BR.yml @@ -22,10 +22,17 @@ --- pt-BR: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: As linhas e as colunas devem, juntas, abranger exatamente os critérios de agrupamento da consulta. models: cost_query: one: Relatório de custos other: Relatórios de custos + cost_report: + one: Relatório de custos + other: Relatórios de custos button_save_report_as: Salvar relatório como... comments: Comentário cost_reports_title: Tempo e custos @@ -99,7 +106,6 @@ pt-BR: plugin_openproject_reporting: description: Este plugin permite a criação de relatórios de custos personalizados com filtragem e agrupamento criados pelo plugin OpenProject Time e custos. name: Relatórios do OpenProject - project_module_reporting_module: Relatórios de custos reporting: group_by: selected_columns: Colunas selecionadas diff --git a/modules/reporting/config/locales/crowdin/pt-PT.yml b/modules/reporting/config/locales/crowdin/pt-PT.yml index 4ab23b0abd62..50359c0e2034 100644 --- a/modules/reporting/config/locales/crowdin/pt-PT.yml +++ b/modules/reporting/config/locales/crowdin/pt-PT.yml @@ -22,10 +22,17 @@ --- pt-PT: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: As linhas e colunas devem, em conjunto, abranger exatamente os critérios de agrupamento da consulta. models: cost_query: one: Relatório de custo other: Relatórios de custo + cost_report: + one: Relatório de custo + other: Relatórios de custo button_save_report_as: Guardar relatório como... comments: Comentário cost_reports_title: Tempo e custos @@ -99,7 +106,6 @@ pt-PT: plugin_openproject_reporting: description: Este plugin permite criar relatórios de custos personalizados com filtragem e agrupamento criados pelo plugin OpenProject Time e custos. name: Relatórios do OpenProject - project_module_reporting_module: Relatórios de custos reporting: group_by: selected_columns: Colunas selecionadas diff --git a/modules/reporting/config/locales/crowdin/ro.yml b/modules/reporting/config/locales/crowdin/ro.yml index 623eca822b86..7ccb4d070223 100644 --- a/modules/reporting/config/locales/crowdin/ro.yml +++ b/modules/reporting/config/locales/crowdin/ro.yml @@ -22,11 +22,19 @@ --- ro: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + other: Cost reports button_save_report_as: Salvează raportul ca... comments: Comentariu cost_reports_title: Timp și costuri @@ -63,7 +71,7 @@ ro: label_filter_value: Valoare label_filters: Filtru label_greater: ">" - label_group_by: Grupează după + label_group_by: Grupare după label_group_by_add: Adaugă atributul Grupează-după label_inactive: Inactiv label_is_not_project_with_subprojects: nu este (incluzând subproiecte) @@ -100,7 +108,6 @@ ro: plugin_openproject_reporting: description: Acest plugin permite crearea de rapoarte de costuri personalizate cu filtrare şi grupare create de OpenProject Time şi de plugin-ul costuri. name: Raport OpenProject - project_module_reporting_module: Rapoarte de cost reporting: group_by: selected_columns: Coloane selectate diff --git a/modules/reporting/config/locales/crowdin/ru.yml b/modules/reporting/config/locales/crowdin/ru.yml index 89e9a128ccfb..6cdc49a11dba 100644 --- a/modules/reporting/config/locales/crowdin/ru.yml +++ b/modules/reporting/config/locales/crowdin/ru.yml @@ -22,12 +22,21 @@ --- ru: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Строки и столбцы в совокупности должны точно соответствовать критериям группировки запроса. models: cost_query: one: Отчет о затратах few: Cost reports many: Cost reports other: Отчеты о затратах + cost_report: + one: Отчет о затратах + few: Cost reports + many: Cost reports + other: Отчеты о затратах button_save_report_as: Сохранить отчет как... comments: Комментарий cost_reports_title: Время и затраты @@ -101,7 +110,6 @@ ru: plugin_openproject_reporting: description: Этот плагин позволяет создавать пользовательские отчеты о стоимости с фильтрацией и группировкой, созданной плагином OpenProject Time и затратами. name: Отчёт OpenProject - project_module_reporting_module: Отчет по стоимости reporting: group_by: selected_columns: Выбранные столбцы diff --git a/modules/reporting/config/locales/crowdin/rw.yml b/modules/reporting/config/locales/crowdin/rw.yml index f23dc331e3ca..45bbbb24d5d6 100644 --- a/modules/reporting/config/locales/crowdin/rw.yml +++ b/modules/reporting/config/locales/crowdin/rw.yml @@ -22,10 +22,17 @@ --- rw: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ rw: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/si.yml b/modules/reporting/config/locales/crowdin/si.yml index 106310a6f0b9..9cd77d587163 100644 --- a/modules/reporting/config/locales/crowdin/si.yml +++ b/modules/reporting/config/locales/crowdin/si.yml @@ -22,10 +22,17 @@ --- si: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: අදහස් දක්වන්න cost_reports_title: Time and costs @@ -99,7 +106,6 @@ si: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/sk.yml b/modules/reporting/config/locales/crowdin/sk.yml index 097de4e3eb59..1e666c0a2987 100644 --- a/modules/reporting/config/locales/crowdin/sk.yml +++ b/modules/reporting/config/locales/crowdin/sk.yml @@ -22,12 +22,21 @@ --- sk: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports many: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + many: Cost reports + other: Cost reports button_save_report_as: Uložiť prehľad ako... comments: Komentár cost_reports_title: Čas a náklady @@ -101,7 +110,6 @@ sk: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Výkazy nákladov reporting: group_by: selected_columns: Vybrané stĺpce diff --git a/modules/reporting/config/locales/crowdin/sl.yml b/modules/reporting/config/locales/crowdin/sl.yml index 91af620af158..ff26b2b65844 100644 --- a/modules/reporting/config/locales/crowdin/sl.yml +++ b/modules/reporting/config/locales/crowdin/sl.yml @@ -22,12 +22,21 @@ --- sl: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report two: Cost reports few: Cost reports other: Cost reports + cost_report: + one: Cost report + two: Cost reports + few: Cost reports + other: Cost reports button_save_report_as: Shrani poročilo kot... comments: Komentar cost_reports_title: Čas in stroški @@ -101,7 +110,6 @@ sl: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Poročilo o stroških reporting: group_by: selected_columns: Izbrani stolpci diff --git a/modules/reporting/config/locales/crowdin/sr.yml b/modules/reporting/config/locales/crowdin/sr.yml index 043997b63fa7..d2f40923ecec 100644 --- a/modules/reporting/config/locales/crowdin/sr.yml +++ b/modules/reporting/config/locales/crowdin/sr.yml @@ -22,11 +22,19 @@ --- sr: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report few: Cost reports other: Cost reports + cost_report: + one: Cost report + few: Cost reports + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -100,7 +108,6 @@ sr: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/sv.yml b/modules/reporting/config/locales/crowdin/sv.yml index 7cf456c4cfb8..d730baabe63b 100644 --- a/modules/reporting/config/locales/crowdin/sv.yml +++ b/modules/reporting/config/locales/crowdin/sv.yml @@ -22,10 +22,17 @@ --- sv: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Raderna och kolumnerna måste tillsammans motsvara exakt frågans grupperingskriterier. models: cost_query: one: Kostnadsrapport other: Kostnadsrapporter + cost_report: + one: Kostnadsrapport + other: Kostnadsrapporter button_save_report_as: Spara rapporten som... comments: Kommentar cost_reports_title: Tid och kostnader @@ -99,7 +106,6 @@ sv: plugin_openproject_reporting: description: Med detta tillägg kan du skapa anpassade kostnadsrapporter med filtrering och gruppering som skapats av tillägget OpenProject Time and costs. name: OpenProject rapportering - project_module_reporting_module: Kostnadsrapporter reporting: group_by: selected_columns: Valda kolumner diff --git a/modules/reporting/config/locales/crowdin/th.yml b/modules/reporting/config/locales/crowdin/th.yml index 7f0078dee981..a6ce1b389e32 100644 --- a/modules/reporting/config/locales/crowdin/th.yml +++ b/modules/reporting/config/locales/crowdin/th.yml @@ -22,9 +22,15 @@ --- th: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: other: Cost reports + cost_report: + other: Cost reports button_save_report_as: Save report as... comments: ความคิดเห็น cost_reports_title: Time and costs @@ -98,7 +104,6 @@ th: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/tr.yml b/modules/reporting/config/locales/crowdin/tr.yml index 2130fdcc7500..3e560f703579 100644 --- a/modules/reporting/config/locales/crowdin/tr.yml +++ b/modules/reporting/config/locales/crowdin/tr.yml @@ -22,10 +22,17 @@ --- tr: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Raporu farklı kaydet... comments: Yorum cost_reports_title: Zaman ve maliyetler @@ -101,7 +108,6 @@ tr: plugin_openproject_reporting: description: Bu eklenti, OpenProject Zaman ve maliyetler eklentisi tarafından oluşturulan filtreleme ve gruplama ile özel maliyet raporları oluşturmaya izin verir. name: OpenProject Raporlama - project_module_reporting_module: Maliyet raporları reporting: group_by: selected_columns: Seçilen sütunlar diff --git a/modules/reporting/config/locales/crowdin/uk.yml b/modules/reporting/config/locales/crowdin/uk.yml index ccdde63764de..eb2996058f55 100644 --- a/modules/reporting/config/locales/crowdin/uk.yml +++ b/modules/reporting/config/locales/crowdin/uk.yml @@ -22,12 +22,21 @@ --- uk: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: Сукупність рядків і стовпців має точно відповідати набору критеріїв групування запиту. models: cost_query: one: Звіт про витрати few: Звіти про витрати many: Звіти про витрати other: Звіти про витрати + cost_report: + one: Звіт про витрати + few: Звіти про витрати + many: Звіти про витрати + other: Звіти про витрати button_save_report_as: Зберегти звіт як… comments: Коментар cost_reports_title: Час і витрати @@ -101,7 +110,6 @@ uk: plugin_openproject_reporting: description: Цей плагін дає змогу створювати звіти про витрати з можливостями фільтрування й групування, створеними плагіном «Час і витрати» в OpenProject. name: Звіти OpenProject - project_module_reporting_module: Звіти про витрати reporting: group_by: selected_columns: Вибрані стовпці diff --git a/modules/reporting/config/locales/crowdin/uz.yml b/modules/reporting/config/locales/crowdin/uz.yml index acc8a5d9d1c5..b651aad1ec12 100644 --- a/modules/reporting/config/locales/crowdin/uz.yml +++ b/modules/reporting/config/locales/crowdin/uz.yml @@ -22,10 +22,17 @@ --- uz: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: one: Cost report other: Cost reports + cost_report: + one: Cost report + other: Cost reports button_save_report_as: Save report as... comments: Comment cost_reports_title: Time and costs @@ -99,7 +106,6 @@ uz: plugin_openproject_reporting: description: This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin. name: OpenProject Reporting - project_module_reporting_module: Cost reports reporting: group_by: selected_columns: Selected columns diff --git a/modules/reporting/config/locales/crowdin/vi.yml b/modules/reporting/config/locales/crowdin/vi.yml index 8aa778ccb93e..3e8bbd15e6dd 100644 --- a/modules/reporting/config/locales/crowdin/vi.yml +++ b/modules/reporting/config/locales/crowdin/vi.yml @@ -22,9 +22,15 @@ --- vi: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: The rows and columns must together cover exactly the grouping criteria of the query. models: cost_query: other: Cost reports + cost_report: + other: Cost reports button_save_report_as: Lưu báo cáo dưới dạng... comments: bình luận cost_reports_title: Thời gian và chi phí @@ -73,7 +79,7 @@ vi: label_money: Giá trị tiền mặt label_month_reporting: Tháng (Chi tiêu) label_new_report: Báo cáo chi phí mới - label_no: không + label_no: Không label_no_reports: Chưa có báo cáo chi phí. label_none: "(không có dữ liệu)" label_open: mở @@ -98,7 +104,6 @@ vi: plugin_openproject_reporting: description: Plugin này cho phép tạo báo cáo chi phí tùy chỉnh với tính năng lọc và nhóm được tạo bởi plugin Thời gian và chi phí OpenProject. name: Báo cáo OpenProject - project_module_reporting_module: Các báo cáo chi phí reporting: group_by: selected_columns: Cột đã chọn diff --git a/modules/reporting/config/locales/crowdin/zh-CN.yml b/modules/reporting/config/locales/crowdin/zh-CN.yml index 6e9f08241539..96b23252c90a 100644 --- a/modules/reporting/config/locales/crowdin/zh-CN.yml +++ b/modules/reporting/config/locales/crowdin/zh-CN.yml @@ -22,9 +22,15 @@ --- zh-CN: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: 行和列必须共同精确覆盖查询的分组条件。 models: cost_query: other: 成本报告 + cost_report: + other: 成本报告 button_save_report_as: 报表另存为... comments: 注释 cost_reports_title: 工时和成本 @@ -98,7 +104,6 @@ zh-CN: plugin_openproject_reporting: description: 该插件允许使用 OpenProject 工时和成本插件创建自定义成本报告,并具有过滤和分组功能。 name: OpenProject 报告 - project_module_reporting_module: 成本报告 reporting: group_by: selected_columns: 选定的列 diff --git a/modules/reporting/config/locales/crowdin/zh-TW.yml b/modules/reporting/config/locales/crowdin/zh-TW.yml index 46cfd0b0c396..c5cd889a145c 100644 --- a/modules/reporting/config/locales/crowdin/zh-TW.yml +++ b/modules/reporting/config/locales/crowdin/zh-TW.yml @@ -22,9 +22,15 @@ --- zh-TW: activerecord: + errors: + models: + cost_report: + pivot_axes_do_not_match_group_bys: 行與列的組合必須完全涵蓋該查詢的分組條件。 models: cost_query: other: 成本報告 + cost_report: + other: 成本報告 button_save_report_as: 另存報表... comments: 留言 cost_reports_title: 時間與費用 @@ -61,7 +67,7 @@ zh-TW: label_filter_value: 值 label_filters: 篩選器 label_greater: ">" - label_group_by: 分類 + label_group_by: 分組依據 label_group_by_add: 新增群組欄位 label_inactive: "«不活動»" label_is_not_project_with_subprojects: 不是 (包括子專案) @@ -76,7 +82,7 @@ zh-TW: label_no: 否 label_no_reports: 尚無費用報告 label_none: "(沒有資料)" - label_open: 開啟 + label_open: 開啟中 label_operator: 操作員 label_private_report_plural: 私密成本報告 label_progress_bar_explanation: 產生報告中... @@ -98,7 +104,6 @@ zh-TW: plugin_openproject_reporting: description: 本外掛允許透過OpenProject 時間及成本外掛,建立具篩選及群組的客製化成本報表 name: OpenProject 報表 - project_module_reporting_module: 成本報告 reporting: group_by: selected_columns: 選擇列 diff --git a/modules/resource_management/config/locales/crowdin/af.yml b/modules/resource_management/config/locales/crowdin/af.yml index 62301fc71c28..92a4ffde25d8 100644 --- a/modules/resource_management/config/locales/crowdin/af.yml +++ b/modules/resource_management/config/locales/crowdin/af.yml @@ -2,17 +2,20 @@ af: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ af: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ af: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ af: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ af: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ af: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ af: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ af: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ af: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ar.yml b/modules/resource_management/config/locales/crowdin/ar.yml index 361ff7c2de6a..ef22d1f61585 100644 --- a/modules/resource_management/config/locales/crowdin/ar.yml +++ b/modules/resource_management/config/locales/crowdin/ar.yml @@ -2,17 +2,20 @@ ar: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ar: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -81,6 +91,9 @@ ar: few: Work packages timelines many: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -94,8 +107,12 @@ ar: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -111,28 +128,25 @@ ar: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -155,6 +169,7 @@ ar: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -167,15 +182,23 @@ ar: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -216,17 +239,16 @@ ar: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - zero: "%{count} other work packages" - one: 1 other work package - two: "%{count} other work packages" - few: "%{count} other work packages" - many: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -263,7 +285,8 @@ ar: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/az.yml b/modules/resource_management/config/locales/crowdin/az.yml index d0da7e9332b2..95300249aa17 100644 --- a/modules/resource_management/config/locales/crowdin/az.yml +++ b/modules/resource_management/config/locales/crowdin/az.yml @@ -2,17 +2,20 @@ az: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ az: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ az: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ az: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ az: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ az: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ az: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ az: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ az: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/be.yml b/modules/resource_management/config/locales/crowdin/be.yml index 113cdc34331a..0a6c8418778c 100644 --- a/modules/resource_management/config/locales/crowdin/be.yml +++ b/modules/resource_management/config/locales/crowdin/be.yml @@ -2,17 +2,20 @@ be: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ be: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ be: few: Work packages timelines many: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -82,8 +95,12 @@ be: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ be: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -143,6 +157,7 @@ be: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -155,15 +170,23 @@ be: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -204,15 +227,16 @@ be: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - many: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -249,7 +273,8 @@ be: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/bg.yml b/modules/resource_management/config/locales/crowdin/bg.yml index ef4442a5bb08..ec48e3018eb5 100644 --- a/modules/resource_management/config/locales/crowdin/bg.yml +++ b/modules/resource_management/config/locales/crowdin/bg.yml @@ -2,17 +2,20 @@ bg: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ bg: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ bg: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ bg: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ bg: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ bg: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ bg: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ bg: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ bg: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ca.yml b/modules/resource_management/config/locales/crowdin/ca.yml index 1d7c52d5ca10..725cb5428224 100644 --- a/modules/resource_management/config/locales/crowdin/ca.yml +++ b/modules/resource_management/config/locales/crowdin/ca.yml @@ -2,17 +2,20 @@ ca: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ca: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ ca: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ ca: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ ca: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ ca: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ ca: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ ca: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ ca: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ckb-IR.yml b/modules/resource_management/config/locales/crowdin/ckb-IR.yml index 73920f60cf3f..ec22518bff54 100644 --- a/modules/resource_management/config/locales/crowdin/ckb-IR.yml +++ b/modules/resource_management/config/locales/crowdin/ckb-IR.yml @@ -2,17 +2,20 @@ ckb-IR: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ckb-IR: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ ckb-IR: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ ckb-IR: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ ckb-IR: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ ckb-IR: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ ckb-IR: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ ckb-IR: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ ckb-IR: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/cs.yml b/modules/resource_management/config/locales/crowdin/cs.yml index 9305a357a099..5b21eda65266 100644 --- a/modules/resource_management/config/locales/crowdin/cs.yml +++ b/modules/resource_management/config/locales/crowdin/cs.yml @@ -2,17 +2,20 @@ cs: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ cs: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ cs: few: Work packages timelines many: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -82,8 +95,12 @@ cs: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ cs: make_public: Make public unfavorite: Odstranit z oblíbených allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: Uživatel + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -143,6 +157,7 @@ cs: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -155,15 +170,23 @@ cs: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -204,15 +227,16 @@ cs: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - many: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -249,7 +273,8 @@ cs: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/da.yml b/modules/resource_management/config/locales/crowdin/da.yml index 829c1b507479..4a021c654c5a 100644 --- a/modules/resource_management/config/locales/crowdin/da.yml +++ b/modules/resource_management/config/locales/crowdin/da.yml @@ -2,17 +2,20 @@ da: activerecord: attributes: + placeholder_user: + resource_allocations: Ressourcefordelinger + user_filter: Filterkriterier resource_allocation: allocated_hours: Timer allocated_time: Fordelt tid date_range: Datoer end_date: Slutdato entity: Enhed - filter_name: Navn på ressourcefilter + placeholder_or_user: Tildelt + placeholder_user: Pladsholder-bruger principal: Tildelt start_date: Startdato state: Tilstand - user_filter: Brugerfilter resource_planner: date_range: Datoer default_view_class_name: Standardvisning @@ -21,12 +24,19 @@ da: name: Navn public: Offentlig start_date: Startdato + work_package: + allocated_principals: Fordelte ressourcer + allocated_time: Fordelt errors: models: + placeholder_user: + used_in_resource_allocations: Pladsholder-brugeren bruges stadig i ressourcefordelinger. Tildel fordelingerne til en anden, eller fjern dem, før du sletter pladsholder-brugeren. resource_allocation: attributes: end_date: greater_than_start_date: skal ligge efter startdatoen. + principal: + not_a_member: er ikke medlem af arbejdspakkens projekt. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ da: resource_work_package_timeline: one: Tidslinje for arbejdspakker other: Tidslinjer for arbejdspakker + api_v3: + undisclosed: + allocatedPrincipal: Skjult – den fordelte bruger er usynlig på grund af manglende tilladelser. button_next: Næste ee: features: @@ -70,8 +83,12 @@ da: permission_allocate_user_resources_explanation: Giver mulighed for at oprette, opdatere og slette ressourcefordelinger i en ressourceplanlægger. Det omfatter at tildele brugere (eller brugerfiltre) til en planlægger og at justere den fordelte tid og datoperioden. permission_assign_users_to_generic_allocations: Tildel brugere til generiske fordelinger permission_assign_users_to_generic_allocations_explanation: Giver mulighed for at bruge visningen Bemanding til at tildele rigtige brugere til generiske (filterbaserede) ressourcefordelinger, der endnu ikke har en bruger. Det giver ikke mulighed for at oprette eller redigere fordelinger. + permission_manage_public_global_resource_planners: Administrer offentlige globale ressourceplanlæggere + permission_manage_public_global_resource_planners_explanation: Giver mulighed for at offentliggøre egne globale ressourceplanlæggere og administrere globale ressourceplanlæggere, som andre brugere har delt offentligt. Det giver ikke adgang til at se globale ressourceplanlæggere, der ikke er delt offentligt. permission_manage_public_resource_planners: Administrer offentlige ressourceplanlæggere permission_manage_public_resource_planners_explanation: Giver mulighed for at oprette og administrere offentlige ressourceplanlæggere og for at se, oprette, administrere og offentliggøre egne ressourceplanlæggere. Det giver ikke adgang til at se ressourceplanlæggere, som andre brugere har oprettet, og som ikke er delt offentligt. + permission_view_global_resource_planners: Vis globale ressourceplanlæggere + permission_view_global_resource_planners_explanation: Giver adgang til afsnittet med globale ressourceplanlæggere, hvor ressourcer og fordelinger fra flere projekter kan planlægges samlet. Brugeren kan oprette og administrere egne globale ressourceplanlæggere og se offentlige. Brugeren ser kun de projekter, ressourcer og fordelinger, som vedkommende har tilladelse til at se. permission_view_resource_planners: Vis ressourceplanlæggere permission_view_resource_planners_explanation: Giver adgang til ressourceplanlæggere. Brugeren kan oprette og administrere egne ressourceplanlæggere og se offentlige ressourceplanlæggere. Det giver ikke adgang til at se ressourceplanlæggere, som andre brugere har oprettet, og som ikke er delt offentligt. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ da: make_public: Gør offentlig unfavorite: Fjern fra favoritter allocate_resource_dialog: - kind: - filter: - caption: Angiv filterkriterier ud fra brugerattributter for at oprette en pladsholder-ressource. - label: Filterkriterier - label: Fordelingstype - principal: - caption: Fordel timer til en bestemt bruger. - label: Bruger + criteria: + empty: Der er ikke angivet nogen kriterier. + label: Kriterier + deleted_assignee: Den bruger, der er tildelt denne fordeling, er slettet. Du kan beholde fordelingen, som den er, eller vælge en anden. missing_working_hours: none: Den valgte bruger har ingen arbejdstid konfigureret på disse datoer og regnes derfor for at have ingen kapacitet. partial: Den valgte bruger har ingen arbejdstid konfigureret for %{dates}, så disse dage regnes som dage uden kapacitet. outside_dates: description: De valgte ressourcedatoer, %{resource_dates}, ligger uden for arbejdspakkens datoer, %{work_package_dates}. overbooking: - capacity_summary: "%{available} til rådighed · %{scheduled} planlagt" description: Den valgte bruger, %{user}, ville blive fordelt ud over sin arbejdstid i perioden. - hidden_work: Andre fordelinger + overtime_summary_html: Fordelingen tilføjer %{hours} mellem %{start_date} og %{end_date} og giver %{overtime} overtid mellem %{overtime_start_date} og %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor} % til rådighed for projektarbejde)" schedule_change: til %{date}, derefter %{schedule} schedule_note: Brugeren arbejder %{schedule}. submit: Fordel overtid title: Vil du fordele overtid til brugeren? + unplannable: "%{user} har ingen arbejdsdag mellem %{start_date} og %{end_date}, så fordelingen kan ikke planlægges." + staffed_from: Bemandet fra pladsholder-brugeren %{placeholder} submit: Fordel success_message: Ressourcen er fordelt. title: Fordel ressource @@ -131,6 +145,7 @@ da: title: Tildel %{filter_name} blankslate: desc: Opret en ressourceplanlægger for at begynde at planlægge kapaciteten i projektet. + global_desc: Opret en ressourceplanlægger for at begynde at planlægge kapaciteten på tværs af projekter. title: Der er endnu ingen ressourceplanlæggere configure_view_dialog: delete_confirmation: Er du sikker på, at du vil slette visningen? Det kan ikke fortrydes. @@ -143,15 +158,23 @@ da: caption: En egen liste med elementer, som du selv tilføjer og fjerner. Filtrering er ikke mulig. label: Udvalgt manuelt title: Konfigurer visning + create_placeholder_user_dialog: + submit: Opret + title: Opret pladsholder-bruger edit_allocation_dialog: submit: Gem success_message: Ressourcefordelingen er opdateret. title: Rediger fordeling favorite_caption: Gør visningen til en favorit for at føje den til den øverste del af sidepanelet. + filters: + resource_management_enabled: Ressourcestyring slået til + global_public_caption: Gør visningen offentlig for alle, der har tilladelse til at se globale ressourceplanlæggere. Det påvirker ikke synligheden af arbejdspakker, som stadig afhænger af hver brugers tilladelser. label_edit_resource_planner: Rediger ressourceplanlægger label_new_resource_planner: Ny ressourceplanlægger label_resource_planner: Ressourceplanlægger label_resource_planner_plural: Ressourceplanlæggere + my_time_management: + hidden_work_package: Arbejdspakken er ikke synlig for dig new_view_dialog: title: Tilføj visning public_caption: Gør visningen offentlig for alle medlemmer af projektet. Det påvirker ikke synligheden af arbejdspakker, som stadig afhænger af hver brugers tilladelser. @@ -192,13 +215,16 @@ da: add: Tilføj allocate: Fordel settings: Konfigurer visning + undisclosed: + tooltip: Du har ikke tilladelse til at se denne fordelte ressource + work_package: Arbejdspakken er ikke synlig for dig user_allocations_dialog: allocate_work_package: Fordel arbejdspakke blank: Brugeren har ingen fordelte arbejdspakker. - other_work_packages: - one: 1 anden arbejdspakke - other: "%{count} andre arbejdspakker" + blank_in_timeframe: Brugeren har ingen fordelte arbejdspakker i den valgte periode. + hidden_work_package: Arbejdspakken er ikke synlig for dig title: Udnyttelse + total_time: "%{hours} i alt" user_card_list: add_user_dialog: title: Tilføj bruger @@ -235,7 +261,8 @@ da: no_work_schedule: Der er ikke planlagt nogen arbejdsplan for brugeren overbooked: Brugeren er overbooket i den valgte periode. overbooked_tooltip: - range: "%{dates}: %{scheduled} planlagt, %{available} til rådighed" + dates: Ud over arbejdstiden %{dates} + unplannable: Brugeren har ingen arbejdsdag i perioden. subheader: add_user: Tilføj bruger view_types: diff --git a/modules/resource_management/config/locales/crowdin/de.yml b/modules/resource_management/config/locales/crowdin/de.yml index de941cb1d461..0bf896b16a04 100644 --- a/modules/resource_management/config/locales/crowdin/de.yml +++ b/modules/resource_management/config/locales/crowdin/de.yml @@ -2,17 +2,20 @@ de: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filterkriterien resource_allocation: allocated_hours: Stunden allocated_time: Zugewiesene Zeit date_range: Daten end_date: Endtermin entity: Entität - filter_name: Name des Ressourcenfilters + placeholder_or_user: Zugewiesene Person + placeholder_user: Platzhalter-Benutzer principal: Zugewiesen an start_date: Anfangstermin state: Status - user_filter: Benutzerfilter resource_planner: date_range: Daten default_view_class_name: Standardansicht @@ -21,12 +24,19 @@ de: name: Name public: Öffentlich start_date: Anfangstermin + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: muss nach dem Anfangstermin liegen. + principal: + not_a_member: ist kein Mitglied des Projekts des Arbeitspakets. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ de: resource_work_package_timeline: one: Arbeitspaket-Zeitleiste other: Arbeitspaket-Zeitleisten + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Weiter ee: features: @@ -70,8 +83,12 @@ de: permission_allocate_user_resources_explanation: Ermöglicht Benutzern das Erstellen, Aktualisieren und Löschen von Ressourcenzuweisungen innerhalb eines Ressourcenplaners. Dazu gehört die Zuweisung von Benutzern (oder Benutzerfiltern) zu einem Planer und die Anpassung des zugewiesenen Zeit- und Datumsbereichs. permission_assign_users_to_generic_allocations: Benutzer an generische Zuweisungen zuordnen permission_assign_users_to_generic_allocations_explanation: Ermöglicht es Benutzern, über die Ansicht „Personalplanung“ echte Benutzer generischen (filterbasierten) Ressourcenzuweisungen zuzuordnen, denen noch kein Benutzer zugewiesen ist. Das Erstellen oder Bearbeiten von Zuweisungen ist nicht möglich. + permission_manage_public_global_resource_planners: Öffentliche projektübergreifende Ressourcenplaner verwalten + permission_manage_public_global_resource_planners_explanation: Ermöglicht es Benutzern, ihre eigenen projektübergreifenden Ressourcenplaner zu veröffentlichen und projektübergreifende Ressourcenplaner zu verwalten, die andere Benutzer öffentlich freigegeben haben. Es ist Benutzern nicht gestattet, projektübergreifende Ressourcenplaner einzusehen, die nicht öffentlich freigegeben sind. permission_manage_public_resource_planners: Öffentliche Ressourcenplaner verwalten permission_manage_public_resource_planners_explanation: Ermöglicht Benutzern das Erstellen und Verwalten von öffentlichen Ressourcenplanern. Sie können damit ihre eigenen Ressourcenplaner anzeigen, erstellen, verwalten und veröffentlichen. Es erlaubt Benutzern nicht, die von anderen Benutzern erstellten Ressourcenplaner, die nicht öffentlich freigegeben sind, einzusehen. + permission_view_global_resource_planners: Projektübergreifende Ressourcenplaner anzeigen + permission_view_global_resource_planners_explanation: Ermöglicht Benutzern den Zugriff auf den Bereich der projektübergreifende Ressourcenplaner, in dem Ressourcen und Allokationen aus mehreren Projekten gemeinsam geplant werden können. Es erlaubt ihnen, eigene projektübergreifende Ressourcenplaner zu erstellen und zu verwalten und öffentliche zu sehen. Benutzer sehen immer nur die Projekte, Ressourcen und Allokationen, die sie sehen dürfen. permission_view_resource_planners: Ressourcenplaner anzeigen permission_view_resource_planners_explanation: Ermöglicht Benutzern den Zugang zu Ressourcenplanern. Sie können damit eigenen Ressourcenplaner erstellen, verwalten und öffentliche Ressourcenplaner einsehen. Es erlaubt Benutzern nicht, die von anderen Benutzern erstellten Ressourcenplaner, die nicht öffentlich freigegeben sind, einzusehen. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ de: make_public: Veröffentlichen unfavorite: Aus Favoriten entfernen allocate_resource_dialog: - kind: - filter: - caption: Legen Sie Filterkriterien auf der Grundlage von Benutzerattributen fest, um einen Platzhalter zu erstellen. - label: Filterkriterien - label: Typ - principal: - caption: Arbeitszeit für einen bestimmten Benutzer zuweisen. - label: Benutzer + criteria: + empty: Es wurden keine Kriterien festgelegt. + label: Kriterien + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: Für den ausgewählten Benutzer sind für den ausgewählten Zeitraum keine Arbeitszeiten konfiguriert, daher kann keine Kapazität ermittelt werden. partial: Für den ausgewählten Benutzer sind für den Zeitraum %{dates} keine Arbeitszeiten konfiguriert, daher kann keine Kapazität ermittelt werden. outside_dates: description: Die ausgewählten Zeiten (%{resource_dates}) liegen außerhalb der geplanten Zeiten des Arbeitspakets (%{work_package_dates}). overbooking: - capacity_summary: "%{available} verfügbar · %{scheduled} geplant" description: Der ausgewählte Benutzer, %{user}, würde in diesem Zeitraum über seine Arbeitszeit hinaus verplant werden. - hidden_work: Sonstige Zuweisungen + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% für Projektarbeit verfügbar)" schedule_change: bis %{date}, dann %{schedule} schedule_note: Dieser Benutzer arbeitet %{schedule}. submit: Überstunden zuweisen title: Möchten Sie dem Benutzer Überstunden zuweisen? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Zuweisen success_message: Ressource zugewiesen. title: Ressourcen zuweisen @@ -131,6 +145,7 @@ de: title: "%{filter_name} zuweisen" blankslate: desc: Erstellen Sie einen Ressourcenplaner, um Kapazitäten für dieses Projekt zu planen. + global_desc: Erstellen Sie einen Ressourcenplaner, um Kapazitäten projektübergreifend zu planen. title: Keine Ressourcenplaner vorhanden configure_view_dialog: delete_confirmation: Sind Sie sicher, dass Sie diese Ansicht löschen möchten? Dies kann nicht rückgängig gemacht werden. @@ -143,15 +158,23 @@ de: caption: Eine benutzerdefinierte Liste von Artikeln, die Sie manuell hinzufügen und entfernen. Eine Filterung ist nicht möglich. label: Manuell ausgewählt title: Ansicht konfigurieren + create_placeholder_user_dialog: + submit: Erstellen + title: Neuer Platzhalter-Benutzer edit_allocation_dialog: submit: Speichern success_message: Ressourcenzuordnung aktualisiert. title: Zuweisung bearbeiten favorite_caption: Machen Sie diese Ansicht zu einem Favoriten, um sie im oberen Bereich des Seitenleistenmenüs hinzuzufügen. + filters: + resource_management_enabled: Ressourcenmanagement aktiviert + global_public_caption: Machen Sie diese Ansicht für Nutzer öffentlich, die zur Einsicht in globale Ressourcenplaner berechtigt sind. Dies hat keine Auswirkungen auf die Sichtbarkeit der Arbeitspakete, die weiterhin von den jeweiligen Benutzerberechtigungen abhängt. label_edit_resource_planner: Ressourcenplaner bearbeiten label_new_resource_planner: Ressourcenplaner erstellen label_resource_planner: Ressourcenplaner label_resource_planner_plural: Ressourcenplaner + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Ansicht hinzufügen public_caption: Machen Sie diese Ansicht für alle Mitglieder des Projekts öffentlich. Dies hat keine Auswirkungen auf die Sichtbarkeit von Arbeitspaketen, die immer noch von den jeweiligen Benutzerrechten abhängt. @@ -192,13 +215,16 @@ de: add: Hinzufügen allocate: Zuweisen settings: Ansicht konfigurieren + undisclosed: + tooltip: Sie verfügen nicht über die erforderlichen Berechtigungen, um diese zugewiesene Ressource einzusehen + work_package: Nicht sichtbares Arbeitspaket user_allocations_dialog: allocate_work_package: Arbeitspakete zuweisen blank: Diesem Benutzer wurden keine Arbeitspakete zugewiesen. - other_work_packages: - one: ein anderes Arbeitspaket - other: "%{count} andere Arbeitspakete" + blank_in_timeframe: Diesem Benutzer wurden im ausgewählten Zeitraum keine Arbeitspakete zugewiesen. + hidden_work_package: Nicht sichtbares Arbeitspaket title: Auslastung + total_time: "%{hours} insgesamt" user_card_list: add_user_dialog: title: Benutzer hinzufügen @@ -235,7 +261,8 @@ de: no_work_schedule: Für den Benutzer ist kein Arbeitszeitplan hinterlegt overbooked: Dieser Benutzer ist im ausgewählten Zeitraum überbucht. overbooked_tooltip: - range: "%{dates}: %{scheduled} geplant, %{available} verfügbar" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Benutzer hinzufügen view_types: diff --git a/modules/resource_management/config/locales/crowdin/el.yml b/modules/resource_management/config/locales/crowdin/el.yml index 714290272411..84959c5a2379 100644 --- a/modules/resource_management/config/locales/crowdin/el.yml +++ b/modules/resource_management/config/locales/crowdin/el.yml @@ -2,17 +2,20 @@ el: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ el: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ el: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ el: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ el: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ el: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ el: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ el: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ el: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/eo.yml b/modules/resource_management/config/locales/crowdin/eo.yml index 4adf340732f0..1cb1dd5e3549 100644 --- a/modules/resource_management/config/locales/crowdin/eo.yml +++ b/modules/resource_management/config/locales/crowdin/eo.yml @@ -2,17 +2,20 @@ eo: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ eo: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ eo: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ eo: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ eo: make_public: Make public unfavorite: Forigi el favoritoj allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ eo: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ eo: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Agordi vidon + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Konservi success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Aldoni vidon public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ eo: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Aldoni uzanton @@ -235,7 +261,8 @@ eo: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/es.yml b/modules/resource_management/config/locales/crowdin/es.yml index 919e1e913d51..9886895cc03c 100644 --- a/modules/resource_management/config/locales/crowdin/es.yml +++ b/modules/resource_management/config/locales/crowdin/es.yml @@ -2,17 +2,20 @@ es: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Criterios de filtrado resource_allocation: allocated_hours: Horas allocated_time: Tiempo asignado date_range: Fechas end_date: Fecha de finalización entity: Entidad - filter_name: Nombre del filtro de recursos + placeholder_or_user: Asignado + placeholder_user: Usuario comodín principal: Asignado start_date: Fecha de inicio state: Estado - user_filter: Filtro de usuarios resource_planner: date_range: Fechas default_view_class_name: Vista por defecto @@ -21,12 +24,19 @@ es: name: Nombre public: Público start_date: Fecha de inicio + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: debe ser posterior a la fecha de inicio. + principal: + not_a_member: no es miembro del proyecto del paquete de trabajo. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ es: resource_work_package_timeline: one: Calendario de los paquetes de trabajo other: Calendarios de los paquetes de trabajo + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Siguiente ee: features: @@ -70,8 +83,12 @@ es: permission_allocate_user_resources_explanation: Permite a los usuarios crear, actualizar y eliminar asignaciones de recursos dentro de un planificador de recursos. Esto incluye asignar usuarios (o filtros de usuarios) a un planificador y ajustar el intervalo de tiempo y fecha asignado. permission_assign_users_to_generic_allocations: Asociar usuarios a asignaciones genéricas permission_assign_users_to_generic_allocations_explanation: Permite a los usuarios utilizar la vista de personal para asignar usuarios reales a asignaciones genéricas (basadas en filtros) de recursos que aún no tienen un usuario. No permite crear o editar asignaciones. + permission_manage_public_global_resource_planners: Gestionar los planificadores de recursos globales públicos + permission_manage_public_global_resource_planners_explanation: Permite a los usuarios publicar sus propios planificadores de recursos globales y gestionar los planificadores de recursos globales que otros usuarios hayan compartido públicamente. No permite a los usuarios consultar los planificadores de recursos globales que no se hayan compartido públicamente. permission_manage_public_resource_planners: Gestionar los planificadores de recursos públicos permission_manage_public_resource_planners_explanation: Permite a los usuarios crear y gestionar planificadores de recursos públicos. Les permite ver, crear, gestionar y publicar sus propios planificadores de recursos. No permite a los usuarios ver los planificadores de recursos creados por otros usuarios que no se hayan compartido públicamente. + permission_view_global_resource_planners: Ver planificadores de recursos globales + permission_view_global_resource_planners_explanation: Permite a los usuarios acceder a la sección del planificador de recursos globales, donde se pueden planificar conjuntamente los recursos y las asignaciones de varios proyectos. Les permite crear y gestionar sus propios planificadores de recursos globales, así como consultar los que son de acceso público. Los usuarios solo ven los proyectos, los recursos y las asignaciones a los que tienen permiso para acceder. permission_view_resource_planners: Ver planificadores de recursos permission_view_resource_planners_explanation: Permite a los usuarios acceder a los planificadores de recursos. Les permite crear y gestionar sus propios planificadores de recursos, así como consultar los planificadores de recursos públicos. No permite a los usuarios consultar los planificadores de recursos creados por otros usuarios que no se hayan compartido públicamente. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ es: make_public: Marcar como público unfavorite: Eliminar de favoritos allocate_resource_dialog: - kind: - filter: - caption: Establece criterios de filtrado basados en los atributos de usuarios para crear un recurso de marcador de posición. - label: Criterios de filtrado - label: Tipo de asignación - principal: - caption: Asignar horas para un usuario específico. - label: Usuario + criteria: + empty: No se han establecido criterios. + label: Criterios + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: El usuario seleccionado no tiene configuradas horas de trabajo para estas fechas, por lo que se considera que no tiene disponibilidad. partial: El usuario seleccionado no tiene configuradas horas de trabajo para %{dates}, por lo que se considera que no tiene disponibilidad en esas fechas. outside_dates: description: Las fechas del recurso seleccionado, %{resource_dates}, están fuera de las fechas del paquete de trabajo, %{work_package_dates}. overbooking: - capacity_summary: "%{available} disponible · %{scheduled} programado" description: El usuario seleccionado, %{user}, sería asignado más allá de su horario laboral durante este periodo. - hidden_work: Otras asignaciones + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% disponible para trabajo de proyecto)" schedule_change: hasta %{date}, luego %{schedule} schedule_note: Este usuario trabaja %{schedule}. submit: Asignar horas extra title: "¿Quieres asignar horas extra al usuario?" + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Asignar success_message: Recurso asignado. title: Asignar recurso @@ -131,6 +145,7 @@ es: title: Asignar %{filter_name} blankslate: desc: Cree un planificador de recursos para empezar a planificar la capacidad de este proyecto. + global_desc: Cree un planificador de recursos para empezar a planificar la capacidad de los proyectos. title: Aún no hay planificadores de recursos configure_view_dialog: delete_confirmation: "¿Seguro que deseas eliminar esta vista? Esta acción no se puede deshacer." @@ -143,15 +158,23 @@ es: caption: Una lista personalizada de elementos que puedes añadir y eliminar manualmente. No se puede filtrar los resultados. label: Selección manual title: Configurar vista + create_placeholder_user_dialog: + submit: Crear + title: Crear usuario comodín edit_allocation_dialog: submit: Guardar success_message: Asignación de recursos actualizada. title: Editar asignación favorite_caption: Convierta esta vista en favorita para añadirla a la sección superior del menú de la barra lateral. + filters: + resource_management_enabled: Gestión de recursos habilitada + global_public_caption: Haga que esta vista sea pública para todas las personas autorizadas a consultar los planificadores de recursos globales. Esto no afecta a la visibilidad de los paquetes de trabajo, que sigue dependiendo de los permisos de cada usuario. label_edit_resource_planner: Editar planificador de recursos label_new_resource_planner: Nuevo planificador de recursos label_resource_planner: Planificador de recursos label_resource_planner_plural: Planificadores de recursos + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Añadir vista public_caption: Haga que esta vista sea pública para todos los miembros del proyecto. Esto no afecta a la visibilidad de los paquetes de trabajo, que sigue dependiendo de los permisos de cada usuario. @@ -192,13 +215,16 @@ es: add: Añadir allocate: Asignar settings: Configurar vista + undisclosed: + tooltip: No tiene permiso para ver este recurso asignado + work_package: Paquete de trabajo no visible para usted user_allocations_dialog: allocate_work_package: Asignar un paquete de trabajo blank: Este usuario no tiene paquetes de trabajo asignados. - other_work_packages: - one: 1 paquete de trabajo más - other: "%{count} paquetes de trabajo más" + blank_in_timeframe: Este usuario no tiene ningún paquete de trabajo asignado en el periodo seleccionado. + hidden_work_package: Paquete de trabajo no visible para usted title: Utilización + total_time: "%{hours} en total" user_card_list: add_user_dialog: title: Añadir usuario @@ -235,7 +261,8 @@ es: no_work_schedule: No hay ningún cronograma de trabajo previsto para este usuario overbooked: Este usuario ha superado su asignación total en el periodo seleccionado. overbooked_tooltip: - range: "%{dates}: %{scheduled} programado, %{available} disponible" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Añadir usuario view_types: diff --git a/modules/resource_management/config/locales/crowdin/et.yml b/modules/resource_management/config/locales/crowdin/et.yml index 9f4384d0ce5c..aea099607f61 100644 --- a/modules/resource_management/config/locales/crowdin/et.yml +++ b/modules/resource_management/config/locales/crowdin/et.yml @@ -2,17 +2,20 @@ et: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ et: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ et: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ et: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ et: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ et: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ et: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ et: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ et: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/eu.yml b/modules/resource_management/config/locales/crowdin/eu.yml index b5a9bd13a649..7ee37e7f950a 100644 --- a/modules/resource_management/config/locales/crowdin/eu.yml +++ b/modules/resource_management/config/locales/crowdin/eu.yml @@ -2,17 +2,20 @@ eu: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ eu: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ eu: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ eu: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ eu: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ eu: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ eu: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ eu: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ eu: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/fa.yml b/modules/resource_management/config/locales/crowdin/fa.yml index 318d30730984..44c30aedf737 100644 --- a/modules/resource_management/config/locales/crowdin/fa.yml +++ b/modules/resource_management/config/locales/crowdin/fa.yml @@ -2,17 +2,20 @@ fa: activerecord: attributes: + placeholder_user: + resource_allocations: تخصیص منابع + user_filter: معیارهای فیلتر resource_allocation: allocated_hours: ساعت‌ها allocated_time: زمان تخصیص‌یافته date_range: تاریخ‌ها end_date: تاریخ پایان entity: موجودیت - filter_name: نام فیلتر منبع + placeholder_or_user: مسئول + placeholder_user: کاربر فرضی principal: مسئول انجام start_date: تاریخ شروع state: حالت - user_filter: فیلتر کاربر resource_planner: date_range: تاریخ‌ها default_view_class_name: نمای پیش‌فرض @@ -21,12 +24,19 @@ fa: name: نام public: عمومی start_date: تاریخ شروع + work_package: + allocated_principals: منابع تخصیص‌یافته + allocated_time: تخصیص‌یافته errors: models: + placeholder_user: + used_in_resource_allocations: این کاربر جایگزین هنوز در تخصیص منابع استفاده می‌شود. پیش از حذف آن، این تخصیص‌ها را به شخص دیگری واگذار یا حذف کنید. resource_allocation: attributes: end_date: greater_than_start_date: باید بعد از تاریخ شروع باشد. + principal: + not_a_member: عضو پروژه بسته کاری نیست. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ fa: resource_work_package_timeline: one: خط زمانی بسته‌های کاری other: خطوط زمانی بسته‌های کاری + api_v3: + undisclosed: + allocatedPrincipal: پنهان — کاربر تخصیص‌یافته به‌دلیل نداشتن مجوزهای لازم قابل مشاهده نیست. button_next: بعدی ee: features: @@ -70,8 +83,12 @@ fa: permission_allocate_user_resources_explanation: به کاربران اجازه می‌دهد تخصیص منابع را در برنامه‌ریز منابع ایجاد، به‌روزرسانی و حذف کنند. این شامل تخصیص کاربران یا فیلتر کاربران و تنظیم زمان و بازهٔ تاریخ تخصیص است. permission_assign_users_to_generic_allocations: اختصاص کاربران به تخصیص‌های عمومی permission_assign_users_to_generic_allocations_explanation: به کاربران اجازه می‌دهد در نمای Staffing کاربران واقعی را به تخصیص‌های عمومی منابع (مبتنی بر فیلتر) که هنوز کاربر ندارند اختصاص دهند. اجازهٔ ایجاد یا ویرایش تخصیص‌ها را نمی‌دهد. + permission_manage_public_global_resource_planners: مدیریت برنامه‌ریزهای عمومی و سراسری منابع + permission_manage_public_global_resource_planners_explanation: به کاربران اجازه می‌دهد برنامه‌ریزهای سراسری منابع خود را منتشر کنند و برنامه‌ریزهای سراسری منابعی را که کاربران دیگر به‌صورت عمومی به اشتراک گذاشته‌اند مدیریت کنند. این مجوز اجازه مشاهده برنامه‌ریزهای سراسری منابعی را که به‌صورت عمومی به اشتراک گذاشته نشده‌اند نمی‌دهد. permission_manage_public_resource_planners: مدیریت برنامه‌ریزهای منابع عمومی permission_manage_public_resource_planners_explanation: به کاربران اجازه می‌دهد برنامه‌ریز منابع عمومی ایجاد و مدیریت کنند؛ شامل مشاهده، ایجاد، مدیریت و انتشار برنامه‌ریزهای خودشان. اجازهٔ مشاهدهٔ برنامه‌ریزهای خصوصی سایر کاربران را نمی‌دهد. + permission_view_global_resource_planners: مشاهده برنامه‌ریزهای سراسری منابع + permission_view_global_resource_planners_explanation: به کاربران اجازه می‌دهد به بخش برنامه‌ریز سراسری منابع دسترسی داشته باشند؛ جایی که منابع و تخصیص‌ها از چند پروژه می‌توانند با هم برنامه‌ریزی شوند. همچنین امکان ایجاد و مدیریت برنامه‌ریزهای سراسری منابع خود و مشاهده موارد عمومی را فراهم می‌کند. کاربران فقط پروژه‌ها، منابع و تخصیص‌هایی را می‌بینند که مجاز به مشاهده آن‌ها هستند. permission_view_resource_planners: مشاهدهٔ برنامه‌ریزهای منابع permission_view_resource_planners_explanation: به کاربران اجازهٔ دسترسی به برنامه‌ریز منابع را می‌دهد. آن‌ها می‌توانند برنامه‌ریز خود را ایجاد و مدیریت و برنامه‌ریزهای عمومی را مشاهده کنند، اما برنامه‌ریزهای خصوصی سایر کاربران را نمی‌بینند. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ fa: make_public: عمومی‌کردن unfavorite: حذف از موارد دلخواه allocate_resource_dialog: - kind: - filter: - caption: برای ایجاد یک منبع جایگزین، معیارهای فیلتر را بر اساس ویژگی‌های کاربر تعیین کنید. - label: معیارهای فیلتر - label: نوع تخصیص - principal: - caption: ساعت‌ها را برای یک کاربر مشخص تخصیص دهید. - label: کاربر + criteria: + empty: هیچ معیاری تعیین نشده است. + label: معیارها + deleted_assignee: کاربری که به این تخصیص اختصاص داده شده بود حذف شده است. می‌توانید تخصیص را به همین شکل نگه دارید یا شخص دیگری را انتخاب کنید. missing_working_hours: none: کاربر انتخاب‌شده برای این تاریخ‌ها هیچ ساعت کاری پیکربندی‌شده‌ای ندارد، بنابراین فاقد ظرفیت در نظر گرفته می‌شود. partial: کاربر انتخاب‌شده برای %{dates} هیچ ساعت کاری پیکربندی‌شده‌ای ندارد، بنابراین آن روزها فاقد ظرفیت در نظر گرفته می‌شوند. outside_dates: description: تاریخ‌های انتخاب‌شدهٔ منبع، %{resource_dates}، خارج از بازهٔ تاریخ‌های بستهٔ کاری، %{work_package_dates}، هستند. overbooking: - capacity_summary: "%{available} در دسترس · %{scheduled} زمان‌بندی‌شده" description: کاربر انتخاب‌شده، %{user}، در این بازه بیش از ساعات کاری خود تخصیص خواهد یافت. - hidden_work: سایر تخصیص‌ها + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% در دسترس برای کار پروژه)" schedule_change: تا %{date}، سپس %{schedule} schedule_note: این کاربر طبق %{schedule} کار می‌کند. submit: تخصیص اضافه‌کاری title: آیا می‌خواهید برای کاربر اضافه‌کاری تخصیص دهید؟ + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: تخصیص نیرو از کاربر جایگزین %{placeholder} submit: تخصیص success_message: منبع تخصیص داده شد. title: تخصیص منبع @@ -131,6 +145,7 @@ fa: title: اختصاص %{filter_name} blankslate: desc: برای شروع برنامه‌ریزی ظرفیت این پروژه، یک برنامه‌ریز منابع ایجاد کنید. + global_desc: برای شروع برنامه‌ریزی ظرفیت در چند پروژه، یک برنامه‌ریز منابع ایجاد کنید. title: هنوز برنامه‌ریز منابعی وجود ندارد configure_view_dialog: delete_confirmation: آیا مطمئنید می‌خواهید این نما را حذف کنید؟ این عمل قابل بازگشت نیست. @@ -143,15 +158,23 @@ fa: caption: فهرستی سفارشی از مواردی که به‌صورت دستی اضافه و حذف می‌کنید. امکان فیلترکردن وجود ندارد. label: انتخاب دستی title: پیکربندی نما + create_placeholder_user_dialog: + submit: ایجاد + title: ایجاد کاربر فرضی edit_allocation_dialog: submit: ذخیره success_message: تخصیص منبع به‌روزرسانی شد. title: ویرایش تخصیص favorite_caption: این نما را به موارد دلخواه اضافه کنید تا در بخش بالایی منوی کناری نمایش داده شود. + filters: + resource_management_enabled: مدیریت منابع فعال است + global_public_caption: این نما را برای همه افرادی که اجازه مشاهده برنامه‌ریزهای سراسری منابع را دارند عمومی کنید. این کار بر قابل‌مشاهده‌بودن بسته‌های کاری اثر نمی‌گذارد؛ آن همچنان به مجوزهای هر کاربر بستگی دارد. label_edit_resource_planner: ویرایش برنامه‌ریز منابع label_new_resource_planner: برنامه‌ریز منابع جدید label_resource_planner: برنامه‌ریز منابع label_resource_planner_plural: برنامه‌ریزهای منابع + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: افزودن نما public_caption: این نما را برای همهٔ اعضای پروژه عمومی کنید. این کار بر قابلیت مشاهدهٔ بسته‌های کاری اثری ندارد؛ مشاهدهٔ آن‌ها همچنان به مجوزهای هر کاربر بستگی دارد. @@ -192,13 +215,16 @@ fa: add: افزودن allocate: تخصیص settings: پیکربندی نما + undisclosed: + tooltip: شما مجوز مشاهده این منبع تخصیص‌یافته را ندارید + work_package: بسته کاری برای شما قابل مشاهده نیست user_allocations_dialog: allocate_work_package: تخصیص بستهٔ کاری blank: هیچ بستهٔ کاری‌ای به این کاربر تخصیص داده نشده است. - other_work_packages: - one: ۱ بستهٔ کاری دیگر - other: "%{count} بستهٔ کاری دیگر" + blank_in_timeframe: این کاربر در بازه زمانی انتخاب‌شده هیچ بسته کاری تخصیص‌یافته‌ای ندارد. + hidden_work_package: بسته کاری برای شما قابل مشاهده نیست title: میزان استفاده + total_time: در مجموع %{hours} user_card_list: add_user_dialog: title: افزودن کاربر @@ -235,7 +261,8 @@ fa: no_work_schedule: برای این کاربر برنامهٔ کاری‌ای تعیین نشده است overbooked: این کاربر در بازهٔ انتخاب‌شده بیش‌ازحد تخصیص یافته است. overbooked_tooltip: - range: "%{dates}: %{scheduled} زمان‌بندی‌شده، %{available} در دسترس" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: افزودن کاربر view_types: diff --git a/modules/resource_management/config/locales/crowdin/fi.yml b/modules/resource_management/config/locales/crowdin/fi.yml index aeb4a061c087..5a5e87a7c23b 100644 --- a/modules/resource_management/config/locales/crowdin/fi.yml +++ b/modules/resource_management/config/locales/crowdin/fi.yml @@ -2,17 +2,20 @@ fi: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ fi: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ fi: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ fi: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ fi: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ fi: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ fi: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ fi: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ fi: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/fil.yml b/modules/resource_management/config/locales/crowdin/fil.yml index 1981cbdbbea1..bc12cb81cf20 100644 --- a/modules/resource_management/config/locales/crowdin/fil.yml +++ b/modules/resource_management/config/locales/crowdin/fil.yml @@ -2,17 +2,20 @@ fil: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ fil: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ fil: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ fil: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ fil: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ fil: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ fil: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ fil: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ fil: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/fr.yml b/modules/resource_management/config/locales/crowdin/fr.yml index a942d2be179d..e1774665f814 100644 --- a/modules/resource_management/config/locales/crowdin/fr.yml +++ b/modules/resource_management/config/locales/crowdin/fr.yml @@ -2,17 +2,20 @@ fr: activerecord: attributes: + placeholder_user: + resource_allocations: Allocations de ressources + user_filter: Critères de filtrage resource_allocation: allocated_hours: Heures allocated_time: Temps affecté date_range: Dates end_date: Date de fin entity: Entité - filter_name: Nom du filtre de ressources + placeholder_or_user: Personne assignée + placeholder_user: Utilisateur fictif principal: Personne assignée start_date: Date de début state: État - user_filter: Filtre utilisateur resource_planner: date_range: Dates default_view_class_name: Vue par défaut @@ -21,12 +24,19 @@ fr: name: Nom public: Public start_date: Date de début + work_package: + allocated_principals: Ressources allouées + allocated_time: Alloué errors: models: + placeholder_user: + used_in_resource_allocations: Cet utilisateur de l'espace réservé est toujours utilisé dans les allocations de ressources. Réaffecter ou supprimer ces allocations avant de les supprimer. resource_allocation: attributes: end_date: greater_than_start_date: doit être postérieure à la date de début. + principal: + not_a_member: n'est pas membre du projet du lot de travaux. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ fr: resource_work_package_timeline: one: Chronologie des lots de travaux other: Chronologies des lots de travaux + api_v3: + undisclosed: + allocatedPrincipal: Non divulgué - L'utilisateur alloué est invisible en raison de l'absence de permissions. button_next: Suivant ee: features: @@ -70,8 +83,12 @@ fr: permission_allocate_user_resources_explanation: Permet aux utilisateurs de créer, mettre à jour et supprimer des affectations de ressources dans un planificateur de ressources. Cela inclut l'attribution d'utilisateurs (ou de filtres d'utilisateurs) à un planificateur ainsi que l'ajustement du temps affecté et de la période. permission_assign_users_to_generic_allocations: Affecter des utilisateurs à des affectations génériques permission_assign_users_to_generic_allocations_explanation: Permet d'utiliser la vue « Effectifs » pour affecter des utilisateurs réels à des affectations de ressources génériques (basées sur des filtres) qui ne sont pas encore associées à un utilisateur. Cette autorisation ne permet pas de créer ni de modifier des affectations. + permission_manage_public_global_resource_planners: Gérer les planificateurs de ressources globaux publics + permission_manage_public_global_resource_planners_explanation: Permet aux utilisateurs de rendre publics leurs propres planificateurs de ressources globaux et de gérer ceux que d'autres utilisateurs ont partagés publiquement. Cela ne leur permet pas de consulter les planificateurs de ressources globaux qui ne sont pas partagés publiquement. permission_manage_public_resource_planners: Gérer les planificateurs de ressources publiques permission_manage_public_resource_planners_explanation: Permet aux utilisateurs de créer et de gérer des planificateurs de ressources publics. Cela leur permet de visualiser, de créer, de gérer et de publier leurs propres planificateurs de ressources. Cela ne leur permet pas de visualiser les planificateurs de ressources qui ont été créés par d'autres utilisateurs et qui ne sont pas partagés publiquement. + permission_view_global_resource_planners: Voir les planificateurs de ressources globaux + permission_view_global_resource_planners_explanation: Permet aux utilisateurs d'accéder à la section des planificateurs de ressources globaux, où les ressources et les affectations de plusieurs projets peuvent être planifiées ensemble. Ils peuvent créer et gérer leurs propres planificateurs de ressources globaux et consulter ceux qui sont publics. Les utilisateurs ne voient que les projets, les ressources et les affectations qu'ils sont autorisés à consulter. permission_view_resource_planners: Voir les planificateurs de ressources permission_view_resource_planners_explanation: Permet aux utilisateurs d'accéder aux planificateurs de ressources. Cela leur permet de créer et de gérer leurs propres planificateurs de ressources et de consulter les planificateurs de ressources publics. Cela ne leur permet pas de consulter les planificateurs de ressources qui ont été créés par d'autres utilisateurs et qui ne sont pas partagés publiquement. plugin_openproject_resource_management: @@ -87,30 +104,25 @@ fr: make_public: Rendre public unfavorite: Supprimer des favoris allocate_resource_dialog: - kind: - filter: - caption: 'Définissez des critères de filtrage en fonction des attributs utilisateur afin de créer une ressource fictive. - - ' - label: Critères de filtrage - label: Type d'allocation - principal: - caption: Attribuer des heures à un utilisateur spécifique. - label: Utilisateur + criteria: + empty: Aucun critère défini. + label: Critères + deleted_assignee: L'utilisateur assigné à cette allocation a été supprimé. Vous pouvez conserver l'allocation telle quelle ou choisir quelqu'un d'autre. missing_working_hours: none: Aucun horaire de travail n'est configuré pour l'utilisateur sélectionné à ces dates. Sa capacité est donc considérée comme nulle. partial: 'Aucun horaire de travail n''est configuré pour l''utilisateur sélectionné aux dates suivantes : %{dates}. Sa capacité est donc considérée comme nulle pour ces jours.' outside_dates: description: Les dates de la ressource sélectionnée, %{resource_dates}, ne correspondent pas aux dates du lot de travaux, %{work_package_dates}. overbooking: - capacity_summary: "%{available} disponible · %{scheduled} prévu" description: L'utilisateur sélectionné, %{user}, serait affecté à des tâches en dehors de ses heures de travail pendant cette période. - hidden_work: Autres relations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor} % de disponibilité pour des projets)" schedule_change: jusqu'au %{date}, puis %{schedule} schedule_note: Cet utilisateur utilise l'adresse %{schedule}. submit: Attribuer des heures supplémentaires title: Souhaitez-vous attribuer des heures supplémentaires à l'utilisateur ? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Personnel de l'utilisateur de placeholder %{placeholder} submit: Attribuer success_message: Ressource attribuée. title: Attribuer une ressource @@ -133,6 +145,7 @@ fr: title: Affecter %{filter_name} blankslate: desc: Créez un planificateur de ressources pour commencer à planifier la capacité de ce projet. + global_desc: Créez un planificateur de ressources pour commencer à planifier les capacités entre plusieurs projets. title: Aucun planificateur de ressources pour le moment configure_view_dialog: delete_confirmation: Voulez-vous vraiment supprimer cette vue ? Cette action est irréversible. @@ -145,15 +158,23 @@ fr: caption: Une liste personnalisée d'éléments que vous ajoutez et supprimez manuellement. Le filtrage n'est pas possible. label: Sélection manuelle title: Configurer la vue + create_placeholder_user_dialog: + submit: Créer + title: Créer un utilisateur fictif edit_allocation_dialog: submit: Enregistrer success_message: Attribution des ressources mise à jour. title: Modifier l'attribution favorite_caption: Faites de cette vue un favori pour l'ajouter à la section supérieure du menu de la barre latérale. + filters: + resource_management_enabled: Gestion des ressources activée + global_public_caption: Rendre cette vue publique pour toutes les personnes autorisées à consulter les planificateurs de ressources globaux. Cela n'affecte pas la visibilité des lots de travaux, qui dépend toujours des autorisations de chaque utilisateur. label_edit_resource_planner: Modifier le planificateur de ressources label_new_resource_planner: Nouveau planificateur de ressources label_resource_planner: Planificateur de ressources label_resource_planner_plural: Planificateurs de ressources + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Ajouter une vue public_caption: Rendez cette vue publique pour tous les membres du projet. Cela n'affecte pas la visibilité des lots de travaux, qui dépend toujours de l'autorisation de chaque utilisateur. @@ -194,13 +215,16 @@ fr: add: Ajouter allocate: Affecter settings: Configurer la vue + undisclosed: + tooltip: Vous n'avez pas l'autorisation de voir cette ressource affectée + work_package: Lot de travaux non visible pour vous user_allocations_dialog: allocate_work_package: Attribuer un lot de travaux blank: Cet utilisateur n'a aucun lot de travaux qui lui a été attribué. - other_work_packages: - one: 1 autre lot de travaux - other: "%{count} autres lots de travaux" + blank_in_timeframe: Aucun lot de travaux n'est affecté à cet utilisateur dans la période sélectionnée. + hidden_work_package: Lot de travaux non visible pour vous title: Utilisation + total_time: "%{hours} au total" user_card_list: add_user_dialog: title: Ajouter un utilisateur @@ -237,7 +261,8 @@ fr: no_work_schedule: Aucun horaire de travail n'est prévu pour cet utilisateur overbooked: Cet utilisateur est en surcharge d'affectation pendant la période sélectionnée. overbooked_tooltip: - range: "%{dates} : %{scheduled} planifiées, %{available} disponibles" + dates: Au-delà des heures de travail sur %{dates} + unplannable: Cet utilisateur n'a pas de jour de travail durant cette période. subheader: add_user: Ajouter un utilisateur view_types: diff --git a/modules/resource_management/config/locales/crowdin/he.yml b/modules/resource_management/config/locales/crowdin/he.yml index aea3d391a3cd..222e574768a4 100644 --- a/modules/resource_management/config/locales/crowdin/he.yml +++ b/modules/resource_management/config/locales/crowdin/he.yml @@ -2,17 +2,20 @@ he: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ he: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -63,6 +73,9 @@ he: one: Work packages timeline two: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -76,8 +89,12 @@ he: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -93,28 +110,25 @@ he: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -137,6 +151,7 @@ he: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -149,15 +164,23 @@ he: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -198,14 +221,16 @@ he: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - two: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -242,7 +267,8 @@ he: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/hi.yml b/modules/resource_management/config/locales/crowdin/hi.yml index 30d2364738ef..0b1945f6ccb7 100644 --- a/modules/resource_management/config/locales/crowdin/hi.yml +++ b/modules/resource_management/config/locales/crowdin/hi.yml @@ -2,17 +2,20 @@ hi: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ hi: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ hi: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ hi: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ hi: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ hi: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ hi: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ hi: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ hi: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/hr.yml b/modules/resource_management/config/locales/crowdin/hr.yml index cb57b6909b29..0a950ff3a6d2 100644 --- a/modules/resource_management/config/locales/crowdin/hr.yml +++ b/modules/resource_management/config/locales/crowdin/hr.yml @@ -2,17 +2,20 @@ hr: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ hr: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -63,6 +73,9 @@ hr: one: Work packages timeline few: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -76,8 +89,12 @@ hr: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -93,28 +110,25 @@ hr: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -137,6 +151,7 @@ hr: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -149,15 +164,23 @@ hr: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -198,14 +221,16 @@ hr: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -242,7 +267,8 @@ hr: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/hu.yml b/modules/resource_management/config/locales/crowdin/hu.yml index 26cba3e59e76..cb6dc14bb4b0 100644 --- a/modules/resource_management/config/locales/crowdin/hu.yml +++ b/modules/resource_management/config/locales/crowdin/hu.yml @@ -2,17 +2,20 @@ hu: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ hu: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ hu: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ hu: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ hu: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ hu: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ hu: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ hu: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ hu: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/hy.yml b/modules/resource_management/config/locales/crowdin/hy.yml index d3c765f0ceec..0392d7a61470 100644 --- a/modules/resource_management/config/locales/crowdin/hy.yml +++ b/modules/resource_management/config/locales/crowdin/hy.yml @@ -2,17 +2,20 @@ hy: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Ժամեր allocated_time: Հատկացված ժամանակ date_range: Ամսաթվեր end_date: Ավարտի ամսաթիվ entity: Էություն - filter_name: Ռեսուրսի զտիչի անվանում + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Պատասխանատու start_date: Սկզբի ամսաթիվ state: Վիճակ - user_filter: Օգտատերերի զտիչ resource_planner: date_range: Ամսաթվեր default_view_class_name: Կանխադրված տեսք @@ -21,12 +24,19 @@ hy: name: Անվանում public: Հանրային start_date: Սկզբի ամսաթիվ + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: պետք է լինի սկզբի ամսաթվից հետո։ + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ hy: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Հաջորդ ee: features: @@ -70,8 +83,12 @@ hy: permission_allocate_user_resources_explanation: Թույլ է տալիս օգտատերերին ստեղծել, թարմացնել և ջնջել ռեսուրսների հատկացումները ռեսուրսների պլանավորիչի ներսում։ Սա ներառում է օգտատերերի (կամ օգտատերերի զտիչների) նշանակումը պլանավորիչին և հատկացված ժամանակի ու ամսաթվերի միջակայքի ճշգրտումը։ permission_assign_users_to_generic_allocations: Նշանակել օգտատերերին ընդհանրական հատկացումներին permission_assign_users_to_generic_allocations_explanation: Թույլ է տալիս օգտատերերին օգտագործել Կադրերի համալրման տեսքը՝ իրական օգտատերերին նշանակելու այն ընդհանրական (զտիչի վրա հիմնված) ռեսուրսների հատկացումներին, որոնք դեռ օգտատեր չունեն։ Այն թույլ չի տալիս ստեղծել կամ խմբագրել հատկացումներ։ + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Կառավարել հանրային ռեսուրսների պլանավորիչները permission_manage_public_resource_planners_explanation: Թույլ է տալիս օգտատերերին ստեղծել և կառավարել հանրային ռեսուրսների պլանավորիչներ։ Այն թույլ է տալիս նրանց դիտել, ստեղծել, կառավարել և հրապարակել իրենց սեփական ռեսուրսների պլանավորիչները։ Այն թույլ չի տալիս օգտատերերին դիտել այլ օգտատերերի ստեղծած ռեսուրսների պլանավորիչները, որոնք հանրորեն համօգտագործված չեն։ + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: Դիտել ռեսուրսների պլանավորիչները permission_view_resource_planners_explanation: Թույլ է տալիս օգտատերերին հասանելիություն ունենալ ռեսուրսների պլանավորիչներին։ Այն թույլ է տալիս նրանց ստեղծել և կառավարել իրենց սեփական ռեսուրսների պլանավորիչները և դիտել հանրային ռեսուրսների պլանավորիչները։ Այն թույլ չի տալիս օգտատերերին դիտել այլ օգտատերերի ստեղծած ռեսուրսների պլանավորիչները, որոնք հանրորեն համօգտագործված չեն։ plugin_openproject_resource_management: @@ -87,28 +104,25 @@ hy: make_public: Դարձնել հրապարակային unfavorite: Հեռացնել ընտրյալներից allocate_resource_dialog: - kind: - filter: - caption: Սահմանեք զտիչի չափանիշներ՝ հիմնված օգտատիրոջ հատկանիշների վրա, տեղապահ ռեսուրս ստեղծելու համար։ - label: Զտիչի չափանիշներ - label: Հատկացման տեսակ - principal: - caption: Հատկացրեք ժամեր կոնկրետ օգտատիրոջ համար։ - label: Օգտատեր + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: Ընտրված ռեսուրսի ամսաթվերը՝ %{resource_dates}, դուրս են աշխատանքային փաթեթի ամսաթվերից՝ %{work_package_dates}։ overbooking: - capacity_summary: "%{available} հասանելի · %{scheduled} պլանավորված" description: Ընտրված օգտատիրոջ՝ %{user}-ի հատկացումն այս ժամանակահատվածում կգերազանցի նրա աշխատանքային ժամերը։ - hidden_work: Այլ հատկացումներ + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% հասանելի է նախագծային աշխատանքի համար)" schedule_change: մինչև %{date}, ապա %{schedule} schedule_note: Այս օգտատերն աշխատում է %{schedule}։ submit: Հատկացնել արտաժամյա աշխատանք title: Ցանկանո՞ւմ եք օգտատիրոջը հատկացնել արտաժամյա աշխատանք։ + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Հատկացնել success_message: Ռեսուրսը հատկացվել է։ title: Հատկացնել ռեսուրս @@ -131,6 +145,7 @@ hy: title: Նշանակել %{filter_name} blankslate: desc: Ստեղծեք ռեսուրսների պլանավորիչ՝ այս նախագծի հզորությունների պլանավորումը սկսելու համար։ + global_desc: Create a resource planner to start planning capacity across projects. title: Դեռ ռեսուրսների պլանավորիչներ չկան configure_view_dialog: delete_confirmation: Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս տեսքը։ Սա անշրջելի է։ @@ -143,15 +158,23 @@ hy: caption: Տարրերի հատուկ ցուցակ, որոնք Դուք ձեռքով եք ավելացնում և հեռացնում։ Զտումը հնարավոր չէ։ label: Ձեռքով ընտրված title: Կազմաձևել տեսքը + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Պահպանել success_message: Ռեսուրսի հատկացումը թարմացվել է։ title: Խմբագրել հատկացումը favorite_caption: Ավելացրեք այս տեսքն ընտրանիում՝ այն կողային ցանկի վերին բաժնում ցուցադրելու համար։ + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Խմբագրել ռեսուրսների պլանավորիչը label_new_resource_planner: Նոր ռեսուրսների պլանավորիչ label_resource_planner: Ռեսուրսների պլանավորիչ label_resource_planner_plural: Ռեսուրսների պլանավորիչներ + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Ավելացնել տեսք public_caption: Դարձրեք այս տեսքը հանրային նախագծի բոլոր անդամների համար։ Սա չի ազդում աշխատանքային փաթեթների տեսանելիության վրա, որը շարունակում է կախված լինել յուրաքանչյուր օգտատիրոջ թույլտվությունից։ @@ -192,13 +215,16 @@ hy: add: Ավելացնել allocate: Հատկացնել settings: Կազմաձևել տեսքը + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Հատկացնել աշխատանքային փաթեթ blank: Այս օգտատերը հատկացված աշխատանքային փաթեթներ չունի։ - other_work_packages: - one: ևս 1 աշխատանքային փաթեթ - other: ևս %{count} աշխատանքային փաթեթ + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Բեռնվածություն + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Ավելացնել օգտատեր @@ -235,7 +261,8 @@ hy: no_work_schedule: Այս օգտատիրոջ համար աշխատանքային ժամանակացույց պլանավորված չէ overbooked: Այս օգտատերն ընտրված ժամանակահատվածում գերբեռնված է։ overbooked_tooltip: - range: "%{dates}՝ %{scheduled} պլանավորված, %{available} հասանելի" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Ավելացնել օգտատեր view_types: diff --git a/modules/resource_management/config/locales/crowdin/id.yml b/modules/resource_management/config/locales/crowdin/id.yml index 9f0e7b267440..f2c7a84f4705 100644 --- a/modules/resource_management/config/locales/crowdin/id.yml +++ b/modules/resource_management/config/locales/crowdin/id.yml @@ -2,17 +2,20 @@ id: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ id: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ id: other: Work packages lists resource_work_package_timeline: other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -64,8 +77,12 @@ id: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ id: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ id: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ id: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -186,12 +209,16 @@ id: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ id: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/it.yml b/modules/resource_management/config/locales/crowdin/it.yml index 61e8ff5cad55..674648388385 100644 --- a/modules/resource_management/config/locales/crowdin/it.yml +++ b/modules/resource_management/config/locales/crowdin/it.yml @@ -2,17 +2,20 @@ it: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Criteri di filtro resource_allocation: allocated_hours: Ore allocated_time: Tempo assegnato date_range: Date end_date: Data di fine entity: Entità - filter_name: Nome del filtro delle risorse + placeholder_or_user: Assegnatario + placeholder_user: Utente segnaposto principal: Assegnatario start_date: Data di inizio state: Stato - user_filter: Filtro utente resource_planner: date_range: Date default_view_class_name: Vista predefinita @@ -21,12 +24,19 @@ it: name: Nome public: Pubblico start_date: Data di inizio + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: deve essere successiva alla data di inizio. + principal: + not_a_member: non è membro del progetto della macro-attività. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ it: resource_work_package_timeline: one: Cronologia delle macro-attività other: Cronologie delle macro-attività + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Avanti ee: features: @@ -70,8 +83,12 @@ it: permission_allocate_user_resources_explanation: Consente di creare, aggiornare ed eliminare allocazioni delle risorse all'interno di un pianificatore risorse. Ciò include l'assegnazione di utenti o filtri utente a un pianificatore e la regolazione del tempo allocato e dell'intervallo di date. permission_assign_users_to_generic_allocations: Assegna utenti alle allocazioni generiche permission_assign_users_to_generic_allocations_explanation: Consente agli utenti di utilizzare la vista Staffing per assegnare utenti reali ad allocazioni di risorse generiche, basate su filtri, a cui non è ancora associato alcun utente. Non consente di creare o modificare le allocazioni. + permission_manage_public_global_resource_planners: Gestisci pianificatori globali delle risorse pubblici + permission_manage_public_global_resource_planners_explanation: Consente agli utenti di pubblicare i propri pianificatori globali delle risorse e di gestire quelli che altri utenti hanno condiviso pubblicamente. Non consente di visualizzare i pianificatori globali delle risorse che non sono condivisi pubblicamente. permission_manage_public_resource_planners: Gestire i pianificatori di risorse pubbliche permission_manage_public_resource_planners_explanation: Consente agli utenti di creare e gestire pianificatori delle risorse pubblici. Permette loro di visualizzare, creare, gestire e pubblicare i propri pianificatori delle risorse. Non consente di visualizzare i pianificatori delle risorse creati da altri utenti che non sono condivisi pubblicamente. + permission_view_global_resource_planners: Visualizza pianificatori globali delle risorse + permission_view_global_resource_planners_explanation: Consente agli utenti di accedere alla sezione del pianificatore globale delle risorse, in cui è possibile pianificare insieme risorse e allocazioni di più progetti. Consente di creare e gestire i propri pianificatori globali delle risorse e di visualizzare quelli pubblici. Gli utenti vedono esclusivamente i progetti, le risorse e le allocazioni per cui dispongono delle autorizzazioni necessarie. permission_view_resource_planners: Visualizza i pianificatori di risorse permission_view_resource_planners_explanation: Consente agli utenti di accedere ai pianificatori delle risorse. Permette loro di creare e gestire i propri pianificatori delle risorse e di visualizzare quelli pubblici. Non consente di visualizzare i pianificatori delle risorse creati da altri utenti che non sono condivisi pubblicamente. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ it: make_public: Rendi pubblico unfavorite: Rimuovi dai preferiti allocate_resource_dialog: - kind: - filter: - caption: Imposta criteri di filtro basati sugli attributi utente per creare una risorsa segnaposto. - label: Criteri di filtro - label: Tipo di allocazione - principal: - caption: Assegnare ore a un utente specifico. - label: Utente + criteria: + empty: Nessun criterio impostato. + label: Criteri + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: L'utente selezionato non ha ore lavorative configurate per queste date, pertanto viene considerato privo di capacità. partial: L'utente selezionato non ha ore lavorative configurate per %{dates}, pertanto quei giorni vengono considerati senza capacità. outside_dates: description: Le date della risorsa selezionata, %{resource_dates}, non rientrano nelle date della macro-attività, %{work_package_dates}. overbooking: - capacity_summary: "%{available} disponibili · %{scheduled} programmati" description: L'utente selezionato, %{user}, verrebbe assegnato oltre il proprio orario di lavoro durante questo periodo. - hidden_work: Altre allocazioni + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% disponibile per il lavoro sui progetti)" schedule_change: fino al giorno %{date}, poi %{schedule} schedule_note: Questo utente lavora al %{schedule}. submit: Assegna straordinario title: Vuoi assegnare ore di straordinario all'utente? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Assegna success_message: Risorsa assegnata. title: Assegna risorsa @@ -131,6 +145,7 @@ it: title: Assegna %{filter_name} blankslate: desc: Crea un pianificatore di risorse per iniziare a pianificare la capacità di questo progetto. + global_desc: Crea un pianificatore delle risorse per iniziare a pianificare la capacità tra più progetti. title: Ancora nessun pianificatore di risorse configure_view_dialog: delete_confirmation: Vuoi davvero eliminare questa vista? Questa azione è irreversibile. @@ -143,15 +158,23 @@ it: caption: Un elenco personalizzato di elementi che puoi aggiungere e rimuovere manualmente. Il filtraggio non è disponibile. label: Selezionato manualmente title: Configura vista + create_placeholder_user_dialog: + submit: Crea + title: Crea utente segnaposto edit_allocation_dialog: submit: Salva success_message: Allocazione della risorsa aggiornata. title: Modifica allocazione favorite_caption: Aggiungi questa vista ai preferiti per mostrarla nella sezione superiore del menu laterale. + filters: + resource_management_enabled: Gestione delle risorse abilitata + global_public_caption: Rendi questa vista pubblica per chiunque sia autorizzato a visualizzare i pianificatori globali delle risorse. Ciò non influisce sulla visibilità delle macro-attività, che continua a dipendere dalle autorizzazioni di ciascun utente. label_edit_resource_planner: Modifica il pianificatore delle risorse label_new_resource_planner: Nuovo pianificatore di risorse label_resource_planner: Pianificatore di risorse label_resource_planner_plural: Pianificatori di risorse + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Aggiungi vista public_caption: Rendi questa vista pubblica per tutti i membri del progetto. Questo non influisce sulla visibilità delle macro-attività, che continua a dipendere dalle autorizzazioni di ciascun utente. @@ -192,13 +215,16 @@ it: add: Aggiungi allocate: Alloca settings: Configura vista + undisclosed: + tooltip: Non disponi delle autorizzazioni per visualizzare questa risorsa allocata + work_package: Macro-attività non visibile user_allocations_dialog: allocate_work_package: Assegna macro-attività blank: A questo utente non è assegnata alcuna macro-attività. - other_work_packages: - one: 1 altra macro-attività - other: Altre %{count} macro-attività + blank_in_timeframe: Questo utente non ha macro-attività allocate nell'intervallo di tempo selezionato. + hidden_work_package: Macro-attività non visibile title: Utilizzo + total_time: "%{hours} totali" user_card_list: add_user_dialog: title: Aggiungi utente @@ -235,7 +261,8 @@ it: no_work_schedule: Non è previsto alcun orario di lavoro per questo utente overbooked: Questo utente è sovrallocato nel periodo selezionato. overbooked_tooltip: - range: "%{dates}: %{scheduled} in programma, %{available} disponibile" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Aggiungi utente view_types: diff --git a/modules/resource_management/config/locales/crowdin/ja.yml b/modules/resource_management/config/locales/crowdin/ja.yml index eaf3056c18f0..016dd25c278a 100644 --- a/modules/resource_management/config/locales/crowdin/ja.yml +++ b/modules/resource_management/config/locales/crowdin/ja.yml @@ -2,17 +2,20 @@ ja: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ja: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ ja: other: Work packages lists resource_work_package_timeline: other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -64,8 +77,12 @@ ja: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ ja: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ ja: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ ja: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -186,12 +209,16 @@ ja: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ ja: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/js-af.yml b/modules/resource_management/config/locales/crowdin/js-af.yml new file mode 100644 index 000000000000..f9822db927df --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-af.yml @@ -0,0 +1,11 @@ +--- +af: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ar.yml b/modules/resource_management/config/locales/crowdin/js-ar.yml new file mode 100644 index 000000000000..057fee085ade --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ar.yml @@ -0,0 +1,11 @@ +--- +ar: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-az.yml b/modules/resource_management/config/locales/crowdin/js-az.yml new file mode 100644 index 000000000000..3b9f10914c3b --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-az.yml @@ -0,0 +1,11 @@ +--- +az: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-be.yml b/modules/resource_management/config/locales/crowdin/js-be.yml new file mode 100644 index 000000000000..6ed9152a2574 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-be.yml @@ -0,0 +1,11 @@ +--- +be: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-bg.yml b/modules/resource_management/config/locales/crowdin/js-bg.yml new file mode 100644 index 000000000000..f5549eae0519 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-bg.yml @@ -0,0 +1,11 @@ +--- +bg: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ca.yml b/modules/resource_management/config/locales/crowdin/js-ca.yml new file mode 100644 index 000000000000..f821acbb1e00 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ca.yml @@ -0,0 +1,11 @@ +--- +ca: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ckb-IR.yml b/modules/resource_management/config/locales/crowdin/js-ckb-IR.yml new file mode 100644 index 000000000000..91257bc29677 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ckb-IR.yml @@ -0,0 +1,11 @@ +--- +ckb-IR: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-cs.yml b/modules/resource_management/config/locales/crowdin/js-cs.yml new file mode 100644 index 000000000000..c705b2f0fd0b --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-cs.yml @@ -0,0 +1,11 @@ +--- +cs: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-da.yml b/modules/resource_management/config/locales/crowdin/js-da.yml new file mode 100644 index 000000000000..a4a6fa066984 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-da.yml @@ -0,0 +1,11 @@ +--- +da: + js: + button_allocate_resource: Fordel ressource + resource_management: + create_placeholder_user: Opret pladsholder-bruger med filterkriterier + hidden_user: Skjult bruger + my_time_management: + finish_by: Færdig senest %{date} + finish_today: Færdig i dag + show_allocations: Vis fordeling af ressourcer diff --git a/modules/resource_management/config/locales/crowdin/js-de.yml b/modules/resource_management/config/locales/crowdin/js-de.yml new file mode 100644 index 000000000000..037bd1151896 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-de.yml @@ -0,0 +1,11 @@ +--- +de: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Versteckter Benutzer + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-el.yml b/modules/resource_management/config/locales/crowdin/js-el.yml new file mode 100644 index 000000000000..1f1546fe0b30 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-el.yml @@ -0,0 +1,11 @@ +--- +el: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-eo.yml b/modules/resource_management/config/locales/crowdin/js-eo.yml new file mode 100644 index 000000000000..8942763e26d3 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-eo.yml @@ -0,0 +1,11 @@ +--- +eo: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-es.yml b/modules/resource_management/config/locales/crowdin/js-es.yml new file mode 100644 index 000000000000..c1dd771a16a5 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-es.yml @@ -0,0 +1,11 @@ +--- +es: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Crear un usuario comodín con criterios de filtrado + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-et.yml b/modules/resource_management/config/locales/crowdin/js-et.yml new file mode 100644 index 000000000000..30eb705299b4 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-et.yml @@ -0,0 +1,11 @@ +--- +et: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-eu.yml b/modules/resource_management/config/locales/crowdin/js-eu.yml new file mode 100644 index 000000000000..8cd9c9dd2770 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-eu.yml @@ -0,0 +1,11 @@ +--- +eu: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-fa.yml b/modules/resource_management/config/locales/crowdin/js-fa.yml new file mode 100644 index 000000000000..5fe45657f279 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-fa.yml @@ -0,0 +1,11 @@ +--- +fa: + js: + button_allocate_resource: تخصیص منبع + resource_management: + create_placeholder_user: ایجاد کاربر فرضی با معیارهای فیلتر + hidden_user: کاربر پنهان + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: نمایش تخصیص‌های منابع diff --git a/modules/resource_management/config/locales/crowdin/js-fi.yml b/modules/resource_management/config/locales/crowdin/js-fi.yml new file mode 100644 index 000000000000..aaa777e87c75 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-fi.yml @@ -0,0 +1,11 @@ +--- +fi: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-fil.yml b/modules/resource_management/config/locales/crowdin/js-fil.yml new file mode 100644 index 000000000000..58e1a08a3bbf --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-fil.yml @@ -0,0 +1,11 @@ +--- +fil: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-fr.yml b/modules/resource_management/config/locales/crowdin/js-fr.yml new file mode 100644 index 000000000000..17bf70adfc42 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-fr.yml @@ -0,0 +1,11 @@ +--- +fr: + js: + button_allocate_resource: Allouer des ressources + resource_management: + create_placeholder_user: Créer un utilisateur fictif avec des critères de filtrage + hidden_user: Utilisateur masqué + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Afficher les affectations de ressources diff --git a/modules/resource_management/config/locales/crowdin/js-he.yml b/modules/resource_management/config/locales/crowdin/js-he.yml new file mode 100644 index 000000000000..d4787b6d3a6a --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-he.yml @@ -0,0 +1,11 @@ +--- +he: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-hi.yml b/modules/resource_management/config/locales/crowdin/js-hi.yml new file mode 100644 index 000000000000..96a8cdc4f3d5 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-hi.yml @@ -0,0 +1,11 @@ +--- +hi: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-hr.yml b/modules/resource_management/config/locales/crowdin/js-hr.yml new file mode 100644 index 000000000000..53d146ab2ae5 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-hr.yml @@ -0,0 +1,11 @@ +--- +hr: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-hu.yml b/modules/resource_management/config/locales/crowdin/js-hu.yml new file mode 100644 index 000000000000..c3adece34457 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-hu.yml @@ -0,0 +1,11 @@ +--- +hu: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-hy.yml b/modules/resource_management/config/locales/crowdin/js-hy.yml new file mode 100644 index 000000000000..fc48f44b610d --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-hy.yml @@ -0,0 +1,11 @@ +--- +hy: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-id.yml b/modules/resource_management/config/locales/crowdin/js-id.yml new file mode 100644 index 000000000000..86ffe729b393 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-id.yml @@ -0,0 +1,11 @@ +--- +id: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-it.yml b/modules/resource_management/config/locales/crowdin/js-it.yml new file mode 100644 index 000000000000..6cc68f3b0a4b --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-it.yml @@ -0,0 +1,11 @@ +--- +it: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Crea utente segnaposto con criteri di filtro + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ja.yml b/modules/resource_management/config/locales/crowdin/js-ja.yml new file mode 100644 index 000000000000..43151cb38fd3 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ja.yml @@ -0,0 +1,11 @@ +--- +ja: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ka.yml b/modules/resource_management/config/locales/crowdin/js-ka.yml new file mode 100644 index 000000000000..cbf250f33706 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ka.yml @@ -0,0 +1,11 @@ +--- +ka: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-kk.yml b/modules/resource_management/config/locales/crowdin/js-kk.yml new file mode 100644 index 000000000000..f45760ea81df --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-kk.yml @@ -0,0 +1,11 @@ +--- +kk: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ko.yml b/modules/resource_management/config/locales/crowdin/js-ko.yml new file mode 100644 index 000000000000..d4ea6d14bf83 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ko.yml @@ -0,0 +1,11 @@ +--- +ko: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: 필터 기준을 사용하여 플레이스홀더 사용자 만들기 + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-li.yml b/modules/resource_management/config/locales/crowdin/js-li.yml new file mode 100644 index 000000000000..73deecc382b4 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-li.yml @@ -0,0 +1,11 @@ +--- +li: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-lt.yml b/modules/resource_management/config/locales/crowdin/js-lt.yml new file mode 100644 index 000000000000..1dbdd02905ae --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-lt.yml @@ -0,0 +1,11 @@ +--- +lt: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-lv.yml b/modules/resource_management/config/locales/crowdin/js-lv.yml new file mode 100644 index 000000000000..66aee2693973 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-lv.yml @@ -0,0 +1,11 @@ +--- +lv: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-mn.yml b/modules/resource_management/config/locales/crowdin/js-mn.yml new file mode 100644 index 000000000000..700d5fceab9e --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-mn.yml @@ -0,0 +1,11 @@ +--- +mn: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ms.yml b/modules/resource_management/config/locales/crowdin/js-ms.yml new file mode 100644 index 000000000000..b7c139d445e9 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ms.yml @@ -0,0 +1,11 @@ +--- +ms: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ne.yml b/modules/resource_management/config/locales/crowdin/js-ne.yml new file mode 100644 index 000000000000..560eced6f2be --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ne.yml @@ -0,0 +1,11 @@ +--- +ne: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-nl.yml b/modules/resource_management/config/locales/crowdin/js-nl.yml new file mode 100644 index 000000000000..54cee2dd7ff1 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-nl.yml @@ -0,0 +1,11 @@ +--- +nl: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Een tijdelijke gebruiker aanmaken met filtercriteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-no.yml b/modules/resource_management/config/locales/crowdin/js-no.yml new file mode 100644 index 000000000000..a063a6840256 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-no.yml @@ -0,0 +1,11 @@ +--- +'no': + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-pl.yml b/modules/resource_management/config/locales/crowdin/js-pl.yml new file mode 100644 index 000000000000..1e9796d7db05 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-pl.yml @@ -0,0 +1,11 @@ +--- +pl: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Utwórz użytkownika zastępczego przy użyciu kryteriów filtrowania + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-pt-BR.yml b/modules/resource_management/config/locales/crowdin/js-pt-BR.yml new file mode 100644 index 000000000000..45f0c2694683 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-pt-BR.yml @@ -0,0 +1,11 @@ +--- +pt-BR: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Criar usuário substituto com critérios de filtro + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-pt-PT.yml b/modules/resource_management/config/locales/crowdin/js-pt-PT.yml new file mode 100644 index 000000000000..b0576789c550 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-pt-PT.yml @@ -0,0 +1,11 @@ +--- +pt-PT: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Criar um utilizador de marcador de posição com critérios de filtragem + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ro.yml b/modules/resource_management/config/locales/crowdin/js-ro.yml new file mode 100644 index 000000000000..f6de2324e517 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ro.yml @@ -0,0 +1,11 @@ +--- +ro: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-ru.yml b/modules/resource_management/config/locales/crowdin/js-ru.yml new file mode 100644 index 000000000000..0e8617c27e52 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-ru.yml @@ -0,0 +1,11 @@ +--- +ru: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Создать пользователя-заполнителя с критериями фильтрации + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-rw.yml b/modules/resource_management/config/locales/crowdin/js-rw.yml new file mode 100644 index 000000000000..0605fd35e241 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-rw.yml @@ -0,0 +1,11 @@ +--- +rw: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-si.yml b/modules/resource_management/config/locales/crowdin/js-si.yml new file mode 100644 index 000000000000..7ee2b377c43b --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-si.yml @@ -0,0 +1,11 @@ +--- +si: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-sk.yml b/modules/resource_management/config/locales/crowdin/js-sk.yml new file mode 100644 index 000000000000..44bdd1056f4c --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-sk.yml @@ -0,0 +1,11 @@ +--- +sk: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-sl.yml b/modules/resource_management/config/locales/crowdin/js-sl.yml new file mode 100644 index 000000000000..0d05a753007b --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-sl.yml @@ -0,0 +1,11 @@ +--- +sl: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-sr.yml b/modules/resource_management/config/locales/crowdin/js-sr.yml new file mode 100644 index 000000000000..22428ca60d14 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-sr.yml @@ -0,0 +1,11 @@ +--- +sr: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-sv.yml b/modules/resource_management/config/locales/crowdin/js-sv.yml new file mode 100644 index 000000000000..a90520e53994 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-sv.yml @@ -0,0 +1,11 @@ +--- +sv: + js: + button_allocate_resource: Tilldela resurs + resource_management: + create_placeholder_user: Skapa platshållaranvändare med filterkriterier + hidden_user: Dold användare + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Visa resurstilldelningar diff --git a/modules/resource_management/config/locales/crowdin/js-th.yml b/modules/resource_management/config/locales/crowdin/js-th.yml new file mode 100644 index 000000000000..74548ba40650 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-th.yml @@ -0,0 +1,11 @@ +--- +th: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-tr.yml b/modules/resource_management/config/locales/crowdin/js-tr.yml new file mode 100644 index 000000000000..42ce71eeb466 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-tr.yml @@ -0,0 +1,11 @@ +--- +tr: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-uk.yml b/modules/resource_management/config/locales/crowdin/js-uk.yml new file mode 100644 index 000000000000..ac4a302a4ff2 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-uk.yml @@ -0,0 +1,11 @@ +--- +uk: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Створити прототип користувача з критеріями фільтрації + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-uz.yml b/modules/resource_management/config/locales/crowdin/js-uz.yml new file mode 100644 index 000000000000..d649ff2aed5d --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-uz.yml @@ -0,0 +1,11 @@ +--- +uz: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-vi.yml b/modules/resource_management/config/locales/crowdin/js-vi.yml new file mode 100644 index 000000000000..cd1c44c0bb32 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-vi.yml @@ -0,0 +1,11 @@ +--- +vi: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-zh-CN.yml b/modules/resource_management/config/locales/crowdin/js-zh-CN.yml new file mode 100644 index 000000000000..cbf6adf01d55 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-zh-CN.yml @@ -0,0 +1,11 @@ +--- +zh-CN: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: 使用筛选条件创建占位符用户 + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/js-zh-TW.yml b/modules/resource_management/config/locales/crowdin/js-zh-TW.yml new file mode 100644 index 000000000000..7842c6f91ab3 --- /dev/null +++ b/modules/resource_management/config/locales/crowdin/js-zh-TW.yml @@ -0,0 +1,11 @@ +--- +zh-TW: + js: + button_allocate_resource: Allocate resource + resource_management: + create_placeholder_user: Create placeholder user with filter criteria + hidden_user: Hidden user + my_time_management: + finish_by: Finish by %{date} + finish_today: Finish today + show_allocations: Show resource allocations diff --git a/modules/resource_management/config/locales/crowdin/ka.yml b/modules/resource_management/config/locales/crowdin/ka.yml index c5776a424e1b..1aa70a0f33bb 100644 --- a/modules/resource_management/config/locales/crowdin/ka.yml +++ b/modules/resource_management/config/locales/crowdin/ka.yml @@ -2,17 +2,20 @@ ka: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ka: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ ka: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ ka: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ ka: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ ka: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ ka: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ ka: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ ka: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/kk.yml b/modules/resource_management/config/locales/crowdin/kk.yml index 3d7880880563..87b0791a7f35 100644 --- a/modules/resource_management/config/locales/crowdin/kk.yml +++ b/modules/resource_management/config/locales/crowdin/kk.yml @@ -2,17 +2,20 @@ kk: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ kk: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ kk: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ kk: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ kk: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ kk: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ kk: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ kk: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ kk: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ko.yml b/modules/resource_management/config/locales/crowdin/ko.yml index 80f2264a8c49..3576b1f6c088 100644 --- a/modules/resource_management/config/locales/crowdin/ko.yml +++ b/modules/resource_management/config/locales/crowdin/ko.yml @@ -2,17 +2,20 @@ ko: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: 필터 기준 resource_allocation: allocated_hours: 시간 allocated_time: 할당된 시간 date_range: 날짜 end_date: 완료 날짜 entity: 엔티티 - filter_name: 리소스 필터 이름 + placeholder_or_user: 담당자 + placeholder_user: 플레이스홀더 사용자 principal: 담당자 start_date: 시작 날짜 state: 상태 - user_filter: 사용자 필터 resource_planner: date_range: 날짜 default_view_class_name: 기본 보기 @@ -21,12 +24,19 @@ ko: name: 이름 public: 공개 start_date: 시작 날짜 + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: "- 시작 날짜 후여야 합니다." + principal: + not_a_member: "- 작업 패키지 프로젝트의 멤버가 아닙니다." resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ ko: other: 작업 패키지 목록 resource_work_package_timeline: other: 작업 패키지 타임라인 + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: 다음 ee: features: @@ -64,8 +77,12 @@ ko: permission_allocate_user_resources_explanation: 사용자가 리소스 플래너 내에서 리소스 할당을 만들고, 업데이트하고, 삭제할 수 있습니다. 여기에는 플래너에 사용자(또는 사용자 필터)를 할당하고 할당된 시간 및 날짜 범위를 조정하는 것이 포함됩니다. permission_assign_users_to_generic_allocations: 사용자를 일반 할당에 배정 permission_assign_users_to_generic_allocations_explanation: 사용자가 스태핑 보기를 사용하여 아직 사용자가 없는 일반(필터 기반) 리소스 할당에 실제 사용자를 할당할 수 있습니다. 할당 생성 또는 편집은 허용되지 않습니다. + permission_manage_public_global_resource_planners: 공개 글로벌 리소스 플래너 관리 + permission_manage_public_global_resource_planners_explanation: 사용자가 고유한 글로벌 리소스 플래너를 게시하고, 다른 사용자가 공개적으로 공유한 글로벌 리소스 플래너를 관리할 수 있게 합니다. 단, 공개적으로 공유되지 않은 글로벌 리소스 플래너는 사용자가 볼 수 없습니다. permission_manage_public_resource_planners: 공개 리소스 플래너 관리 permission_manage_public_resource_planners_explanation: 사용자가 리소스 플래너를 만들고 관리하도록 허용합니다. 사용자는 고유한 리소스 플래너를 보고 만들고 관리하며 게시할 수 있습니다. 다른 사용자가 만든 공개적으로 공유되지 않은 리소스 플래너는 볼 수 없습니다. + permission_view_global_resource_planners: 글로벌 리소스 플래너 보기 + permission_view_global_resource_planners_explanation: 사용자가 글로벌 리소스 플래너 섹션에 액세스하여, 여러 프로젝트의 리소스와 할당을 함께 계획할 수 있게 합니다. 사용자는 고유한 글로벌 리소스 플래너를 생성 및 관리하고, 공개 플래너를 볼 수 있습니다. 볼 수 있도록 허용된 프로젝트, 리소스 및 할당만 사용자에게 표시됩니다. permission_view_resource_planners: 리소스 플래너 보기 permission_view_resource_planners_explanation: 사용자가 리소스 플래너에 액세스하도록 허용합니다. 사용자는 고유한 리소스 플래너를 만들고 관리하며 공개 리소스 플래너를 볼 수 있습니다. 다른 사용자가 만든 공개적으로 공유되지 않은 리소스 플래너는 볼 수 없습니다. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ ko: make_public: 공개로 설정 unfavorite: 즐겨찾기에서 제거 allocate_resource_dialog: - kind: - filter: - caption: 사용자 특성에 기반한 필터 기준을 설정하여 플레이스홀더 리소스를 생성합니다. - label: 필터 기준 - label: 할당 유형 - principal: - caption: 특정 사용자에 대한 시간을 할당합니다. - label: 사용자 + criteria: + empty: 기준이 설정되지 않았습니다. + label: 기준 + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: 선택한 사용자는 해당 날짜에 구성된 근무 시간이 없으므로 근무 가능 시간이 없는 것으로 간주됩니다. partial: 선택한 사용자는 %{dates}에 구성된 근무 시간이 없으므로 해당 날짜에 근무 가능 시간이 없는 것으로 간주됩니다. outside_dates: description: 선택된 리소스 날짜(%{resource_dates})가 작업 패키지 날짜(%{work_package_dates}) 범위를 벗어납니다. overbooking: - capacity_summary: "%{available} 사용 가능 · %{scheduled} 예약됨" description: 선택된 사용자(%{user})에게 이 기간 동안 근무 시간 외 시간이 할당됩니다. - hidden_work: 기타 할당 + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule}(프로젝트 작업에 %{factor}% 사용 가능)" schedule_change: "%{date}까지, 그 이후에는 %{schedule}" schedule_note: 이 사용자는 %{schedule}에 근무합니다. submit: 초과 근무 할당 title: 해당 사용자에게 초과 근무를 할당하시겠습니까? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: 할당 success_message: 리소스가 할당되었습니다. title: 리소스 할당 @@ -125,6 +139,7 @@ ko: title: "%{filter_name} 할당" blankslate: desc: 리소스 플래너를 만들어 이 프로젝트의 업무량 계획을 시작하세요. + global_desc: 리소스 플래너를 만들어 프로젝트 전반에서 업무량 계획을 시작하세요. title: 아직 리소스 플래너 없음 configure_view_dialog: delete_confirmation: 이 보기를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다. @@ -137,15 +152,23 @@ ko: caption: 수동으로 추가 및 제거하는 항목의 사용자 지정 목록입니다. 필터링은 불가능합니다. label: 수동으로 직접 선택함 title: 보기 구성 + create_placeholder_user_dialog: + submit: 만들기 + title: 플레이스홀더 사용자 만들기 edit_allocation_dialog: submit: 저장 success_message: 리소스 할당이 업데이트되었습니다. title: 할당 편집 favorite_caption: 이 보기를 즐겨찾기로 지정하여 사이드바 메뉴의 상단 섹션에 추가합니다. + filters: + resource_management_enabled: 리소스 관리 활성화됨 + global_public_caption: 글로벌 리소스 플래너를 볼 수 있게 허용된 모두에게 이 보기를 공개로 설정합니다. 이렇게 해도 여전히 각 사용자 권한에 따라 달라지는 작업 패키지의 표시 여부에는 영향을 미치지 않습니다. label_edit_resource_planner: 리소스 플래너 편집 label_new_resource_planner: 새로운 리소스 플래너 label_resource_planner: 리소스 플래너 label_resource_planner_plural: 리소스 플래너 + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: 보기 추가 public_caption: 이 보기를 프로젝트의 모든 멤버에게 공개로 설정합니다. 이렇게 해도 여전히 각 사용자 권한에 따라 달라지는 작업 패키지의 표시 여부에는 영향을 미치지 않습니다. @@ -186,12 +209,16 @@ ko: add: 추가 allocate: 할당 settings: 보기 구성 + undisclosed: + tooltip: 할당된 이 리소스를 볼 수 있는 권한이 없습니다 + work_package: 내게 표시되지 않는 작업 패키지 user_allocations_dialog: allocate_work_package: 작업 패키지 할당 blank: 이 사용자에게는 할당된 작업 패키지가 없습니다. - other_work_packages: - other: "%{count}개 기타 작업 패키지" + blank_in_timeframe: 이 사용자에게는 선택한 시간 프레임 내에 할당된 작업 패키지가 없습니다. + hidden_work_package: 내게 표시되지 않는 작업 패키지 title: 이용 + total_time: 총 %{hours} user_card_list: add_user_dialog: title: 사용자 추가 @@ -228,7 +255,8 @@ ko: no_work_schedule: 이 사용자에 대해 계획된 근무 스케줄 없음 overbooked: 이 사용자는 선택한 기간에 초과 할당되었습니다. overbooked_tooltip: - range: "%{dates}: %{scheduled} 예약됨, %{available} 사용 가능" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: 사용자 추가 view_types: diff --git a/modules/resource_management/config/locales/crowdin/li.yml b/modules/resource_management/config/locales/crowdin/li.yml index 25d49a897d36..005deaf659a2 100644 --- a/modules/resource_management/config/locales/crowdin/li.yml +++ b/modules/resource_management/config/locales/crowdin/li.yml @@ -2,17 +2,20 @@ li: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ li: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ li: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ li: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ li: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: wies %{date}, dan %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ li: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ li: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ li: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ li: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/lt.yml b/modules/resource_management/config/locales/crowdin/lt.yml index 75b1c9e0cdcf..5980c8d14cf6 100644 --- a/modules/resource_management/config/locales/crowdin/lt.yml +++ b/modules/resource_management/config/locales/crowdin/lt.yml @@ -2,17 +2,20 @@ lt: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ lt: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ lt: few: Work packages timelines many: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -82,8 +95,12 @@ lt: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ lt: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -143,6 +157,7 @@ lt: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -155,15 +170,23 @@ lt: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -204,15 +227,16 @@ lt: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - many: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -249,7 +273,8 @@ lt: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/lv.yml b/modules/resource_management/config/locales/crowdin/lv.yml index 1be054e745bf..351b965f0d17 100644 --- a/modules/resource_management/config/locales/crowdin/lv.yml +++ b/modules/resource_management/config/locales/crowdin/lv.yml @@ -2,17 +2,20 @@ lv: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ lv: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -63,6 +73,9 @@ lv: zero: Work packages timelines one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -76,8 +89,12 @@ lv: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -93,28 +110,25 @@ lv: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -137,6 +151,7 @@ lv: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -149,15 +164,23 @@ lv: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -198,14 +221,16 @@ lv: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - zero: "%{count} other work packages" - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -242,7 +267,8 @@ lv: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/mn.yml b/modules/resource_management/config/locales/crowdin/mn.yml index 8efce33b0940..bec8c03ee26d 100644 --- a/modules/resource_management/config/locales/crowdin/mn.yml +++ b/modules/resource_management/config/locales/crowdin/mn.yml @@ -2,17 +2,20 @@ mn: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ mn: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ mn: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ mn: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ mn: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ mn: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ mn: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ mn: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ mn: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ms.yml b/modules/resource_management/config/locales/crowdin/ms.yml index 2d579af7ba1c..4b5200486271 100644 --- a/modules/resource_management/config/locales/crowdin/ms.yml +++ b/modules/resource_management/config/locales/crowdin/ms.yml @@ -2,17 +2,20 @@ ms: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ms: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ ms: other: Work packages lists resource_work_package_timeline: other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -64,8 +77,12 @@ ms: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ ms: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ ms: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ ms: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -186,12 +209,16 @@ ms: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ ms: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ne.yml b/modules/resource_management/config/locales/crowdin/ne.yml index bbf2d6a7dd46..3ddbfd0f717b 100644 --- a/modules/resource_management/config/locales/crowdin/ne.yml +++ b/modules/resource_management/config/locales/crowdin/ne.yml @@ -2,17 +2,20 @@ ne: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ne: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ ne: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ ne: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ ne: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ ne: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ ne: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ ne: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ ne: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/nl.yml b/modules/resource_management/config/locales/crowdin/nl.yml index ce552e849d53..4d2165fd916d 100644 --- a/modules/resource_management/config/locales/crowdin/nl.yml +++ b/modules/resource_management/config/locales/crowdin/nl.yml @@ -2,17 +2,20 @@ nl: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ nl: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ nl: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ nl: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ nl: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ nl: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ nl: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ nl: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ nl: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/no.yml b/modules/resource_management/config/locales/crowdin/no.yml index 550afa801b9e..33affd372658 100644 --- a/modules/resource_management/config/locales/crowdin/no.yml +++ b/modules/resource_management/config/locales/crowdin/no.yml @@ -2,17 +2,20 @@ 'no': activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/pl.yml b/modules/resource_management/config/locales/crowdin/pl.yml index 8a11940684d5..9f765b24565d 100644 --- a/modules/resource_management/config/locales/crowdin/pl.yml +++ b/modules/resource_management/config/locales/crowdin/pl.yml @@ -2,17 +2,20 @@ pl: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Kryteria filtrowania resource_allocation: allocated_hours: Godziny allocated_time: Przydzielony czas date_range: Daty end_date: Data zakończenia entity: Pole - filter_name: Nazwa filtra zasobów + placeholder_or_user: Przypisana osoba + placeholder_user: Użytkownik zastępczy principal: Przypisana osoba start_date: Data rozpoczęcia state: Stan - user_filter: Filtr użytkownika resource_planner: date_range: Daty default_view_class_name: Widok domyślny @@ -21,12 +24,19 @@ pl: name: Nazwa public: Publiczny start_date: Data rozpoczęcia + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: musi być późniejsza niż data rozpoczęcia. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ pl: few: Osie czasu pakietów roboczych many: Osie czasu pakietów roboczych other: Osie czasu pakietów roboczych + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Dalej ee: features: @@ -82,8 +95,12 @@ pl: permission_allocate_user_resources_explanation: Umożliwia użytkownikom tworzenie, aktualizowanie i usuwanie przydziałów zasobów w planiście zasobów. Obejmuje to przypisywanie użytkowników (lub filtrów użytkowników) do planisty oraz dostosowywanie przydzielonego czasu i zakresu dat. permission_assign_users_to_generic_allocations: Przypisz użytkowników do ogólnych alokacji permission_assign_users_to_generic_allocations_explanation: Umożliwia użytkownikom korzystanie z widoku Obsada, aby przypisywać rzeczywistych użytkowników do ogólnych (opartych na filtrach) przydziałów zasobów, które nie mają jeszcze przypisanego użytkownika. Nie pozwala natomiast na tworzenie ani edytowanie przydziałów. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Zarządzaj publicznymi planistami zasobów permission_manage_public_resource_planners_explanation: Umożliwia użytkownikom tworzenie planistów zasobów oraz zarządzanie nimi. Pozwala im na przeglądanie, tworzenie, zarządzanie i publikowanie własnych planistów zasobów. Nie pozwala użytkownikom przeglądać nieudostępnionych publicznie planistów zasobów utworzonych przez innych użytkowników. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: Wyświetl planistów zasobów permission_view_resource_planners_explanation: Umożliwia użytkownikom dostęp do planistów zasobów. Pozwala im tworzyć własnych planistów zasobów i zarządzać nimi oraz wyświetlać publicznych planistów zasobów. Nie pozwala użytkownikom na przeglądanie nieudostępnionych publicznie planistów zasobów utworzonych przez innych użytkowników. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ pl: make_public: Ustaw jako publiczny unfavorite: Usuń z ulubionych allocate_resource_dialog: - kind: - filter: - caption: Ustaw kryteria filtrowania na podstawie atrybutów użytkownika w celu utworzenia zasobu zastępczego. - label: Kryteria filtrowania - label: Typ przydziału - principal: - caption: Przydziel godziny określonemu użytkownikowi. - label: Użytkownik + criteria: + empty: Nie ustawiono kryteriów. + label: Kryteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: Dla wybranego użytkownika nie skonfigurowano godzin pracy w tych terminach, dlatego uznaje się, że nie ma on dostępności. partial: Dla wybranego użytkownika nie skonfigurowano godzin pracy w terminach %{dates}, dlatego dni te są traktowane jako dni bez dostępności. outside_dates: description: Wybrane daty zasobów, %{resource_dates}, wykraczają poza daty pakietu roboczego, %{work_package_dates}. overbooking: - capacity_summary: Dostępne %{available}· Zaplanowano %{scheduled} description: Wybrany użytkownik, %{user}, zostałby przydzielony poza godzinami pracy w tym okresie. - hidden_work: Inne przydziały + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% dostępne do pracy nad projektem)" schedule_change: do %{date}, następnie %{schedule} schedule_note: Ten użytkownik pracuje %{schedule}. submit: Przydziel nadgodziny title: Czy chcesz przydzielić nadgodziny użytkownikowi? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Przydziel success_message: Zasób przydzielono. title: Przydziel zasób @@ -143,6 +157,7 @@ pl: title: Przypisz %{filter_name} blankslate: desc: Utwórz planistę zasobów, aby rozpocząć planowanie obciążeń dla tego projektu. + global_desc: Create a resource planner to start planning capacity across projects. title: Nie ma jeszcze planistów zasobów configure_view_dialog: delete_confirmation: Czy na pewno chcesz usunąć ten widok? Nie można tego cofnąć. @@ -155,15 +170,23 @@ pl: caption: Niestandardowa lista elementów dodawanych i usuwanych ręcznie. Filtrowanie nie jest możliwe. label: Ręczny wybór title: Konfiguruj widok + create_placeholder_user_dialog: + submit: Utwórz + title: Utwórz użytkownika zastępczego edit_allocation_dialog: submit: Zapisz success_message: Zaktualizowano przydział zasobów. title: Edytuj przydział favorite_caption: Ustaw ten widok jako ulubiony, aby dodać go do górnej części menu paska bocznego. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edytuj planistę zasobów label_new_resource_planner: Nowy planista zasobów label_resource_planner: Planista zasobów label_resource_planner_plural: Planiści zasobów + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Dodaj widok public_caption: Ustaw ten widok jako publiczny dla wszystkich członków projektu. Nie ma to wpływu na widoczność pakietów roboczych, która nadal zależy od uprawnień poszczególnych użytkowników. @@ -204,15 +227,16 @@ pl: add: Dodaj allocate: Przydziel settings: Konfiguruj widok + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Przydziel pakiet roboczy blank: Temu użytkownikowi nie przydzielono żadnych pakietów roboczych. - other_work_packages: - one: 1 inny pakiet roboczy - few: "%{count} inne pakiety robocze" - many: "%{count} innych pakietów roboczych" - other: "%{count} innego pakietu roboczego" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Wykorzystanie + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Dodaj użytkownika @@ -249,7 +273,8 @@ pl: no_work_schedule: Dla tego użytkownika nie zaplanowano żadnego harmonogramu pracy overbooked: W wybranym okresie ten użytkownik ma nadmierne przydziały. overbooked_tooltip: - range: "%{dates}: zaplanowano %{scheduled}, dostępne %{available}" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Dodaj użytkownika view_types: diff --git a/modules/resource_management/config/locales/crowdin/pt-BR.yml b/modules/resource_management/config/locales/crowdin/pt-BR.yml index 58ab4ee0fd0a..4f7fca30b272 100644 --- a/modules/resource_management/config/locales/crowdin/pt-BR.yml +++ b/modules/resource_management/config/locales/crowdin/pt-BR.yml @@ -2,17 +2,20 @@ pt-BR: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Critérios do filtro resource_allocation: allocated_hours: Horas allocated_time: Tempo alocado date_range: Datas end_date: Data de término entity: Entidade - filter_name: Nome do filtro de recursos + placeholder_or_user: Responsável + placeholder_user: Usuário substituto principal: Responsável start_date: Data de início state: Estado - user_filter: Filtro de usuários resource_planner: date_range: Datas default_view_class_name: Visualização padrão @@ -21,12 +24,19 @@ pt-BR: name: Nome public: Público start_date: Data de início + work_package: + allocated_principals: Allocated resources + allocated_time: Alocado errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: deve ser após a data de início. + principal: + not_a_member: não é membro do projeto do pacote de trabalho. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ pt-BR: resource_work_package_timeline: one: Linha do tempo dos pacotes de trabalho other: Linhas do tempo dos pacotes de trabalho + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Próximo ee: features: @@ -70,8 +83,12 @@ pt-BR: permission_allocate_user_resources_explanation: Permite que os usuários criem, atualizem e excluam alocações de recursos em um planejador de recursos. Isso inclui atribuir usuários (ou filtros de usuários) a um planejador e ajustar o tempo alocado e o intervalo de datas. permission_assign_users_to_generic_allocations: Atribuir usuários a alocações genéricas permission_assign_users_to_generic_allocations_explanation: Permite que os usuários usem a visualização de alocação de equipe para atribuir usuários reais a alocações de recursos genéricas (baseadas em filtros) que ainda não possuem um usuário. Não permite criar ou editar alocações. + permission_manage_public_global_resource_planners: Gerenciar planejadores de recursos globais públicos + permission_manage_public_global_resource_planners_explanation: Permite que os usuários publiquem seus próprios planejadores de recursos globais e gerenciem planejadores de recursos globais que outros usuários compartilharam publicamente. Não permite que os usuários visualizem planejadores de recursos globais que não tenham sido compartilhados publicamente. permission_manage_public_resource_planners: Gerenciar planejadores de recursos públicos permission_manage_public_resource_planners_explanation: Permite que os usuários criem e gerenciem planejadores de recursos públicos. Permite visualizar, criar, gerenciar e publicar seus próprios planejadores de recursos. Não permite visualizar planejadores de recursos criados por outros usuários que não estejam compartilhados publicamente. + permission_view_global_resource_planners: Ver planejadores de recursos globais + permission_view_global_resource_planners_explanation: Permite que os usuários acessem a seção de planejadores de recursos globais, onde recursos e alocações de vários projetos podem ser planejados em conjunto. Permite criar e gerenciar seus próprios planejadores de recursos globais e visualizar os planejadores públicos. Os usuários sempre veem apenas os projetos, recursos e alocações que têm permissão para visualizar. permission_view_resource_planners: Ver planejadores de recursos permission_view_resource_planners_explanation: Permite que os usuários acessem planejadores de recursos. Permite criar e gerenciar seus próprios planejadores de recursos e visualizar planejadores de recursos públicos. Não permite visualizar planejadores de recursos criados por outros usuários que não estejam compartilhados publicamente. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ pt-BR: make_public: Tornar público unfavorite: Remover dos favoritos allocate_resource_dialog: - kind: - filter: - caption: Defina critérios de filtro com base nos atributos do usuário para criar um recurso de espaço reservado. - label: Critérios de filtragem - label: Tipo de alocação - principal: - caption: Alocar horas para um usuário específico. - label: Usuário + criteria: + empty: Nenhum critério definido. + label: Critério + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: O usuário selecionado não tem horário de trabalho configurado para essas datas, portanto é considerado sem capacidade disponível. partial: O usuário selecionado não tem horário de trabalho configurado para %{dates}, portanto esses dias são considerados sem capacidade disponível. outside_dates: description: As datas do recurso selecionado (%{resource_dates}) estão fora do período do pacote de trabalho (%{work_package_dates}). overbooking: - capacity_summary: "%{available} disponíveis · %{scheduled} agendadas" description: O usuário selecionado (%{user}) seria alocado além de suas horas de trabalho durante este período. - hidden_work: Outras alocações + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% disponível para trabalho no projeto)" schedule_change: até %{date}, depois %{schedule} schedule_note: Este usuário trabalha %{schedule}. submit: Alocar horas extras title: Deseja alocar horas extras ao usuário? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Alocar success_message: Recurso alocado. title: Alocar recurso @@ -131,6 +145,7 @@ pt-BR: title: Atribuir %{filter_name} blankslate: desc: Criar um planejador de recursos para iniciar o planejamento de capacidade deste projeto. + global_desc: Crie um planejador de recursos para começar a planejar a capacidade entre os projetos. title: Ainda não há planejadores de recursos configure_view_dialog: delete_confirmation: Tem certeza que quer excluir esta visualização? Esta ação é irreversível. @@ -143,15 +158,23 @@ pt-BR: caption: Uma lista personalizada de itens que você adiciona e remove manualmente. Não é possível aplicar filtros. label: Selecionado manualmente title: Configurar exibição + create_placeholder_user_dialog: + submit: Criar + title: Criar usuário substituto edit_allocation_dialog: submit: Salvar success_message: Alocação de recursos atualizada. title: Editar alocação favorite_caption: Adicionar esta visualização aos favoritos para exibi-la na seção superior do menu lateral. + filters: + resource_management_enabled: Gerenciamento de recursos habilitado + global_public_caption: Torne esta visualização pública para todos que tiverem permissão para visualizar os planejadores de recursos globais. Isso não afeta a visibilidade dos pacotes de trabalho, que continua dependendo das permissões de cada usuário. label_edit_resource_planner: Editar planejador de recursos label_new_resource_planner: Novo planejador de recursos label_resource_planner: Planejador de recursos label_resource_planner_plural: Planejadores de recursos + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Adicionar Visualização public_caption: Tornar esta visualização pública para todos os membros do projeto. Isso não afeta a visibilidade dos pacotes de trabalho, que ainda depende das permissões de cada usuário. @@ -192,13 +215,16 @@ pt-BR: add: Adicionar allocate: Alocar settings: Configurar exibição + undisclosed: + tooltip: Você não tem permissão para ver este recurso alocado + work_package: Pacote de trabalho não visível para você user_allocations_dialog: allocate_work_package: Alocar pacote de trabalho blank: Este usuário não possui pacotes de trabalho alocados. - other_work_packages: - one: 1 outro pacote de trabalho - other: "%{count} outros pacotes de trabalho" + blank_in_timeframe: Este usuário não tem pacotes de trabalho alocados no período selecionado. + hidden_work_package: Pacote de trabalho não visível para você title: Utilização + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Adicionar usuário @@ -235,7 +261,8 @@ pt-BR: no_work_schedule: Nenhum cronograma de trabalho planejado para este usuário overbooked: Este usuário está superalocado no período selecionado. overbooked_tooltip: - range: "%{dates}: %{scheduled} agendado, %{available} disponível" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Adicionar usuário view_types: diff --git a/modules/resource_management/config/locales/crowdin/pt-PT.yml b/modules/resource_management/config/locales/crowdin/pt-PT.yml index f75a5a7d0165..1aa5fad005e4 100644 --- a/modules/resource_management/config/locales/crowdin/pt-PT.yml +++ b/modules/resource_management/config/locales/crowdin/pt-PT.yml @@ -2,17 +2,20 @@ pt-PT: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Critérios de filtragem resource_allocation: allocated_hours: Horas allocated_time: Tempo atribuído date_range: Datas end_date: Data de término entity: Entidade - filter_name: Nome do filtro de recursos + placeholder_or_user: Encarregado + placeholder_user: Utilizador de espaço reservado principal: Encarregado start_date: Data de início state: Estado - user_filter: Filtro de utilizador resource_planner: date_range: Datas default_view_class_name: Vista padrão @@ -21,12 +24,19 @@ pt-PT: name: Nome public: Público start_date: Data de início + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: deve ser posterior à data de início. + principal: + not_a_member: não é membro do projeto do pacote de trabalho. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ pt-PT: resource_work_package_timeline: one: Cronograma dos pacotes de trabalho other: Cronogramas dos pacotes de trabalho + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Seguinte ee: features: @@ -70,8 +83,12 @@ pt-PT: permission_allocate_user_resources_explanation: Permite aos utilizadores criar, atualizar e eliminar atribuições de recursos dentro de um planeador de recursos. Isto inclui atribuir utilizadores (ou filtros de utilizadores) a um planeador e ajustar o tempo e o intervalo de datas alocados. permission_assign_users_to_generic_allocations: Atribuir utilizadores a atribuições genéricas permission_assign_users_to_generic_allocations_explanation: Permite aos utilizadores utilizar a vista de Pessoal para atribuir utilizadores reais a atribuições de recursos genéricas (baseadas em filtros) que ainda não tenham um utilizador. Não permite criar nem editar atribuições. + permission_manage_public_global_resource_planners: Gerir os planeadores de recursos globais públicos + permission_manage_public_global_resource_planners_explanation: Permite que os utilizadores publiquem os seus próprios planeadores globais de recursos, e que façam a gestão dos planeadores globais de recursos que outros utilizadores tenham partilhado publicamente. Não permite que os utilizadores vejam planeadores globais de recursos que não tenham sido partilhados publicamente. permission_manage_public_resource_planners: Gerir os planeadores de recursos públicos permission_manage_public_resource_planners_explanation: Permite aos utilizadores criar e gerir planeadores de recursos públicos. Permite ver, criar, gerir e publicar os seus próprios planeadores de recursos. Não permite que os utilizadores vejam os planeadores de recursos criados por outros utilizadores que não estejam partilhados publicamente. + permission_view_global_resource_planners: Ver os planeadores globais de recursos + permission_view_global_resource_planners_explanation: Permite que os utilizadores acedam à secção do planeador global de recursos, onde é possível planear em conjunto os recursos e as atribuições de vários projetos. Permite criar e gerir os seus próprios planeadores globais de recursos e ver os que são públicos. Os utilizadores só vêem os projetos, recursos e atribuições que estão autorizados a ver. permission_view_resource_planners: Ver planeadores de recursos permission_view_resource_planners_explanation: Permite que os utilizadores acedam aos planeadores de recursos. Permite criar e gerir os seus próprios planeadores de recursos e ver planeadores de recursos públicos. Não permite que os utilizadores vejam os planeadores de recursos criados por outros utilizadores que não estejam partilhados publicamente. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ pt-PT: make_public: Tornar público unfavorite: Remover dos favoritos allocate_resource_dialog: - kind: - filter: - caption: Definir critérios de filtro com base nos atributos do utilizador para criar um recurso de marcador de posição. - label: Critérios do filtro - label: Tipo de atribuição - principal: - caption: Atribuir horas a um utilizador específico. - label: Utilizador + criteria: + empty: Não foram definidos critérios. + label: Critérios + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: O utilizador selecionado não tem horário de trabalho configurado para estas datas, pelo que se considera que não tem disponibilidade. partial: O utilizador selecionado não tem horário de trabalho configurado para %{dates}, pelo que esses dias são considerados como sem disponibilidade. outside_dates: description: As datas do recurso selecionado, %{resource_dates}, encontram-se fora do intervalo de datas do pacote de trabalho, %{work_package_dates}. overbooking: - capacity_summary: "%{available} disponível · %{scheduled} agendado" description: O utilizador selecionado, %{user}, seria destacado para fora do seu horário de trabalho neste período. - hidden_work: Outras atribuições + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% disponível para trabalhar no projeto)" schedule_change: até %{date}, depois %{schedule} schedule_note: Este utilizador trabalha %{schedule}. submit: Atribuir horas extraordinárias title: Quer atribuir horas extraordinárias ao utilizador? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Atribuir success_message: Recurso atribuído. title: Atribuir recurso @@ -131,6 +145,7 @@ pt-PT: title: Atribuir %{filter_name} blankslate: desc: Crie um planeador de recursos para começar a planear a capacidade para este projeto. + global_desc: Crie um planeador de recursos para começar a planear a capacidade em todos os projetos. title: Ainda não há planeadores de recursos configure_view_dialog: delete_confirmation: Tem a certeza de que quer eliminar esta vista? Esta ação não pode ser anulada. @@ -143,15 +158,23 @@ pt-PT: caption: Uma lista personalizada de elementos que pode adicionar e remover manualmente. Não é possível filtrar. label: Seleção manual title: Configurar vista + create_placeholder_user_dialog: + submit: Criar + title: Criar utilizador de espaço reservado edit_allocation_dialog: submit: Guardar success_message: A atribuição de recursos foi atualizada. title: Editar atribuição favorite_caption: Torne esta vista num favorito para a adicionar à secção superior do menu da barra lateral. + filters: + resource_management_enabled: Gestão de recursos ativada + global_public_caption: Torne esta vista pública para todos os utilizadores com autorização para ver os planeadores de recursos globais. Isto não afeta a visibilidade dos pacotes de trabalho, que continua a depender das permissões de cada utilizador. label_edit_resource_planner: Editar o planeador de recursos label_new_resource_planner: Novo planeador de recursos label_resource_planner: Planeador de recursos label_resource_planner_plural: Planeadores de recursos + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Adicionar vista public_caption: Torne esta vista pública para todos os membros do projeto. Não afeta a visibilidade dos pacotes de trabalho, que continua a depender da permissão de cada utilizador. @@ -192,13 +215,16 @@ pt-PT: add: Adicionar allocate: Atribuir settings: Configurar vista + undisclosed: + tooltip: Não tem permissões para ver este recurso atribuído + work_package: Pacote de trabalho que não está visível para si user_allocations_dialog: allocate_work_package: Atribuir pacote de trabalho blank: Este utilizador não tem pacotes de trabalho atribuídos. - other_work_packages: - one: 1 outro pacote de trabalho - other: "%{count} outros pacotes de trabalho" + blank_in_timeframe: Este utilizador não tem pacotes de trabalho atribuídos no período selecionado. + hidden_work_package: Pacote de trabalho que não está visível para si title: Utilização + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Adicionar utilizador @@ -235,7 +261,8 @@ pt-PT: no_work_schedule: Não existe qualquer horário de trabalho previsto para este utilizador overbooked: Este utilizador excedeu a sua quota no período selecionado. overbooked_tooltip: - range: "%{dates}: %{scheduled} agendado, %{available} disponível" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Adicionar utilizador view_types: diff --git a/modules/resource_management/config/locales/crowdin/ro.yml b/modules/resource_management/config/locales/crowdin/ro.yml index 03f9c9833d37..b356f78916bb 100644 --- a/modules/resource_management/config/locales/crowdin/ro.yml +++ b/modules/resource_management/config/locales/crowdin/ro.yml @@ -2,17 +2,20 @@ ro: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ ro: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -63,6 +73,9 @@ ro: one: Work packages timeline few: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -76,8 +89,12 @@ ro: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -93,28 +110,25 @@ ro: make_public: Make public unfavorite: Elimină din favorite allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -137,6 +151,7 @@ ro: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -149,15 +164,23 @@ ro: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -198,14 +221,16 @@ ro: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -242,7 +267,8 @@ ro: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/ru.yml b/modules/resource_management/config/locales/crowdin/ru.yml index d364df410c51..8dda19b696d9 100644 --- a/modules/resource_management/config/locales/crowdin/ru.yml +++ b/modules/resource_management/config/locales/crowdin/ru.yml @@ -2,17 +2,20 @@ ru: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Критерии фильтрации resource_allocation: allocated_hours: Часы allocated_time: Распределенное время date_range: Даты end_date: Дата окончания entity: Сущность - filter_name: Название фильтра ресурсов + placeholder_or_user: Назначенный + placeholder_user: Пользователь-заполнитель principal: Исполнитель start_date: Дата начала state: Состояние - user_filter: Фильтры пользователей resource_planner: date_range: Даты default_view_class_name: Представление по умолчанию @@ -21,12 +24,19 @@ ru: name: Название public: Публичный start_date: Дата начала + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: должно быть после даты начала. + principal: + not_a_member: не является участником проекта, в рамках которого реализуется данный рабочий пакет. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ ru: few: Work packages timelines many: Work packages timelines other: Таймлайны пакетов работ + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Далее ee: features: @@ -82,8 +95,12 @@ ru: permission_allocate_user_resources_explanation: Позволяет пользователям создавать, обновлять и удалять распределение ресурсов в планировщике ресурсов. Сюда входит назначение пользователей (или фильтров) на планировщик и корректировка выделенного времени и диапазона дат. permission_assign_users_to_generic_allocations: Назначить пользователей общим распределением permission_assign_users_to_generic_allocations_explanation: Позволяет пользователям использовать режим штатного расписания для назначения реальных пользователей общим (основанным на фильтрах) распределением ресурсов, которые еще не имеют пользователя. Он не позволяет создавать или редактировать назначения. + permission_manage_public_global_resource_planners: Управление глобальными общедоступными планировщиками ресурсов + permission_manage_public_global_resource_planners_explanation: Позволяет пользователям публиковать и управлять собственными глобальными планами, которые другие пользователи сделали общедоступными. Не позволяет пользователям просматривать глобальные ресурсные планы, которые не являются общедоступными. permission_manage_public_resource_planners: Управление общедоступными планировщиками ресурсов permission_manage_public_resource_planners_explanation: Позволяет пользователям создавать и управлять общедоступными планировщиками ресурсов. Это позволяет просматривать, создавать, управлять и публиковать свои собственные планировщики ресурсов. Он не позволяет пользователям просматривать планировщики ресурсов, созданные другими пользователями, которые не являются общедоступными. + permission_view_global_resource_planners: Просмотр глобальных ресурсных планировщиков + permission_view_global_resource_planners_explanation: Позволяет пользователям получить доступ к разделу глобального планирования ресурсов, где совместно можно спланировать ресурсы и выделенные ресурсы из нескольких проектов. Он позволяет создавать и управлять собственными глобальными планировщиками ресурсов и просматривать общедоступные. Пользователи только когда-либо видят проекты, ресурсы и ассигнования, которые им разрешено просматривать. permission_view_resource_planners: Просмотр планировщиков ресурсов permission_view_resource_planners_explanation: Позволяет пользователям получить доступ к планировщику ресурсов. Это позволяет создавать и управлять своими собственными планировщиками ресурсов и просматривать общедоступные планировщики ресурсов. Он не позволяет пользователям просматривать планировщики ресурсов, созданные другими пользователями, которые не являются общедоступными. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ ru: make_public: Сделать общедоступным unfavorite: Удалить из избранного allocate_resource_dialog: - kind: - filter: - caption: Установите критерии фильтрации на основе атрибутов пользователя для создания ресурса-заполнителя. - label: Критерии фильтрации - label: Тип распределения - principal: - caption: Распределить часы для определенного пользователя. - label: Пользователь + criteria: + empty: Критерии не заданы. + label: Критерий + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: Для выбранного пользователя на эти даты не настроены рабочие часы, поэтому считается, что у него отсутствует рабочая загрузка. partial: Для выбранного пользователя не настроены рабочие часы в системе %{dates}, поэтому эти дни учитываются как дни без доступности. outside_dates: description: Выбранные даты ресурса, %{resource_dates}, вне дат пакета работ, %{work_package_dates}. overbooking: - capacity_summary: "%{available} доступно · %{scheduled} запланировано" description: Выбранный пользователь, %{user}, будет задействован в течение данного периода в нерабочее время. - hidden_work: Другие распределения + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% доступно для работы над проектом)" schedule_change: до %{date}, затем %{schedule} schedule_note: Этот пользователь работает с %{schedule}. submit: Выделить сверхурочную работу title: Вы хотите выделить сверхурочную работу пользователю? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Распределить success_message: Ресурсы выделены. title: Выделить ресурс @@ -143,6 +157,7 @@ ru: title: Назначить %{filter_name} blankslate: desc: Создать планировщик ресурсов, чтобы начать планировать этот проект. + global_desc: Создание планировщика ресурсов для начала работы по планированию в рамках проектов. title: Нет планировщиков ресурсов configure_view_dialog: delete_confirmation: Вы уверены, что хотите удалить это представление? Это действие нельзя отменить. @@ -155,15 +170,23 @@ ru: caption: Пользовательский список элементов, которые вы добавляете и удаляете вручную. Фильтрация невозможна. label: Выбрано вручную title: Настроить представление + create_placeholder_user_dialog: + submit: Создать + title: Создать пользователя-заполнителя edit_allocation_dialog: submit: Сохранить success_message: Распределение ресурсов обновлено. title: Редактировать распределение favorite_caption: Сделайте это представление избранным, чтобы добавить его в верхний раздел меню боковой панели. + filters: + resource_management_enabled: Управление ресурсами включено + global_public_caption: Сделайте этот вид общедоступным для всех, кому разрешен просмотр глобальных ресурсных планов. Это не повлияет на видимость пакетов работ, которая по-прежнему зависит от прав доступа каждого пользователя. label_edit_resource_planner: Редактировать планировщик ресурсов label_new_resource_planner: Новый планировщик ресурсов label_resource_planner: Планировщик ресурсов label_resource_planner_plural: Планировщики ресурсов + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Добавить представление public_caption: Сделать публичным для всех участников проекта. Это не влияет на видимость пакетов работ, которые все еще зависят от разрешения каждого пользователя. @@ -204,15 +227,16 @@ ru: add: Добавить allocate: Распределить settings: Настроить представление + undisclosed: + tooltip: У вас нет прав доступа к данному выделенному ресурсу + work_package: Данный пакет работ вам недоступен user_allocations_dialog: allocate_work_package: Распределить пакет работ blank: У данного пользователя нет назначенных пакетов работ. - other_work_packages: - one: еще 1 пакет работ - few: ещё %{count} пакета работ - many: ещё %{count} пакетов работ - other: ещё %{count} пакетов работ + blank_in_timeframe: У данного пользователя нет назначенных рабочих пакетов в выбранный период времени. + hidden_work_package: Данный пакет работ вам недоступен title: Использование + total_time: "%{hours} всего" user_card_list: add_user_dialog: title: Добавить пользователя @@ -249,7 +273,8 @@ ru: no_work_schedule: Для этого пользователя не запланирован график работы overbooked: У этого пользователя превышен лимит за выбранный период. overbooked_tooltip: - range: "%{dates}: %{scheduled} запланирован, %{available} доступно" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Добавить пользователя view_types: diff --git a/modules/resource_management/config/locales/crowdin/rw.yml b/modules/resource_management/config/locales/crowdin/rw.yml index a513411f48c0..73b5ff38c77f 100644 --- a/modules/resource_management/config/locales/crowdin/rw.yml +++ b/modules/resource_management/config/locales/crowdin/rw.yml @@ -2,17 +2,20 @@ rw: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ rw: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ rw: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ rw: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ rw: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ rw: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ rw: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ rw: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ rw: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/si.yml b/modules/resource_management/config/locales/crowdin/si.yml index c2341184a16c..4f61d441a865 100644 --- a/modules/resource_management/config/locales/crowdin/si.yml +++ b/modules/resource_management/config/locales/crowdin/si.yml @@ -2,17 +2,20 @@ si: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ si: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ si: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ si: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ si: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ si: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ si: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ si: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ si: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/sk.yml b/modules/resource_management/config/locales/crowdin/sk.yml index b42691cfbc03..ec26a32c6c06 100644 --- a/modules/resource_management/config/locales/crowdin/sk.yml +++ b/modules/resource_management/config/locales/crowdin/sk.yml @@ -2,17 +2,20 @@ sk: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ sk: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ sk: few: Work packages timelines many: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -82,8 +95,12 @@ sk: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ sk: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -143,6 +157,7 @@ sk: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -155,15 +170,23 @@ sk: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -204,15 +227,16 @@ sk: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - many: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -249,7 +273,8 @@ sk: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/sl.yml b/modules/resource_management/config/locales/crowdin/sl.yml index 8c7262fb87e7..8e40cc57de64 100644 --- a/modules/resource_management/config/locales/crowdin/sl.yml +++ b/modules/resource_management/config/locales/crowdin/sl.yml @@ -2,17 +2,20 @@ sl: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ sl: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ sl: two: Work packages timelines few: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -82,8 +95,12 @@ sl: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ sl: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -143,6 +157,7 @@ sl: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -155,15 +170,23 @@ sl: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -204,15 +227,16 @@ sl: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - two: "%{count} other work packages" - few: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -249,7 +273,8 @@ sl: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/sr.yml b/modules/resource_management/config/locales/crowdin/sr.yml index f22c27b522eb..ea39ff4d873f 100644 --- a/modules/resource_management/config/locales/crowdin/sr.yml +++ b/modules/resource_management/config/locales/crowdin/sr.yml @@ -2,17 +2,20 @@ sr: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ sr: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -63,6 +73,9 @@ sr: one: Work packages timeline few: Work packages timelines other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -76,8 +89,12 @@ sr: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -93,28 +110,25 @@ sr: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -137,6 +151,7 @@ sr: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -149,15 +164,23 @@ sr: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -198,14 +221,16 @@ sr: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - few: "%{count} other work packages" - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -242,7 +267,8 @@ sr: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/sv.yml b/modules/resource_management/config/locales/crowdin/sv.yml index 3ad8a2dc32f7..c8454da0622e 100644 --- a/modules/resource_management/config/locales/crowdin/sv.yml +++ b/modules/resource_management/config/locales/crowdin/sv.yml @@ -2,17 +2,20 @@ sv: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filterkriterier resource_allocation: allocated_hours: Timmar allocated_time: Tilldelad tid date_range: Datum end_date: Slutdatum entity: Entitet - filter_name: Namn på resursfilter + placeholder_or_user: Tilldelad till + placeholder_user: Platshållaranvändare principal: Tilldelad till start_date: Startdatum state: Tillstånd - user_filter: Användarfilter resource_planner: date_range: Datum default_view_class_name: Standardvy @@ -21,12 +24,19 @@ sv: name: Namn public: Offentlig start_date: Startdatum + work_package: + allocated_principals: Tilldelade resurser + allocated_time: Tilldelad errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: måste vara efter startdatumet. + principal: + not_a_member: är inte medlem i arbetspaketets projekt. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ sv: resource_work_package_timeline: one: Arbetspaketstidslinje other: Arbetspaketstidslinjer + api_v3: + undisclosed: + allocatedPrincipal: Dold – den tilldelade användaren visas inte eftersom du saknar behörighet. button_next: Nästa ee: features: @@ -70,8 +83,12 @@ sv: permission_allocate_user_resources_explanation: Tillåter användare att skapa, uppdatera och ta bort resurstilldelningar i en resursplanerare. Detta omfattar att tilldela användare (eller användarfilter) till en planerare och justera tilldelad tid och datumintervall. permission_assign_users_to_generic_allocations: Tilldela användare till generiska tilldelningar permission_assign_users_to_generic_allocations_explanation: Tillåter användare att använda bemanningsvyn för att tilldela verkliga användare till generiska (filterbaserade) resurstilldelningar som ännu inte har någon användare. Det tillåter inte att tilldelningar skapas eller redigeras. + permission_manage_public_global_resource_planners: Hantera offentliga globala resursplanerare + permission_manage_public_global_resource_planners_explanation: Tillåter användare att publicera egna globala resursplanerare och hantera globala resursplanerare som andra användare har delat offentligt. Behörigheten ger inte tillgång till globala resursplanerare som inte har delats offentligt. permission_manage_public_resource_planners: Hantera offentliga resursplanerare permission_manage_public_resource_planners_explanation: Tillåter användare att skapa och hantera offentliga resursplanerare. De kan visa, skapa, hantera och publicera sina egna resursplanerare. Det tillåter inte användare att visa resursplanerare som skapats av andra användare och inte delas offentligt. + permission_view_global_resource_planners: Visa globala resursplanerare + permission_view_global_resource_planners_explanation: Tillåter användare att öppna avsnittet för global resursplanering, där resurser och tilldelningar från flera projekt kan planeras tillsammans. De får skapa och hantera egna globala resursplanerare och visa offentliga. Användare ser endast de projekt, resurser och tilldelningar som de har behörighet att visa. permission_view_resource_planners: Visa resursplanerare permission_view_resource_planners_explanation: Tillåter användare att komma åt resursplanerare. De kan skapa och hantera sina egna resursplanerare och visa offentliga resursplanerare. Det tillåter inte användare att visa resursplanerare som skapats av andra användare och inte delas offentligt. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ sv: make_public: Gör offentlig unfavorite: Ta bort från favoriter allocate_resource_dialog: - kind: - filter: - caption: Ange filterkriterier baserade på användarattribut för att skapa en platshållarresurs. - label: Filterkriterier - label: Tilldelningstyp - principal: - caption: Tilldela timmar för en viss användare. - label: Användare + criteria: + empty: Inga kriterier angivna. + label: Kriterier + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: Den valda användaren har inga arbetstider angivna för dessa datum och räknas därför som att sakna kapacitet. partial: Den valda användaren har inga arbetstider angivna för %{dates}, så dessa dagar räknas som att sakna kapacitet. outside_dates: description: De valda resursdatumen, %{resource_dates}, ligger utanför arbetspaketets datum, %{work_package_dates}. overbooking: - capacity_summary: "%{available} tillgängligt · %{scheduled} schemalagt" description: Den valda användaren, %{user}, skulle tilldelas mer tid än sina arbetstimmar under den här perioden. - hidden_work: Andra tilldelningar + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor} % tillgänglig för projektarbete)" schedule_change: till %{date}, därefter %{schedule} schedule_note: Den här användaren arbetar %{schedule}. submit: Tilldela övertid title: Vill du tilldela användaren övertid? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Tilldela success_message: Resursen har tilldelats. title: Tilldela resurs @@ -131,6 +145,7 @@ sv: title: Tilldela %{filter_name} blankslate: desc: Skapa en resursplanerare för att börja planera kapaciteten för det här projektet. + global_desc: Skapa en resursplanerare för att börja planera kapacitet över flera projekt. title: Inga resursplanerare ännu configure_view_dialog: delete_confirmation: Är du säker på att du vill ta bort den här vyn? Detta kan inte ångras. @@ -143,15 +158,23 @@ sv: caption: En anpassad lista med poster som du lägger till och tar bort manuellt. Filtrering är inte möjlig. label: Manuellt utvalda title: Konfigurera vy + create_placeholder_user_dialog: + submit: Skapa + title: Skapa platshållaranvändare edit_allocation_dialog: submit: Spara success_message: Resurstilldelningen har uppdaterats. title: Redigera tilldelning favorite_caption: Gör den här vyn till favorit för att lägga till den högst upp i sidofältsmenyn. + filters: + resource_management_enabled: Resurshantering aktiverad + global_public_caption: Gör den här vyn offentlig för alla som har behörighet att se globala resursplanerare. Detta påverkar inte synligheten för arbetspaket, som fortfarande styrs av varje användares behörigheter. label_edit_resource_planner: Redigera resursplanerare label_new_resource_planner: Ny resursplanerare label_resource_planner: Resursplanerare label_resource_planner_plural: Resursplanerare + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Lägg till vy public_caption: Gör den här vyn offentlig för alla projektmedlemmar. Detta påverkar inte synligheten för arbetspaket, som fortfarande beror på varje användares behörigheter. @@ -192,13 +215,16 @@ sv: add: Lägg till allocate: Tilldela settings: Konfigurera vy + undisclosed: + tooltip: Du har inte behörighet att se den här tilldelade resursen + work_package: Arbetspaketet är inte synligt för dig user_allocations_dialog: allocate_work_package: Tilldela arbetspaket blank: Den här användaren har inga tilldelade arbetspaket. - other_work_packages: - one: 1 annat arbetspaket - other: "%{count} andra arbetspaket" + blank_in_timeframe: Den här användaren har inga tilldelade arbetspaket under den valda tidsperioden. + hidden_work_package: Arbetspaketet är inte synligt för dig title: Utnyttjandegrad + total_time: "%{hours} totalt" user_card_list: add_user_dialog: title: Lägg till användare @@ -235,7 +261,8 @@ sv: no_work_schedule: Inget arbetsschema planerat för den här användaren overbooked: Den här användaren är övertilldelad under den valda perioden. overbooked_tooltip: - range: "%{dates}: %{scheduled} schemalagt, %{available} tillgängligt" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Lägg till användare view_types: diff --git a/modules/resource_management/config/locales/crowdin/th.yml b/modules/resource_management/config/locales/crowdin/th.yml index d17a85f987fa..fb62766ad14e 100644 --- a/modules/resource_management/config/locales/crowdin/th.yml +++ b/modules/resource_management/config/locales/crowdin/th.yml @@ -2,17 +2,20 @@ th: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ th: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ th: other: Work packages lists resource_work_package_timeline: other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -64,8 +77,12 @@ th: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ th: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ th: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ th: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -186,12 +209,16 @@ th: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ th: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/tr.yml b/modules/resource_management/config/locales/crowdin/tr.yml index 0ac36e1bd22f..5aca32681249 100644 --- a/modules/resource_management/config/locales/crowdin/tr.yml +++ b/modules/resource_management/config/locales/crowdin/tr.yml @@ -2,17 +2,20 @@ tr: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ tr: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ tr: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ tr: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ tr: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ tr: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ tr: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ tr: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ tr: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/uk.yml b/modules/resource_management/config/locales/crowdin/uk.yml index 9f468b53e1c4..95aa388bedf4 100644 --- a/modules/resource_management/config/locales/crowdin/uk.yml +++ b/modules/resource_management/config/locales/crowdin/uk.yml @@ -2,17 +2,20 @@ uk: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Критерії фільтрування resource_allocation: allocated_hours: Години allocated_time: Виділений час date_range: Дати end_date: Дата завершення entity: Сутність - filter_name: Назва фільтра ресурсів + placeholder_or_user: Виконавець + placeholder_user: Прототип користувача principal: Виконавець start_date: Дата початку state: Стан - user_filter: Фільтр користувачів resource_planner: date_range: Дати default_view_class_name: Типове подання @@ -21,12 +24,19 @@ uk: name: Назва public: Загальнодоступне start_date: Дата початку + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: не має передувати даті початку. + principal: + not_a_member: не є учасником проєкту пакет робіт. resource_planner: attributes: end_date: @@ -69,6 +79,9 @@ uk: few: Часові шкали пакетів робіт many: Часові шкали пакетів робіт other: Часові шкали пакетів робіт + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Далі ee: features: @@ -82,8 +95,12 @@ uk: permission_allocate_user_resources_explanation: Дозволяє користувачам створювати, оновлювати й видаляти виділення ресурсів у планувальнику ресурсів. Це, зокрема, стосується призначення користувачів (або фільтрів користувачів) планувальнику й коригування виділеного часу й діапазону дат. permission_assign_users_to_generic_allocations: Призначити користувачів для загальних виділень ресурсів permission_assign_users_to_generic_allocations_explanation: Дає змогу використовувати подання «Забезпечення кадрами», щоб призначати реальних користувачів для загальних (на основі фільтрів) виділень ресурсів, яким ще не призначено користувачів. Ця функція не дозволяє створювати або редагувати виділення. + permission_manage_public_global_resource_planners: Керувати загальнодоступними глобальними планувальниками ресурсів + permission_manage_public_global_resource_planners_explanation: Дозволяє користувачам публікувати власні глобальні планувальники ресурсів та керувати глобальними планувальниками ресурсів, які оприлюднили інші користувачі. Не дозволяє користувачам переглядати глобальні планувальники ресурсів, які не оприлюднені. permission_manage_public_resource_planners: Керувати загальнодоступними планувальниками ресурсів permission_manage_public_resource_planners_explanation: Дає змогу користувачам створювати загальнодоступні планувальники ресурсів і керувати ними. Дозволяє їм переглядати, створювати й публікувати власні планувальники ресурсів, а також керувати ними. Не дозволяє переглядати планувальники ресурсів інших користувачів, які не є загальнодоступними. + permission_view_global_resource_planners: Переглядати глобальні планувальники ресурсів + permission_view_global_resource_planners_explanation: Дозволяє користувачам отримувати доступ до розділу «Глобальний планувальник ресурсів», де можна спільно планувати ресурси та їх розподіл у рамках кількох проєктів. Це дає можливість створювати власні глобальні планувальники ресурсів, керувати ними та переглядати загальнодоступні планувальники. Користувачі бачать лише ті проєкти, ресурси та розподіл ресурсів, на перегляд яких вони мають дозвіл. permission_view_resource_planners: Переглядати планувальники ресурсів permission_view_resource_planners_explanation: Дає змогу користувачам отримувати доступ до планувальників ресурсів. Дозволяє їм створювати власні планувальники ресурсів і керувати ними, а також переглядати загальнодоступні. Не дозволяє переглядати планувальники ресурсів інших користувачів, які не є загальнодоступними. plugin_openproject_resource_management: @@ -99,28 +116,25 @@ uk: make_public: Зробити загальнодоступним unfavorite: Вилучити з вибраного allocate_resource_dialog: - kind: - filter: - caption: Задайте критерії фільтра на основі атрибутів користувача, щоб створити ресурс-заповнювач. - label: Критерії фільтра - label: Тип виділення ресурсів - principal: - caption: Призначайте години для конкретного користувача. - label: Користувач + criteria: + empty: Критерії не встановлено. + label: Критерії + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: Для вибраного користувача на ці дати не налаштовано робочі години, тому вважається, що він не має завантаження. partial: Для вибраного користувача на %{dates} не налаштовано робочі години, тому вважається, що в ці дні він не має завантаження. outside_dates: description: Вибрані дати ресурсу, %{resource_dates}, виходять за межі термінів виконання пакета робіт, %{work_package_dates}. overbooking: - capacity_summary: "%{available} доступно · %{scheduled} заплановано" description: Вибраному користувачу %{user} у цей період буде призначено більше годин роботи, ніж передбачено його робочим часом. - hidden_work: Інші виділення ресурсів + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% доступно для роботи над проєктом)" schedule_change: до %{date}, потім %{schedule} schedule_note: Цей користувач працює %{schedule}. submit: Виділити понаднормовий час title: Хочете виділити цьому користувачу понаднормовий час? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Виділити success_message: Ресурси виділено. title: Виділити ресурс @@ -143,6 +157,7 @@ uk: title: "%{filter_name} — призначити" blankslate: desc: Створіть планувальник ресурсів, щоб почати планувати завантаження для цього проєкту. + global_desc: Створіть планувальник ресурсів, щоб почати планувати завантаження для проєктів. title: Ще немає планувальників ресурсів configure_view_dialog: delete_confirmation: Справді видалити подання? Цю дію неможливо скасувати. @@ -155,15 +170,23 @@ uk: caption: Користувацький список елементів, які потрібно додавати й видаляти вручну. Фільтрація неможлива. label: Вибране вручну title: Налаштувати подання + create_placeholder_user_dialog: + submit: Створити + title: Створити прототип користувача edit_allocation_dialog: submit: Зберегти success_message: Виділення ресурсів оновлено. title: Редагувати виділення ресурсів favorite_caption: Якщо додати це подання у вибране, воно з’явиться у верхній частині меню бічної панелі. + filters: + resource_management_enabled: Керування ресурсами увімкнено + global_public_caption: Якщо зробити це подання загальнодоступним, глобальні планувальники ресурсів зможуть переглядати всі користувачі. Це не вплине на видимість пакетів робіт, яка все ще залежить від того, чи є в користувача відповідний дозвіл. label_edit_resource_planner: Редагувати планування ресурсів label_new_resource_planner: Новий планувальник ресурсів label_resource_planner: Планувальник ресурсів label_resource_planner_plural: Планувальники ресурсів + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Додати подання public_caption: Якщо зробити це подання загальнодоступним, доступ до нього отримають усі учасники проєкту. Це не вплине на видимість пакетів робіт, яка все ще залежить від того, чи є в користувача відповідний дозвіл. @@ -204,15 +227,16 @@ uk: add: Додати allocate: Призначити settings: Налаштувати подання + undisclosed: + tooltip: У вас немає дозволу для перегляду цього виділеного ресурсу + work_package: Цей пакет робіт вам недоступний user_allocations_dialog: allocate_work_package: Виділити пакет робіт blank: Цьому користувачу не призначено жодних пакетів робіт. - other_work_packages: - one: Ще 1 пакет робіт - few: Ще %{count} пакети робіт - many: Ще %{count} пакетів робіт - other: Ще %{count} пакета робіт + blank_in_timeframe: Цьому користувачеві не призначено жодних пакетів робіт у вибраний період. + hidden_work_package: Цей пакет робіт вам недоступний title: Використання + total_time: "%{hours} загалом" user_card_list: add_user_dialog: title: Додати користувача @@ -249,7 +273,8 @@ uk: no_work_schedule: Для цього користувача не створено жодного розкладу роботи overbooked: На вибраний період цьому користувачу призначено більше годин, ніж доступно. overbooked_tooltip: - range: "%{dates}: %{scheduled} заплановано, %{available} доступно" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Додати користувача view_types: diff --git a/modules/resource_management/config/locales/crowdin/uz.yml b/modules/resource_management/config/locales/crowdin/uz.yml index 774cd8bf6500..7b706dfc0f49 100644 --- a/modules/resource_management/config/locales/crowdin/uz.yml +++ b/modules/resource_management/config/locales/crowdin/uz.yml @@ -2,17 +2,20 @@ uz: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Finish date entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ uz: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -57,6 +67,9 @@ uz: resource_work_package_timeline: one: Work packages timeline other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -70,8 +83,12 @@ uz: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -87,28 +104,25 @@ uz: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -131,6 +145,7 @@ uz: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -143,15 +158,23 @@ uz: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource planner label_resource_planner_plural: Resource planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of work packages which still depends on each user permission. @@ -192,13 +215,16 @@ uz: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - one: 1 other work package - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -235,7 +261,8 @@ uz: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/vi.yml b/modules/resource_management/config/locales/crowdin/vi.yml index 1a9b5e176a99..7611d3ad751b 100644 --- a/modules/resource_management/config/locales/crowdin/vi.yml +++ b/modules/resource_management/config/locales/crowdin/vi.yml @@ -2,17 +2,20 @@ vi: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: Filter criteria resource_allocation: allocated_hours: Hours allocated_time: Allocated time date_range: Dates end_date: Ngày kết thúc entity: Entity - filter_name: Resource filter name + placeholder_or_user: Assignee + placeholder_user: Placeholder user principal: Assignee start_date: Start date state: State - user_filter: User filter resource_planner: date_range: Dates default_view_class_name: Default view @@ -21,12 +24,19 @@ vi: name: Name public: Public start_date: Start date + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: must be after the start date. + principal: + not_a_member: is not a member of the work package's project. resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ vi: other: Work packages lists resource_work_package_timeline: other: Work packages timelines + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: Next ee: features: @@ -64,8 +77,12 @@ vi: permission_allocate_user_resources_explanation: Allows users to create, update, and delete resource allocations within a resource planner. This includes assigning users (or user filters) to a planner and adjusting the allocated time and date range. permission_assign_users_to_generic_allocations: Assign users to generic allocations permission_assign_users_to_generic_allocations_explanation: Allows users to use the Staffing view to assign real users to generic (filter-based) resource allocations that do not yet have a user. It does not allow creating or editing allocations. + permission_manage_public_global_resource_planners: Manage public global resource planners + permission_manage_public_global_resource_planners_explanation: Allows users to publish their own global resource planners and to manage global resource planners that other users have shared publicly. It does not allow users to view global resource planners that are not shared publicly. permission_manage_public_resource_planners: Manage public resource planners permission_manage_public_resource_planners_explanation: Allows users to create and manage public resource planners. It allows them to view, create, manage and publish their own resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. + permission_view_global_resource_planners: View global resource planners + permission_view_global_resource_planners_explanation: Allows users to access the global resource planner section, where resources and allocations from several projects can be planned together. It allows them to create and manage their own global resource planners and view public ones. Users only ever see the projects, resources and allocations they are permitted to view. permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ vi: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ vi: title: Assign %{filter_name} blankslate: desc: Tạo một Resource Planner để bắt đầu lập kế hoạch năng suất cho dự án này. + global_desc: Create a resource planner to start planning capacity across projects. title: Chưa có kế hoạch tài nguyên (Resource Planner) nào configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ vi: caption: A custom list of items you manually add and remove. Filtering is not possible. label: Manually hand-picked title: Configure view + create_placeholder_user_dialog: + submit: Create + title: Create placeholder user edit_allocation_dialog: submit: Save success_message: Resource allocation updated. title: Edit allocation favorite_caption: Make this view a favorite to add it on the top section of the sidebar menu. + filters: + resource_management_enabled: Resource management enabled + global_public_caption: Make this view public to everyone permitted to see global resource planners. This does not affect the visibility of work packages which still depends on each user permission. label_edit_resource_planner: Edit resource planner label_new_resource_planner: New resource planner label_resource_planner: Resource Planner label_resource_planner_plural: Resource Planners + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: Add View public_caption: Make this view public to all members of the project. This does not affect the visibility of gói công việc (work package)s which still depends on each user permission. @@ -186,12 +209,16 @@ vi: add: Add allocate: Allocate settings: Configure view + undisclosed: + tooltip: You don't have permissions to see this allocated resource + work_package: Work package not visible to you user_allocations_dialog: allocate_work_package: Allocate work package blank: This user has no allocated work packages. - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: This user has no allocated work packages in the selected time frame. + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ vi: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/resource_management/config/locales/crowdin/zh-CN.yml b/modules/resource_management/config/locales/crowdin/zh-CN.yml index 1fc81a1ed354..c0bf691166da 100644 --- a/modules/resource_management/config/locales/crowdin/zh-CN.yml +++ b/modules/resource_management/config/locales/crowdin/zh-CN.yml @@ -2,17 +2,20 @@ zh-CN: activerecord: attributes: + placeholder_user: + resource_allocations: Resource allocations + user_filter: 筛选条件 resource_allocation: allocated_hours: 小时 allocated_time: 分配时间 date_range: 日期 end_date: 结束日期 entity: 实体 - filter_name: 资源筛选器名称 + placeholder_or_user: 受理人 + placeholder_user: 占位符用户 principal: 受理人 start_date: 开始日期 state: 地区 - user_filter: 用户筛选器 resource_planner: date_range: 日期 default_view_class_name: 默认视图 @@ -21,12 +24,19 @@ zh-CN: name: 名称 public: 公开 start_date: 开始日期 + work_package: + allocated_principals: Allocated resources + allocated_time: Allocated errors: models: + placeholder_user: + used_in_resource_allocations: This placeholder user is still used in resource allocations. Reassign or remove these allocations before deleting it. resource_allocation: attributes: end_date: greater_than_start_date: 必须在开始日期之后。 + principal: + not_a_member: 不是工作包项目的成员。 resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ zh-CN: other: 工作包列表 resource_work_package_timeline: other: 工作包时间线 + api_v3: + undisclosed: + allocatedPrincipal: Undisclosed - The allocated user is invisible because of lacking permissions. button_next: 下一步 ee: features: @@ -64,8 +77,12 @@ zh-CN: permission_allocate_user_resources_explanation: 允许用户在资源规划工具中创建、更新和删除资源分配。这包括为规划工具分配用户(或用户筛选器),以及调整分配的时间和日期范围。 permission_assign_users_to_generic_allocations: 将用户指定给通用分配 permission_assign_users_to_generic_allocations_explanation: 允许用户使用“人员配置”视图,将真实用户指定给尚未拥有用户的通用(基于筛选器的)资源分配。该功能不支持创建或编辑分配。 + permission_manage_public_global_resource_planners: 管理公开的全局资源规划工具 + permission_manage_public_global_resource_planners_explanation: 允许用户发布自己的全局资源规划工具,并管理其他用户已公开共享的全局资源规划工具。不允许用户查看未公开共享的全局资源规划工具。 permission_manage_public_resource_planners: 管理公开的资源规划工具 permission_manage_public_resource_planners_explanation: 允许用户创建和管理公开的资源规划工具。用户可以查看、创建、管理和发布自己的资源规划工具,但不可以查看其他用户创建的未公开共享的资源规划工具。 + permission_view_global_resource_planners: 查看全局资源规划工具 + permission_view_global_resource_planners_explanation: 允许用户访问“全局资源规划工”分区,可以在此处对多个项目的资源和分配进行统一规划。允许用户创建和管理自己的全局资源规划工具,并允许其查看公共的全局资源规划工具。用户仅能查看其有权查看的项目、资源和分配。 permission_view_resource_planners: 查看资源规划工具 permission_view_resource_planners_explanation: 允许用户访问资源规划工具。用户可以创建和管理自己的资源规划工具,并查看公开的资源规划工具,但不可以查看其他用户创建的未公开共享的资源规划工具。 plugin_openproject_resource_management: @@ -81,28 +98,25 @@ zh-CN: make_public: 设为公开 unfavorite: 取消收藏 allocate_resource_dialog: - kind: - filter: - caption: 基于用户特性设置筛选条件以创建占位符资源。 - label: 筛选条件 - label: 分配类型 - principal: - caption: 为特定用户分配小时数。 - label: 用户 + criteria: + empty: 尚未设置条件。 + label: 条件 + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: 所选用户在这些日期没有配置工作时数,因此被计为没有产能。 partial: 所选用户在 %{dates}没有配置工作时数,因此这些日期被计为没有产能。 outside_dates: description: 所选资源日期 %{resource_dates} 在工作包日期 %{work_package_dates} 之外。 overbooking: - capacity_summary: "%{available} 可用 - %{scheduled} 预定" description: 为所选用户 %{user} 分配的任务将超出其在此期间的工作时数。 - hidden_work: 其他分配 + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule}(%{factor}% 可用于项目工作)" schedule_change: 截至 %{date},然后%{schedule} schedule_note: 此用户%{schedule}工作。 submit: 分配加班时间 title: 是否要为用户分配加班时间? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: 分配 success_message: 资源已分配。 title: 分配资源 @@ -125,6 +139,7 @@ zh-CN: title: 指定 %{filter_name} blankslate: desc: 创建资源规划工具以开始规划此项目的容量。 + global_desc: 创建资源规划工具,以开始规划项目的产能。 title: 暂无资源规划工具 configure_view_dialog: delete_confirmation: 确定要删除此视图吗?此操作无法撤消。 @@ -137,15 +152,23 @@ zh-CN: caption: 您手动添加和移除的自定义项目列表。无法进行筛选。 label: 人工挑选 title: 配置视图 + create_placeholder_user_dialog: + submit: 创建 + title: 创建占位符用户 edit_allocation_dialog: submit: 保存 success_message: 资源分配已更新。 title: 编辑分配 favorite_caption: 将此视图标记为收藏项,并添加到边栏菜单的顶部。 + filters: + resource_management_enabled: 资源管理已启用 + global_public_caption: 向有权查看全局资源规划工具的所有成员公开此视图。这不会影响工作包的可见性,工作包的可见性仍然取决于每位用户的权限。 label_edit_resource_planner: 编辑资源规划工具 label_new_resource_planner: 新建资源规划工具 label_resource_planner: 资源规划工具 label_resource_planner_plural: 资源规划工具 + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: 添加视图 public_caption: 向该项目的所有成员公开此视图。这不会影响工作包的可见性,工作包的可见性仍然取决于每位用户的权限。 @@ -186,12 +209,16 @@ zh-CN: add: 添加 allocate: 分配 settings: 配置视图 + undisclosed: + tooltip: 您无权查看此分配资源 + work_package: 工作包对您不可见 user_allocations_dialog: allocate_work_package: 分配工作包 blank: 此用户没有分配的工作包。 - other_work_packages: - other: 其他 %{count} 个工作包 + blank_in_timeframe: 此用户在所选时间范围中没有分配的工作包。 + hidden_work_package: 工作包对您不可见 title: 使用情况 + total_time: 总计 %{hours} user_card_list: add_user_dialog: title: 添加用户 @@ -228,7 +255,8 @@ zh-CN: no_work_schedule: 没有为此用户计划的工作时间表 overbooked: 此用户在所选期间内被超额指定。 overbooked_tooltip: - range: "%{dates}:计划量为 %{scheduled},可用量为 %{available}" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: 添加用户 view_types: diff --git a/modules/resource_management/config/locales/crowdin/zh-TW.yml b/modules/resource_management/config/locales/crowdin/zh-TW.yml index e062c275d5eb..1d71672cfcfa 100644 --- a/modules/resource_management/config/locales/crowdin/zh-TW.yml +++ b/modules/resource_management/config/locales/crowdin/zh-TW.yml @@ -2,17 +2,20 @@ zh-TW: activerecord: attributes: + placeholder_user: + resource_allocations: 資源配置 + user_filter: 篩選條件 resource_allocation: allocated_hours: 小時 allocated_time: 分配時間 date_range: 日期 end_date: 完成日期 entity: 實體 - filter_name: Resource filter name + placeholder_or_user: 執行者 + placeholder_user: 佔位符使用者 principal: 執行者 start_date: 起始日期 state: 狀態 - user_filter: User filter resource_planner: date_range: 日期 default_view_class_name: 預設檢視 @@ -21,12 +24,19 @@ zh-TW: name: 名稱 public: 公開 start_date: 起始日期 + work_package: + allocated_principals: 已分配資源 + allocated_time: 已分配 errors: models: + placeholder_user: + used_in_resource_allocations: 此佔位使用者目前仍被用於資源分配。在刪除該使用者之前,請先重新指派或移除這些資源分配。 resource_allocation: attributes: end_date: greater_than_start_date: 必須在開始日期之後。 + principal: + not_a_member: 並非該工作包專案的成員。 resource_planner: attributes: end_date: @@ -51,6 +61,9 @@ zh-TW: other: 工作項目清單 resource_work_package_timeline: other: 工作項目時程表 + api_v3: + undisclosed: + allocatedPrincipal: 未公開 - 由於缺乏權限,該指派的使用者無法被看見。 button_next: 下一個 ee: features: @@ -64,8 +77,12 @@ zh-TW: permission_allocate_user_resources_explanation: 允許使用者在資源規劃器中建立、更新及刪除資源分配。這包括將使用者(或使用者篩選條件)指派至規劃器,以及調整已分配的時間與日期範圍。 permission_assign_users_to_generic_allocations: 將使用者指派至通用配額 permission_assign_users_to_generic_allocations_explanation: 允許使用者透過「人力配置」檢視,將實際使用者指派至尚未分配使用者的通用(基於篩選條件)資源配置。此功能不允許建立或編輯資源配置。 + permission_manage_public_global_resource_planners: 管理公開的全域資源規劃器 + permission_manage_public_global_resource_planners_explanation: 允許使用者發佈自己的全球資源規劃表,並管理其他使用者公開分享的全球資源規劃表。但使用者無法檢視未公開分享的全球資源規劃表。 permission_manage_public_resource_planners: 管理公共資源規劃人員 permission_manage_public_resource_planners_explanation: 允許使用者建立和管理公開的資源規劃表。使用者可檢視、建立、管理及發佈自己的資源規劃表。但使用者無法檢視其他使用者建立且未公開分享的資源規劃表。 + permission_view_global_resource_planners: 檢視全球資源規劃人員 + permission_view_global_resource_planners_explanation: 讓使用者能夠存取「全球資源規劃」區塊,在此可一併規劃多個專案的資源與分配。使用者可建立並管理自己的全球資源規劃,並檢視公開的規劃。使用者僅能看到其獲准檢視的專案、資源及分配。 permission_view_resource_planners: View resource planners permission_view_resource_planners_explanation: Allows users to access resource planners. It allows them to create and manage their own resource planners and view public resource planners. It does not allow users to view resource planners created by other users that are not shared publicly. plugin_openproject_resource_management: @@ -81,28 +98,25 @@ zh-TW: make_public: Make public unfavorite: Remove from favorites allocate_resource_dialog: - kind: - filter: - caption: Set filter criteria based on user attributes to create a placeholder resource. - label: Filter criteria - label: Allocation type - principal: - caption: Allocate hours for a specific user. - label: User + criteria: + empty: No criteria set. + label: Criteria + deleted_assignee: The user assigned to this allocation has been deleted. You can keep the allocation as it is or pick someone else. missing_working_hours: none: The selected user has no working hours configured for these dates, so they are counted as having no capacity. partial: The selected user has no working hours configured for %{dates}, so those days are counted as having no capacity. outside_dates: description: The selected resource dates, %{resource_dates}, are outside of the work package's dates, %{work_package_dates}. overbooking: - capacity_summary: "%{available} available · %{scheduled} scheduled" description: The selected user, %{user}, would be allocated beyond their working hours during this period. - hidden_work: Other allocations + overtime_summary_html: This allocation adds %{hours} between %{start_date} and %{end_date}, causing %{overtime} of overtime between %{overtime_start_date} and %{overtime_end_date}. schedule_availability: "%{schedule} (%{factor}% available for project work)" schedule_change: until %{date}, then %{schedule} schedule_note: This user works %{schedule}. submit: Allocate overtime title: Do you want to allocate overtime to the user? + unplannable: "%{user} has no working day between %{start_date} and %{end_date}, so this allocation cannot be planned." + staffed_from: Staffed from placeholder user %{placeholder} submit: Allocate success_message: Resource allocated. title: Allocate resource @@ -125,6 +139,7 @@ zh-TW: title: Assign %{filter_name} blankslate: desc: Create a resource planner to start planning capacity for this project. + global_desc: Create a resource planner to start planning capacity across projects. title: No resource planners yet configure_view_dialog: delete_confirmation: Are you sure you want to delete this view? This cannot be undone. @@ -137,15 +152,23 @@ zh-TW: caption: 這是一份由您手動新增及移除項目的自訂清單。無法進行篩選。 label: 經人手精心挑選 title: 版面設定 + create_placeholder_user_dialog: + submit: 建立 + title: 建立佔位符使用者 edit_allocation_dialog: submit: 儲存 success_message: 資源分配已更新。 title: 編輯分配 favorite_caption: 將此視圖加入「我的最愛」,即可將其顯示在側邊欄選單的最上方。 + filters: + resource_management_enabled: 已啟用資源管理 + global_public_caption: 將此檢視設為公開,供所有獲准查看全球資源規劃者的人員瀏覽。此設定不會影響工作包的可見性,其可見性仍取決於各使用者的權限。 label_edit_resource_planner: 編輯資源規劃器 label_new_resource_planner: 新的資源規劃師 label_resource_planner: 資源規劃師 label_resource_planner_plural: 資源規劃師 + my_time_management: + hidden_work_package: Work package not visible to you new_view_dialog: title: 新增檢視 public_caption: 將此檢視設為對專案所有成員公開。此設定不會影響工作包的可見性,工作包的可見性仍取決於各使用者的權限。 @@ -186,12 +209,16 @@ zh-TW: add: 增加 allocate: 分配 settings: 版面設定 + undisclosed: + tooltip: 您沒有權限查看此已分配的資源 + work_package: 您無法查看此工作項目 user_allocations_dialog: allocate_work_package: 分配工作項目 blank: 此使用者目前沒有被分配的工作項目。 - other_work_packages: - other: "%{count} other work packages" + blank_in_timeframe: 該使用者在所選時間範圍內沒有被分配的工作項目。 + hidden_work_package: Work package not visible to you title: Utilization + total_time: "%{hours} total" user_card_list: add_user_dialog: title: Add user @@ -228,7 +255,8 @@ zh-TW: no_work_schedule: No work schedule planned for this user overbooked: This user is over-allocated in the selected period. overbooked_tooltip: - range: "%{dates}: %{scheduled} scheduled, %{available} available" + dates: Beyond working hours on %{dates} + unplannable: This user has no working day in this period. subheader: add_user: Add user view_types: diff --git a/modules/storages/config/locales/crowdin/af.yml b/modules/storages/config/locales/crowdin/af.yml index 47351921512f..2d5d0f7cd051 100644 --- a/modules/storages/config/locales/crowdin/af.yml +++ b/modules/storages/config/locales/crowdin/af.yml @@ -412,14 +412,13 @@ af: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ af: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktiewe @@ -487,7 +483,7 @@ af: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/ar.yml b/modules/storages/config/locales/crowdin/ar.yml index c56b1dcc5006..5d6e10be7393 100644 --- a/modules/storages/config/locales/crowdin/ar.yml +++ b/modules/storages/config/locales/crowdin/ar.yml @@ -436,14 +436,13 @@ ar: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -452,27 +451,24 @@ ar: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: يرجى التأكد من حصولك على امتيازات الإدارة في %{application_link_text} أو الاتصال بمسؤول Microsoft قبل القيام بالإعداد. في البوابة، تحتاج أيضًا إلى تسجيل تطبيق Azure أو استخدام تطبيق موجود للمصادقة. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: يرجى التأكد من حصولك على امتيازات الإدارة في %{application_link_text} أو الاتصال بمسؤول Microsoft قبل القيام بالإعداد. في البوابة، تحتاج أيضًا إلى تسجيل تطبيق Azure أو استخدام تطبيق موجود للمصادقة. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: '"تكامل OpenProject"' label_active: مفعّل @@ -511,7 +507,7 @@ ar: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/az.yml b/modules/storages/config/locales/crowdin/az.yml index 9d9e265c26f1..aea78cc8b125 100644 --- a/modules/storages/config/locales/crowdin/az.yml +++ b/modules/storages/config/locales/crowdin/az.yml @@ -412,14 +412,13 @@ az: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ az: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ az: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/be.yml b/modules/storages/config/locales/crowdin/be.yml index 781d48ae2763..d8e109e195c6 100644 --- a/modules/storages/config/locales/crowdin/be.yml +++ b/modules/storages/config/locales/crowdin/be.yml @@ -424,14 +424,13 @@ be: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -440,27 +439,24 @@ be: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -499,7 +495,7 @@ be: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: Ніводнага сховішча няма. diff --git a/modules/storages/config/locales/crowdin/bg.yml b/modules/storages/config/locales/crowdin/bg.yml index ec0e0342d5ee..ab870e8235b4 100644 --- a/modules/storages/config/locales/crowdin/bg.yml +++ b/modules/storages/config/locales/crowdin/bg.yml @@ -412,14 +412,13 @@ bg: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ bg: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Уверете се, че имате права за администриране в %{application_link_text}, или се свържете с администратора на Microsoft, преди да извършите настройката. В портала също така трябва да регистрирате приложение на Azure или да използвате съществуващо такова за удостоверяване. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Уверете се, че имате права за администриране в %{application_link_text}, или се свържете с администратора на Microsoft, преди да извършите настройката. В портала също така трябва да регистрирате приложение на Azure или да използвате съществуващо такова за удостоверяване. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Активен @@ -487,7 +483,7 @@ bg: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/ca.yml b/modules/storages/config/locales/crowdin/ca.yml index 321492893260..ef00d65afb70 100644 --- a/modules/storages/config/locales/crowdin/ca.yml +++ b/modules/storages/config/locales/crowdin/ca.yml @@ -412,14 +412,13 @@ ca: empty_project_folder_validation: Per procedir és obligatori seleccionar una carpeta. existing_manual_folder: Pots designar una carpeta existent com la carpeta d'inici per aquest projecte. Tingues en compte que els permisos no es configuren automàticament, els administradors han d'assegurar manualment que els usuaris pertinents tenen accés. La carpeta seleccionada pot ser utilitzada en múltiples projectes. host: Si us plau, afegeix l'adreça d'allotjament del teu emmagatzematge incloent el https://. No pot més llarg de 255 caràcters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Dona un nom al teu emmagatzematge per tal que els usuaris el puguin diferenciar d'altres. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Administració Nextcloud / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ ca: not_logged_into_storage: Per seleccionar una carpeta de projecte, si us plau inicia sessió primer. oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: Per configurar emmagatzematges de fitxers addicionals, si us plau, visita setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Per configurar emmagatzematges de fitxers, si us plau, visita setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Si us plau, assegura''t que tens privilegis d''administrador a la instància Nextcloud i tens la següent aplicació instal·lada abans de fer la configuració:' type_link_text: '"Integració d''OpenProject"' label_active: Actiu @@ -487,7 +483,7 @@ ca: connected: Connectat connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No s'han configurat emmagatzematges encara. diff --git a/modules/storages/config/locales/crowdin/ckb-IR.yml b/modules/storages/config/locales/crowdin/ckb-IR.yml index cf26e47f0a78..3f1ee5104e31 100644 --- a/modules/storages/config/locales/crowdin/ckb-IR.yml +++ b/modules/storages/config/locales/crowdin/ckb-IR.yml @@ -412,14 +412,13 @@ ckb-IR: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ ckb-IR: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ ckb-IR: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/cs.yml b/modules/storages/config/locales/crowdin/cs.yml index d85fcb973286..1de347acfcb8 100644 --- a/modules/storages/config/locales/crowdin/cs.yml +++ b/modules/storages/config/locales/crowdin/cs.yml @@ -424,14 +424,13 @@ cs: empty_project_folder_validation: Výběr složky je povinný pro pokračování. existing_manual_folder: Můžete určit existující složku jako kořenovou složku pro tento projekt. Oprávnění však nejsou spravována automaticky, správce musí ručně zajistit, aby měli přístup příslušní uživatelé. Vybranou složku lze použít pro více projektů. host: Přidejte prosím adresu hostitele vašeho úložiště obsahující https://. Nemělo by být delší než 255 znaků. - managed_project_folders_application_password_caption: 'Povolit automatické spravování složek kopírováním této hodnoty z: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Dejte svému úložišti jméno, aby uživatelé mohli rozlišovat mezi více úložišti. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: aplikace „Integration OpenProject“ integration: Nextcloud Administrace / OpenProject - oauth_configuration: Zkopírujte tyto hodnoty z %{application_link_text}. - provider_configuration: 'Ujistěte se prosím, že máte oprávnění administrace v Nextcloud instanci a máte nainstalovanou následující aplikaci: %{application_link_text}.' + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: např. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -440,27 +439,24 @@ cs: not_logged_into_storage: Pro výběr složky projektu se prosím nejprve přihlaste oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Kopírovat URI přesměrování - documentation_link_text: OneDrive file storages documentation - drive_id: Prosím, zkopírujte ID z požadovaného disku podle kroků %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Vyplňte hodnoty OAuth pro generování URI oauth_client_redirect_uri: Prosím zkopírujte tuto hodnotu do nového webového URI přesměrování pod přesměrováním URI. oauth_client_secret: V případě, že v pověření klienta není žádný klíč aplikace, vytvořte prosím nový. - oauth_configuration: Zkopírujte tyto hodnoty z požadované aplikace v %{application_link_text}. - provider_configuration: Před instalací se ujistěte, že máte oprávnění k administraci v %{application_link_text} nebo se obraťte na správce Microsoftu. Na portálu musíte také zaregistrovat Azure aplikaci nebo použít existující aplikaci pro autentizaci. - tenant_id: Kopírujte ID adresáře (nájemce) z požadované aplikace a registrace aplikací v %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Jméno nebo UUID setting_up_additional_storages: Pro nastavení dalších úložišť souborů navštivte prosím setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Pro nastavení úložišť souborů navštivte prosím setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Zkopírujte tyto hodnoty z požadované aplikace v %{application_link_text}. - provider_configuration: Před instalací se ujistěte, že máte oprávnění k administraci v %{application_link_text} nebo se obraťte na správce Microsoftu. Na portálu musíte také zaregistrovat Azure aplikaci nebo použít existující aplikaci pro autentizaci. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Ujistěte se prosím, že máte oprávnění administrace v Nextcloud instanci a máte nainstalovanou následující aplikaci:' type_link_text: "„Integration OpenProject“" label_active: Aktivní @@ -499,7 +495,7 @@ cs: connected: Připojeno connected_no_permissions: Uživatelská role nemá oprávnění k ukládání not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Není připojeno. Uživatel by se měl přihlásit do úložiště přes následující %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Žádní členové k zobrazení. no_results: Zatím nejsou nastaveny žádné úložiště. diff --git a/modules/storages/config/locales/crowdin/da.yml b/modules/storages/config/locales/crowdin/da.yml index f19efb880e6c..d57ae905d1b3 100644 --- a/modules/storages/config/locales/crowdin/da.yml +++ b/modules/storages/config/locales/crowdin/da.yml @@ -412,14 +412,13 @@ da: empty_project_folder_validation: Du skal vælge en mappe for at fortsætte. existing_manual_folder: Du kan udpege en eksisterende mappe som rodmappe for projektet. Tilladelserne administreres dog ikke automatisk; administratoren skal selv sørge for, at de relevante brugere har adgang. Den valgte mappe kan bruges af flere projekter. host: Angiv lagerets værtsadresse inklusive https://. Den må højst være 255 tegn lang. - managed_project_folders_application_password_caption: 'Slå automatisk administrerede mapper til ved at kopiere værdien fra: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Slå automatisk administrerede mapper til ved at kopiere værdien fra: [%{integration}](provider_settings).' name: Giv lageret et navn, så brugerne kan skelne mellem flere lagre. new_storage_html: Læs vores dokumentation om [opsætning af en integration med et %{provider_name}-fillager](docs_url) for at få flere oplysninger. nextcloud: - application_link_text: appen “Integration OpenProject” integration: Nextcloud-administration / OpenProject - oauth_configuration: Kopiér værdierne fra %{application_link_text}. - provider_configuration: Sørg for, at du har administratorrettigheder i din Nextcloud-installation, og at %{application_link_text} er installeret, før du går i gang med opsætningen. + oauth_configuration_html: Kopiér værdierne fra [Nextcloud-administration / OpenProject](application_link). + provider_configuration_html: Sørg for, at du har administratorrettigheder i din Nextcloud-installation, og at [appen "Integration OpenProject"](application_link) er installeret, før du går i gang med opsætningen. storage_audience: Det klient-id, som Nextcloud-installationen bruger til at kommunikere med identitetsudbyderen. storage_audience_placeholder: fx nextcloud token_exchange_scope: De scopes, der skal anmodes om ved token-udveksling, adskilt med mellemrum. @@ -428,27 +427,24 @@ da: not_logged_into_storage: Log ind først for at vælge en projektmappe oauth_application_details_html: Klienthemmeligheden kan ikke ses igen, når du har lukket vinduet. Kopiér værdierne til [indstillingerne for Nextcloud OpenProject Integration](oauth_application_details_link). one_drive: - application_link_text: Azure-portalen copy_redirect_uri: Kopiér omdirigerings-URI - documentation_link_text: dokumentationen om OneDrive-fillagre - drive_id: Kopiér id'et for det ønskede drev ved at følge trinene i %{drive_id_link_text}. + drive_id_html: Kopiér id'et for det ønskede drev ved at følge trinene i [dokumentationen om OneDrive-fillagre](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Udfyld OAuth-værdierne for at danne en URI oauth_client_redirect_uri: Kopiér værdien til en ny web-omdirigerings-URI under Omdirigerings-URI'er. oauth_client_secret: Hvis der ikke er nogen klienthemmelighed for programmet under Klientlegitimationsoplysninger, skal du oprette en ny. - oauth_configuration: Kopiér værdierne fra det ønskede program i %{application_link_text}. - provider_configuration: Sørg for, at du har administratorrettigheder på %{application_link_text}, eller kontakt din Microsoft-administrator, før du foretager opsætningen. I portalen skal du også registrere en Azure-applikation eller bruge en eksisterende til godkendelse. - tenant_id: Kopiér mappe-id'et (tenant) fra det ønskede program under App-registreringer i %{application_link_text}. + oauth_configuration_html: Kopiér værdierne fra det ønskede program i [Azure-portalen](application_link). + provider_configuration_html: Sørg for, at du har administratorrettigheder i [Azure-portalen](application_link), eller kontakt din Microsoft-administrator, før du går i gang med opsætningen. I portalen skal du også registrere et Azure-program eller bruge et eksisterende til godkendelse. + tenant_id_html: Kopiér mappe-id'et (tenant) fra det ønskede program under App-registreringer i [Azure-portalen](application_link). tenant_id_placeholder: Navn eller UUID setting_up_additional_storages: Hvis du vil sætte flere fillagre op, kan du gå til setting_up_additional_storages_non_admin: Administratorer kan sætte flere fillagre op under Administration / Fillagre. setting_up_storages: Hvis du vil sætte fillagre op, kan du gå til setting_up_storages_non_admin: Administratorer kan sætte fillagre op under Administration / Fillagre. sharepoint: - application_link_text: SharePoint-webstedet integration: SharePoint-administration / OpenProject - oauth_configuration: Kopiér værdierne fra det ønskede program på %{application_link_text}. - provider_configuration: Sørg for, at du har administratorrettigheder på %{application_link_text}, eller kontakt din Microsoft-administrator, før du foretager opsætningen. I portalen skal du også registrere en Azure-applikation eller bruge en eksisterende til godkendelse. + oauth_configuration_html: Kopiér værdierne fra det ønskede program på [SharePoint-webstedet](application_link). + provider_configuration_html: Sørg for, at du har administratorrettigheder på [SharePoint-webstedet](application_link), eller kontakt din Microsoft-administrator, før du går i gang med opsætningen. I portalen skal du også registrere et Azure-program eller bruge et eksisterende til godkendelse. type: 'Sørg for, at du har administratorrettigheder i din Nextcloud-installation, og at følgende app er installeret, før du går i gang med opsætningen:' type_link_text: "“Integration OpenProject”" label_active: Aktiv @@ -487,7 +483,7 @@ da: connected: Forbundet connected_no_permissions: Brugerens rolle har ingen tilladelser til lagre not_connectable: Kan ikke forbindes. Lageret kræver login via en SSO-udbyder, men brugeren logger ikke ind via SSO. - not_connected: Ikke forbundet. Brugeren skal logge ind på lageret via følgende %{link}. + not_connected_html: Ikke forbundet. Brugeren skal logge ind på lageret via følgende [link](storage_login). not_connected_sso: Endnu ikke forbundet. SSO forbinder automatisk brugeren, når vedkommende ser på filer. members_no_results: Der er ingen medlemmer at vise. no_results: Der er endnu ikke sat nogen lagre op. diff --git a/modules/storages/config/locales/crowdin/de.yml b/modules/storages/config/locales/crowdin/de.yml index ab25a86e645e..0a52d868107b 100644 --- a/modules/storages/config/locales/crowdin/de.yml +++ b/modules/storages/config/locales/crowdin/de.yml @@ -412,14 +412,13 @@ de: empty_project_folder_validation: Die Auswahl eines Ordners ist zwingend erforderlich, um fortzufahren. existing_manual_folder: Sie können einen existierenden Ordner als Hauptordner für dieses Projekt definieren. Die Berechtigungen werden jedoch nicht automatisch verwaltet, der Administrator muss manuell sicherstellen, dass relevante Benutzer Zugriff haben. Der ausgewählte Ordner kann von mehreren Projekten verwendet werden. host: Bitte ergänzen Sie die Host-Adresse Ihres Speichers (einschließlich https://). Sie sollte nicht länger als 255 Zeichen sein. - managed_project_folders_application_password_caption: 'Automatisch verwaltete Ordner aktivieren, indem Sie diesen Wert kopieren: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Geben Sie Ihrem Speicher einen Namen, damit Benutzer zwischen mehreren Speichern unterscheiden können. new_storage_html: Lesen Sie unsere Dokumentation zur [Konfiguration eines %{provider_name} Dateispeichers](docs_url) für weitere Informationen. nextcloud: - application_link_text: Anwendung „OpenProject Integration“ integration: Nextcloud Administration / OpenProject - oauth_configuration: Kopieren Sie diese Werte aus der %{application_link_text}. - provider_configuration: Bitte stellen Sie sicher, dass Sie Administrationsrechte in Ihrer Nextcloud-Instanz haben und die %{application_link_text} vor dem Setup installiert wurde. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Die Client-ID, die die Nextcloud-Instanz verwendet, um mit dem Identity Provider zu kommunizieren. storage_audience_placeholder: z.B. Nextcloud token_exchange_scope: Die Scopes, die während des Tokenaustauschs angefordert werden sollen, jeweils durch ein Leerzeichen getrennt. @@ -428,27 +427,24 @@ de: not_logged_into_storage: Bitte melden Sie sich zunächst an, um einen Projektordner auszuwählen oauth_application_details_html: Das Client Secret wird nach dem Schließen dieses Fensters nicht mehr zugänglich sein. Bitte kopieren Sie diese Werte in die [Nextcloud OpenProject Integrationseinstellungen](oauth_application_details_link). one_drive: - application_link_text: Azure-Portal copy_redirect_uri: Umleitungs-URI kopieren - documentation_link_text: OneDrive-Dateispeicherdokumentation - drive_id: Bitte kopieren Sie die ID des gewünschten Laufwerks, indem Sie den Schritten der %{drive_id_link_text} folgen. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Bitte füllen Sie die OAuth-Werte aus, um eine URI zu generieren oauth_client_redirect_uri: Bitte kopieren Sie diesen Wert in eine neue Web-Umleitungs-URI unter Umleitungs-URIs. oauth_client_secret: Falls kein geheimer Anwendungsschlüssel unter Clientanmeldeinformationen existiert, erstellen Sie bitte einen neuen. - oauth_configuration: Kopieren Sie die Werte der gewünschten Anwendung im %{application_link_text}. - provider_configuration: Bitte stellen Sie sicher, dass Sie Administrationsrechte im %{application_link_text} haben oder kontaktieren Sie Ihren Microsoft-Administrator, bevor Sie die Installation durchführen. Im Portal müssen Sie auch eine Azure-Anwendung registrieren oder eine vorhandene zur Authentifizierung verwenden. - tenant_id: Bitte kopieren Sie die Verzeichnis-ID (Mandant) der gewünschten Anwendung aus den App-Registrierungen im %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name oder UUID setting_up_additional_storages: Um zusätzliche Dateispeicher einzurichten, besuchen Sie bitte setting_up_additional_storages_non_admin: Administratoren können zusätzliche Dateispeicher in Administration / Dateispeicher einrichten. setting_up_storages: Zum Einrichten von Dateispeichern besuchen Sie bitte setting_up_storages_non_admin: Administratoren können Dateispeicher in Administration / Dateien einrichten. sharepoint: - application_link_text: SharePoint-Seite integration: SharePoint Administration / OpenProject - oauth_configuration: Kopieren Sie die Werte der gewünschten Anwendung im %{application_link_text}. - provider_configuration: Bitte stellen Sie sicher, dass Sie Administrationsrechte im %{application_link_text} haben oder kontaktieren Sie Ihre Microsoft-Administrator:innen, bevor Sie die Installation durchführen. Im Portal müssen Sie auch eine Azure-Anwendung registrieren oder eine vorhandene zur Authentifizierung verwenden. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Bitte stellen Sie sicher, dass Sie Administrationsrechte in Ihrer Nextcloud-Instanz haben und die folgende Anwendung vor dem Setup installiert wurde:' type_link_text: "„OpenProject Integration“" label_active: Aktiv @@ -487,7 +483,7 @@ de: connected: Verbunden connected_no_permissions: Benutzerrolle hat keine Speicherberechtigungen not_connectable: Eine Verbindung kann nicht hergestellt werden. Der Speicher erfordert Login über einen SSO-Provider, aber der Benutzer verwendet kein SSO für die Anmeldung. - not_connected: Nicht verbunden. Der Benutzer sollte sich über diesen %{link} anmelden. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Noch nicht verbunden, SSO sollte sie automatisch verbinden, wenn Sie sich die Dateien anschauen. members_no_results: Keine Mitglieder zum Anzeigen. no_results: Noch keine Dateispeicher eingerichtet. diff --git a/modules/storages/config/locales/crowdin/el.yml b/modules/storages/config/locales/crowdin/el.yml index 3c830fbb09a0..84b8db63f0cc 100644 --- a/modules/storages/config/locales/crowdin/el.yml +++ b/modules/storages/config/locales/crowdin/el.yml @@ -412,14 +412,13 @@ el: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ el: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Πύλη Azure copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Παρακαλώ αντιγράψτε το ID από την επιθυμητή μονάδα δίσκου ακολουθώντας τα βήματα στο %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: Σε περίπτωση που δεν υπάρχει μυστικό πελάτη εφαρμογής στην ενότητα Πιστοποιητικά πελάτη, δημιουργήστε ένα νέο. - oauth_configuration: Αντιγράψτε αυτές τις τιμές από την επιθυμητή εφαρμογή στο %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Ενεργό @@ -487,7 +483,7 @@ el: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/eo.yml b/modules/storages/config/locales/crowdin/eo.yml index bfdd55c78b96..7e874b7625d5 100644 --- a/modules/storages/config/locales/crowdin/eo.yml +++ b/modules/storages/config/locales/crowdin/eo.yml @@ -412,14 +412,13 @@ eo: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ eo: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktiva @@ -487,7 +483,7 @@ eo: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/es.yml b/modules/storages/config/locales/crowdin/es.yml index fa875f7c3a23..9b370ab3db22 100644 --- a/modules/storages/config/locales/crowdin/es.yml +++ b/modules/storages/config/locales/crowdin/es.yml @@ -412,14 +412,13 @@ es: empty_project_folder_validation: Es obligatorio seleccionar una carpeta para continuar. existing_manual_folder: Puede designar una carpeta existente como carpeta raíz de este proyecto. Sin embargo, los permisos no se gestionan automáticamente, sino que el administrador debe asegurarse manualmente de que los usuarios pertinentes tienen acceso. La carpeta seleccionada puede ser utilizada por varios proyectos. host: Por favor añade la dirección de host de tu almacenamiento incluyendo el https://. No debe tener más de 255 caracteres. - managed_project_folders_application_password_caption: 'Habilitar carpetas gestionadas automáticamente copiando este valor de: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Dale un nombre a tu almacenamiento para que los usuarios puedan diferenciar entre múltiples almacenamientos. new_storage_html: Lee nuestra documentación sobre cómo configurar la integración con el almacenamiento de archivos de [%{provider_name}](docs_url) para obtener más información. nextcloud: - application_link_text: aplicación “Integración OpenProject” integration: Administración de Nextcloud / OpenProject - oauth_configuration: Copia estos valores de %{application_link_text}. - provider_configuration: Por favor, asegúrate de tener privilegios de administración en tu instancia de Nextcloud y de que el %{application_link_text} esté instalado antes de realizar la configuración. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: El ID del cliente que la instancia de Nextcloud utiliza para comunicarse con el proveedor de identidad. storage_audience_placeholder: por ejemplo, Nextcloud token_exchange_scope: Los ámbitos que deben solicitarse durante el intercambio de tokens, cada uno separado por un espacio. @@ -428,27 +427,24 @@ es: not_logged_into_storage: Para seleccionar una carpeta de proyecto, inicie primero la sesión oauth_application_details_html: No podrás volver a acceder al valor del secreto de cliente una vez que cierres esta ventana. Copia estos valores en la [configuración de integración de Nextcloud con OpenProject](oauth_application_details_link). one_drive: - application_link_text: Portal de Azure copy_redirect_uri: Copiar URI de redirección - documentation_link_text: Documentación de almacenamientos de archivos OneDrive - drive_id: Por favor, copie el ID de la unidad deseada siguiendo los pasos en %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Por favor, rellene los valores de OAuth para generar una URI oauth_client_redirect_uri: Por favor, copie este valor a una nueva URI de redirección Web bajo URIs de redirección. oauth_client_secret: En caso de que no haya ningún "client secret" de aplicación bajo las credenciales del Cliente, por favor cree uno nuevo. - oauth_configuration: Copie estos valores de la aplicación deseada en %{application_link_text}. - provider_configuration: Asegúrese de tener privilegios de administración en la %{application_link_text} o póngase en contacto con el administrador de Microsoft antes de realizar la configuración. En el portal, también es necesario registrar una aplicación Azure o utilizar una ya existente para la autenticación. - tenant_id: Copie el Directory (tenant) ID de la aplicación deseada y la aplicación registros en %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Nombre o UUID setting_up_additional_storages: Para configurar almacenes de archivos adicionales, visite setting_up_additional_storages_non_admin: Los administradores pueden configurar almacenamientos de archivos adicionales en Administración > Almacenamientos de archivos. setting_up_storages: Para configurar almacenes de archivos, visite setting_up_storages_non_admin: Los administradores pueden configurar almacenamientos de archivos en Administración > Almacenamientos de archivos. sharepoint: - application_link_text: Sitio de SharePoint integration: Administración de SharePoint / OpenProject - oauth_configuration: Copie estos valores de la aplicación deseada en %{application_link_text}. - provider_configuration: Asegúrese de tener privilegios de administración en %{application_link_text} o póngase en contacto con el administrador de Microsoft antes de realizar la configuración. En el portal, también es necesario registrar una aplicación Azure o utilizar una ya existente para la autenticación. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Por favor, asegúrese de tener privilegios de administrador en su instancia de Nextcloud y tener la siguiente aplicación instalada antes de hacer la configuración:' type_link_text: "“Integración OpenProject”" label_active: Activo @@ -487,7 +483,7 @@ es: connected: Conectado connected_no_permissions: El rol de usuario no tiene permisos de almacenamiento not_connectable: No conectable. El almacenamiento requiere iniciar sesión a través de un proveedor de SSO, pero el usuario no está iniciando sesión mediante SSO. - not_connected: No conectado. El usuario debe iniciar sesión en el almacenamiento a través del siguiente %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Aún no están conectados, el SSO debería conectarlos automáticamente, una vez consultados los archivos. members_no_results: No hay miembros para mostrar. no_results: Aún no se han configurado almacenes de archivos. diff --git a/modules/storages/config/locales/crowdin/et.yml b/modules/storages/config/locales/crowdin/et.yml index 78342f17768b..e30f36bba797 100644 --- a/modules/storages/config/locales/crowdin/et.yml +++ b/modules/storages/config/locales/crowdin/et.yml @@ -412,14 +412,13 @@ et: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ et: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Veenduge, et teil on administreerimisõigused aadressil %{application_link_text} või võtke enne seadistamist ühendust oma Microsofti administraatoriga. Portaalis tuleb registreerida ka Azure'i rakendus või kasutada autentimiseks olemasolevat rakendust. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Veenduge, et teil on administreerimisõigused aadressil %{application_link_text} või võtke enne seadistamist ühendust oma Microsofti administraatoriga. Portaalis tuleb registreerida ka Azure'i rakendus või kasutada autentimiseks olemasolevat rakendust. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktiivne @@ -487,7 +483,7 @@ et: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/eu.yml b/modules/storages/config/locales/crowdin/eu.yml index 11230f21ae0d..b8283f2e24c3 100644 --- a/modules/storages/config/locales/crowdin/eu.yml +++ b/modules/storages/config/locales/crowdin/eu.yml @@ -412,14 +412,13 @@ eu: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ eu: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ eu: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/fa.yml b/modules/storages/config/locales/crowdin/fa.yml index d6590187f530..59fc02b674fe 100644 --- a/modules/storages/config/locales/crowdin/fa.yml +++ b/modules/storages/config/locales/crowdin/fa.yml @@ -412,14 +412,13 @@ fa: empty_project_folder_validation: برای ادامه، انتخاب یک پوشه الزامی است. existing_manual_folder: می‌توانید یک پوشهٔ موجود را به‌عنوان پوشهٔ ریشهٔ این پروژه تعیین کنید. با این حال مجوزها به‌صورت خودکار مدیریت نمی‌شوند و مدیر باید به‌صورت دستی اطمینان دهد کاربران مرتبط دسترسی دارند. پوشهٔ انتخاب‌شده می‌تواند توسط چند پروژه استفاده شود. host: نشانی میزبان فضای ذخیره‌سازی را همراه با https:// وارد کنید. طول آن نباید بیشتر از ۲۵۵ نویسه باشد. - managed_project_folders_application_password_caption: برای فعال‌کردن پوشه‌های مدیریت‌شدهٔ خودکار، این مقدار را از %{provider_type_link} کپی کنید. + managed_project_folders_application_password_caption_html: 'برای فعال‌کردن پوشه‌های مدیریت‌شده خودکار، این مقدار را از اینجا کپی کنید: [%{integration}](provider_settings).' name: برای فضای ذخیره‌سازی یک نام تعیین کنید تا کاربران بتوانند چند فضای ذخیره‌سازی را از یکدیگر تشخیص دهند. new_storage_html: برای اطلاعات بیشتر، مستندات ما دربارهٔ [راه‌اندازی فضای ذخیره‌سازی فایل %{provider_name}](docs_url) را مطالعه کنید. nextcloud: - application_link_text: برنامهٔ «Integration OpenProject» integration: مدیریت Nextcloud / OpenProject - oauth_configuration: این مقادیر را از %{application_link_text} کپی کنید. - provider_configuration: پیش از راه‌اندازی مطمئن شوید در نمونهٔ Nextcloud خود دسترسی مدیریتی دارید و %{application_link_text} نصب شده است. + oauth_configuration_html: این مقادیر را از [مدیریت Nextcloud / OpenProject](application_link) کپی کنید. + provider_configuration_html: پیش از انجام تنظیمات، مطمئن شوید در نمونه Nextcloud خود دسترسی مدیریتی دارید و [برنامه «Integration OpenProject»](application_link) نصب شده است. storage_audience: شناسهٔ کلاینتی که نمونهٔ Nextcloud برای ارتباط با ارائه‌دهندهٔ هویت استفاده می‌کند. storage_audience_placeholder: مثلاً nextcloud token_exchange_scope: scopeهایی که هنگام Token Exchange باید درخواست شوند؛ هر مورد را با یک فاصله از دیگری جدا کنید. @@ -428,27 +427,24 @@ fa: not_logged_into_storage: برای انتخاب پوشهٔ پروژه، ابتدا وارد شوید. oauth_application_details_html: پس از بستن این پنجره، مقدار رمز کلاینت دیگر قابل مشاهده نخواهد بود. این مقادیر را در [تنظیمات یکپارچه‌سازی OpenProject در Nextcloud](oauth_application_details_link) کپی کنید. one_drive: - application_link_text: پرتال Azure copy_redirect_uri: کپی URI بازگشت - documentation_link_text: مستندات فضای ذخیره‌سازی فایل OneDrive - drive_id: شناسه را طبق مراحل توضیح‌داده‌شده در %{drive_id_link_text} از درایو موردنظر کپی کنید. + drive_id_html: شناسه را از درایو موردنظر طبق مراحل [مستندات فضای ذخیره‌سازی فایل OneDrive](drive_id_guide) کپی کنید. integration: OneDrive missing_client_id_for_redirect_uri: برای ایجاد URI، مقادیر OAuth را وارد کنید. oauth_client_redirect_uri: این مقدار را به‌عنوان یک Web redirect URI جدید در بخش Redirect URIs کپی کنید. oauth_client_secret: اگر در Client credentials هیچ Application client secretی وجود ندارد، یک مورد جدید ایجاد کنید. - oauth_configuration: این مقادیر را از برنامهٔ موردنظر در %{application_link_text} کپی کنید. - provider_configuration: پیش از راه‌اندازی مطمئن شوید در %{application_link_text} دسترسی مدیریتی دارید؛ در غیر این صورت با مدیر Microsoft تماس بگیرید. در پرتال همچنین باید یک برنامهٔ Azure ثبت کنید یا برای احراز هویت از برنامهٔ موجود استفاده کنید. - tenant_id: شناسهٔ Directory (tenant) را از برنامهٔ موردنظر و بخش App registrations در %{application_link_text} کپی کنید. + oauth_configuration_html: این مقادیر را از برنامه موردنظر در [پرتال Azure](application_link) کپی کنید. + provider_configuration_html: پیش از انجام تنظیمات، مطمئن شوید در [پرتال Azure](application_link) دسترسی مدیریتی دارید یا با مدیر Microsoft خود تماس بگیرید. همچنین باید در پرتال یک برنامه Azure ثبت کنید یا از یک برنامه موجود برای احراز هویت استفاده کنید. + tenant_id_html: شناسه Directory (tenant) را از برنامه موردنظر و بخش App registrations در [پرتال Azure](application_link) کپی کنید. tenant_id_placeholder: نام یا UUID setting_up_additional_storages: برای راه‌اندازی فضاهای ذخیره‌سازی فایل بیشتر، مراجعه کنید به setting_up_additional_storages_non_admin: مدیران می‌توانند از مسیر مدیریت / فضاهای ذخیره‌سازی فایل، فضاهای ذخیره‌سازی بیشتری راه‌اندازی کنند. setting_up_storages: برای راه‌اندازی فضای ذخیره‌سازی فایل، مراجعه کنید به setting_up_storages_non_admin: مدیران می‌توانند از مسیر مدیریت / فضاهای ذخیره‌سازی فایل، فضای ذخیره‌سازی راه‌اندازی کنند. sharepoint: - application_link_text: سایت SharePoint integration: مدیریت SharePoint / OpenProject - oauth_configuration: این مقادیر را از برنامهٔ موردنظر در %{application_link_text} کپی کنید. - provider_configuration: پیش از راه‌اندازی مطمئن شوید در %{application_link_text} دسترسی مدیریتی دارید؛ در غیر این صورت با مدیر Microsoft تماس بگیرید. در پرتال همچنین باید یک برنامهٔ Azure ثبت کنید یا برای احراز هویت از برنامهٔ موجود استفاده کنید. + oauth_configuration_html: این مقادیر را از برنامه موردنظر در [سایت SharePoint](application_link) کپی کنید. + provider_configuration_html: پیش از انجام تنظیمات، مطمئن شوید در [سایت SharePoint](application_link) دسترسی مدیریتی دارید یا با مدیر Microsoft خود تماس بگیرید. همچنین باید در پرتال یک برنامه Azure ثبت کنید یا از یک برنامه موجود برای احراز هویت استفاده کنید. type: 'پیش از راه‌اندازی مطمئن شوید در نمونهٔ Nextcloud خود دسترسی مدیریتی دارید و برنامهٔ زیر نصب شده است:' type_link_text: "«Integration OpenProject»" label_active: فعال @@ -487,7 +483,7 @@ fa: connected: متصل connected_no_permissions: نقش کاربر هیچ مجوزی برای فضای ذخیره‌سازی ندارد not_connectable: قابل اتصال نیست. فضای ذخیره‌سازی به ورود از طریق یک ارائه‌دهندهٔ SSO نیاز دارد، اما کاربر از طریق SSO وارد نشده است. - not_connected: متصل نیست. کاربر باید از طریق %{link} وارد فضای ذخیره‌سازی شود. + not_connected_html: متصل نیست. کاربر باید از طریق [این لینک](storage_login) به فضای ذخیره‌سازی وارد شود. not_connected_sso: هنوز متصل نشده است؛ پس از مشاهدهٔ فایل‌ها، SSO باید به‌طور خودکار اتصال را برقرار کند. members_no_results: هیچ عضوی برای نمایش نیست. no_results: هنوز هیچ فضای ذخیره‌سازی راه‌اندازی نشده است. diff --git a/modules/storages/config/locales/crowdin/fi.yml b/modules/storages/config/locales/crowdin/fi.yml index c189aeeb97bf..f8891ee90847 100644 --- a/modules/storages/config/locales/crowdin/fi.yml +++ b/modules/storages/config/locales/crowdin/fi.yml @@ -412,14 +412,13 @@ fi: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ fi: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Varmista, että sinulla on järjestelmänvalvojan oikeudet osoitteessa %{application_link_text}, tai ota yhteyttä Microsoftin järjestelmänvalvojaan ennen asennuksen tekemistä. Portaalissa on myös rekisteröitävä Azure-sovellus tai käytettävä olemassa olevaa sovellusta todennukseen. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Varmista, että sinulla on järjestelmänvalvojan oikeudet osoitteessa %{application_link_text}, tai ota yhteyttä Microsoftin järjestelmänvalvojaan ennen asennuksen tekemistä. Portaalissa on myös rekisteröitävä Azure-sovellus tai käytettävä olemassa olevaa sovellusta todennukseen. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktiivinen @@ -487,7 +483,7 @@ fi: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/fil.yml b/modules/storages/config/locales/crowdin/fil.yml index 106d7118dab3..741f459ecef7 100644 --- a/modules/storages/config/locales/crowdin/fil.yml +++ b/modules/storages/config/locales/crowdin/fil.yml @@ -412,14 +412,13 @@ fil: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ fil: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktibo @@ -487,7 +483,7 @@ fil: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/fr.yml b/modules/storages/config/locales/crowdin/fr.yml index d470fd6cd030..a66180934fb7 100644 --- a/modules/storages/config/locales/crowdin/fr.yml +++ b/modules/storages/config/locales/crowdin/fr.yml @@ -412,14 +412,13 @@ fr: empty_project_folder_validation: La sélection d'un dossier est nécessaire pour continuer. existing_manual_folder: Vous pouvez désigner un dossier existant comme dossier racine pour ce projet. Les permissions ne sont cependant pas gérées automatiquement, l'administrateur doit s'assurer manuellement que les utilisateurs pertinents y ont accès. Le dossier sélectionné peut être utilisé par plusieurs projets. host: Veuillez ajouter l'adresse d'hôte de votre stockage, y compris le https://. Il ne doit pas dépasser 255 caractères. - managed_project_folders_application_password_caption: 'Activez les dossiers gérés automatiquement en copiant cette valeur depuis : %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Donnez un nom à votre espace de stockage pour permettre aux utilisateurs de le différencier des autres espaces de stockage. new_storage_html: Lisez notre documentation sur l'intégration de [configuration d'un espace de stockage de fichiers %{provider_name}](docs_url) pour en savoir plus. nextcloud: - application_link_text: application « Intégration OpenProject» integration: Administration Nextcloud / OpenProject - oauth_configuration: Copiez ces valeurs depuis %{application_link_text}. - provider_configuration: Veuillez vous assurer que vous avez les droits d'administration dans votre instance Nextcloud et que le %{application_link_text} est installé avant de procéder. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: L'identifiant du client que l'instance Nextcloud utilise pour communiquer avec le fournisseur d'identification. storage_audience_placeholder: p. ex., Nextcloud token_exchange_scope: Les portées qui doivent être demandées lors de l'échange de jetons, chacune séparée par un espace. @@ -428,27 +427,24 @@ fr: not_logged_into_storage: Pour sélectionner un dossier de projet, veuillez d'abord vous connecter oauth_application_details_html: La clé secrète du client ne sera plus accessible après la fermeture de cette fenêtre. Veuillez copier ces valeurs dans les [paramètres d'intégration Nextcloud OpenProject](oauth_application_details_link). one_drive: - application_link_text: Portal Azure copy_redirect_uri: Copier l'URI de redirection - documentation_link_text: Documentation de stockage de fichiers OneDrive/SharePoint - drive_id: Veuillez copier l'ID du lecteur souhaité en suivant les étapes de %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Veuillez remplir les valeurs OAuth pour générer un URI oauth_client_redirect_uri: Veuillez copier cette valeur vers un nouvel URI de redirection web sous les URI de redirection. oauth_client_secret: S'il n'y a pas de clé secrète du client pour l'application sous « Informations d'identification du client », veuillez en créer une nouvelle. - oauth_configuration: Copiez ces valeurs de l'application souhaitée dans %{application_link_text}. - provider_configuration: Veuillez vous assurer que vous disposez des privilèges d'administration dans le %{application_link_text} ou contactez votre administrateur Microsoft avant de procéder à l'installation. Dans le portail, vous devez également enregistrer une application Azure ou utiliser une application existante pour l'authentification. - tenant_id: Veuillez copier l'ID du répertoire (locataire) de l'application souhaitée depuis la section « Inscriptions d'applications » de %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Nom ou UUID setting_up_additional_storages: Pour configurer des espaces de stockage de fichiers supplémentaires, veuillez visiter setting_up_additional_storages_non_admin: Les administrateurs peuvent configurer des espaces de stockage de fichiers supplémentaires dans Administration - Espaces de stockage de fichiers. setting_up_storages: Pour configurer des espaces de stockage de fichiers, veuillez visiter setting_up_storages_non_admin: Les administrateurs peuvent configurer des espaces de stockage de fichiers dans Administration - Espaces de stockage de fichiers. sharepoint: - application_link_text: Site SharePoint integration: Administration SharePoint/OpenProject - oauth_configuration: Copiez ces valeurs depuis l'application souhaitée dans %{application_link_text}. - provider_configuration: Assurez-vous de disposer des privilèges d'administration dans le %{application_link_text} ou contactez votre administrateur Microsoft avant de procéder à la configuration. Dans le portail, vous devez également enregistrer une application Azure ou utiliser une application existante pour l'authentification. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Veuillez vous assurer que vous avez les privilèges d''administration dans votre instance Nextcloud et que l''application suivante est installée avant de procéder à l''installation :' type_link_text: "« Intégration OpenProject »" label_active: Actif @@ -487,7 +483,7 @@ fr: connected: Connecté connected_no_permissions: Le rôle d'utilisateur n'a pas d'autorisations de stockage not_connectable: Non connectable. L'espace de stockage nécessite une connexion via un fournisseur SSO, mais l'utilisateur ne se connecte pas via SSO. - not_connected: 'Non connecté. L''utilisateur doit se connecter au stockage via le lien suivant : %{link}' + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Pas encore connectés, l'authentification unique (SSO) devrait les connecter automatiquement une fois les fichiers examinés. members_no_results: Aucun membre à afficher. no_results: Aucun espace de stockage n'est configuré pour le moment. diff --git a/modules/storages/config/locales/crowdin/he.yml b/modules/storages/config/locales/crowdin/he.yml index 0c86d966379e..e8c4926b0eef 100644 --- a/modules/storages/config/locales/crowdin/he.yml +++ b/modules/storages/config/locales/crowdin/he.yml @@ -418,14 +418,13 @@ he: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -434,27 +433,24 @@ he: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: פעיל @@ -493,7 +489,7 @@ he: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/hi.yml b/modules/storages/config/locales/crowdin/hi.yml index 42753c7157cb..40ec691ae878 100644 --- a/modules/storages/config/locales/crowdin/hi.yml +++ b/modules/storages/config/locales/crowdin/hi.yml @@ -412,14 +412,13 @@ hi: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ hi: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: सक्रिय @@ -487,7 +483,7 @@ hi: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/hr.yml b/modules/storages/config/locales/crowdin/hr.yml index 639d862ca567..1168eb997a06 100644 --- a/modules/storages/config/locales/crowdin/hr.yml +++ b/modules/storages/config/locales/crowdin/hr.yml @@ -418,14 +418,13 @@ hr: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -434,27 +433,24 @@ hr: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktivno @@ -493,7 +489,7 @@ hr: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/hu.yml b/modules/storages/config/locales/crowdin/hu.yml index 3f9d4d84cacc..c0e18591c395 100644 --- a/modules/storages/config/locales/crowdin/hu.yml +++ b/modules/storages/config/locales/crowdin/hu.yml @@ -412,14 +412,13 @@ hu: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ hu: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portál copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Kérjük, másolja ki a kívánt meghajtó azonosítóját a %{drive_id_link_text} oldalon található lépések szerint. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: Amennyiben nincs alkalmazás-kliens titkos kulcs a az ügyfél hitelesítő adatoknál, kérjük, hozzon létre egy újat. - oauth_configuration: Másolja át ezeket az értékeket a kívánt alkalmazásból ide %{application_link_text}. - provider_configuration: A telepítés megkezdése előtt kérjük, győződjön meg arról, hogy rendelkezik-e rendszergazdai jogosultságokkal a %{application_link_text} portálon, vagy vegye fel a kapcsolatot a Microsoft-rendszergazdájával. A portálon emellett regisztrálnia kell egy Azure-alkalmazást, vagy a hitelesítéshez egy meglévőt kell használnia. - tenant_id: Kérjük, másolja ki a kívánt alkalmazás és az alkalmazásregisztrációk könyvtár- (bérlő-) azonosítóját a %{application_link_text} oldalról. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: aktív @@ -487,7 +483,7 @@ hu: connected: Csatlakozva connected_no_permissions: User role has no storages permissions not_connectable: Nem csatlakoztatható. A tárhelyhez SSO-szolgáltatón keresztül kell bejelentkezni, de a felhasználó nem SSO-n keresztül jelentkezik be. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/hy.yml b/modules/storages/config/locales/crowdin/hy.yml index cc057c743745..0601a8367945 100644 --- a/modules/storages/config/locales/crowdin/hy.yml +++ b/modules/storages/config/locales/crowdin/hy.yml @@ -412,14 +412,13 @@ hy: empty_project_folder_validation: Շարունակելու համար պանակի ընտրությունը պարտադիր է։ existing_manual_folder: Դուք կարող եք առկա պանակը նշանակել որպես այս նախագծի արմատային պանակ։ Սակայն թույլտվությունները չեն կառավարվում ավտոմատ կերպով, և ադմինիստրատորը պետք է ձեռքով ապահովի, որ համապատասխան օգտատերերն ունենան հասանելիություն։ Ընտրված պանակը կարող է օգտագործվել մի քանի նախագծի կողմից։ host: Խնդրում ենք ավելացնել Ձեր պահեստի հոսթի հասցեն՝ ներառյալ https://։ Այն չպետք է լինի 255 նշանից երկար։ - managed_project_folders_application_password_caption: Ավտոմատ կառավարվող պանակները միացնելու համար պատճենեք այս արժեքը հետևյալից՝ %{provider_type_link}։ + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Տվեք Ձեր պահեստին անվանում, որպեսզի օգտատերերը կարողանան տարբերել մի քանի պահեստ միմյանցից։ new_storage_html: Լրացուցիչ տեղեկությունների համար կարդացեք մեր փաստաթղթերը [%{provider_name} նիշքերի պահեստի ինտեգրացիայի կարգավորման](docs_url) վերաբերյալ։ nextcloud: - application_link_text: "“Integration OpenProject” հավելվածը" integration: Nextcloud-ի ադմինիստրավորում / OpenProject - oauth_configuration: Պատճենեք այս արժեքները հետևյալից՝ %{application_link_text}։ - provider_configuration: Խնդրում ենք նախքան կարգավորումը համոզվել, որ Ձեր Nextcloud համակարգում ունեք ադմինիստրատորի արտոնություններ և տեղակայված է %{application_link_text}։ + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Հաճախորդի ID-ն, որը Nextcloud համակարգն օգտագործում է ինքնության մատակարարի հետ հաղորդակցվելու համար։ storage_audience_placeholder: օրինակ՝ nextcloud token_exchange_scope: Շրջանակները, որոնք պետք է պահանջվեն թոքենի փոխանակման ընթացքում՝ յուրաքանչյուրը բաժանված բացատով։ @@ -428,27 +427,24 @@ hy: not_logged_into_storage: Նախագծի պանակ ընտրելու համար խնդրում ենք նախ մտնել oauth_application_details_html: Հաճախորդի գաղտնիքի արժեքն այլևս հասանելի չի լինի այս պատուհանը փակելուց հետո։ Խնդրում ենք պատճենել այս արժեքները [Nextcloud OpenProject Integration-ի կարգավորումներում](oauth_application_details_link)։ one_drive: - application_link_text: Azure portal copy_redirect_uri: Պատճենել վերահղման URI-ը - documentation_link_text: OneDrive-ի նիշքերի պահեստների փաստաթղթեր - drive_id: Խնդրում ենք պատճենել ID-ն ցանկալի կրիչից՝ հետևելով %{drive_id_link_text}-ում նշված քայլերին։ + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Խնդրում ենք լրացնել OAuth արժեքները՝ URI ստեղծելու համար oauth_client_redirect_uri: Խնդրում ենք պատճենել այս արժեքը Redirect URIs բաժնի նոր Web redirect URI դաշտում։ oauth_client_secret: Եթե Client credentials բաժնում հավելվածի client secret չկա, խնդրում ենք ստեղծել նորը։ - oauth_configuration: Պատճենեք այս արժեքները ցանկալի հավելվածից՝ %{application_link_text}։ - provider_configuration: Խնդրում ենք նախքան կարգավորումը համոզվել, որ ադմինիստրատորի արտոնություններ ունեք հետևյալում՝ %{application_link_text}, կամ դիմել Ձեր Microsoft ադմինիստրատորին։ Պորտալում անհրաժեշտ է նաև գրանցել Azure հավելված կամ նույնականացման համար օգտագործել առկա հավելվածը։ - tenant_id: Խնդրում ենք պատճենել Directory (tenant) ID-ն ցանկալի հավելվածից և App registrations բաժնից՝ %{application_link_text}-ում։ + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Անվանում կամ UUID setting_up_additional_storages: Լրացուցիչ նիշքերի պահեստներ կարգավորելու համար խնդրում ենք այցելել setting_up_additional_storages_non_admin: Ադմինիստրատորները կարող են լրացուցիչ նիշքերի պահեստներ կարգավորել Ադմինիստրավորում / Նիշքերի պահեստներ բաժնում։ setting_up_storages: Նիշքերի պահեստներ կարգավորելու համար խնդրում ենք այցելել setting_up_storages_non_admin: Ադմինիստրատորները կարող են նիշքերի պահեստներ կարգավորել Ադմինիստրավորում / Նիշքերի պահեստներ բաժնում։ sharepoint: - application_link_text: SharePoint կայք integration: SharePoint-ի ադմինիստրավորում / OpenProject - oauth_configuration: Պատճենեք այս արժեքները ցանկալի հավելվածից՝ %{application_link_text}։ - provider_configuration: Խնդրում ենք նախքան կարգավորումը համոզվել, որ ադմինիստրատորի արտոնություններ ունեք հետևյալում՝ %{application_link_text}, կամ դիմել Ձեր Microsoft ադմինիստրատորին։ Պորտալում անհրաժեշտ է նաև գրանցել Azure հավելված կամ նույնականացման համար օգտագործել առկա հավելվածը։ + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: Խնդրում ենք նախքան կարգավորումը համոզվել, որ Ձեր Nextcloud համակարգում ունեք ադմինիստրատորի արտոնություններ և տեղակայված է հետևյալ հավելվածը՝ type_link_text: "“Integration OpenProject”" label_active: Ակտիվ @@ -487,7 +483,7 @@ hy: connected: Միացված է connected_no_permissions: Օգտատիրոջ դերը չունի պահեստների թույլտվություններ not_connectable: Միացումը հնարավոր չէ։ Պահեստը պահանջում է մուտք գործել SSO մատակարարի միջոցով, սակայն օգտատերը չի մտնում SSO-ի միջոցով։ - not_connected: Միացված չէ։ Օգտատերը պետք է մտնի պահեստ հետևյալի միջոցով՝ %{link}։ + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Դեռ միացված չէ, SSO-ն ավտոմատ կերպով կմիացնի նրան, երբ նա դիտի նիշքերը։ members_no_results: Ցուցադրելու անդամներ չկան։ no_results: Դեռ պահեստներ կարգավորված չեն։ diff --git a/modules/storages/config/locales/crowdin/id.yml b/modules/storages/config/locales/crowdin/id.yml index 375c89d0954f..1493c064714c 100644 --- a/modules/storages/config/locales/crowdin/id.yml +++ b/modules/storages/config/locales/crowdin/id.yml @@ -406,14 +406,13 @@ id: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -422,27 +421,24 @@ id: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktif @@ -481,7 +477,7 @@ id: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/it.yml b/modules/storages/config/locales/crowdin/it.yml index dc5a383d0997..2f593a0bb22e 100644 --- a/modules/storages/config/locales/crowdin/it.yml +++ b/modules/storages/config/locales/crowdin/it.yml @@ -412,14 +412,13 @@ it: empty_project_folder_validation: Selezionare una cartella è obbligatorio per procedere. existing_manual_folder: 'Puoi designare una cartella esistente come la cartella di root per questo progetto. Le autorizzazioni, tuttavia, non sono gestite automaticamente: l''amministratore necessita di assicurarsi manualmente che gli utenti rilevanti abbiano accesso. La cartella selezionata è utilizzabile per svariati progetti.' host: Aggiungi l'indirizzo host del tuo spazio di archiviazione incluso https://. Non dovrebbe essere più lungo di 255 caratteri. - managed_project_folders_application_password_caption: 'Abilita le cartelle gestite automaticamente copiando questo valore da: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Abilita le cartelle gestite automaticamente copiando questo valore da: [%{integration}](provider_settings).' name: Dai al tuo archivio un nome in modo che gli utenti lo possano distinguere tra più archivi. new_storage_html: Consulta la nostra documentazione su come [configurare un'integrazione di archiviazione file %{provider_name}](docs_url) per maggiori informazioni. nextcloud: - application_link_text: applicazione "Integrazione OpenProject" integration: Nextcloud Administration / OpenProject - oauth_configuration: Copia questi valori dall'%{application_link_text}. - provider_configuration: Assicurati di disporre dei privilegi di amministrazione nella tua istanza Nextcloud e che %{application_link_text} sia installato prima di eseguire la configurazione. + oauth_configuration_html: Copia questi valori da [Amministrazione Nextcloud / OpenProject](application_link). + provider_configuration_html: Prima di procedere con la configurazione, assicurati di disporre dei privilegi di amministrazione nella tua istanza Nextcloud e che l'[applicazione "Integration OpenProject"](application_link) sia installata. storage_audience: ID client utilizzato dall'istanza Nextcloud per comunicare con il provider di identità. storage_audience_placeholder: es. nextcloud token_exchange_scope: Ambiti che devono essere richiesti durante lo scambio di token, ciascuno separato da uno spazio. @@ -428,27 +427,24 @@ it: not_logged_into_storage: Per selezionare la cartella di un progetto, sei prim pregato di accedere oauth_application_details_html: Il valore del client secret non sarà più accessibile dopo la chiusura di questa finestra. Copia questi valori nelle [impostazioni di integrazione OpenProject di Nextcloud](oauth_application_details_link). one_drive: - application_link_text: portale Azure copy_redirect_uri: Copia URI di reindirizzamento - documentation_link_text: documentazione sull'archiviazione di file OneDrive - drive_id: Copia l'ID dall'archivio desiderato seguendo i passaggi nella %{drive_id_link_text}. + drive_id_html: Copia l'ID dall'unità desiderata seguendo i passaggi descritti nella [documentazione sull'archiviazione dei file di OneDrive](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Compila i valori OAuth per generare un URI oauth_client_redirect_uri: Copia questo valore in un nuovo URI di reindirizzamento web in URI di reindirizzamento. oauth_client_secret: Nel caso in cui non sia presente alcun segreto client dell'applicazione nelle credenziali del cliente, crearne uno nuovo. - oauth_configuration: Copia questi valori dall'applicazione desiderata nel %{application_link_text}. - provider_configuration: Assicurati di disporre dei privilegi di amministratore in %{application_link_text} o contatta il tuo amministratore Microsoft prima di eseguire la configurazione. Nel portale è inoltre necessario registrare un'applicazione Azure o utilizzarne una esistente per l'autenticazione. - tenant_id: Copia l'ID della directory (tenant) dall'applicazione desiderata e dalle registrazioni dell'app in %{application_link_text}. + oauth_configuration_html: Copia questi valori dall'applicazione desiderata nel [portale di Azure](application_link). + provider_configuration_html: Prima di procedere con la configurazione, assicurati di disporre dei privilegi di amministrazione nel [portale di Azure](application_link) oppure contatta il tuo amministratore Microsoft. Nel portale dovrai inoltre registrare un'applicazione Azure o utilizzarne una esistente per l'autenticazione. + tenant_id_html: Copia l'ID directory (tenant) dall'applicazione desiderata e dalla sezione Registrazioni app nel [portale di Azure](application_link). tenant_id_placeholder: Nome o UUID setting_up_additional_storages: Per impostare ulteriori archivi file, visita setting_up_additional_storages_non_admin: Gli amministratori possono impostare ulteriori archivi file in Amministrazione / Archivi file. setting_up_storages: Per impostare archivi file, visita setting_up_storages_non_admin: Gli amministratori possono impostare archivi file in Amministrazione / Archivi file. sharepoint: - application_link_text: Sito SharePoint integration: SharePoint Administration / OpenProject - oauth_configuration: Copia questi valori dall'applicazione desiderata nel %{application_link_text}. - provider_configuration: Assicurati di disporre dei privilegi di amministratore in %{application_link_text} o contatta il tuo amministratore Microsoft prima di eseguire la configurazione. Nel portale è inoltre necessario registrare un'applicazione Azure o utilizzarne una esistente per l'autenticazione. + oauth_configuration_html: Copia questi valori dall'applicazione desiderata nel [sito SharePoint](application_link). + provider_configuration_html: Prima di procedere con la configurazione, assicurati di disporre dei privilegi di amministrazione nel [sito SharePoint](application_link) oppure contatta il tuo amministratore Microsoft. Nel portale dovrai inoltre registrare un'applicazione Azure o utilizzarne una esistente per l'autenticazione. type: 'Assicurati di disporre dei privilegi di amministrazione nella tua istanza Nextcloud e di aver installato la seguente applicazione prima di eseguire l''installazione:' type_link_text: "“Integrazione OpenProject”" label_active: Attivo @@ -487,7 +483,7 @@ it: connected: Connesso connected_no_permissions: Il ruolo utente non ha permessi di archiviazione not_connectable: Non collegabile. L'archiviazione richiede l'accesso tramite un provider SSO, ma l'utente non accede tramite SSO. - not_connected: Non connesso. L'utente dovrebbe accedere all'archivio tramite il seguente %{link}. + not_connected_html: Non connesso. L'utente deve accedere allo spazio di archiviazione tramite il seguente [link](storage_login). not_connected_sso: Non ancora connesso, SSO dovrebbe connettersi automaticamente, una volta esaminati i file. members_no_results: Nessun membro da visualizzare. no_results: Ancora nessun'archiviazione configurata. diff --git a/modules/storages/config/locales/crowdin/ja.yml b/modules/storages/config/locales/crowdin/ja.yml index 702de85531d8..33d7dfb4712d 100644 --- a/modules/storages/config/locales/crowdin/ja.yml +++ b/modules/storages/config/locales/crowdin/ja.yml @@ -19,7 +19,7 @@ ja: token_exchange_scope: ストレージスコープ storages/project_storage: project_folder: プロジェクトフォルダ - project_folder_mode: プロジェクトフォルダーモード + project_folder_mode: プロジェクトフォルダモード storage: ストレージ storage_url: ストレージURL storages/sharepoint_storage: @@ -30,47 +30,47 @@ ja: storages/storage: authentication_method: 認証方法 creator: 作成者 - drive: ドライブID + drive: ドライブ ID file_link_origin: File link origin ID host: ホスト linkable_to_storage: Linkable to storage linkable_to_storage_url: Linkable to storage URL name: 名称 password: アプリケーションのパスワード - provider_type: プロバイダー・タイプ + provider_type: プロバイダーの種類 storage: Storage storage_url: Storage URL - tenant: ディレクトリ(テナント)ID + tenant: ディレクトリ (テナント) ID work_package: file_links: File links errors: messages: invalid_host_url: は有効な URL ではありません。 - invalid_sharepoint_url: は有効なSharePointサイト、ライブラリ、ドキュメントのURLではありません。 - not_linked_to_project: はプロジェクトにリンクされていない。 + invalid_sharepoint_url: は有効なSharePointサイト、ライブラリ、またはドキュメントのURLではありません。 + not_linked_to_project: はプロジェクトにリンクされていません。 models: storages/file_link: attributes: origin_id: - only_numeric_or_uuid: には数値かuuidしか指定できない。 + only_numeric_or_uuid: は数値またはuuidのみとなります。 storages/project_storage: attributes: project_folder_id: blank: フォルダーを選択してください。 project_folder_mode: - mode_unavailable: はこのストレージでは使用できない。 + mode_unavailable: このストレージでは使用できません。 project_ids: blank: プロジェクトを選択してください。 storages/storage: attributes: host: - authorization_header_missing: が完全にセットアップされていません。APIリクエストのベアラートークンベースの認証に必要な "Authorization "ヘッダーをNextcloudインスタンスが受け取っていません。HTTPサーバーの設定を再度ご確認ください。 - cannot_be_connected_to: に到達できませんでした。ホストに到達可能で、OpenProject 統合アプリがインストールされていることを確認してください。 + authorization_header_missing: 完全には設定されていません。 Nextcloudインスタンスは、APIリクエストのベアラートークンベースの認可に必要な「Authorization」ヘッダーを受け取りません。 HTTPサーバーの設定を再確認してください。 + cannot_be_connected_to: に到達できませんでした。ホストが到達可能で、OpenProject 統合アプリがインストールされていることを確認してください。 minimal_nextcloud_version_not_met: does not meet minimal version requirements (must be Nextcloud %{minimal_version} or higher, but %{detected_version} was detected) - not_nextcloud_server: はNextcloudサーバーではありません。 - op_application_not_installed: は、アプリ「OpenProject integration」がインストールされていないようです。インストールしてからもう一度お試しください。 + not_nextcloud_server: はNextcloudサーバーではありません + op_application_not_installed: アプリ「OpenProject統合」がインストールされていません。最初にインストールしてからもう一度お試しください。 password: - invalid_password: は無効である。 + invalid_password: は無効です。 unknown_error: could not be validated with the file storage provider. Please verify that the connection is functioning properly. models: storages/file_link: @@ -87,13 +87,13 @@ ja: other: Storages api_v3: errors: - too_many_elements_created_at_once: 一度に作成される要素が多すぎる。最大でも %{max} 、 %{actual}。 + too_many_elements_created_at_once: 一度に作成された要素が多すぎます。 %{max} の期待値は %{actual} です。 external_file_storages: 外部ファイルストレージ permission_create_files: '自動的に管理されたプロジェクトフォルダ: ファイルの作成' permission_create_files_explanation: この権限はNextcloudストレージでのみ利用できます permission_delete_files: '自動的に管理されたプロジェクトフォルダ: ファイルの削除' permission_delete_files_explanation: この権限はNextcloudストレージでのみ利用できます - permission_header_for_project_module_storages: 自動的に管理されるプロジェクトフォルダ + permission_header_for_project_module_storages: 自動的に管理されたプロジェクトフォルダ permission_manage_file_links: ファイルへのリンク管理 permission_manage_files_in_project: プロジェクト内のファイル管理 permission_read_files: '自動的に管理されたプロジェクトフォルダ: ファイルの読み込み' @@ -104,16 +104,16 @@ ja: project_module_storages: ファイルを添付する project_storages: edit_project_folder: - label: プロジェクトフォルダの編集 + label: プロジェクトフォルダを編集 open: - contact_admin: このエラーを解決するには、管理者に連絡してください。 - remote_identity_error: ストレージへの接続中に予期せぬエラーが発生しました。 + contact_admin: このエラーを解決するには管理者に問い合わせてください。 + remote_identity_error: ストレージへの接続中に予期しないエラーが発生しました。 project_folder_mode: - automatic: 自動的に管理される - inactive: 特定のフォルダなし + automatic: 自動的に管理 + inactive: 特定のフォルダがありません manual: 既存のフォルダを手動で管理 remove_project: - deletion_failure_flash: ストレージからのプロジェクトの削除に失敗しました。 %{error} + deletion_failure_flash: プロジェクトをストレージから削除できませんでした。 %{error} label: プロジェクトを削除 services: attributes: @@ -129,7 +129,7 @@ ja: one_drive_sync_service: create_folder: プロジェクトフォルダの作成を管理: ensure_root_folder_permissions: ベースフォルダの権限を設定: - hide_inactive_folders: 非アクティブフォルダを隠す ステップ: + hide_inactive_folders: 非アクティブフォルダを隠す ステップ remote_folders: 'Read contents of the drive root folder:' rename_project_folder: 管理プロジェクトフォルダの名前を変更します: set_folder_permission: 'Set managed project Folder permissions:' @@ -142,7 +142,7 @@ ja: set_folder_permission: 'Set managed project Folder permissions:' errors: messages: - error: 予期しないエラーが発生しました。OpenProject のログを確認するか、管理者に連絡してください + error: 予期しないエラーが発生しました。OpenProject のログを確認するか、管理者に連絡してください。 folder_id_collision: Multiple project storages try to manage the project folder %{folder}. Its synchronization was skipped. forbidden: OpenProject could not access the requested resource. Please check your permissions configuration on the Storage Provider. invalid_response: OpenProject could not process the response received from the Storage Provider. Please check OpenProject logs for more information or contact an administrator. @@ -150,10 +150,10 @@ ja: models: copy_project_folders_service: conflict: フォルダ %{destination_path} は既に存在する。上書きを避けるために処理を中断しています。 - error: 予期しないエラーが発生しました。OpenProject のログを確認するか、管理者に連絡してください - forbidden: OpenProject はソースフォルダにアクセスできませんでした。ストレージ・プロバイダの権限設定を確認してください + error: 予期しないエラーが発生しました。OpenProject のログを確認するか、管理者に連絡してください。 + forbidden: OpenProject はソースフォルダにアクセスできませんでした。ストレージ・プロバイダの権限設定を確認してください。 not_found: ソース・テンプレートの場所 %{source_path} が見つかりませんでした。 - unauthorized: OpenProject はストレージプロバイダと認証できませんでした。ストレージの設定を確認してください + unauthorized: OpenProject はストレージプロバイダと認証できませんでした。ストレージの設定を確認してください。 nextcloud_sync_service: attributes: add_user_to_group: @@ -174,31 +174,31 @@ ja: conflict: 以下の理由により、 %{user} のユーザーを %{group} グループから削除できませんでした: %{reason} failed_to_remove: 以下の理由により、 %{user} のユーザーを %{group} グループから削除できませんでした: %{reason} rename_project_folder: - conflict: OpenProjectは、同じ名前のフォルダが既に存在するため、プロジェクトフォルダの名前を %{current_path} に変更できませんでした - forbidden: OpenProject ユーザーは %{current_path} フォルダにアクセスできません。 - not_found: "%{current_path} は見つからなかった。" + conflict: OpenProjectは、同じ名前のフォルダが既に存在するため、プロジェクトフォルダの名前を %{current_path} に変更できませんでした。 + forbidden: OpenProjectユーザーは %{current_path} フォルダにアクセスできません。 + not_found: "%{current_path} は見つかりませんでした。" set_folders_permissions: - permission_not_set: "%{path}にパーミッションを設定できなかった。" - error: 予期しないエラーが発生しました。Nextcloud インスタンスに到達可能であることを確認し、OpenProject ワーカーのログを確認してください + permission_not_set: "%{path} に権限を設定できませんでした。" + error: 予期しないエラーが発生しました。Nextcloudインスタンスがアクセス可能であることを確認し、詳細についてはOpenProjectワーカーログを確認してください。 group_does_not_exist: "%{group} は存在しません。Nextcloudインスタンスの設定を確認してください。" - insufficient_privileges: OpenProjectには、 %{group}に %{user} を追加するのに十分な権限がありません。Nextcloudのグループ設定を確認してください。 - not_allowed: ネクストクラウドはリクエストをブロックする。 + insufficient_privileges: OpenProjectには %{user} を %{group}に追加するための十分な権限がありません。Nextcloudでグループ設定を確認してください。 + not_allowed: Nextcloudはリクエストをブロックします。 not_found: OpenProject could not find the file on the Nextcloud Storage Provider. Please check if it wasn't deleted. unauthorized: OpenProjectがNextcloudと同期できませんでした。ストレージとNextcloudの設定を確認してください。 - user_does_not_exist: "%{user} はNextcloudには存在しません。" + user_does_not_exist: Nextcloudには%{user} は存在しません。 one_drive_sync_service: attributes: create_folder: - conflict: "%{folder_name} はすでに %{parent_location}に存在している。" - not_found: "%{parent_location} は見つからなかった。" + conflict: "%{folder_name} は %{parent_location} に既に存在します。" + not_found: "%{parent_location} は見つかりませんでした。" hide_inactive_folders: - permission_not_set: "%{path}にパーミッションを設定できなかった。" + permission_not_set: "%{path} に権限を設定できませんでした。" remote_folders: - request_error: OpenProject は %{drive_id}ドライブにアクセスできませんでした。ストレージの設定が正しいかどうか確認してください。 + request_error: OpenProjectがドライブ %{drive_id}にアクセスできませんでした。ストレージの設定が正しいか確認してください。 rename_project_folder: conflict: OpenProject could not rename the folder %{current_path} to %{project_folder_name} as a folder with the same name already exists. - forbidden: OpenProject は、 %{current_path} にアクセスできず、名前を変更できません。 - not_found: "%{current_path} は見つからなかった。" + forbidden: OpenProject は名前を変更するために %{current_path} にアクセスできません。 + not_found: "%{current_path} は見つかりませんでした。" set_folders_permissions: permission_not_set: "%{path} に権限を設定できませんでした。" error: An unexpected error occurred. Please ensure that OneDrive is reachable and check OpenProject worker logs for more information. @@ -333,9 +333,9 @@ ja: drive_id_format: ドライブIDフォーマット header: 構成 host: ホスト URL - host_url_accessible: アクセス可能なホストURL + host_url_accessible: ホスト URL アクセス storage_configured: 設定完了 - tenant_id: テナントID + tenant_id: Tenant ID errors: client_id_invalid: The configured OAuth 2 client id is invalid. Please check the configuration. client_secret_invalid: The configured OAuth 2 client secret is invalid. Please check the configuration. @@ -383,66 +383,62 @@ ja: label_error: エラー label_healthy: 健康的 label_pending: 保留中 - no_report: 報告書なし - no_report_description: 今すぐチェックを実行し、このファイル・ストレージの完全な健全性ステータスをレポートする。 + no_report: 利用可能なレポートがありません + no_report_description: 今すぐこのファイルストレージの完全な健康状態レポートを確認します。 open_report: 完全な健康報告を開く project_folders: subtitle: 自動的に管理されるプロジェクトフォルダ - since: "%{datetime}より" + since: "%{datetime} 以降" synced: 'Last sync: %{datetime}' - title: 健康状態報告 + title: 健康状態レポート health_email_notifications: description_disabled: 管理者は、重要なアップデートがあった場合、メールでアップデートを受け取ることはできません。 description_enabled: 管理者は、重要なアップデートがあった場合、メールで最新情報を受け取ります。 - error_could_not_be_saved: 電子メール通知の設定を保存できませんでした。もう一度お試しください。 + error_could_not_be_saved: メール通知設定を保存できませんでした。もう一度やり直してください。 title: 管理者にメールで更新する help_texts: - project_folder: プロジェクトフォルダは、このプロジェクトのファイルアップロード用のデフォルトフォルダです。それでも、ユーザーは他の場所にファイルをアップロードすることができます。 - project_folder_bulk: プロジェクトフォルダは、選択したすべてのプロジェクトのファイルアップロード用のデフォルトフォルダです。これは、各プロジェクト設定で個別に変更できます。それでも、ユーザーは他の場所にファイルをアップロードすることができます。 + project_folder: プロジェクトフォルダは、このプロジェクトのファイルアップロードのデフォルトフォルダです。ただし、ユーザーは他の場所にファイルをアップロードすることができます。 + project_folder_bulk: プロジェクトフォルダは、選択したすべてのプロジェクトのファイルアップロードのデフォルトフォルダです。 プロジェクトごとの設定で個別に変更することができますが、ユーザーは別の場所にファイルをアップロードすることもできます。 instructions: - all_available_storages_already_added: 利用可能なすべてのストレージはすでにプロジェクトに追加されている。 - authentication_method: OpenProject とストレージ間のリクエストの認証方法。 - automatic_folder: これにより、このプロジェクトのルート・フォルダーが自動的に作成され、各プロジェクト・メンバーのアクセス権が管理されます。 - empty_project_folder_validation: 続行するには、フォルダの選択が必須です。 - existing_manual_folder: 既存のフォルダをこのプロジェクトのルートフォルダとして指定することができます。ただし、パーミッションは自動的に管理されないため、管理者は関連するユーザーがアクセスできることを手動で確認する必要があります。選択したフォルダは、複数のプロジェクトで使用できます。 - host: https:// を含むストレージのホスト・アドレスを追加してください。255文字以内にしてください。 - managed_project_folders_application_password_caption: "%{provider_type_link}からこの値をコピーして、自動管理フォルダを有効にする。" - name: ユーザーが複数のストレージを区別できるように、ストレージに名前を付ける。 + all_available_storages_already_added: 利用可能なすべてのストレージが既にプロジェクトに追加されています。 + authentication_method: OpenProjectとストレージ間のリクエストは認証されます。 + automatic_folder: これにより、このプロジェクトのルートフォルダが自動的に作成され、各プロジェクトメンバーのアクセス権限が管理されます。 + empty_project_folder_validation: フォルダの選択は必須です。 + existing_manual_folder: このプロジェクトのルートフォルダとして既存のフォルダを指定できます。 ただし、権限は自動的に管理されておらず、管理者は関連するユーザーに手動でアクセス権があることを確認する必要があります。 選択したフォルダは複数のプロジェクトで使用できます。 + host: https://を含むストレージのホストアドレスを追加してください。255文字以内にしてください。 + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' + name: ユーザーが複数のストレージを区別できるように、ストレージに名前を付けます。 new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: アプリケーション "Integration OpenProject" - integration: ネクストクラウド管理 / OpenProject - oauth_configuration: "%{application_link_text} からこれらの値をコピーします。" - provider_configuration: セットアップを行う前に、Nextcloudインスタンスの管理者権限があり、 %{application_link_text} がインストールされていることを確認してください。 - storage_audience: Nextcloud インスタンスが ID プロバイダとの通信に使用するクライアント ID。 - storage_audience_placeholder: 例:ネクストクラウド - token_exchange_scope: トークン交換時に要求するスコープを、それぞれスペースで区切って指定する。 - no_specific_folder: デフォルトでは、ファイルをアップロードすると、各ユーザーは自分のホームフォルダから開始します。 - no_storage_set_up: ファイルストレージはまだ設定されていない。 - not_logged_into_storage: プロジェクトフォルダを選択するには、まずログインしてください。 + integration: Nextcloudの管理 / OpenProject + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. + storage_audience: NextcloudインスタンスがIDプロバイダーと通信するために使用するクライアントID。 + storage_audience_placeholder: 例:nextcloud + token_exchange_scope: トークン交換中に要求されるべきスコープは、それぞれスペースで区切られています。 + no_specific_folder: デフォルトでは、各ユーザーはファイルをアップロードしたときに自分のホームフォルダから開始します。 + no_storage_set_up: まだ設定されているファイルストレージがありません。 + not_logged_into_storage: プロジェクトフォルダを選択するには、最初にログインしてください oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure Portal copy_redirect_uri: リダイレクトURIをコピーする - documentation_link_text: OneDriveファイルストレージのドキュメント - drive_id: "%{drive_id_link_text} の手順に従って、目的のドライブからIDをコピーしてください。" - integration: ワンドライブ - missing_client_id_for_redirect_uri: OAuthの値を入力してURIを生成してください。 + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). + integration: OneDrive + missing_client_id_for_redirect_uri: OAuthの値を入力してURIを生成してください oauth_client_redirect_uri: この値を「リダイレクト URIs」にある新しい Web リダイレクト URI にコピーしてください。 oauth_client_secret: Client 資格情報にアプリケーション クライアント シークレットがない場合は、新しいシークレットを作成してください。 - oauth_configuration: "%{application_link_text}、目的のアプリケーションからこれらの値をコピーします。" - provider_configuration: "%{application_link_text} で管理権限があることを確認するか、設定を行う前にMicrosoft管理者に連絡してください。 ポータルでは、Azure アプリケーションを登録するか、認証に既存のアプリケーションを使用する必要があります。" - tenant_id: ディレクトリ(テナント)IDは、 %{application_link_text}のアプリケーションおよびアプリ登録からコピーしてください。 + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: 名前またはUUID setting_up_additional_storages: 追加のファイルストレージの設定については、以下を参照してください setting_up_additional_storages_non_admin: 管理者は、Administration / File storages で追加のファイルストレージを設定できます。 setting_up_storages: ファイルストレージの設定については、以下をご覧ください setting_up_storages_non_admin: 管理者は、管理 / ファイルストレージでファイルストレージを設定できます。 sharepoint: - application_link_text: シェアポイントサイト integration: SharePoint管理 / OpenProject - oauth_configuration: "%{application_link_text}、目的のアプリケーションからこれらの値をコピーします。" - provider_configuration: セットアップを行う前に、 %{application_link_text} で管理者権限を持っていることを確認するか、Microsoft 管理者に連絡してください。ポータルでは、Azure アプリケーションを登録するか、既存のものを認証に使用する必要もあります。 + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: セットアップを行う前に、Nextcloudインスタンスに管理者権限があり、以下のアプリケーションがインストールされていることを確認してください: type_link_text: "「統合OpenProject」" label_active: アクティブ @@ -481,7 +477,7 @@ ja: connected: 接続済み connected_no_permissions: ユーザーロールにストレージ権限がありません not_connectable: 接続できない。ストレージはSSOプロバイダを介してログインする必要がありますが、ユーザーはSSOを介してログインしていません。 - not_connected: 接続されていません。ユーザーは次の %{link}経由でストレージにログインする必要があります。 + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: まだ接続されていない場合、SSO は自動的にファイルを参照する必要があります。 members_no_results: 表示するメンバーがありません。 no_results: まだストレージが設定されていません。 @@ -499,13 +495,13 @@ ja: login_button_aria_label: "%{storage} にログイン" login_button_label: "%{provider_type} ログイン" project_settings: - description: プロジェクトフォルダにアクセスするには、 %{storage}にログインする必要があります。 + description: プロジェクトフォルダにアクセスするには、 %{storage} にログインする必要があります。 requesting_access_to: "%{storage} へのアクセスをリクエストしています" storage_admin: description: このストレージにプロジェクトを追加するには、 %{provider_type}にログインする必要があります。ログインしてもう一度やり直してください。 open_project_storage_modal: success: - subtitle: リダイレクトされます + subtitle: リダイレクトしています title: 連携のセットアップが完了しました timeout: link_text: ファイルストレージセットアップの状態の状態 @@ -524,8 +520,8 @@ ja: subtitle_short: OpenProjectにプロジェクトごとにフォルダを自動的に作成させます。 title: 自動的に管理されるプロジェクトフォルダ project_settings: - edit: このプロジェクトのファイル・ストレージを編集する - members_connection_status: メンバーの接続状況 + edit: このプロジェクトのファイルストレージを編集 + members_connection_status: 会員の接続状況 new: このプロジェクトにファイルストレージを追加する project_storage_members: subtitle_html: Check the connection status for the storage %{storage_name_link} of all project members. @@ -536,14 +532,14 @@ ja: provider_types: label: プロバイダー・タイプ nextcloud: - label_oauth_client_id: NextcloudのOAuthクライアントID - label_oauth_client_secret: NextcloudOAuthクライアントシークレット + label_oauth_client_id: Nextcloud OAuthクライアントID + label_oauth_client_secret: Nextcloud OAuth クライアントシークレット name: ネクストクラウド name_placeholder: 例:ネクストクラウド one_drive: - label_oauth_client_id: Azure OAuthアプリケーション(クライアント)ID + label_oauth_client_id: Azure OAuth アプリケーション (クライアント) ID label_oauth_client_secret: Azure OAuth クライアントの秘密値 - name: ワンドライブ + name: OneDrive name_placeholder: '例: OneDrive' sharepoint: drive_description: OpenProject access-managed document library @@ -553,18 +549,18 @@ ja: name_placeholder: 例:シェアポイント show_attachments_toggle: description: このオプションを無効にすると、ワークパッケージのファイルタブの添付ファイルリストが非表示になります。ワークパッケージの説明に添付されたファイルは、内部添付ファイルストレージにアップロードされます。 - label: ワークパッケージのファイルタブに添付ファイルを表示 + label: ワークパッケージファイルタブに添付ファイルを表示 storage_audience: - documentation_intro: 以下のオプションと ID プロバイダの設定の詳細については、当社のドキュメントをお読みください。 + documentation_intro: アイデンティティプロバイダの以下のオプションと設定については、当社のドキュメントをお読みください。 idp: - helptext: OpenProjectは、ストレージへのリクエストを認証するために、ログイン時にIDプロバイダから受け取ったアクセストークンを使用します。別のトークンを取得しようとすることはありません。 - label: ユーザーログイン時に取得したアクセストークンを使用する + helptext: OpenProjectはログイン中にIDプロバイダーが受け取ったアクセストークンを使用して、ストレージへのリクエストを認証します。 別のトークンを取得しようとしません。 + label: ログイン中に取得したアクセストークンを使用する manual: - helptext: OpenProjectは、指定されたオーディエンスのIDプロバイダとトークンを交換します。 + helptext: OpenProject は、特定のオーディエンスの ID プロバイダーとトークンを交換します。 label: Manually specify audience for which to exchange access token (Recommended) storage_list_blank_slate: - description: ストレージを追加して、ここで見ることができる。 - heading: あなたはまだ倉庫を持っていない。 + description: ここにそれらを見るためにストレージを追加します。 + heading: まだストレージがありません。 successful_storage_connection: ストレージが正常に接続されました! 使用する各プロジェクトの「プロジェクト」タブでストレージをアクティブにすることを忘れないでください。 upsell: one_drive: diff --git a/modules/storages/config/locales/crowdin/js-af.yml b/modules/storages/config/locales/crowdin/js-af.yml index 8e76f7f4a8e4..331de0a8803b 100644 --- a/modules/storages/config/locales/crowdin/js-af.yml +++ b/modules/storages/config/locales/crowdin/js-af.yml @@ -26,11 +26,11 @@ af: select: Select files select_all: Kies almal selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-ar.yml b/modules/storages/config/locales/crowdin/js-ar.yml index 9abfec1276fc..6ba7b65f0d0f 100644 --- a/modules/storages/config/locales/crowdin/js-ar.yml +++ b/modules/storages/config/locales/crowdin/js-ar.yml @@ -26,15 +26,12 @@ ar: select: Select files select_all: اختر الجميع selection: - zero: حدد الملفات لربطها - one: رابط الملف 1 - two: ربط %{count} من الملفات - few: ربط %{count} من الملفات - many: ربط %{count} من الملفات - other: ربط %{count} من الملفات + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: zero: Successfully created %{count} file links. - one: Successfully created 1 file link. + one: Successfully created %{count} file link. two: Successfully created %{count} file links. few: Successfully created %{count} file links. many: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-az.yml b/modules/storages/config/locales/crowdin/js-az.yml index 8dd1af8aebed..5eea1d690c2d 100644 --- a/modules/storages/config/locales/crowdin/js-az.yml +++ b/modules/storages/config/locales/crowdin/js-az.yml @@ -26,11 +26,11 @@ az: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-be.yml b/modules/storages/config/locales/crowdin/js-be.yml index 1f2fea938c56..946f70ba1a79 100644 --- a/modules/storages/config/locales/crowdin/js-be.yml +++ b/modules/storages/config/locales/crowdin/js-be.yml @@ -26,13 +26,11 @@ be: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file - few: Link %{count} files - many: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. few: Successfully created %{count} file links. many: Successfully created %{count} file links. other: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-bg.yml b/modules/storages/config/locales/crowdin/js-bg.yml index 6ca073cbfc4b..875b988f38c3 100644 --- a/modules/storages/config/locales/crowdin/js-bg.yml +++ b/modules/storages/config/locales/crowdin/js-bg.yml @@ -26,11 +26,11 @@ bg: select: Select files select_all: Избери всички selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-ca.yml b/modules/storages/config/locales/crowdin/js-ca.yml index 19fa419d9f3f..4054b7fa57f1 100644 --- a/modules/storages/config/locales/crowdin/js-ca.yml +++ b/modules/storages/config/locales/crowdin/js-ca.yml @@ -26,12 +26,12 @@ ca: select: Selecciona fitxers select_all: Selecciona-ho tot selection: - zero: Selecciona fitxers a enllaçar - one: Enllaça 1 fitxer - other: Enllaça %{count} fitxers + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: 1 enllaç de fitxer creat correctament. - other: "%{count} enllaços de fitxer creat correctament." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. not_logged_in: Please log in to the storage to access this file. diff --git a/modules/storages/config/locales/crowdin/js-ckb-IR.yml b/modules/storages/config/locales/crowdin/js-ckb-IR.yml index 7c1dce4f9da5..71aa1fa36c5e 100644 --- a/modules/storages/config/locales/crowdin/js-ckb-IR.yml +++ b/modules/storages/config/locales/crowdin/js-ckb-IR.yml @@ -26,11 +26,11 @@ ckb-IR: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-cs.yml b/modules/storages/config/locales/crowdin/js-cs.yml index 1fd29c947635..f3ff1f9a07fa 100644 --- a/modules/storages/config/locales/crowdin/js-cs.yml +++ b/modules/storages/config/locales/crowdin/js-cs.yml @@ -26,16 +26,14 @@ cs: select: Vybrat soubory select_all: Vybrat vše selection: - zero: Vyberte soubory, které chcete propojit - one: Propojit 1 Soubor - few: Propojit %{count} souborů - many: Propojit %{count} souborů - other: Propojit %{count} souborů + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Odkaz na soubor byl úspěšně vytvořen. - few: "%{count} odkazů na soubor byl úspěšně vytvořen." - many: "%{count} odkazů na soubor byl úspěšně vytvořen." - other: "%{count} odkazů na soubor byl úspěšně vytvořen." + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + many: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: Tento soubor nebyl nalezen. not_logged_in: Pro přístup k tomuto souboru se přihlaste do úložiště. diff --git a/modules/storages/config/locales/crowdin/js-da.yml b/modules/storages/config/locales/crowdin/js-da.yml index 3832fe43c1f2..70d50226275a 100644 --- a/modules/storages/config/locales/crowdin/js-da.yml +++ b/modules/storages/config/locales/crowdin/js-da.yml @@ -26,11 +26,11 @@ da: select: Vælg filer select_all: Vælg alle selection: - zero: Vælg filer, der skal linkes - one: Link 1 fil + none: Vælg filer, der skal linkes + one: Link %{count} fil other: Link %{count} filer success_create: - one: 1 fil-link er oprettet. + one: "%{count} fil-link er oprettet." other: "%{count} fil-links er oprettet." tooltip: not_found: Filen blev ikke fundet. diff --git a/modules/storages/config/locales/crowdin/js-de.yml b/modules/storages/config/locales/crowdin/js-de.yml index a162b2cbdb4a..df8af3e0ea95 100644 --- a/modules/storages/config/locales/crowdin/js-de.yml +++ b/modules/storages/config/locales/crowdin/js-de.yml @@ -26,12 +26,12 @@ de: select: Dateien auswählen select_all: Alle auswählen selection: - zero: Dateien zum Verlinken auswählen - one: Eine Datei verknüpfen - other: "%{count} Dateien verknüpfen" + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: 1 Dateiverknüpfung erfolgreich erstellt. - other: "%{count} Dateiverknüpfungen erfolgreich erstellt." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Diese Datei ist nicht verfügbar. not_logged_in: Bitte melden Sie sich im Speicher an, um auf diese Datei zuzugreifen. diff --git a/modules/storages/config/locales/crowdin/js-el.yml b/modules/storages/config/locales/crowdin/js-el.yml index 0ec8007acf42..72c39654dc49 100644 --- a/modules/storages/config/locales/crowdin/js-el.yml +++ b/modules/storages/config/locales/crowdin/js-el.yml @@ -26,11 +26,11 @@ el: select: Select files select_all: Επιλογή όλων selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-eo.yml b/modules/storages/config/locales/crowdin/js-eo.yml index 1507be91726c..20817799c73f 100644 --- a/modules/storages/config/locales/crowdin/js-eo.yml +++ b/modules/storages/config/locales/crowdin/js-eo.yml @@ -26,11 +26,11 @@ eo: select: Select files select_all: Elekti ĉiujn selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-es.yml b/modules/storages/config/locales/crowdin/js-es.yml index fd527119cdca..20d11b2d905a 100644 --- a/modules/storages/config/locales/crowdin/js-es.yml +++ b/modules/storages/config/locales/crowdin/js-es.yml @@ -24,12 +24,12 @@ es: select: Seleccionar archivos select_all: Seleccionar todo selection: - zero: Seleccionar archivos a enlazar - one: Enlazar 1 archivo - other: Enlazar %{count} archivos + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Se ha creado correctamente 1 enlace de fichero. - other: Se han creado correctamente %{count} enlaces de fichero. + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: No se ha encontrado este archivo. not_logged_in: Inicia sesión en el almacenamiento para acceder a este archivo. diff --git a/modules/storages/config/locales/crowdin/js-et.yml b/modules/storages/config/locales/crowdin/js-et.yml index 07b59e8feea6..aa5ee314f60a 100644 --- a/modules/storages/config/locales/crowdin/js-et.yml +++ b/modules/storages/config/locales/crowdin/js-et.yml @@ -26,11 +26,11 @@ et: select: Select files select_all: Vali kõik selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-eu.yml b/modules/storages/config/locales/crowdin/js-eu.yml index 301d6ba2ab95..97984918fa0b 100644 --- a/modules/storages/config/locales/crowdin/js-eu.yml +++ b/modules/storages/config/locales/crowdin/js-eu.yml @@ -26,11 +26,11 @@ eu: select: Select files select_all: Hautatu guztiak selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-fa.yml b/modules/storages/config/locales/crowdin/js-fa.yml index 80655951f6f8..e655ad45b9a6 100644 --- a/modules/storages/config/locales/crowdin/js-fa.yml +++ b/modules/storages/config/locales/crowdin/js-fa.yml @@ -26,12 +26,12 @@ fa: select: انتخاب فایل‌ها select_all: انتخاب همه selection: - zero: فایل‌ها را برای پیوند انتخاب کنید - one: پیوند دادن ۱ فایل - other: پیوند دادن %{count} فایل + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: ۱ پیوند فایل با موفقیت ایجاد شد. - other: "%{count} پیوند فایل با موفقیت ایجاد شد." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: این فایل پیدا نمی‌شود. not_logged_in: برای دسترسی به این فایل، وارد فضای ذخیره‌سازی شوید. diff --git a/modules/storages/config/locales/crowdin/js-fi.yml b/modules/storages/config/locales/crowdin/js-fi.yml index 35cb4297f5cb..c60c0adfd2a1 100644 --- a/modules/storages/config/locales/crowdin/js-fi.yml +++ b/modules/storages/config/locales/crowdin/js-fi.yml @@ -26,11 +26,11 @@ fi: select: Select files select_all: Valitse kaikki selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-fil.yml b/modules/storages/config/locales/crowdin/js-fil.yml index b479856932aa..ba1e5a39b75b 100644 --- a/modules/storages/config/locales/crowdin/js-fil.yml +++ b/modules/storages/config/locales/crowdin/js-fil.yml @@ -26,11 +26,11 @@ fil: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-fr.yml b/modules/storages/config/locales/crowdin/js-fr.yml index 62083284f1bc..83a59d732474 100644 --- a/modules/storages/config/locales/crowdin/js-fr.yml +++ b/modules/storages/config/locales/crowdin/js-fr.yml @@ -26,12 +26,12 @@ fr: select: Sélectionner les fichiers select_all: Tout sélectionner selection: - zero: Sélectionner les fichiers à lier - one: Lier un fichier - other: Lier %{count} fichiers + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Un lien de fichier a été créé avec succès. - other: "%{count} liens de fichier ont été créés avec succès." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Impossible de trouver ce fichier. not_logged_in: Veuillez vous connecter au stockage pour accéder à ce fichier. diff --git a/modules/storages/config/locales/crowdin/js-he.yml b/modules/storages/config/locales/crowdin/js-he.yml index 73788830161b..b79b569442fa 100644 --- a/modules/storages/config/locales/crowdin/js-he.yml +++ b/modules/storages/config/locales/crowdin/js-he.yml @@ -26,12 +26,11 @@ he: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file - two: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. two: Successfully created %{count} file links. other: Successfully created %{count} file links. tooltip: diff --git a/modules/storages/config/locales/crowdin/js-hi.yml b/modules/storages/config/locales/crowdin/js-hi.yml index b1966104819b..7f6817526b52 100644 --- a/modules/storages/config/locales/crowdin/js-hi.yml +++ b/modules/storages/config/locales/crowdin/js-hi.yml @@ -26,11 +26,11 @@ hi: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-hr.yml b/modules/storages/config/locales/crowdin/js-hr.yml index ce0ad96979fc..abd700d40229 100644 --- a/modules/storages/config/locales/crowdin/js-hr.yml +++ b/modules/storages/config/locales/crowdin/js-hr.yml @@ -26,12 +26,11 @@ hr: select: Select files select_all: Odaberi Sve selection: - zero: Select files to link - one: Link 1 file - few: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. few: Successfully created %{count} file links. other: Successfully created %{count} file links. tooltip: diff --git a/modules/storages/config/locales/crowdin/js-hu.yml b/modules/storages/config/locales/crowdin/js-hu.yml index 2914b5b20100..37f07d378d16 100644 --- a/modules/storages/config/locales/crowdin/js-hu.yml +++ b/modules/storages/config/locales/crowdin/js-hu.yml @@ -26,11 +26,11 @@ hu: select: Select files select_all: Összes kijelölése selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-hy.yml b/modules/storages/config/locales/crowdin/js-hy.yml index 0b473ecccb04..ff58f9b72774 100644 --- a/modules/storages/config/locales/crowdin/js-hy.yml +++ b/modules/storages/config/locales/crowdin/js-hy.yml @@ -26,12 +26,12 @@ hy: select: Ընտրել նիշքեր select_all: Ընտրել բոլորը selection: - zero: Ընտրել նիշքեր հղելու համար - one: Հղել 1 նիշք - other: Հղել %{count} նիշք + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Հաջողությամբ ստեղծվել է 1 նիշքի հղում։ - other: Հաջողությամբ ստեղծվել է %{count} նիշքի հղում։ + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Այս նիշքը չի գտնվել։ not_logged_in: Այս նիշքին հասանելիություն ստանալու համար խնդրում ենք մտնել պահեստ։ diff --git a/modules/storages/config/locales/crowdin/js-id.yml b/modules/storages/config/locales/crowdin/js-id.yml index 3cfecf4616c7..c08e45c5022f 100644 --- a/modules/storages/config/locales/crowdin/js-id.yml +++ b/modules/storages/config/locales/crowdin/js-id.yml @@ -26,7 +26,8 @@ id: select: Select files select_all: Pilih Semua selection: - zero: Select files to link + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: other: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-it.yml b/modules/storages/config/locales/crowdin/js-it.yml index 0ce49049feff..6cb93cdb5a03 100644 --- a/modules/storages/config/locales/crowdin/js-it.yml +++ b/modules/storages/config/locales/crowdin/js-it.yml @@ -26,12 +26,12 @@ it: select: Seleziona file select_all: Seleziona tutto selection: - zero: Seleziona i file da collegare - one: Collega 1 file - other: Collega %{count} file + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: 1 link del file creato correttamente. - other: "%{count} link di file creati correttamente." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Impossibile trovare questo file. not_logged_in: Effettua il login nella memoria per accedere a questo file. diff --git a/modules/storages/config/locales/crowdin/js-ja.yml b/modules/storages/config/locales/crowdin/js-ja.yml index fa41d5fbf9cb..acd58d2b0595 100644 --- a/modules/storages/config/locales/crowdin/js-ja.yml +++ b/modules/storages/config/locales/crowdin/js-ja.yml @@ -13,7 +13,7 @@ ja: empty: '現在、このワークパッケージにリンクされたファイルはありません。以下のアクションまたは %{storageType}内からファイルのリンクを開始する。 ' - link_uploaded_file_error: '最近アップロードされたファイル ''%{fileName}'' をワークパッケージ %{workPackageId}にリンクするエラーが発生しました。 + link_uploaded_file_error: '最近アップロードされたファイル ''%{fileName}'' をワークパッケージ %{workPackageId} にリンクしてエラーが発生しました。 ' open: ストレージ上のファイルを開く @@ -26,8 +26,9 @@ ja: select: ファイルを選択 select_all: 全て選択 selection: - zero: リンクするファイルを選択する - other: リンク %{count} ファイル + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: other: Successfully created %{count} file links. tooltip: @@ -48,21 +49,21 @@ ja: ' detail: - nextcloud: '最新版のNextcloudアプリ「OpenProject Integration」がインストールされていることを確認し、管理者にお問い合わせください。 + nextcloud: 'Nextcloudアプリ「OpenProject統合」の最新バージョンがインストールされていることを確認し、詳細については管理者にお問い合わせください。 ' files: already_existing_body: 'このファイルをアップロードしようとしている場所に、"%{fileName}"という名前のファイルがすでに存在します。どうしますか? ' - already_existing_header: このファイルはすでに存在する + already_existing_header: このファイルは既に存在します cannot_create_folder: フォルダの作成に失敗しました。特殊文字や記号の使用を避け、フォルダが既に存在しないことを確認してください。 directory_not_writeable: このフォルダにファイルを追加する権限がありません。 dragging_folder: "%{storageType} へのアップロードはフォルダをサポートしていません。" dragging_many_files: "%{storageType} へのアップロードは、一度に1つのファイルしかサポートしない。" empty_folder: このフォルダは空です。 empty_folder_location_hint: 下のボタンをクリックして、この場所にファイルをアップロードしてください。 - file_not_selectable_location: 場所を選択する過程でファイルを選択することはできない。 + file_not_selectable_location: ファイルを選択することは、場所を選択する過程ではできません。 managed_project_folder_no_access: '管理されているプロジェクトフォルダにまだアクセスできません。少し待ってからもう一度試してください。 ' @@ -77,7 +78,7 @@ ja: information: authentication_error: "%{storageType} へのリクエストを認証できませんでした。これはエラーです。" connection_error: "%{storageType} の設定が一部機能していません。 %{storageType} 管理者にお問い合わせください。\n" - live_data_error: ファイルの詳細の取得に失敗しました + live_data_error: ファイル詳細の取得エラー live_data_error_description: '一部の %{storageType} データを取得できませんでした。このページを再読み込みするか、 %{storageType} 管理者にお問い合わせください。 ' @@ -87,12 +88,12 @@ ja: ' suggest_logout: ログアウトしてログインし直すと、この問題が解決するかどうか試してみてください。 suggest_relink: 以下のログインボタンからアカウントを再リンクすると、この問題が解決するかどうか試してみてください。 - link_existing_files: 既存のファイルをリンク - link_files_in_storage: リンクファイル %{storageType} + link_existing_files: 既存のファイルをリンクする + link_files_in_storage: "%{storageType}のファイルをリンクする" login: "%{storageType} ログイン" login_to: "%{storageType}にログイン" new_folder: 新しいフォルダ - no_connection: "%{storageType} 接続がありません" + no_connection: "%{storageType} 接続なし" open_storage: "%{storageType} を開く" select_location: 場所を選択 types: @@ -100,4 +101,4 @@ ja: nextcloud: ネクストクラウド one_drive: ワンドライブ sharepoint: シェアポイント - upload_files: ファイルのアップロード + upload_files: ログファイル diff --git a/modules/storages/config/locales/crowdin/js-ka.yml b/modules/storages/config/locales/crowdin/js-ka.yml index 5df17f4d8a74..848a16b89911 100644 --- a/modules/storages/config/locales/crowdin/js-ka.yml +++ b/modules/storages/config/locales/crowdin/js-ka.yml @@ -26,11 +26,11 @@ ka: select: ფაილის არჩევა select_all: ყველას მონიშვნა selection: - zero: Select files to link - one: ბმული 1 ფაილზე - other: ბმული %{count} ფაილზე + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-kk.yml b/modules/storages/config/locales/crowdin/js-kk.yml index b1812cd2d899..beddcb05d5d1 100644 --- a/modules/storages/config/locales/crowdin/js-kk.yml +++ b/modules/storages/config/locales/crowdin/js-kk.yml @@ -26,11 +26,11 @@ kk: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-ko.yml b/modules/storages/config/locales/crowdin/js-ko.yml index cfa22d17ab9e..038fcae8dd4d 100644 --- a/modules/storages/config/locales/crowdin/js-ko.yml +++ b/modules/storages/config/locales/crowdin/js-ko.yml @@ -26,10 +26,11 @@ ko: select: 파일 선택 select_all: 모두 선택 selection: - zero: 연결할 파일 선택 - other: "%{count}개 파일 연결" + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - other: "%{count}개 파일 링크를 생성했습니다." + other: Successfully created %{count} file links. tooltip: not_found: 이 파일을 찾을 수 없습니다. not_logged_in: 이 파일에 액세스하려면 저장소에 로그인하세요. diff --git a/modules/storages/config/locales/crowdin/js-li.yml b/modules/storages/config/locales/crowdin/js-li.yml index 029be8c41502..ba60ac4e701d 100644 --- a/modules/storages/config/locales/crowdin/js-li.yml +++ b/modules/storages/config/locales/crowdin/js-li.yml @@ -26,11 +26,11 @@ li: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-lt.yml b/modules/storages/config/locales/crowdin/js-lt.yml index cedde07a0655..0429478f3c7d 100644 --- a/modules/storages/config/locales/crowdin/js-lt.yml +++ b/modules/storages/config/locales/crowdin/js-lt.yml @@ -26,16 +26,14 @@ lt: select: Pasirinkite failus select_all: Pasirinkti viską selection: - zero: Pasirinkite failus susiejimui - one: Susieti 1 failą - few: Susieti %{count} failus - many: Susieti %{count} failų - other: Susieti %{count} failus + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Sėkmingai sukurta 1 failo nuoroda - few: Sėkmingai sukurtos %{count} failų nuorodos. - many: Sėkmingai sukurta %{count} failų nuorodų. - other: Sėkmingai sukurtos %{count} failų nuorodos. + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + many: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: Nepavyksta rasti šio failo. not_logged_in: Prašome prisijungti prie saugyklos, kad pasiektumėte šį failą. diff --git a/modules/storages/config/locales/crowdin/js-lv.yml b/modules/storages/config/locales/crowdin/js-lv.yml index 14c20f401502..ce40bf94c93f 100644 --- a/modules/storages/config/locales/crowdin/js-lv.yml +++ b/modules/storages/config/locales/crowdin/js-lv.yml @@ -26,12 +26,12 @@ lv: select: Select files select_all: Atzīmēt visu selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: zero: Successfully created %{count} file links. - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-mn.yml b/modules/storages/config/locales/crowdin/js-mn.yml index 4c56d78d0153..857f9955eaea 100644 --- a/modules/storages/config/locales/crowdin/js-mn.yml +++ b/modules/storages/config/locales/crowdin/js-mn.yml @@ -26,11 +26,11 @@ mn: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-ms.yml b/modules/storages/config/locales/crowdin/js-ms.yml index 7bb868aed00b..7cc085ae44d3 100644 --- a/modules/storages/config/locales/crowdin/js-ms.yml +++ b/modules/storages/config/locales/crowdin/js-ms.yml @@ -26,10 +26,11 @@ ms: select: Pilih fail select_all: Pilih semua selection: - zero: Pilih fail untuk dipautkan - other: Pautkan %{count} fail + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - other: "%{count} pautan fail berjaya dicipta." + other: Successfully created %{count} file links. tooltip: not_found: Fail ini tidak dapat ditemui. not_logged_in: Sila log masuk ke dalam storan untuk mengakses fail ini. diff --git a/modules/storages/config/locales/crowdin/js-ne.yml b/modules/storages/config/locales/crowdin/js-ne.yml index 9fcddff7e79b..1183688ec143 100644 --- a/modules/storages/config/locales/crowdin/js-ne.yml +++ b/modules/storages/config/locales/crowdin/js-ne.yml @@ -26,11 +26,11 @@ ne: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-nl.yml b/modules/storages/config/locales/crowdin/js-nl.yml index 014d5b590049..14dd040faa60 100644 --- a/modules/storages/config/locales/crowdin/js-nl.yml +++ b/modules/storages/config/locales/crowdin/js-nl.yml @@ -26,11 +26,11 @@ nl: select: Selecteer bestanden select_all: Alles selecteren selection: - zero: Selecteer bestanden om te koppelen - one: Link 1 bestand - other: Link %{count} bestanden + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: Dit bestand kan niet worden gevonden. diff --git a/modules/storages/config/locales/crowdin/js-no.yml b/modules/storages/config/locales/crowdin/js-no.yml index c96eb15eb77a..e707a1e2a8f0 100644 --- a/modules/storages/config/locales/crowdin/js-no.yml +++ b/modules/storages/config/locales/crowdin/js-no.yml @@ -26,12 +26,12 @@ select: Velg filer select_all: Velg alle selection: - zero: Velg filer som skal kobles - one: Koble 1 fil - other: Koble %{count} filer + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Opprettet én fillenke - other: "%{count} fil-linker ble opprettet." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Denne filen ble ikke funnet. not_logged_in: Vennligst logg inn på lagringen for tilgang til denne filen. diff --git a/modules/storages/config/locales/crowdin/js-pl.yml b/modules/storages/config/locales/crowdin/js-pl.yml index 3f9f20ae4a57..23c61d908785 100644 --- a/modules/storages/config/locales/crowdin/js-pl.yml +++ b/modules/storages/config/locales/crowdin/js-pl.yml @@ -26,16 +26,14 @@ pl: select: Wybierz pliki select_all: Zaznacz wszystkie selection: - zero: Wybierz pliki do połączenia - one: Połącz 1 plik - few: Połącz %{count} pliki - many: Połącz %{count} plików - other: Połącz %{count} plików + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Pomyślnie utworzono 1 połączenie plików. - few: Pomyślnie utworzono %{count} połączenia plików. - many: Pomyślnie utworzono %{count} połączeń plików. - other: Pomyślnie utworzono %{count} połączeń plików. + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + many: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: Nie można znaleźć tego pliku. not_logged_in: Zaloguj się do magazynu, aby uzyskać dostęp do tego pliku. diff --git a/modules/storages/config/locales/crowdin/js-pt-BR.yml b/modules/storages/config/locales/crowdin/js-pt-BR.yml index c38fc8f59d53..338b470ae3be 100644 --- a/modules/storages/config/locales/crowdin/js-pt-BR.yml +++ b/modules/storages/config/locales/crowdin/js-pt-BR.yml @@ -26,12 +26,12 @@ pt-BR: select: Selecionar arquivos select_all: Selecionar tudo selection: - zero: Selecione arquivos para vincular - one: Vincular 1 arquivo - other: Vincular %{count} arquivos + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Criou com sucesso 1 vínculo do arquivo. - other: Criou com sucesso %{count} vínculos do arquivo. + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Não foi possível encontrar este pedido not_logged_in: Faça o login no armazenamento para acessar este arquivo diff --git a/modules/storages/config/locales/crowdin/js-pt-PT.yml b/modules/storages/config/locales/crowdin/js-pt-PT.yml index bc865a811d50..d90b23522642 100644 --- a/modules/storages/config/locales/crowdin/js-pt-PT.yml +++ b/modules/storages/config/locales/crowdin/js-pt-PT.yml @@ -26,12 +26,12 @@ pt-PT: select: Seleccionar ficheiros select_all: Selecionar tudo selection: - zero: Selecionar ficheiros a vincular - one: Vincular 1 ficheiro - other: Vincular %{count} ficheiros + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Criou com sucesso 1 link de ficheiro. - other: Criou com sucesso %{count} links de ficheiros. + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Este ficheiro não foi encontrado. not_logged_in: Inicie sessão no armazenamento para aceder a este ficheiro. diff --git a/modules/storages/config/locales/crowdin/js-ro.yml b/modules/storages/config/locales/crowdin/js-ro.yml index 193f1d8aa90d..458925fe72ed 100644 --- a/modules/storages/config/locales/crowdin/js-ro.yml +++ b/modules/storages/config/locales/crowdin/js-ro.yml @@ -26,14 +26,13 @@ ro: select: Selectează fișiere select_all: Selectează tot selection: - zero: Selectaţi fişierele pentru a conecta - one: Link 1 fișier - few: Link %{count} fișiere - other: Link %{count} fișiere + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: A creat cu succes 1 legătură de fișier. - few: A creat cu succes %{count} legături de fișiere. - other: A creat cu succes %{count} de legături de fișiere. + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. not_logged_in: Please log in to the storage to access this file. diff --git a/modules/storages/config/locales/crowdin/js-ru.yml b/modules/storages/config/locales/crowdin/js-ru.yml index cbff6c8d91ac..0367c68e15fb 100644 --- a/modules/storages/config/locales/crowdin/js-ru.yml +++ b/modules/storages/config/locales/crowdin/js-ru.yml @@ -26,16 +26,14 @@ ru: select: Выберите файлы select_all: Выбрать все selection: - zero: Выберите файлы для связывания - one: Ссылка на файл - few: Ссылка на %{count} файлов - many: Ссылка на %{count} файлов - other: Ссылка на %{count} файлов + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: 1 ссылка на файл успешно создана. - few: Успешно создано %{count} ссылок на файл. - many: Успешно создано %{count} ссылок на файл. - other: Успешно создано %{count} ссылок на файл. + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + many: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: Этот файл не найден. not_logged_in: Пожалуйста, войдите в хранилище для доступа к этому файлу. diff --git a/modules/storages/config/locales/crowdin/js-rw.yml b/modules/storages/config/locales/crowdin/js-rw.yml index 6b1011470182..17726c959f08 100644 --- a/modules/storages/config/locales/crowdin/js-rw.yml +++ b/modules/storages/config/locales/crowdin/js-rw.yml @@ -26,11 +26,11 @@ rw: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-si.yml b/modules/storages/config/locales/crowdin/js-si.yml index 1e864696c861..d52c01b4f6bf 100644 --- a/modules/storages/config/locales/crowdin/js-si.yml +++ b/modules/storages/config/locales/crowdin/js-si.yml @@ -26,11 +26,11 @@ si: select: Select files select_all: සියල්ල තෝරන්න selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-sk.yml b/modules/storages/config/locales/crowdin/js-sk.yml index 6e9cb4061a9b..f6750b748a49 100644 --- a/modules/storages/config/locales/crowdin/js-sk.yml +++ b/modules/storages/config/locales/crowdin/js-sk.yml @@ -26,13 +26,11 @@ sk: select: Select files select_all: Vybrať všetko selection: - zero: Select files to link - one: Link 1 file - few: Link %{count} files - many: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. few: Successfully created %{count} file links. many: Successfully created %{count} file links. other: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-sl.yml b/modules/storages/config/locales/crowdin/js-sl.yml index a2657624a9f9..20350111ac4f 100644 --- a/modules/storages/config/locales/crowdin/js-sl.yml +++ b/modules/storages/config/locales/crowdin/js-sl.yml @@ -26,13 +26,11 @@ sl: select: Select files select_all: Izberi vse selection: - zero: Select files to link - one: Link 1 file - two: Link %{count} files - few: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. two: Successfully created %{count} file links. few: Successfully created %{count} file links. other: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-sr.yml b/modules/storages/config/locales/crowdin/js-sr.yml index 9d739facbfa4..5e3d424b3546 100644 --- a/modules/storages/config/locales/crowdin/js-sr.yml +++ b/modules/storages/config/locales/crowdin/js-sr.yml @@ -26,12 +26,11 @@ sr: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file - few: Link %{count} files + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. few: Successfully created %{count} file links. other: Successfully created %{count} file links. tooltip: diff --git a/modules/storages/config/locales/crowdin/js-sv.yml b/modules/storages/config/locales/crowdin/js-sv.yml index 23442eb2bbc7..c2e9c282584d 100644 --- a/modules/storages/config/locales/crowdin/js-sv.yml +++ b/modules/storages/config/locales/crowdin/js-sv.yml @@ -26,12 +26,12 @@ sv: select: Välj filer select_all: Välj alla selection: - zero: Välj filer att länka - one: Länka 1 fil - other: Länka %{count} filer + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Skapade 1 fillänk. - other: Skapades framgångsrikt %{count} fillänkar. + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Den här filen kunde inte hittas. not_logged_in: Logga in på lagringsutrymmet för att komma åt filen. diff --git a/modules/storages/config/locales/crowdin/js-th.yml b/modules/storages/config/locales/crowdin/js-th.yml index e6eba936fd0f..13f4a5e9950b 100644 --- a/modules/storages/config/locales/crowdin/js-th.yml +++ b/modules/storages/config/locales/crowdin/js-th.yml @@ -26,7 +26,8 @@ th: select: Select files select_all: Select all selection: - zero: Select files to link + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: other: Successfully created %{count} file links. diff --git a/modules/storages/config/locales/crowdin/js-tr.yml b/modules/storages/config/locales/crowdin/js-tr.yml index 0d6a6b53d593..7613805e0cd4 100644 --- a/modules/storages/config/locales/crowdin/js-tr.yml +++ b/modules/storages/config/locales/crowdin/js-tr.yml @@ -26,12 +26,12 @@ tr: select: Dosyaları seç select_all: Hepsini seç selection: - zero: Bağlanacak dosyaları seçin - one: 1 dosya bağla - other: "%{count} dosya bağla" + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: 1 dosya bağlantısı başarıyla oluşturuldu. - other: "%{count} dosya bağlantısı başarıyla oluşturuldu." + one: Successfully created %{count} file link. + other: Successfully created %{count} file links. tooltip: not_found: Bu dosya bulunamadı. not_logged_in: Bu dosyaya erişmek için lütfen depoda oturum açın. diff --git a/modules/storages/config/locales/crowdin/js-uk.yml b/modules/storages/config/locales/crowdin/js-uk.yml index 481fe6931fab..b28e1269c7fc 100644 --- a/modules/storages/config/locales/crowdin/js-uk.yml +++ b/modules/storages/config/locales/crowdin/js-uk.yml @@ -26,16 +26,14 @@ uk: select: Виберіть файли select_all: Вибрати все selection: - zero: Виберіть файли, які потрібно зв‘язати - one: Зв’язати 1 файл - few: Зв’язати %{count} файли - many: Зв’язати %{count} файлів - other: Зв’язати %{count} файлу + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - one: Створено посилання на 1 файл - few: Створено посилання на %{count} файли - many: Створено посилання на %{count} файлів - other: Створено посилання на %{count} файлу + one: Successfully created %{count} file link. + few: Successfully created %{count} file links. + many: Successfully created %{count} file links. + other: Successfully created %{count} file links. tooltip: not_found: Не вдається знайти цей файл. not_logged_in: Щоб отримати доступ до цього файлу, увійдіть у сховище. diff --git a/modules/storages/config/locales/crowdin/js-uz.yml b/modules/storages/config/locales/crowdin/js-uz.yml index fc35ba558ff6..2bca932457a6 100644 --- a/modules/storages/config/locales/crowdin/js-uz.yml +++ b/modules/storages/config/locales/crowdin/js-uz.yml @@ -26,11 +26,11 @@ uz: select: Select files select_all: Select all selection: - zero: Select files to link - one: Link 1 file + none: Select files to link + one: Link %{count} file other: Link %{count} files success_create: - one: Successfully created 1 file link. + one: Successfully created %{count} file link. other: Successfully created %{count} file links. tooltip: not_found: This file cannot be found. diff --git a/modules/storages/config/locales/crowdin/js-vi.yml b/modules/storages/config/locales/crowdin/js-vi.yml index 2e58f719e088..6637afafe640 100644 --- a/modules/storages/config/locales/crowdin/js-vi.yml +++ b/modules/storages/config/locales/crowdin/js-vi.yml @@ -26,10 +26,11 @@ vi: select: Chọn tập tin select_all: Chọn tất cả selection: - zero: Chọn tập tin để liên kết - other: Liên kết tập tin %{count} + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - other: Đã tạo thành công liên kết tệp %{count}. + other: Successfully created %{count} file links. tooltip: not_found: Không thể tìm thấy tập tin này. not_logged_in: Vui lòng đăng nhập vào bộ lưu trữ để truy cập tập tin này. diff --git a/modules/storages/config/locales/crowdin/js-zh-CN.yml b/modules/storages/config/locales/crowdin/js-zh-CN.yml index b9653f55d1de..db28763ed9a5 100644 --- a/modules/storages/config/locales/crowdin/js-zh-CN.yml +++ b/modules/storages/config/locales/crowdin/js-zh-CN.yml @@ -26,10 +26,11 @@ zh-CN: select: 选择文件 select_all: 全选 selection: - zero: 选择文件以链接 - other: 链接 %{count} 个文件 + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - other: 您成功地创建了 %{count} 个文件链接。 + other: Successfully created %{count} file links. tooltip: not_found: 找不到此文件。 not_logged_in: 请登录到存储区来访问此文件。 diff --git a/modules/storages/config/locales/crowdin/js-zh-TW.yml b/modules/storages/config/locales/crowdin/js-zh-TW.yml index 5423787637bb..661193197b47 100644 --- a/modules/storages/config/locales/crowdin/js-zh-TW.yml +++ b/modules/storages/config/locales/crowdin/js-zh-TW.yml @@ -26,10 +26,11 @@ zh-TW: select: 選擇檔案 select_all: 全選 selection: - zero: 選擇要連結的文件 - other: 連結 %{count} 個檔案 + none: Select files to link + one: Link %{count} file + other: Link %{count} files success_create: - other: 成功新增%{count}個檔案連結 + other: Successfully created %{count} file links. tooltip: not_found: 找不到檔案。 not_logged_in: 請登入儲存空間來存取該文件。 diff --git a/modules/storages/config/locales/crowdin/ka.yml b/modules/storages/config/locales/crowdin/ka.yml index 79b44a0e9a3f..7c35adac2c07 100644 --- a/modules/storages/config/locales/crowdin/ka.yml +++ b/modules/storages/config/locales/crowdin/ka.yml @@ -412,14 +412,13 @@ ka: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ ka: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure-ის პორტალი copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: სახელი ან UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: აქტიური @@ -487,7 +483,7 @@ ka: connected: დაკავშირებულია connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/kk.yml b/modules/storages/config/locales/crowdin/kk.yml index 3b61c517356b..fb6b693eadf6 100644 --- a/modules/storages/config/locales/crowdin/kk.yml +++ b/modules/storages/config/locales/crowdin/kk.yml @@ -412,14 +412,13 @@ kk: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ kk: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ kk: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/ko.yml b/modules/storages/config/locales/crowdin/ko.yml index e23d8d2aaa6a..42952899db64 100644 --- a/modules/storages/config/locales/crowdin/ko.yml +++ b/modules/storages/config/locales/crowdin/ko.yml @@ -406,14 +406,13 @@ ko: empty_project_folder_validation: 계속하려면 폴더 선택이 필수적입니다. existing_manual_folder: 기존 폴더를 이 프로젝트의 루트 폴더로 지정할 수 있습니다. 그러나 권한은 자동으로 관리되지 않으며, 관리자는 관련 사용자에게 액세스 권한이 있는지 수동으로 확인해야 합니다. 선택한 폴더는 여러 프로젝트에서 사용할 수 있습니다. host: https://를 포함하여 저장소의 호스트 주소를 추가하세요. 255자 이하여야 합니다. - managed_project_folders_application_password_caption: '다음에서 이 값을 복사하여 자동으로 관리되는 폴더 활성화: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: '다음에서 이 값을 복사하여 자동으로 관리되는 폴더를 활성화하세요: [%{integration}](provider_settings).' name: 사용자가 여러 저장소 간에 구별할 수 있도록 저장소에 이름을 지정하세요. new_storage_html: 자세한 내용은 [%{provider_name} 파일 저장소 설정](docs_url) 통합 관련 문서를 참조하세요. nextcloud: - application_link_text: 애플리케이션 “Integration OpenProject” integration: Nextcloud 관리/OpenProject - oauth_configuration: "%{application_link_text}에서 이러한 값을 복사합니다." - provider_configuration: 설정을 수행하기 전에 Nextcloud 인스턴스에서 관리 권한이 있고 %{application_link_text}이(가) 설치되어 있는지 확인하세요. + oauth_configuration_html: "[Nextcloud Administration / OpenProject](application_link)에서 해당 값을 복사하세요." + provider_configuration_html: 설정을 수행하기 전에 Nextcloud 인스턴스에서 관리 권한이 있고 [애플리케이션 “Integration OpenProject”](application_link)가 설치되어 있는지 확인하세요. storage_audience: Nextcloud 인스턴스가 ID 공급자와 통신하는 데 사용하는 클라이언트 ID입니다. storage_audience_placeholder: '예: nextcloud' token_exchange_scope: 토큰 교환 중에 요청해야 하는 범위이며, 공백으로 각각 구분됩니다. @@ -422,27 +421,24 @@ ko: not_logged_into_storage: 프로젝트 폴더를 선택하려면 먼저 로그인하세요 oauth_application_details_html: 이 창을 닫으면 클라이언트 비밀번호 값에 다시 액세스할 수 없습니다. 해당 값을 [Nextcloud OpenProject 통합 설정](oauth_application_details_link)에 복사하세요. one_drive: - application_link_text: Azure 포털 copy_redirect_uri: 리디렉션 URI 복사 - documentation_link_text: OneDrive 파일 저장소 설명서 - drive_id: "%{drive_id_link_text}의 단계에 따라 원하는 드라이브의 ID를 복사하세요." + drive_id_html: "[OneDrive 파일 저장소 설명서](drive_id_guide)의 단계에 따라 원하는 드라이브의 ID를 복사하세요." integration: OneDrive missing_client_id_for_redirect_uri: URI를 생성하려면 OAuth 값을 입력하세요 oauth_client_redirect_uri: 이 값을 리디렉션 URI 아래의 새로운 웹 리디렉션 URI에 복사하세요. oauth_client_secret: 클라이언트 자격 증명 아래에 애플리케이션 클라이언트 비밀번호가 없는 경우 새로운 비밀번호를 생성하세요. - oauth_configuration: "%{application_link_text}에서 원하는 애플리케이션의 해당 값을 복사합니다." - provider_configuration: 설정을 수행하기 전에 %{application_link_text}에서 관리 권한이 있는지 확인하거나 Microsoft 관리자에게 문의하세요. 또한 포털에서 Azure 애플리케이션을 등록하거나 기존 애플리케이션을 사용하여 인증해야 합니다. - tenant_id: "%{application_link_text}의 원하는 애플리케이션 및 앱 등록에서 디렉터리(테넌트) ID를 복사하세요." + oauth_configuration_html: "[Azure 포털](application_link)의 원하는 애플리케이션에서 해당 값을 복사하세요." + provider_configuration_html: 설정을 수행하기 전에 [Azure 포털](application_link)에서 관리 권한이 있는지 확인하거나 Microsoft 관리자에게 문의하세요. 또한 포털에서 Azure 애플리케이션을 등록하거나 기존 애플리케이션을 사용하여 인증해야 합니다. + tenant_id_html: "[Azure 포털](application_link)의 원하는 애플리케이션 및 앱 등록에서 디렉터리(테넌트) ID를 복사하세요." tenant_id_placeholder: 이름 또는 UUID setting_up_additional_storages: '추가 파일 저장소를 설정하려면 다음을 방문하세요:' setting_up_additional_storages_non_admin: 관리자는 관리/파일 저장소에서 추가 파일 저장소를 설정할 수 있습니다. setting_up_storages: '파일 저장소를 설정하려면 다음을 방문하세요:' setting_up_storages_non_admin: 관리자는 관리/파일 저장소에서 파일 저장소를 설정할 수 있습니다. sharepoint: - application_link_text: SharePoint 사이트 integration: SharePoint 관리/OpenProject - oauth_configuration: "%{application_link_text}에서 원하는 애플리케이션의 해당 값을 복사합니다." - provider_configuration: 설정을 수행하기 전에 %{application_link_text}에서 관리 권한이 있는지 확인하거나 Microsoft 관리자에게 문의하세요. 또한 포털에서 Azure 애플리케이션을 등록하거나 기존 애플리케이션을 사용하여 인증해야 합니다. + oauth_configuration_html: "[SharePoint 사이트](application_link)에서 원하는 애플리케이션의 해당 값을 복사합니다." + provider_configuration_html: 설정을 수행하기 전에 [SharePoint 사이트](application_link)에서 관리 권한이 있는지 확인하거나 Microsoft 관리자에게 문의하세요. 또한 포털에서 Azure 애플리케이션을 등록하거나 기존 애플리케이션을 사용하여 인증해야 합니다. type: 설정을 수행하기 전에 Nextcloud 인스턴스에서 관리 권한이 있고 다음 애플리케이션이 설치되어 있는지 확인하세요. type_link_text: "“Integration OpenProject”" label_active: 활성 @@ -481,7 +477,7 @@ ko: connected: 연결됨 connected_no_permissions: 사용자 역할에 저장소 권한이 없습니다 not_connectable: 연결할 수 없습니다. 저장소를 사용하려면 SSO 공급자를 통한 로그인이 필요하지만, 사용자가 SSO를 통해 로그인하지 않았습니다. - not_connected: 연결되지 않았습니다. 사용자는 다음 %{link}을(를) 통해 저장소에 로그인해야 합니다. + not_connected_html: 연결되지 않았습니다. 사용자는 다음 [링크](storage_login)를 통해 저장소에 로그인해야 합니다. not_connected_sso: 아직 연결되지 않았습니다. 파일을 살펴본 후 자동으로 연결될 것입니다. members_no_results: 표시할 멤버가 없습니다. no_results: 아직 저장소가 설정되지 않았습니다. diff --git a/modules/storages/config/locales/crowdin/li.yml b/modules/storages/config/locales/crowdin/li.yml index 3e1d96299101..f1ff0d6f0e0a 100644 --- a/modules/storages/config/locales/crowdin/li.yml +++ b/modules/storages/config/locales/crowdin/li.yml @@ -412,14 +412,13 @@ li: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ li: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ li: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/lt.yml b/modules/storages/config/locales/crowdin/lt.yml index 0187bd3e4087..699348a5c6e5 100644 --- a/modules/storages/config/locales/crowdin/lt.yml +++ b/modules/storages/config/locales/crowdin/lt.yml @@ -424,14 +424,13 @@ lt: empty_project_folder_validation: Norint tęsti būtina parinkti aplanką. existing_manual_folder: Jūs galite esamą aplanką paskirti šakniniu šiam projektui. Kaip bebūtų, teisės automatiškai netvarkomos, administratoriui reikia rankiniu būdu užtikrinti, kad atitinkami naudotojai turėtų prieigą. Parintktą aplanką gali naudoti keli projektai. host: Prašome pridėti jūsų saugyklos stoties adresą, įskaitant https://. Jis turi būti ne ilgesnis už 255 simbolius. - managed_project_folders_application_password_caption: 'Įjunkite automatiškai valdomus aplankus nukopijuodami šią reikšmę iš: %{provider_type_link}' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Suteikite jūsų saugyklai pavadinimą, kad naudotojai galėtų atskirti tarp skirtingų saugyklų. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: aplikacija „Integration OpenProject“ integration: Nextclout Administravimas / OpenProject - oauth_configuration: Kopijuoti šias reikšmes iš %{application_link_text}. - provider_configuration: Prašome prieš vykdant nustatymus įsitikinti, kad turite administratoriaus teises jūsų Nextcloud egzemplioriuje ir %{application_link_text} yra įdiegta. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -440,27 +439,24 @@ lt: not_logged_into_storage: Prieš parinkdami projekto aplanką turite prisijungti oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portalas copy_redirect_uri: Kopijuoti peradresavimo ID - documentation_link_text: OneDrive file storages documentation - drive_id: Prašome nukopijuokite ID iš norimo disko sekdami žingsnius %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Prašome užpildyti OAuth reikšmes, kad sugeneruotumėte URI oauth_client_redirect_uri: Prašome nukopijuoti šią reikšmę į naują Tinklo peradresavimo URI prie jūsų Peradresavimo URI. oauth_client_secret: Jei su kliento duomenimis nėra aplikacjos paslapties, prašome tokią sukurti. - oauth_configuration: Kopijuoti šias reikšmes iš norimos aplikacijos %{application_link_text}. - provider_configuration: Prašome įsitikinti, kad turite %{application_link_text} administratoriaus privilegijas arba susisiekite su savo Microsoft administratoriumi prieš darydami nustatymus. Portale jums taipogi reikia registruoti Azure aplikaciją arba naudoti esamą autentifikacijai. - tenant_id: Prašome nukopijuoti direktorijos (tiekėjo) ID iš norimos aplikacijos ir App registracijas %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Vardas ar UUID setting_up_additional_storages: Norėdami sukurti papildomas failų saugyklas, prašome aplankyti setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Norėdami nustatyti failų saugyklas aplankykite setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Kopijuoti šias reikšmes iš norimos aplikacijos %{application_link_text}. - provider_configuration: Prašome įsitikinti, kad turite %{application_link_text} administratoriaus privilegijas arba susisiekite su savo Microsoft administratoriumi prieš darydami nustatymus. Portale jums taipogi reikia registruoti Azure aplikaciją arba naudoti esamą autentifikacijai. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Prašome įsitikinti, kad turite administratoriaus teises jūsų Nextcloud egzemplioriuje bei kad įdiegtos šios aplikacijos, prieš tęsiant nustatymą:' type_link_text: "„Integration OpenProject“" label_active: Aktyvus @@ -499,7 +495,7 @@ lt: connected: Prisijungta connected_no_permissions: Naudotojo vaidmuo neturi saugyklos teisių not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Neprisijungta. Naudotojas turi prisijungti prie saugyklos per šį %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Nėra narių rodymui. no_results: Dar nenustatyta jokia saugykla. diff --git a/modules/storages/config/locales/crowdin/lv.yml b/modules/storages/config/locales/crowdin/lv.yml index 51406347a383..022087733bf5 100644 --- a/modules/storages/config/locales/crowdin/lv.yml +++ b/modules/storages/config/locales/crowdin/lv.yml @@ -418,14 +418,13 @@ lv: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -434,27 +433,24 @@ lv: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktīvs @@ -493,7 +489,7 @@ lv: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/mn.yml b/modules/storages/config/locales/crowdin/mn.yml index 29ee6136cd4e..7efdde1c6d42 100644 --- a/modules/storages/config/locales/crowdin/mn.yml +++ b/modules/storages/config/locales/crowdin/mn.yml @@ -412,14 +412,13 @@ mn: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ mn: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ mn: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/ms.yml b/modules/storages/config/locales/crowdin/ms.yml index 4daa0579de39..04667beb5aa4 100644 --- a/modules/storages/config/locales/crowdin/ms.yml +++ b/modules/storages/config/locales/crowdin/ms.yml @@ -406,14 +406,13 @@ ms: empty_project_folder_validation: Memilih folder ialah wajib untuk meneruskan. existing_manual_folder: Anda boleh menetapkan folder sedia ada sebagai folder pangkal bagi projek ini. Walau bagaimanapun, kebenarannya bukan dikendalikan secara automatik, ia perlukan pentadbir untuk pastikan pengguna yang berkaitan mempunyai akses secara manual. Folder yang dipilih boleh digunakan oleh pelbagai projek. host: Sila tambah alamat hos storan anda termasuk https://. Ia perlulah mengandungi tidak lebih daripada 255 patah perkataan. - managed_project_folders_application_password_caption: 'Benarkan folder yang dikendalikan secara automatik dengan menyalin nilai ini daripada: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Berikan nama kepada storan anda supaya pengguna boleh membezakan ia dengan beberapa storan yang lain. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: aplikasi "Intergrasi OpenProject" integration: Pentadbiran Nextcloud / OpenProject - oauth_configuration: Salin nilai-nilai ini daripada %{application_link_text}. - provider_configuration: 'Sila pastikan anda mempunyai hak keistimewaan pentadbir di, contohnya, Nextcloud, dan mempunyai aplikasi berikut dipasang sebelum membuat penyediaan: %{application_link_text}' + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -422,27 +421,24 @@ ms: not_logged_into_storage: Untuk memilih folder projek, sila log masuk dahulu oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Portal Azure copy_redirect_uri: Salin ubah hala URI - documentation_link_text: OneDrive file storages documentation - drive_id: Sila salin ID daripada pemacu yang diingini dengan mengikuti langkah-langkah di %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Sila isikan nilai-nilai OAuth untuk menjana URI oauth_client_redirect_uri: Sila salin nilai ini ke URI ubah hala Web baharu di bawah Ubah Hala URI. oauth_client_secret: Sekiranya tiada aplikasi rahsia pelanggan di bawah kelayakan Pelanggan, sila cipta yang baharu. - oauth_configuration: Salin nilai-nilai ini dari aplikasi yang diingini di %{application_link_text}. - provider_configuration: Sila pastikan anda mempunyai hak pentadbiran dalam %{application_link_text} atau hubungi pentadbir Microsoft anda sebelum membuat penyediaan. Anda juga perlu mendaftar aplikasi Azure atau menggunakan yang sedia ada untuk pengesahan di portal. - tenant_id: Sila salin ID Direktori (penyewa) dari aplikasi yang diingini dan pendaftaran Aplikasi di %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Nama atau UUID setting_up_additional_storages: Untuk menyediakan storan fail tambahan, sila kunjungi setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Untuk penyediaan storan fail, sila kunjungi setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Salin nilai-nilai ini dari aplikasi yang diingini di %{application_link_text}. - provider_configuration: Sila pastikan anda mempunyai hak pentadbiran dalam %{application_link_text} atau hubungi pentadbir Microsoft anda sebelum membuat penyediaan. Anda juga perlu mendaftar aplikasi Azure atau menggunakan yang sedia ada untuk pengesahan di portal. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Sila pastikan anda mempunyai hak keistimewaan pentadbir di, contohnya, Nextcloud, dan mempunyai aplikasi berikut dipasangkan sebelum membuat penyediaan:' type_link_text: '"Integrasi OpenProject"' label_active: Aktif @@ -481,7 +477,7 @@ ms: connected: Disambungkan connected_no_permissions: Peranan pengguna tidak mempunyai kebenaran storan not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Tidak disambungkan. Pengguna perlu log masuk ke dalam storan melalui %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Tiada ahli untuk dipaparkan. no_results: Masih belum ada storan yang disediakan lagi. diff --git a/modules/storages/config/locales/crowdin/ne.yml b/modules/storages/config/locales/crowdin/ne.yml index e7751b3d738b..aea370bdae86 100644 --- a/modules/storages/config/locales/crowdin/ne.yml +++ b/modules/storages/config/locales/crowdin/ne.yml @@ -412,14 +412,13 @@ ne: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ ne: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ ne: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/nl.yml b/modules/storages/config/locales/crowdin/nl.yml index 676e6a221a52..943b70bfa3b4 100644 --- a/modules/storages/config/locales/crowdin/nl.yml +++ b/modules/storages/config/locales/crowdin/nl.yml @@ -412,14 +412,13 @@ nl: empty_project_folder_validation: Het selecteren van een map is verplicht om door te gaan. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Voeg het hostadres van je opslag toe, inclusief de https://. Het mag niet langer dan 255 tekens zijn. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Geef uw opslag een naam zodat gebruikers onderscheid kunnen maken tussen meerdere opslagplaatsen. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud administratie / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ nl: not_logged_into_storage: Om een projectmap te selecteren, moet u eerst inloggen oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Zorg ervoor dat u beheerdersrechten hebt op %{application_link_text} of neem contact op met uw Microsoft-beheerder voordat u de installatie uitvoert. In het portaal moet u ook een Azure toepassing registreren of een bestaande toepassing gebruiken voor verificatie. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: Voor het opzetten van extra bestandsopslag, bezoek a.u.b. setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Voor het opzetten van extra bestandsopslag, bezoek a.u.b. setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Zorg ervoor dat u beheerdersrechten hebt op %{application_link_text} of neem contact op met uw Microsoft-beheerder voordat u de installatie uitvoert. In het portaal moet u ook een Azure toepassing registreren of een bestaande toepassing gebruiken voor verificatie. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Zorg ervoor dat u beheerrechten heeft in uw Nextcloud en dat de volgende applicatie geïnstalleerd is voordat u de installatie uitvoert:' type_link_text: Integratie met OpenProject" label_active: Actief @@ -487,7 +483,7 @@ nl: connected: Verbonden connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Geen leden om weer te geven. no_results: Er zijn nog geen opslagplaatsen ingesteld. diff --git a/modules/storages/config/locales/crowdin/no.yml b/modules/storages/config/locales/crowdin/no.yml index e2f427172358..c032e4cdb54a 100644 --- a/modules/storages/config/locales/crowdin/no.yml +++ b/modules/storages/config/locales/crowdin/no.yml @@ -412,14 +412,13 @@ empty_project_folder_validation: Valg av mappe er obligatorisk å fortsette. existing_manual_folder: Du kan bestemme en eksisterende mappe som rotmappe for dette prosjektet. Tillatelsene håndteres imidlertid ikke automatisk, administratoren må sørge for at relevante brukere har tilgang. Den valgte mappen kan brukes av flere prosjekter. host: Legg til vertsadressen til lagringsplassen din inkludert https://. Den bør ikke være lengre enn 255 tegn. - managed_project_folders_application_password_caption: 'Aktiver automatisk håndterte mapper ved å kopiere denne verdien fra: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Gi lagringsstedet ditt et navn slik at brukere kan skille mellom flere lagringssteder. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: applikasjon "Integrasjon OpenProject" integration: Nextcloud administrasjon / OpenProject - oauth_configuration: Kopier disse verdiene fra %{application_link_text}. - provider_configuration: Kontroller at du har administrasjonsrettigheter i din Nextcloud-instans og %{application_link_text} er installert før du utfører oppsettet. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ not_logged_into_storage: Du må logge inn først for å velge en prosjektmappe. oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Kopier omadressering av URI - documentation_link_text: OneDrive file storages documentation - drive_id: Kopier ID fra den ønskede disken ved å følge trinnene i %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Vennligst fyll inn OAuth-verdiene for å generere en URI oauth_client_redirect_uri: Kopier denne verdien til en ny Web omdirigerings-URI under omdirigere URIer. oauth_client_secret: Dersom det ikke er noen klient-hemmelighet for applikasjonen under klientlegitimasjon, vennligst opprett en ny. - oauth_configuration: Kopier disse verdiene fra den ønskede applikasjonen i %{application_link_text}. - provider_configuration: Kontroller at du har administrasjonsrettigheter i %{application_link_text} eller kontakt Microsoft-administratoren din før du gjennomfører oppsettet. I portalen må du også registrere et Azure-program eller bruke en eksisterende for autentisering. - tenant_id: Kopier Katalogen (leietaker) ID fra ønsket program og App-registreringer i %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Navn eller UUID setting_up_additional_storages: For å sette opp ekstra fillagre, vennligst besøk setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For å sette opp fillagre, vennligst besøk setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Kopier disse verdiene fra den ønskede applikasjonen i %{application_link_text}. - provider_configuration: Kontroller at du har administrasjonsrettigheter i %{application_link_text} eller kontakt Microsoft-administratoren din før du gjennomfører oppsettet. I portalen må du også registrere et Azure-program eller bruke en eksisterende for autentisering. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Sørg for at du har administrasjonsrettigheter i din Nextcloud-instans og har følgende applikasjon installert før du utfører oppsettet:' type_link_text: "«Integrasjon OpenProject»" label_active: Aktiv @@ -487,7 +483,7 @@ connected: Tilkoblet connected_no_permissions: Brukerrolle har ingen lagringsrettigheter not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Ikke tilkoblet. Brukeren må logge inn på lagringsplassen via følgende %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Ingen medlemmer å vise. no_results: Ingen lagring satt opp ennå. diff --git a/modules/storages/config/locales/crowdin/pl.yml b/modules/storages/config/locales/crowdin/pl.yml index 7406758a5f6b..ff35fe2357da 100644 --- a/modules/storages/config/locales/crowdin/pl.yml +++ b/modules/storages/config/locales/crowdin/pl.yml @@ -424,14 +424,13 @@ pl: empty_project_folder_validation: Wybranie folderu jest obowiązkowe w celu kontynuacji. existing_manual_folder: Możesz wyznaczyć istniejący folder jako folder główny tego projektu. Uprawnienia nie są jednak zarządzane automatycznie, administrator musi ręcznie upewnić się, że odpowiedni użytkownicy mają dostęp. Wybrany folder może być używany przez wiele projektów. host: Proszę dodać adres hosta magazynu wraz z https://. Nie powinien być dłuższy niż 255 znaków. - managed_project_folders_application_password_caption: 'Włącz automatycznie zarządzane foldery, kopiując tę wartość z: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Nazwij swój magazyn pamięci, aby użytkownicy mogli je rozróżniać, jeśli występuje ich wiele. new_storage_html: Aby uzyskać więcej informacji, przeczytaj naszą dokumentację na temat [konfigurowania integracji magazynu plików %{provider_name}](docs_url). nextcloud: - application_link_text: aplikacji „Integration OpenProject” integration: Administracja Nextcloud / OpenProject - oauth_configuration: Skopiuj te wartości z %{application_link_text}. - provider_configuration: Przed wykonaniem konfiguracji upewnij się, że masz uprawnienia administracyjne w swoim wystąpieniu Nextcloud oraz zainstalowaną aplikację %{application_link_text}. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Identyfikator klienta, który wykorzystuje wystąpienie Nextcloud do komunikowania się z dostawcą tożsamości. storage_audience_placeholder: np. nextcloud token_exchange_scope: Zakresy, które powinny być wymagane podczas wymiany tokenów, każdy oddzielony spacją. @@ -440,27 +439,24 @@ pl: not_logged_into_storage: Aby wybrać folder projektu, najpierw się zaloguj oauth_application_details_html: Wartość kod klienta nie będzie ponownie dostępna po zamknięciu tego okna. Skopiuj tę wartości do [ustawień Nextcloud OpenProject Integration](oauth_application_details_link). one_drive: - application_link_text: Portal Azure copy_redirect_uri: Skopiuj identyfikator URI przekierowania - documentation_link_text: dokumentacji plików OneDrive - drive_id: Skopiuj identyfikator z żądanego dysku, wykonując kroki opisane w %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Wprowadź wartości OAuth, aby wygenerować identyfikator URI oauth_client_redirect_uri: Skopiuj tę wartość do nowego identyfikatora URI przekierowania sieci Web w sekcji Przekieruj URI. oauth_client_secret: Jeśli w sekcji Poświadczenia klienta nie ma tajnego klucza klienta aplikacji, utwórz nowy. - oauth_configuration: Skopiuj te wartości z żądanej aplikacji w %{application_link_text}. - provider_configuration: Przed przystąpieniem do konfiguracji upewnij się, że masz uprawnienia administracyjne w %{application_link_text} lub skontaktuj się z administratorem z firmy Microsoft. W portalu musisz również zarejestrować aplikację Azure lub użyć istniejącej do uwierzytelniania. - tenant_id: Skopiuj identyfikator katalogu (dzierżawcy) z żądanej aplikacji i rejestracje aplikacji w %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Nazwa lub identyfikator UUID setting_up_additional_storages: Aby skonfigurować dodatkowe magazyny plików, odwiedź setting_up_additional_storages_non_admin: Administratorzy mogą skonfigurować dodatkowe magazyny plików w obszarze Administracja / Magazyny plików. setting_up_storages: Aby skonfigurować magazyny plików, odwiedź setting_up_storages_non_admin: Administratorzy mogą skonfigurować magazyny plików w obszarze Administracja / Magazyny plików. sharepoint: - application_link_text: Witryna SharePoint integration: Administracja SharePoint/OpenProject - oauth_configuration: Skopiuj te wartości z żądanej aplikacji w %{application_link_text}. - provider_configuration: Przed przystąpieniem do konfiguracji upewnij się, że masz uprawnienia administracyjne w %{application_link_text} lub skontaktuj się z administratorem z firmy Microsoft. W portalu musisz również zarejestrować aplikację Azure lub użyć istniejącej do uwierzytelniania. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Upewnij się, że masz uprawnienia administracyjne w swojej instancji Nextcloud oraz zainstalowaną następującą aplikację, przed wykonaniem konfiguracji:' type_link_text: "“Integration OpenProject”" label_active: Aktywny @@ -499,7 +495,7 @@ pl: connected: Połączono connected_no_permissions: Rola użytkownika nie ma uprawnień do magazynów not_connectable: Nie można połączyć. Magazyn wymaga logowania poprzez dostawcę SSO, ale użytkownik nie loguje się poprzez SSO. - not_connected: Nie połączono. Użytkownik powinien zalogować się do magazynu za pomocą %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Jeszcze nie powiązano, usługa SSO powinna je automatycznie powiązać po sprawdzeniu plików. members_no_results: Brak członków do wyświetlenia. no_results: Brak skonfigurowanych magazynów. diff --git a/modules/storages/config/locales/crowdin/pt-BR.yml b/modules/storages/config/locales/crowdin/pt-BR.yml index 89b9a4689c4a..64455020f648 100644 --- a/modules/storages/config/locales/crowdin/pt-BR.yml +++ b/modules/storages/config/locales/crowdin/pt-BR.yml @@ -412,14 +412,13 @@ pt-BR: empty_project_folder_validation: Selecionar uma pasta é obrigatório para continuar. existing_manual_folder: Você pode definir uma pasta existente como a pasta raiz deste projeto. No entanto, as permissões não são gerenciadas automaticamente; o administrador deve garantir manualmente que os usuários necessários tenham acesso. A pasta selecionada pode ser usada por vários projetos. host: Adicione o endereço do host de seu armazenamento incluindo o https://. Ele não deve ter mais de 255 caracteres. - managed_project_folders_application_password_caption: 'Habilitar as pastas gerenciadas automaticamente copiando este valor de: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Habilitar pastas gerenciadas automaticamente copiando este valor de: [%{integration}](provider_settings).' name: Dê um nome a seu armazenamento para que os usuários possam diferenciar vários armazenamentos. new_storage_html: Leia nossa documentação sobre [configuração de um armazenamento de arquivos %{provider_name}](docs_url) para obter mais informações. nextcloud: - application_link_text: aplicativo “Integration OpenProject” integration: Administração de Nextcloud / OpenProject - oauth_configuration: Copie estes valores de %{application_link_text}. - provider_configuration: 'Certifique-se de ter os privilégios de administração em sua instância de Nextcloud e de que o %{application_link_text} está instalado antes de realizar a configuração:' + oauth_configuration_html: Copiar estes valores de [Administração da próxima nuvem/OpenProject](application_link). + provider_configuration_html: Certifique-se de que possui privilégios de administrador na sua instância do Nextcloud e de que o [aplicativo “Integration OpenProject”](application_link) esteja instalado antes de realizar a configuração. storage_audience: O ID do Cliente que a instância do Nextcloud usa para se comunicar com o provedor de identidade. storage_audience_placeholder: 'ex.: Nextcloud' token_exchange_scope: Os escopos que devem ser solicitados durante a troca de token, separados por espaço. @@ -428,27 +427,24 @@ pt-BR: not_logged_into_storage: Para selecionar uma pasta de projeto, primeiro faça login oauth_application_details_html: O valor do segredo do cliente não poderá ser acessado novamente depois que você fechar esta janela. Copie esses valores para as [configurações de integração Nextcloud OpenProject](oauth_application_details_link). one_drive: - application_link_text: Portal Azure copy_redirect_uri: Copiar URI de redirecionamento - documentation_link_text: Documentação de armazenamento de arquivos OneDrive - drive_id: Copie o ID da unidade desejada seguindo as etapas em %{drive_id_link_text}. + drive_id_html: Copie o ID da unidade desejada seguindo as etapas descritas na [documentação sobre armazenamentos de arquivos do OneDrive](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Preencha os valores OAuth para gerar um URI oauth_client_redirect_uri: Copie este valor para um novo URI de redirecionamento da Web em URI de redirecionamento. oauth_client_secret: Caso não haja um segredo do cliente do aplicativo sob as credenciais do cliente, crie um novo. - oauth_configuration: Copie estes valores do aplicativo pretendido no %{application_link_text}. - provider_configuration: Certifique-se de ter privilégios de administração no %{application_link_text} ou entre em contato com seu administrador da Microsoft antes de fazer a configuração. No portal, você também precisa registrar um aplicativo Azure ou usar um existente para autenticação. - tenant_id: Copie o ID do diretório (inquilino) do aplicativo desejado e dos registros de aplicativos no %{application_link_text}. + oauth_configuration_html: Copie esses valores do aplicativo desejado no [Portal do Azure](application_link). + provider_configuration_html: Certifique-se de que possui privilégios de administrador no [Portal do Azure](application_link) ou entre em contato com seu administrador da Microsoft antes de realizar a configuração. No portal, você também precisará registrar um aplicativo do Azure ou utilizar um já existente para fins de autenticação. + tenant_id_html: Copie o ID do diretório (locatário) do aplicativo desejado e dos registros de aplicativos no [Portal do Azure](application_link). tenant_id_placeholder: Nome ou UUID setting_up_additional_storages: Para configurar armazenamentos de arquivos adicionais, por favor visite setting_up_additional_storages_non_admin: Os administradores podem configurar armazenamentos adicionais em Administração/Armazenamentos de arquivo. setting_up_storages: Para configurar armazenamentos de arquivos, visite setting_up_storages_non_admin: Administradores podem configurar armazenamentos de arquivos em Administração / Armazenamentos de arquivo. sharepoint: - application_link_text: Site do SharePoint integration: Administração de SharePoint / OpenProject - oauth_configuration: Copie esses valores do aplicativo desejado em %{application_link_text}. - provider_configuration: Certifique-se de que você tenha privilégios de administrador no %{application_link_text} ou entre em contato com seu administrador Microsoft antes de realizar a configuração. No portal, também é necessário registrar um aplicativo Azure ou usar um existente para autenticação. + oauth_configuration_html: Copie esses valores do aplicativo desejado no [site do SharePoint](application_link). + provider_configuration_html: Certifique-se de que possui privilégios de administrador no [site do SharePoint](application_link) ou entre em contato com seu administrador da Microsoft antes de realizar a configuração. No portal, você também precisará registrar um aplicativo do Azure ou utilizar um já existente para fins de autenticação. type: 'Certifique-se de ter privilégios de administração em sua instância Nextcloud e de ter o seguinte aplicativo instalado antes de realizar a configuração:' type_link_text: "“Integração OpenProject”" label_active: Ativo @@ -487,7 +483,7 @@ pt-BR: connected: Conectado connected_no_permissions: A função de usuário não tem permissões de armazenamento not_connectable: Não conectado. O armazenamento requer login através de um provedor SSO, mas o usuário não está fazendo login através de SSO. - not_connected: Não conectado. O usuário deve iniciar sessão no armazenamento por meio do seguinte %{link}. + not_connected_html: Não conectado. O usuário deve fazer login no armazenamento através do seguinte [link](storage_login). not_connected_sso: Ainda não conectado. O SSO deve conectá-los automaticamente ao visualizar os arquivos. members_no_results: Nenhum membro para exibir. no_results: Ainda não há armazenamento configurado. diff --git a/modules/storages/config/locales/crowdin/pt-PT.yml b/modules/storages/config/locales/crowdin/pt-PT.yml index 618c1352d461..5d7bdf5c6a25 100644 --- a/modules/storages/config/locales/crowdin/pt-PT.yml +++ b/modules/storages/config/locales/crowdin/pt-PT.yml @@ -418,14 +418,13 @@ pt-PT: empty_project_folder_validation: Tem de selecionar uma pasta para avançar. existing_manual_folder: Pode designar uma pasta existente como a pasta de raiz para este projeto. No entanto, as permissões não são geridas automaticamente, o administrador tem de garantir manualmente que os utilizadores relevantes têm acesso. A pasta selecionada pode ser utilizada por vários projetos. host: Adicione o endereço de anfitrião do seu armazenamento, incluindo o https://. Não deve ter mais de 255 caracteres. - managed_project_folders_application_password_caption: 'Ativar as pastas geridas automaticamente, copiando este valor de: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Dê um nome ao seu armazenamento para que os utilizadores possam diferenciar vários armazenamentos. new_storage_html: Leia a nossa documentação sobre a integração [configurar um armazenamento de ficheiros %{provider_name}](docs_url) para mais informações. nextcloud: - application_link_text: aplicação "Integração OpenProject" integration: Administração do Nextcloud / OpenProject - oauth_configuration: Copie estes valores de %{application_link_text}. - provider_configuration: 'Garanta que tem privilégios administrativos na sua instância de Nextcloud e tenha a aplicação %{application_link_text} instalada antes de fazer a configuração:' + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: ID do cliente que a instância do Nextcloud utiliza para comunicar com o fornecedor de identidade. storage_audience_placeholder: 'exemplo: Nextcloud' token_exchange_scope: Os âmbitos que devem ser solicitados durante o intercâmbio de tokens, cada um separado por um espaço. @@ -434,27 +433,24 @@ pt-PT: not_logged_into_storage: Para selecionar uma pasta do projeto, primeiro inicie a sessão oauth_application_details_html: O valor secreto do cliente não estará acessível novamente após fechar esta janela. Copie esses valores para as [definições de integração do OpenProject da Nextcloud](oauth_application_details_link). one_drive: - application_link_text: Portal do Azure copy_redirect_uri: Copiar URI de redirecionamento - documentation_link_text: Documentação de armazenamento de ficheiros do OneDrive - drive_id: Copie o ID da unidade pretendida seguindo os passos no %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Preencha os valores OAuth para gerar um URI oauth_client_redirect_uri: Copie este valor para um novo URI de redirecionamento da Web em URI de redirecionamento. oauth_client_secret: Caso não exista um segredo de cliente da aplicação em Credenciais de cliente, crie um novo. - oauth_configuration: Copie estes valores da aplicação pretendida no %{application_link_text}. - provider_configuration: Certifique-se de que tem privilégios de administração no %{application_link_text} ou contacte o seu administrador da Microsoft antes de realizar a configuração. No portal, também é necessário registar uma aplicação do Azure ou utilizar uma aplicação existente para autenticação. - tenant_id: Copie o ID do diretório (inquilino) da aplicação pretendida e os registos da aplicação no %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Nome ou UUID setting_up_additional_storages: Para configurar armazenamentos de ficheiros adicionais, visite setting_up_additional_storages_non_admin: Os administradores podem configurar armazenamentos de ficheiros adicionais em Administração / Armazenamentos de ficheiros. setting_up_storages: Para configurar armazenamentos de ficheiros, visite setting_up_storages_non_admin: Os administradores podem configurar o armazenamento de ficheiros em Administração / Armazenamento de ficheiros. sharepoint: - application_link_text: Site do SharePoint integration: Administração de SharePoint / OpenProject - oauth_configuration: Copie estes valores da aplicação pretendida no %{application_link_text}. - provider_configuration: Confirme se tem privilégios de administração em %{application_link_text} ou contacte o seu administrador da Microsoft antes de fazer a configuração. No portal, também é necessário registar uma aplicação do Azure ou utilizar uma aplicação existente para autenticação. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Garanta que tem privilégios administrativos na sua instância de Nextcloud e tenha a seguinte aplicação instalada antes de fazer a configuração:' type_link_text: "“Integração OpenProject”" label_active: Ativo @@ -493,7 +489,7 @@ pt-PT: connected: Ligado connected_no_permissions: A função de utilizador não tem permissões de armazenamento not_connectable: Não conectável. O armazenamento requer o início de sessão através de um fornecedor de SSO, mas o utilizador não está a iniciar sessão através de SSO. - not_connected: Não ligado. O utilizador deve iniciar sessão no armazenamento através do seguinte %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Ainda não está ligado, o SSO deve ligá-los automaticamente, quando estiver a olhar para os ficheiros. members_no_results: Nenhum membro a exibir. no_results: Não há armazenamento configurado. diff --git a/modules/storages/config/locales/crowdin/ro.yml b/modules/storages/config/locales/crowdin/ro.yml index 9d9dd8c7b62b..ba00b3d8c076 100644 --- a/modules/storages/config/locales/crowdin/ro.yml +++ b/modules/storages/config/locales/crowdin/ro.yml @@ -418,14 +418,13 @@ ro: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Vă rugăm să adăugați adresa de găzduire a spațiului de stocare, inclusiv https://. Nu trebuie să fie mai lungă de 255 de caractere. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Dați un nume stocării pentru ca utilizatorii să poată diferenția între mai multe spațiul de stocare. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Administrare Nextcloud / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -434,27 +433,24 @@ ro: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: Pentru a configura fişiere de stocare suplimentare, vă rugăm să vizitaţi setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: Pentru configurarea fișierelor, vă rugăm să vizitați setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Asigurați-vă că aveți drepturi de administrare în instanța Nextcloud și că aveți următoarea aplicație instalată înainte de a face configurarea:' type_link_text: Integrare OpenProject” label_active: Activ @@ -493,7 +489,7 @@ ro: connected: Conectat connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: Niciun membru de afișat. no_results: Nu sunt încă setate stocări. diff --git a/modules/storages/config/locales/crowdin/ru.yml b/modules/storages/config/locales/crowdin/ru.yml index aa33b787c8a4..3084eda546b6 100644 --- a/modules/storages/config/locales/crowdin/ru.yml +++ b/modules/storages/config/locales/crowdin/ru.yml @@ -424,14 +424,13 @@ ru: empty_project_folder_validation: Выбор папки является обязательным для продолжения. existing_manual_folder: Вы можете назначить существующую папку в качестве корневой папки для этого проекта. Однако разрешения не управляются автоматически, администратору необходимо вручную обеспечить доступ соответствующим пользователям. Выбранная папка может использоваться несколькими проектами. host: Пожалуйста, добавьте адрес вашего хранилища, включая https://. Он не должен быть длиннее 255 символов. - managed_project_folders_application_password_caption: 'Включите автоматические управляемые папки, копируя это значение из: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Дайте вашему хранилищу имя, чтобы пользователи могли различать между несколькими хранилищами. new_storage_html: Для получения дополнительной информации ознакомьтесь с нашей документацией по [настройке интеграции с файловым хранилищем %{provider_name}](docs_url). nextcloud: - application_link_text: Приложение «Интеграция OpenProject» integration: Администрирование Nextcloud / OpenProject - oauth_configuration: Скопируйте эти значения из %{application_link_text}. - provider_configuration: Пожалуйста, убедитесь, что у вас есть права администрирования в копии Nextcloud, и перед установкой настроен %{application_link_text}. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Идентификатор клиента, который Nextcloud использует для связи с поставщиком идентификационных данных. storage_audience_placeholder: например, nextcloud token_exchange_scope: Объемы, которые должны быть запрошены во время обмена токенами, каждый из которых разделен пробелом. @@ -440,27 +439,24 @@ ru: not_logged_into_storage: Чтобы выбрать папку проекта, сначала войдите oauth_application_details_html: Секретное значение клиента будет недоступно снова после закрытия этого окна. Скопируйте эти значения в [Настройки интеграции OpenProject Nextcloud](oauth_application_details_link). one_drive: - application_link_text: Портал Azure copy_redirect_uri: Копировать перенаправление URI - documentation_link_text: Документация по файловым хранилищам OneDrive - drive_id: Пожалуйста, скопируйте ID с нужного диска, выполнив шаги в %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Пожалуйста, заполните значения OAuth для генерации URI oauth_client_redirect_uri: Скопируйте это значение в новый Web redirect URI под URI перенаправления. oauth_client_secret: В случае, если у клиента нет секретного ключа приложения, пожалуйста, создайте новый. - oauth_configuration: Скопируйте эти значения из желаемого приложения в %{application_link_text}. - provider_configuration: Перед установкой убедитесь, что у вас есть права администрирования в %{application_link_text} или обратитесь к администратору Microsoft. На портале вам также нужно зарегистрировать приложение Azure или использовать существующее для аутентификации. - tenant_id: Пожалуйста, скопируйте идентификатор каталога (арендатора) из желаемого приложения и регистраций App в %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Имя или UUID setting_up_additional_storages: Для настройки дополнительных файловых хранилищ посетите setting_up_additional_storages_non_admin: Администраторы могут настроить дополнительные файловые хранилища в Администрирование / Файловые хранилища. setting_up_storages: Для настройки файловых хранилищ посетите setting_up_storages_non_admin: Администраторы могут настроить файловые хранилища в Администрирование / Файловые хранилища. sharepoint: - application_link_text: Сайт SharePoint integration: Администрирование SharePoint / OpenProject - oauth_configuration: Скопируйте эти значения из желаемого приложения в %{application_link_text}. - provider_configuration: Перед установкой убедитесь, что у вас есть права администрирования в %{application_link_text} или обратитесь к администратору Microsoft. На портале вам также нужно зарегистрировать приложение Azure или использовать существующее для аутентификации. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Перед установкой убедитесь, что у вас есть права администрирования в вашем экземпляре Nextcloud и что перед установкой установлено следующее приложение:' type_link_text: "«Интеграционный OpenProject»" label_active: Активно @@ -499,7 +495,7 @@ ru: connected: Подключено connected_no_permissions: Роль пользователя не имеет разрешения на хранение not_connectable: Не подключена. Хранилище требует авторизации через SSO провайдера, но пользователь не входит в систему через SSO. - not_connected: Не подключено. Пользователь должен войти в хранилище с помощью следующего %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Ещё не подключен, SSO должен подключаться автоматически, при первом доступе к файлам. members_no_results: Нет участников для отображения. no_results: Хранилища еще не настроены. diff --git a/modules/storages/config/locales/crowdin/rw.yml b/modules/storages/config/locales/crowdin/rw.yml index a86dd20c6db2..1e4fe5f8d170 100644 --- a/modules/storages/config/locales/crowdin/rw.yml +++ b/modules/storages/config/locales/crowdin/rw.yml @@ -412,14 +412,13 @@ rw: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ rw: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ rw: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/si.yml b/modules/storages/config/locales/crowdin/si.yml index fede478edde6..7313801df565 100644 --- a/modules/storages/config/locales/crowdin/si.yml +++ b/modules/storages/config/locales/crowdin/si.yml @@ -412,14 +412,13 @@ si: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ si: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: ක්රියාකාරී @@ -487,7 +483,7 @@ si: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/sk.yml b/modules/storages/config/locales/crowdin/sk.yml index 4d592bd24a8e..29e6c6c9fa38 100644 --- a/modules/storages/config/locales/crowdin/sk.yml +++ b/modules/storages/config/locales/crowdin/sk.yml @@ -424,14 +424,13 @@ sk: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -440,27 +439,24 @@ sk: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktívny @@ -499,7 +495,7 @@ sk: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/sl.yml b/modules/storages/config/locales/crowdin/sl.yml index fbdebff9468f..cfb144336779 100644 --- a/modules/storages/config/locales/crowdin/sl.yml +++ b/modules/storages/config/locales/crowdin/sl.yml @@ -424,14 +424,13 @@ sl: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -440,27 +439,24 @@ sl: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Aktivno @@ -499,7 +495,7 @@ sl: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/sr.yml b/modules/storages/config/locales/crowdin/sr.yml index 342f66e10697..cb62a63383ac 100644 --- a/modules/storages/config/locales/crowdin/sr.yml +++ b/modules/storages/config/locales/crowdin/sr.yml @@ -418,14 +418,13 @@ sr: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -434,27 +433,24 @@ sr: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -493,7 +489,7 @@ sr: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/sv.yml b/modules/storages/config/locales/crowdin/sv.yml index 813b3e34a7cd..fe0d30f87f41 100644 --- a/modules/storages/config/locales/crowdin/sv.yml +++ b/modules/storages/config/locales/crowdin/sv.yml @@ -412,14 +412,13 @@ sv: empty_project_folder_validation: Det är obligatoriskt att välja en mapp. existing_manual_folder: Du kan ange en befintlig mapp som rotmapp för det här projektet. Behörigheterna hanteras dock inte automatiskt, administratören måste manuellt se till att relevanta användare har åtkomst. Den valda mappen kan användas av flera projekt. host: Lägg till värdadressen för din lagring inklusive https://. Den får inte vara längre än 255 tecken. - managed_project_folders_application_password_caption: 'Aktivera automatiska hanterade mappar genom att kopiera detta värde från: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Aktivera automatiskt hanterade mappar genom att kopiera detta värde från: [%{integration}](provider_settings).' name: Ge ditt lagringsutrymme ett namn så att användarna kan skilja mellan flera lagringsutrymmen. new_storage_html: Läs vår dokumentation om [konfiguration av %{provider_name}-fillagring](docs_url) för mer information. nextcloud: - application_link_text: applikationen ”Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Kopiera dessa värden från %{application_link_text}. - provider_configuration: Kontrollera att du har administratörsrättigheter i din Nextcloud-instans och att %{application_link_text} är installerat innan du gör inställningen. + oauth_configuration_html: Kopiera dessa värden från [Nextcloud-administration / OpenProject](application_link). + provider_configuration_html: Kontrollera att du har administratörsbehörighet i din Nextcloud-instans och att [appen ”Integration OpenProject”](application_link) är installerad innan du börjar konfigurera. storage_audience: Klient-ID som Nextcloud-instansen använder för att kommunicera med identitetsleverantören. storage_audience_placeholder: t.ex. nextcloud token_exchange_scope: De omfång som bör begäras under symboliskt utbyte, var och en åtskilda av ett utrymme. @@ -428,27 +427,24 @@ sv: not_logged_into_storage: För att välja en projektmapp, vänligen logga in först oauth_application_details_html: Värdet för klienthemligheten kommer inte att vara tillgängligt igen när du stänger det här fönstret. Kopiera dessa värden till [inställningarna för Nextcloud OpenProject Integration](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Kopiera URI för omdirigering - documentation_link_text: Dokumentation för OneDrive-filer - drive_id: Kopiera ID från önskad enhet genom att följa stegen i %{drive_id_link_text}. + drive_id_html: Kopiera ID:t för den önskade enheten genom att följa stegen i [dokumentationen för OneDrive-fillagring](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Fyll i OAuth-värdena för att generera en URI oauth_client_redirect_uri: Kopiera detta värde till en ny webbomdirigerings-URI under Omdirigerings-URI:er. oauth_client_secret: Om det inte finns någon applikationsklient hemlig under Klientuppgifter, vänligen skapa en ny. - oauth_configuration: Kopiera dessa värden från önskad applikation i %{application_link_text}. - provider_configuration: Kontrollera att du har administratörsrättigheter i %{application_link_text} eller kontakta din Microsoft-administratör innan du gör inställningen. I portalen behöver du också registrera en Azure-applikation eller använda en befintlig för autentisering. - tenant_id: Vänligen kopiera Katalog (hyresgäst) ID från önskad applikation och appregistrering i %{application_link_text}. + oauth_configuration_html: Kopiera dessa värden från den önskade appen i [Azure-portalen](application_link). + provider_configuration_html: Kontrollera att du har administratörsbehörighet i [Azure-portalen](application_link) eller kontakta din Microsoft-administratör innan du börjar konfigurera. I portalen måste du även registrera en Azure-app eller använda en befintlig för autentisering. + tenant_id_html: Kopiera katalog-ID:t (klientorganisations-ID:t) från den önskade appen under Appregistreringar i [Azure-portalen](application_link). tenant_id_placeholder: Namn eller UUID setting_up_additional_storages: För att konfigurera ytterligare fillagringar, gå till setting_up_additional_storages_non_admin: Administratörer kan konfigurera ytterligare fillagringar under Administration / Fillagring. setting_up_storages: För att konfigurera fillagring, gå till setting_up_storages_non_admin: Administratörer kan konfigurera fillagring under Administration / Fillagring. sharepoint: - application_link_text: SharePoint-webbplats integration: SharePoint-administration / OpenProject - oauth_configuration: Kopiera dessa värden från önskad applikation i %{application_link_text}. - provider_configuration: Kontrollera att du har administratörsrättigheter i %{application_link_text} eller kontakta din Microsoft-administratör innan du gör inställningen. I portalen behöver du också registrera en Azure-applikation eller använda en befintlig för autentisering. + oauth_configuration_html: Kopiera dessa värden från den önskade appen på [SharePoint-webbplatsen](application_link). + provider_configuration_html: Kontrollera att du har administratörsbehörighet på [SharePoint-webbplatsen](application_link) eller kontakta din Microsoft-administratör innan du börjar konfigurera. I portalen måste du även registrera en Azure-app eller använda en befintlig för autentisering. type: 'Se till att du har administratörsbehörighet i din Nextcloud-instans och att följande program är installerat innan du påbörjar konfigurationen:' type_link_text: "”Integration OpenProject”" label_active: Aktiv @@ -487,7 +483,7 @@ sv: connected: Ansluten connected_no_permissions: Användarrollen har inga lagringsbehörigheter not_connectable: Ej anslutbar. Lagringen kräver inloggning via en SSO-leverantör, men användaren loggar inte in via SSO. - not_connected: Inte ansluten. Användaren bör logga in på lagringen via följande %{link}. + not_connected_html: Inte ansluten. Användaren bör logga in i lagringen via följande [länk](storage_login). not_connected_sso: Ännu inte ansluten. SSO bör ansluta användaren automatiskt när filer visas. members_no_results: Inga medlemmar att visa. no_results: Inga lagringar har konfigurerats ännu. diff --git a/modules/storages/config/locales/crowdin/th.yml b/modules/storages/config/locales/crowdin/th.yml index d21ada708463..3801698d09e4 100644 --- a/modules/storages/config/locales/crowdin/th.yml +++ b/modules/storages/config/locales/crowdin/th.yml @@ -406,14 +406,13 @@ th: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -422,27 +421,24 @@ th: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: ใช้งานอยู่ @@ -481,7 +477,7 @@ th: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/tr.yml b/modules/storages/config/locales/crowdin/tr.yml index 0867adde05ac..1472594f6033 100644 --- a/modules/storages/config/locales/crowdin/tr.yml +++ b/modules/storages/config/locales/crowdin/tr.yml @@ -412,14 +412,13 @@ tr: empty_project_folder_validation: Devam etmek için bir klasör seçmek zorunludur. existing_manual_folder: Mevcut bir klasörü bu proje için kök klasör olarak belirleyebilirsiniz. Ancak izinler otomatik olarak yönetilmez, yöneticinin ilgili kullanıcıların erişime sahip olduğundan emin olması gerekir. Seçilen klasör birden fazla proje tarafından kullanılabilir. host: 'Lütfen https dahil olmak üzere depolama alanınızın ana bilgisayar adresini ekleyin:' - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Kullanıcıların birden fazla depolama alanı arasında ayrım yapabilmesi için depolama alanınıza bir ad verin. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: uygulama "OpenProject Entegrasyonu" integration: Nextcloud Yönetimi / OpenProject - oauth_configuration: Bu değerleri %{application_link_text} adresinden kopyalayın. - provider_configuration: Lütfen kurulumu yapmadan önce Nextcloud örneğinizde yönetim ayrıcalıklarına sahip olduğunuzdan ve %{application_link_text} adresinin yüklü olduğundan emin olun. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Nextcloud örneğinin kimlik sağlayıcısıyla iletişim kurmak için kullandığı istemci kimliği. storage_audience_placeholder: örneğin nextcloud token_exchange_scope: Anahtar değişimi sırasında talep edilmesi gereken kapsamlar, her biri bir boşlukla ayrılmıştır. @@ -428,27 +427,24 @@ tr: not_logged_into_storage: Bir proje klasörü seçmek için lütfen önce giriş yapın oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portalı copy_redirect_uri: Yönlendirme URI'sini kopyala - documentation_link_text: OneDrive dosya depoları belgeleri - drive_id: Lütfen %{drive_id_link_text} adresindeki adımları izleyerek kimliği istediğiniz sürücüden kopyalayın. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Bir URI oluşturmak için lütfen OAuth değerlerini doldurun oauth_client_redirect_uri: Lütfen bu değeri Yönlendirme URI'leri altında yeni bir Web yönlendirme URI'sine kopyalayın. oauth_client_secret: İstemci kimlik bilgileri altında uygulama istemci sırrı yoksa, lütfen yeni bir tane oluşturun. - oauth_configuration: Bu değerleri %{application_link_text} adresindeki istenen uygulamadan kopyalayın. - provider_configuration: Lütfen kurulumu yapmadan önce %{application_link_text} adresinde yönetim ayrıcalıklarına sahip olduğunuzdan emin olun veya Microsoft yöneticinize başvurun. Portalda ayrıca bir Azure uygulaması kaydetmeniz veya kimlik doğrulaması için mevcut bir uygulamayı kullanmanız gerekir. - tenant_id: Lütfen %{application_link_text} adresindeki istenen uygulama ve Uygulama kayıtlarından Dizin (kiracı) Kimliğini kopyalayın. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Ad veya UUID setting_up_additional_storages: Ek dosya depoları ayarlamak için lütfen adresi ziyaret edin. setting_up_additional_storages_non_admin: Yöneticiler, Yönetim'de ek dosya depoları kurabilir. setting_up_storages: Dosya depolarını ayarlamak için lütfen adresi ziyaret edin. setting_up_storages_non_admin: Yöneticiler, Yönetim'de dosya depoları kurabilir. sharepoint: - application_link_text: SharePoint sitesi integration: SharePoint Yönetimi / OpenProject - oauth_configuration: Bu değerleri %{application_link_text} adresindeki istenen uygulamadan kopyalayın. - provider_configuration: Lütfen kurulumu yapmadan önce %{application_link_text} adresinde yönetim ayrıcalıklarına sahip olduğunuzdan emin olun veya Microsoft yöneticinize başvurun. Portalda ayrıca bir Azure uygulaması kaydetmeniz veya kimlik doğrulaması için mevcut bir uygulamayı kullanmanız gerekir. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Lütfen Nextcloud bulut sunucunuzda yönetici ayrıcalıklarına sahip olduğunuzdan ve kurulumu yapmadan önce aşağıdaki uygulamanın kurulu olduğundan emin olun:' type_link_text: "“Entegrasyon OpenProject”" label_active: Aktif @@ -487,7 +483,7 @@ tr: connected: Bağlandı connected_no_permissions: Kullanıcı rolü depolama yetkisine sahip değil not_connectable: Bağlanılamıyor. Depolama alanı SSO ile oturum açılmasını gerektiriyor; kullanıcı SSO üzerinden giriş yapmamış. - not_connected: Bağlanmadı. Kullanıcı depolamaya %{link} adresini takip ederek bağlanmalı. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Henüz bağlanmadı, SSO dosyalara baktıktan sonra bunları otomatik olarak bağlamalıdır. members_no_results: Gösterilecek üye yok. no_results: Henüz ayarlanmış depolama alanı yok. diff --git a/modules/storages/config/locales/crowdin/uk.yml b/modules/storages/config/locales/crowdin/uk.yml index fc7cb7c48e96..4f4151a6b111 100644 --- a/modules/storages/config/locales/crowdin/uk.yml +++ b/modules/storages/config/locales/crowdin/uk.yml @@ -424,14 +424,13 @@ uk: empty_project_folder_validation: Щоб продовжити, потрібно вибрати папку. existing_manual_folder: Ви можете призначити наявну папку як кореневу папку для цього проєкту. Однак дозволи автоматично не налаштовуються, і адміністратор має вручну надати користувачам відповідні дозволи на доступ. Вибрану папку зможуть використовувати кілька проєктів. host: Додайте адресу хосту для свого сховища, включно з https://. Її довжина не може перевищувати 255 символів. - managed_project_folders_application_password_caption: Увімкніть папки з автоматичним керуванням, скопіювавши це значення з %{provider_type_link}. + managed_project_folders_application_password_caption_html: 'Увімкніть папки з автоматичним керуванням, скопіювавши це значення звідси: [%{integration}](provider_settings).' name: Назвіть своє сховище, щоб користувачі могли відрізняти його від інших сховищ. new_storage_html: Щоб дізнатися більше, ознайомтеся з документацією щодо [налаштування інтеграції файлового сховища %{provider_name}](docs_url). nextcloud: - application_link_text: Integration OpenProject integration: Адміністрування Nextcloud / OpenProject - oauth_configuration: Скопіюйте ці значення з додатка %{application_link_text}. - provider_configuration: Перш ніж виконувати налаштування, переконайтеся, що маєте права адміністратора у своєму екземплярі Nextcloud і що встановлено %{application_link_text}. + oauth_configuration_html: Скопіюйте ці значення з розділу [Адміністрування Nextcloud / OpenProject](application_link). + provider_configuration_html: Перш ніж виконувати налаштування, переконайтеся, що ви маєте права адміністратора у своєму екземплярі Nextcloud і ви встановили [програму Integration OpenProject](application_link). storage_audience: ID клієнта, який використовує екземпляр Nextcloud для обміну даними з постачальником ідентифікаційних даних. storage_audience_placeholder: напр., Nextcloud token_exchange_scope: Обсяги доступу, які слід запитувати під час обміну токена; кожен окремо, через пробіл. @@ -440,27 +439,24 @@ uk: not_logged_into_storage: Шоб вибрати папку проєкту, спочатку ввійдіть oauth_application_details_html: Секретний ключ клієнта стане недоступним, коли ви закриєте це вікно. Скопіюйте ці значення в [налаштування інтеграції Nextcloud OpenProject](oauth_application_details_link). one_drive: - application_link_text: Портал Azure copy_redirect_uri: Копіювати URI переспрямування - documentation_link_text: Документація щодо файлових сховищ OneDrive - drive_id: 'Скопіюйте ідентифікатор із потрібного диска, дотримуючись цих вказівок: %{drive_id_link_text}.' + drive_id_html: Скопіюйте ID з потрібного диска, виконавши дії, описані в [документації щодо сховищ файлів OneDrive](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Введіть значення OAuth, щоб згенерувати URI oauth_client_redirect_uri: Скопіюйте це значення в новий ідентифікатор URI вебпереспрямуваня в розділі «URI переспрямування». oauth_client_secret: Якщо в облікових даних клієнта немає секрету клієнту додатка, створіть його. - oauth_configuration: Скопіюйте ці значення з потрібного додатка в %{application_link_text}. - provider_configuration: Перш ніж виконувати налаштування, переконайтеся, що у вас є права адміністратора в додатку %{application_link_text}, або зверніться до свого адміністратора Microsoft. На порталі вам також знадобиться зареєструвати додаток Azure або скористатися наявним під час автентифікації. - tenant_id: Скопіюйте ідентифікатор каталога (клієнта) з потрібного додатка й розділу «Реєстрації додатка» в %{application_link_text}. + oauth_configuration_html: Скопіюйте ці значення з потрібного додатка на [портал Azure](application_link). + provider_configuration_html: Перш ніж виконувати налаштування, переконайтеся, що у вас є права адміністратора на [порталі Azure](application_link), або зверніться до свого адміністратора Microsoft. На порталі вам також знадобиться зареєструвати додаток Azure або скористатися наявним під час автентифікації. + tenant_id_html: Скопіюйте ID каталогу (клієнта) з потрібного додатка й розділу «Реєстрації додатка» на [портал Azure](application_link). tenant_id_placeholder: Назва або UUID setting_up_additional_storages: Щоб створити додаткові файлові сховища, перейдіть у setting_up_additional_storages_non_admin: Адміністратори можуть налаштовувати додаткові файлові сховища в розділі «Адміністрування» / «Файлові сховища». setting_up_storages: Щоб створити файлові сховища, перейдіть у setting_up_storages_non_admin: Адміністратори можуть налаштовувати файлові сховища в розділі «Адміністрування» / «Файлові сховища». sharepoint: - application_link_text: Сайт SharePoint integration: Адміністрування SharePoint / OpenProject - oauth_configuration: 'Скопіюйте ці значення з потрібного додатка в цей: %{application_link_text}.' - provider_configuration: Перш ніж виконувати налаштування, переконайтеся, що у вас є права адміністратора в додатку %{application_link_text}, або зверніться до свого адміністратора Microsoft. На порталі вам також знадобиться зареєструвати додаток Azure або скористатися наявним під час автентифікації. + oauth_configuration_html: Скопіюйте ці значення з потрібного додатка на [сайт SharePoint](application_link). + provider_configuration_html: Перш ніж виконувати налаштування, переконайтеся, що у вас є права адміністратора на [сайті SharePoint](application_link), або зверніться до свого адміністратора Microsoft. На порталі вам також знадобиться зареєструвати додаток Azure або скористатися наявним під час автентифікації. type: 'Перш ніж виконувати налаштування, переконайтеся, що маєте права адміністратора у своєму екземплярі Nextcloud і що встановлено цей додаток:' type_link_text: "«Інтеграція OpenProject»" label_active: Активний @@ -499,7 +495,7 @@ uk: connected: Підключено connected_no_permissions: Ролі користувача не надано дозволи на доступ до сховища not_connectable: Неможливо підключитися. Сховище вимагає входу через постачальника SSO, але користувач не входить із використанням SSO. - not_connected: 'Не підключено. Користувач має ввійти в сховище за цим посиланням: %{link}.' + not_connected_html: Не підключено. Користувач має ввійти в сховище за цим [посиланням](storage_login). not_connected_sso: Не підключено. SSO має виконувати підключення автоматично під час отримання доступу до файлів. members_no_results: Немає учасників. no_results: Сховища поки не створено. diff --git a/modules/storages/config/locales/crowdin/uz.yml b/modules/storages/config/locales/crowdin/uz.yml index e43b0903a266..692722a80a9b 100644 --- a/modules/storages/config/locales/crowdin/uz.yml +++ b/modules/storages/config/locales/crowdin/uz.yml @@ -412,14 +412,13 @@ uz: empty_project_folder_validation: Selecting a folder is mandatory to proceed. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. - managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Give your storage a name so that users can differentiate between multiple storages. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: application “Integration OpenProject” integration: Nextcloud Administration / OpenProject - oauth_configuration: Copy these values from %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in your Nextcloud instance and the %{application_link_text} is installed before doing the setup. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: The client ID that the Nextcloud instance uses to communicate with the identity provider. storage_audience_placeholder: e.g. nextcloud token_exchange_scope: The scopes that should be requested during token exchange, each one separated by a space. @@ -428,27 +427,24 @@ uz: not_logged_into_storage: To select a project folder, please first login oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: Copy redirect URI - documentation_link_text: OneDrive file storages documentation - drive_id: Please copy the ID from the desired drive by following the steps in the %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Please fill the OAuth values to generate a URI oauth_client_redirect_uri: Please copy this value to a new Web redirect URI under Redirect URIs. oauth_client_secret: In case there is no application client secret under Client credentials, please create a new one. - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. - tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Name or UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File storages. sharepoint: - application_link_text: SharePoint site integration: SharePoint Administration / OpenProject - oauth_configuration: Copy these values from the desired application in the %{application_link_text}. - provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" label_active: Active @@ -487,7 +483,7 @@ uz: connected: Connected connected_no_permissions: User role has no storages permissions not_connectable: Not connectable. The storage requires login through an SSO provider, but the user is not logging in through SSO. - not_connected: Not connected. The user should login to the storage via the following %{link}. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Not yet connected, SSO should automatically connect them, once looking at files. members_no_results: No members to display. no_results: No storages set up yet. diff --git a/modules/storages/config/locales/crowdin/vi.yml b/modules/storages/config/locales/crowdin/vi.yml index 99084b62acdb..5f7ec263a373 100644 --- a/modules/storages/config/locales/crowdin/vi.yml +++ b/modules/storages/config/locales/crowdin/vi.yml @@ -406,14 +406,13 @@ vi: empty_project_folder_validation: Việc chọn một thư mục là bắt buộc để tiếp tục. existing_manual_folder: Bạn có thể chỉ định một thư mục hiện có làm thư mục gốc cho dự án này. Tuy nhiên, các quyền không được quản lý tự động, quản trị viên cần đảm bảo người dùng liên quan có quyền truy cập theo cách thủ công. Thư mục đã chọn có thể được sử dụng bởi nhiều dự án. host: Vui lòng thêm địa chỉ máy chủ lưu trữ của bạn bao gồm https://. Nó không được dài hơn 255 ký tự. - managed_project_folders_application_password_caption: 'Bật các thư mục được quản lý tự động bằng cách sao chép giá trị này từ: %{provider_type_link}.' + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: Đặt tên cho bộ lưu trữ của bạn để người dùng có thể phân biệt giữa nhiều bộ lưu trữ. new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: ứng dụng “Tích hợp OpenProject” integration: Quản trị Nextcloud / OpenProject - oauth_configuration: Sao chép các giá trị này từ %{application_link_text}. - provider_configuration: Vui lòng đảm bảo rằng bạn có đặc quyền quản trị trong phiên bản Nextcloud của mình và %{application_link_text} được cài đặt trước khi thực hiện thiết lập. + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: ID khách hàng mà phiên bản Nextcloud sử dụng để liên lạc với nhà cung cấp danh tính. storage_audience_placeholder: ví dụ. đám mây tiếp theo token_exchange_scope: Các phạm vi cần được yêu cầu trong quá trình trao đổi mã thông báo, mỗi phạm vi được phân tách bằng dấu cách. @@ -422,27 +421,24 @@ vi: not_logged_into_storage: Để chọn thư mục dự án, vui lòng đăng nhập trước oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration thiết lập](oauth_application_details_link). one_drive: - application_link_text: Cổng thông tin Azure copy_redirect_uri: Sao chép URI chuyển hướng - documentation_link_text: Tài liệu lưu trữ tệp OneDrive - drive_id: Vui lòng sao chép ID từ ổ đĩa mong muốn bằng cách làm theo các bước trong %{drive_id_link_text}. + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: Vui lòng điền các giá trị OAuth để tạo URI oauth_client_redirect_uri: Vui lòng sao chép giá trị này vào URI chuyển hướng Web mới trong URI chuyển hướng. oauth_client_secret: Trong trường hợp không có bí mật ứng dụng khách nào trong Thông tin xác thực ứng dụng khách, vui lòng tạo một mật khẩu mới. - oauth_configuration: Sao chép các giá trị này từ ứng dụng mong muốn trong %{application_link_text}. - provider_configuration: Vui lòng đảm bảo rằng bạn có đặc quyền quản trị trong %{application_link_text} hoặc liên hệ với quản trị viên Microsoft của bạn trước khi thực hiện thiết lập. Trong cổng thông tin, bạn cũng cần đăng ký ứng dụng Azure hoặc sử dụng ứng dụng hiện có để xác thực. - tenant_id: Vui lòng sao chép ID Thư mục (người thuê) từ ứng dụng mong muốn và đăng ký Ứng dụng trong %{application_link_text}. + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: Tên hoặc UUID setting_up_additional_storages: Để thiết lập kho lưu trữ tệp bổ sung, vui lòng truy cập setting_up_additional_storages_non_admin: Quản trị viên có thể thiết lập kho lưu trữ tệp bổ sung trong Quản trị / Kho lưu trữ tệp. setting_up_storages: Để thiết lập kho lưu trữ tập tin, vui lòng truy cập setting_up_storages_non_admin: Quản trị viên có thể thiết lập kho lưu trữ tệp trong Quản trị / Kho lưu trữ tệp. sharepoint: - application_link_text: Trang SharePoint integration: Quản trị SharePoint/OpenProject - oauth_configuration: Sao chép các giá trị này từ ứng dụng mong muốn trong %{application_link_text}. - provider_configuration: Vui lòng đảm bảo rằng bạn có đặc quyền quản trị trong %{application_link_text} hoặc liên hệ với quản trị viên Microsoft của bạn trước khi thực hiện thiết lập. Trong cổng thông tin, bạn cũng cần đăng ký ứng dụng Azure hoặc sử dụng ứng dụng hiện có để xác thực. + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 'Vui lòng đảm bảo rằng bạn có đặc quyền quản trị trong phiên bản Nextcloud của mình và cài đặt ứng dụng sau trước khi thực hiện thiết lập:' type_link_text: "“OpenProject tích hợp”" label_active: Đang hoạt động @@ -481,7 +477,7 @@ vi: connected: đã kết nối connected_no_permissions: Vai trò người dùng không có quyền lưu trữ not_connectable: Không thể kết nối được. Bộ lưu trữ yêu cầu đăng nhập thông qua nhà cung cấp SSO nhưng người dùng không đăng nhập qua SSO. - not_connected: Không được kết nối. Người dùng nên đăng nhập vào bộ lưu trữ thông qua %{link} sau. + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: Chưa được kết nối, SSO sẽ tự động kết nối chúng sau khi xem tệp. members_no_results: Không có thành viên nào để hiển thị no_results: Chưa có kho lưu trữ nào được thiết lập. diff --git a/modules/storages/config/locales/crowdin/zh-CN.yml b/modules/storages/config/locales/crowdin/zh-CN.yml index 3cca52ead599..945d1bf3a3f7 100644 --- a/modules/storages/config/locales/crowdin/zh-CN.yml +++ b/modules/storages/config/locales/crowdin/zh-CN.yml @@ -406,14 +406,13 @@ zh-CN: empty_project_folder_validation: 选择一个文件夹是必须的。 existing_manual_folder: 您可以指定现有的文件夹作为此项目的根文件夹。 但权限未自动托管,管理员需要手动确保相关用户能够访问。 选定的文件夹可以被多个项目使用。 host: 请添加存储的主机地址,包括 https://。不应超过 255 个字符。 - managed_project_folders_application_password_caption: 通过从 %{provider_type_link} 复制该值来启用自动管理的文件夹。 + managed_project_folders_application_password_caption_html: 通过从 [%{integration}](provider_settings) 复制此值来启用自动管理的文件夹。 name: 为您的存储命名,以便用户可以区分多个存储。 new_storage_html: 有关详情,请阅读我们关于[设置 %{provider_name} 文件存储空间](docs_url)的文档。 nextcloud: - application_link_text: 应用“集成OpenProject” integration: Nextcloud 管理/OpenProject - oauth_configuration: 从 %{application_link_text} 复制这些值。 - provider_configuration: 在进行设置之前,请确保您在 Nextcloud 实例中具有管理员权限,并且已安装了 %{application_link_text}。 + oauth_configuration_html: 从 [Nextcloud Administration / OpenProject](application_link) 复制这些值。 + provider_configuration_html: 请确保您在 Nextcloud 实例中中具有管理权限,并在进行设置之前安装了[应用程序“Integration OpenProject”](application_link)。 storage_audience: Nextcloud 实例用于与身份提供者通信的客户端 ID。 storage_audience_placeholder: 例如 Nextcloud token_exchange_scope: 应在令牌交换中申请的范围,每个范围用空格隔开。 @@ -422,27 +421,24 @@ zh-CN: not_logged_into_storage: 要选择一个项目文件夹,请先登录 oauth_application_details_html: 关闭此窗口后,将无法再次访问客户端密钥值。请将这些值复制到 [Nextcloud OpenProject 集成设置](oauth_application_details_link)中。 one_drive: - application_link_text: Azure 门户 copy_redirect_uri: 复制重定向 URI - documentation_link_text: OneDrive 文件存储文档 - drive_id: + drive_id_html: 请按照 [OneDrive 文件存储文档](drive_id_guide )中的步骤从所需驱动器复制 ID。 integration: OneDrive missing_client_id_for_redirect_uri: 请填写OAuth 值以生成 URI oauth_client_redirect_uri: 请将该值复制到“重定向 URI ”下的新 Web 重定向 URI。 oauth_client_secret: 如果在“客户端凭据”下没有应用程序客户端密钥,请新建一个。 - oauth_configuration: 从%{application_link_text}中的所需应用程序复制这些值。 - provider_configuration: 请确保您在%{application_link_text}具有管理权限,或在进行设置之前与您的 Microsoft 管理员联系。在门户中,您还需要注册一个 Azure 应用程序或使用现有的应用程序进行身份验证。 - tenant_id: 请从所需应用程序和应用注册中复制目录(租户)ID,链接文本为 %{application_link_text}。 + oauth_configuration_html: 从 [Azure 门户](application_link)中的所需应用程序复制这些值。 + provider_configuration_html: 请确保您在 [Azure 门户](application_link)中具有管理权限,或在进行设置之前与您的 Microsoft 管理员联系。在门户中,您还需要注册一个 Azure 应用程序或使用现有的应用程序进行身份验证。 + tenant_id_html: 请在 [Azure 门户](application_link)中从所需应用程序和应用注册复制目录(租户)ID。 tenant_id_placeholder: 名称或 UUID setting_up_additional_storages: 如需设置额外的文件存储,请访问 setting_up_additional_storages_non_admin: 管理员可以在“管理/文件存储”中设置额外的文件存储。 setting_up_storages: 如需设置文件存储,请访问 setting_up_storages_non_admin: 管理员可以在“管理/文件存储”中设置文件存储。 sharepoint: - application_link_text: SharePoint 站点 integration: SharePoint 管理 / OpenProject - oauth_configuration: 从 %{application_link_text} 中的所需应用程序复制这些值。 - provider_configuration: 请确保您在%{application_link_text}具有管理权限,或在进行设置之前与您的 Microsoft 管理员联系。在门户中,您还需要注册一个 Azure 应用程序或使用现有的应用程序进行身份验证。 + oauth_configuration_html: 从 [SharePoint 网站](application_link)中的所需应用程序复制这些值。 + provider_configuration_html: 请确保您在 [SharePoint 网站](application_link)中具有管理权限,或在进行设置之前与您的 Microsoft 管理员联系。在门户中,您还需要注册一个 Azure 应用程序或使用现有的应用程序进行身份验证。 type: 请确保您在 Nextcloud 实例中具有管理权限,并在进行设置之前安装了以下应用程序: type_link_text: "“集成 OpenProject”" label_active: 有效 @@ -481,7 +477,7 @@ zh-CN: connected: 已连接 connected_no_permissions: 用户角色没有存储区权限 not_connectable: 无法连接。存储需要通过SSO提供商登录,但用户没有通过SSO登录。 - not_connected: 未连接。用户应通过以下 %{link} 登录到存储。 + not_connected_html: 未连接。用户应通过以下[链接](storage_login)登录存储空间。 not_connected_sso: 尚未连接,在查看文件后 SSO 应自动连接。 members_no_results: 没有要显示的成员。 no_results: 尚未设置存储设备。 diff --git a/modules/storages/config/locales/crowdin/zh-TW.yml b/modules/storages/config/locales/crowdin/zh-TW.yml index 1a603ccca527..b4be8b3571be 100644 --- a/modules/storages/config/locales/crowdin/zh-TW.yml +++ b/modules/storages/config/locales/crowdin/zh-TW.yml @@ -406,14 +406,13 @@ zh-TW: empty_project_folder_validation: 必須選擇資料夾才能繼續。 existing_manual_folder: 您可以指定現有資料夾作為該專案的根資料夾。 然而,權限不會自動管理,管理員需要手動確保相關使用者俱有存取權限。 所選資料夾可由多個項目使用。 host: 請添加存儲區的主機地址,包括 https://。不應超過 255 個字符。 - managed_project_folders_application_password_caption: 透過從 %{provider_type_link} 複製此值來啟用自動託管資料夾。 + managed_project_folders_application_password_caption_html: 'Enable automatic managed folders by copying this value from: [%{integration}](provider_settings).' name: 為您的存儲區命名,以便用戶可以區分多個存儲區。 new_storage_html: Read our documentation on [setting up a %{provider_name} file storage](docs_url) integration for more information. nextcloud: - application_link_text: 應用程式 “Integration OpenProject” integration: Nextcloud 管理 / OpenProject - oauth_configuration: 從 %{application_link_text} 複製這些值。 - provider_configuration: 在進行設定之前,請確保您在 Nextcloud 實例中擁有管理權限並且已安裝 %{application_link_text}。 + oauth_configuration_html: Copy these values from [Nextcloud Administration / OpenProject](application_link). + provider_configuration_html: Please make sure you have administration privileges in your Nextcloud instance and the [application “Integration OpenProject”](application_link) is installed before doing the setup. storage_audience: Nextcloud 實例用來與身份提供者通訊的用戶端 ID。 storage_audience_placeholder: 例如 nextcloud token_exchange_scope: 進行令牌(Token)交換時應向身份提供者請求的授權範圍(scopes),每個範圍以空格分隔。 @@ -422,27 +421,24 @@ zh-TW: not_logged_into_storage: 若要選擇項目資料夾,請先登入 oauth_application_details_html: The client secret value will not be accessible again after you close this window. Please copy these values into the [Nextcloud OpenProject Integration settings](oauth_application_details_link). one_drive: - application_link_text: Azure portal copy_redirect_uri: 複製重新導向 URI - documentation_link_text: OneDrive 檔案儲存空間文件 - drive_id: 請依照 %{drive_id_link_text}. 步驟從所需磁碟機複製 ID + drive_id_html: Please copy the ID from the desired drive by following the steps in the [OneDrive file storages documentation](drive_id_guide). integration: OneDrive missing_client_id_for_redirect_uri: 請填寫 OAuth 值以產生 URI oauth_client_redirect_uri: 請複製此值至 Redirect URIs 下的新網頁重定向 URI。 oauth_client_secret: 如果客戶憑證下沒有應用程式客戶端金鑰,請建立一個新金鑰。 - oauth_configuration: 從%{application_link_text} 中的所需應用程序複製這些值。 - provider_configuration: 請確保您在%{application_link_text} 具有管理權限,或在進行設置之前與您的 Microsoft 管理員聯繫。在門戶中,您還需要註冊一個 Azure 應用程序或使用現有的應用程序進行身份驗證。 - tenant_id: 請從所需應用程序和應用註冊中複製目錄(租戶) ID,鏈接文本為 %{application_link_text}。 + oauth_configuration_html: Copy these values from the desired application in the [Azure portal](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [Azure portal](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. + tenant_id_html: Please copy the Directory (tenant) ID from the desired application and App registrations in the [Azure portal](application_link). tenant_id_placeholder: 姓名或UUID setting_up_additional_storages: 額外設定檔案儲存裝置,請參閱 setting_up_additional_storages_non_admin: 管理員可在 「管理」/「檔案儲存」 中設定額外的檔案儲存空間。 setting_up_storages: 設定檔案儲存裝置,請參閱 setting_up_storages_non_admin: 管理員可在 「管理」/「檔案儲存」 中設定檔案儲存空間。 sharepoint: - application_link_text: SharePoint 網站 integration: SharePoint 管理 / OpenProject - oauth_configuration: 請從 %{application_link_text} 中的目標應用程式複製這些值。 - provider_configuration: 在進行設定前,請確保您在 %{application_link_text} 中擁有管理權限,或聯絡您的 Microsoft 管理員。在入口網站中,您還需要註冊一個 Azure 應用程式,或使用現有的應用程式進行驗證。 + oauth_configuration_html: Copy these values from the desired application in the [SharePoint site](application_link). + provider_configuration_html: Please make sure you have administration privileges in the [SharePoint site](application_link) or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. type: 請確保您在 Nextcloud 實例中具有管理權限,並在進行設置之前安裝了以下應用程序: type_link_text: "“整合 OpenProject”" label_active: 啟用 @@ -481,7 +477,7 @@ zh-TW: connected: 已連線 connected_no_permissions: 使用者角色沒有儲存權限 not_connectable: 無法連接。儲存需要透過 SSO 提供者登入,但使用者並未透過 SSO 登入。 - not_connected: 未連線。使用者應透過下列方式登入儲存設備 %{link}。 + not_connected_html: Not connected. The user should login to the storage via the following [link](storage_login). not_connected_sso: 尚未連線,SSO 一旦查看檔案應該會自動連線,。 members_no_results: 沒有可顯示的成員 no_results: 尚未設定檔案儲存區 diff --git a/modules/two_factor_authentication/config/locales/crowdin/af.yml b/modules/two_factor_authentication/config/locales/crowdin/af.yml index 4988131f1c59..5959da5c5970 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/af.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/af.yml @@ -135,7 +135,7 @@ af: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/ar.yml b/modules/two_factor_authentication/config/locales/crowdin/ar.yml index bb5090d7ecf4..1cb43419ebe8 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ar.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ar.yml @@ -155,7 +155,7 @@ ar: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/az.yml b/modules/two_factor_authentication/config/locales/crowdin/az.yml index ef89c80b1a13..f7976b014b1d 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/az.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/az.yml @@ -135,7 +135,7 @@ az: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/be.yml b/modules/two_factor_authentication/config/locales/crowdin/be.yml index 74dd101be43c..c4c2a21d5f6a 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/be.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/be.yml @@ -145,7 +145,7 @@ be: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/bg.yml b/modules/two_factor_authentication/config/locales/crowdin/bg.yml index 6b8eb550a0bb..734221943217 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/bg.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/bg.yml @@ -135,7 +135,7 @@ bg: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/ca.yml b/modules/two_factor_authentication/config/locales/crowdin/ca.yml index a6a61f33561a..1feb3c43fa61 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ca.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ca.yml @@ -135,7 +135,7 @@ ca: error_invalid_backup_code: Codi de la còpia de seguretat del 2FA invàlid error_is_enforced_not_active: 'Error de configuració: S''ha forçat l''autentificació en dos passos, però no existeix cap estratègia activa.' error_no_device: No s'ha trobat cap dispositiu 2FA registrat per a aquest usuari tot i ser necessari per a aquesta instància. - error_no_matching_strategy: No hi ha cap estratègia 2FA coincident disponible per aquest usuari. Si us plau, contacta el teu administrador. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Autentificació de dos passos no habilitada diff --git a/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml b/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml index b448a6788417..546fbf3b295f 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ckb-IR.yml @@ -135,7 +135,7 @@ ckb-IR: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/cs.yml b/modules/two_factor_authentication/config/locales/crowdin/cs.yml index 377c65b9db16..7fd6ed3866eb 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/cs.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/cs.yml @@ -145,7 +145,7 @@ cs: error_invalid_backup_code: Neplatný 2FA záložní kód error_is_enforced_not_active: 'Chyba konfigurace: Dvoufázové ověření bylo vynuceno, ale žádná aktivní strategie neexistuje.' error_no_device: Žádné registrované 2FA zařízení pro tohoto uživatele nebylo nalezeno, přestože bylo nezbytné pro tuto instanci. - error_no_matching_strategy: Žádná odpovídající 2FA strategie pro tohoto uživatele. Obraťte se prosím na svého administrátora. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Dvoufázové ověřování není aktivní diff --git a/modules/two_factor_authentication/config/locales/crowdin/de.yml b/modules/two_factor_authentication/config/locales/crowdin/de.yml index dcec1012eb7d..f806e70bd014 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/de.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/de.yml @@ -135,7 +135,7 @@ de: error_invalid_backup_code: Ungültiger 2FA Backup-Code error_is_enforced_not_active: 'Konfigurationsfehler: Zwei-Faktor-Authentifizierung wird erzwungen, aber keine aktive Strategie wurde konfiguriert.' error_no_device: Kein registriertes 2FA-Gerät für diesen Nutzer gefunden, obwohl Zwei-Faktor-Authentifizierung für diese Instanz erforderlich ist. - error_no_matching_strategy: Keine passende 2FA-Zustellungsmechanismus für diesen Nutzer. Bitte kontaktieren Sie Ihren Administrator. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Der Administrator hat für diese Instanz die Zwei-Faktor-Authentifizierung aktiviert. Um sich anzumelden, fügen Sie bitte eine Methode zur Zwei-Faktor-Authentifizierung hinzu. label_2fa_disabled: Zwei-Faktor-Authentifizierung ist nicht aktiviert diff --git a/modules/two_factor_authentication/config/locales/crowdin/el.yml b/modules/two_factor_authentication/config/locales/crowdin/el.yml index 591c2c3763ed..80743269883b 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/el.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/el.yml @@ -135,7 +135,7 @@ el: error_invalid_backup_code: Μη έγκυρος κωδικός αντιγράφων ασφαλείας 2FA error_is_enforced_not_active: 'Σφάλμα διαμόρφωσης: Η ταυτοποίηση δύο παραγόντων έχει επιβληθεί, αλλά δεν υπάρχουν ενεργές στρατηγικές.' error_no_device: Δεν βρέθηκαν καταχωρημένες 2FA συσκευές για αυτό τον χρήστη, παρόλο που απαιτείται για αυτό το στιγμιότυπο. - error_no_matching_strategy: Δεν βρέθηκε διαθέσιμη στρατηγική 2FA για αυτό τον χρήστη που να ταιριάζει. Παρακαλούμε επικοινωνήστε με τον διαχειριστή σας. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Η ταυτοποίηση δύο παραγόντων δεν είναι ενεργή diff --git a/modules/two_factor_authentication/config/locales/crowdin/eo.yml b/modules/two_factor_authentication/config/locales/crowdin/eo.yml index 814cc680efd5..063cb3a654dd 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/eo.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/eo.yml @@ -135,7 +135,7 @@ eo: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/es.yml b/modules/two_factor_authentication/config/locales/crowdin/es.yml index 9d3f06cc1c2f..af38d4a7ded1 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/es.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/es.yml @@ -133,7 +133,7 @@ es: error_invalid_backup_code: Código de copia de seguridad 2FA no válido error_is_enforced_not_active: 'Error de configuración: se ha aplicado la autenticación de dos factores, pero no existen estrategias activas.' error_no_device: No se ha encontrado ningún dispositivo 2FA registrado para este usuario, a pesar de ser necesario para esta instancia. - error_no_matching_strategy: No hay una estrategia 2FA coincidente disponible para este usuario. Por favor, póngase en contacto con su administrador. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: El administrador ha habilitado la autenticación de dos factores para esta instancia. Para iniciar sesión, añade un método de autenticación de dos factores. label_2fa_disabled: Autenticación de dos factores no está activa diff --git a/modules/two_factor_authentication/config/locales/crowdin/et.yml b/modules/two_factor_authentication/config/locales/crowdin/et.yml index b721da7b94fe..d93fc91aaa58 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/et.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/et.yml @@ -135,7 +135,7 @@ et: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/eu.yml b/modules/two_factor_authentication/config/locales/crowdin/eu.yml index 11384fe03520..bb7ac1379868 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/eu.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/eu.yml @@ -135,7 +135,7 @@ eu: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/fa.yml b/modules/two_factor_authentication/config/locales/crowdin/fa.yml index 62de32769574..e1fb4e87e252 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fa.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fa.yml @@ -135,7 +135,7 @@ fa: error_invalid_backup_code: کد پشتیبان 2FA نامعتبر است error_is_enforced_not_active: 'خطای پیکربندی: احراز هویت دومرحله‌ای اجباری شده، اما هیچ راهبرد فعالی وجود ندارد.' error_no_device: با وجود اجباری‌بودن، هیچ دستگاه 2FA ثبت‌شده‌ای برای این کاربر پیدا نشد. - error_no_matching_strategy: هیچ راهبرد 2FA منطبقی برای این کاربر در دسترس نیست. لطفاً با مدیر تماس بگیرید. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: مدیر احراز هویت دومرحله‌ای را برای این نمونه اجباری کرده است. برای ورود، یک روش احراز هویت دومرحله‌ای اضافه کنید. label_2fa_disabled: احراز هویت دومرحله‌ای فعال نیست diff --git a/modules/two_factor_authentication/config/locales/crowdin/fi.yml b/modules/two_factor_authentication/config/locales/crowdin/fi.yml index 2ffe0ab1f230..6511a1077e16 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fi.yml @@ -135,7 +135,7 @@ fi: error_invalid_backup_code: Virheellinen palautuskoodi error_is_enforced_not_active: 'Konfigurointivirhe: Kaksivaiheinen tunnistautuminen on pakotettu, mutta aktiivisia strategioita ei ole.' error_no_device: Tälle käyttäjälle ei ole rekisteröity tunnistuslaitetta, vaikka se vaaditaan. - error_no_matching_strategy: Tälle käyttäjälle ei ole käytettävissä vastaavaa 2FA-strategiaa. Ota yhteyttä hallintoasihteisiisi. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Kaksivaiheinen tunnistautuminen ei ole käytössä diff --git a/modules/two_factor_authentication/config/locales/crowdin/fil.yml b/modules/two_factor_authentication/config/locales/crowdin/fil.yml index b1b90b54fba8..5a30f2d170c4 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fil.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fil.yml @@ -135,7 +135,7 @@ fil: error_invalid_backup_code: Imbalido ang 2FA backup code error_is_enforced_not_active: 'Ang Kumpigurasyon ay mali: Ang Dalawang-Dahilan ay pinatupad, ngunit walang aktibo na mga diskarte ang umiiral.' error_no_device: Walang nakarehistro na 2FA sa natagpuan na aparato para sa gumagamit na ito, kahit na kinakailangan para sa pagkakataon na ito. - error_no_matching_strategy: Hindi nagtugma ang 2FA na diskarte sa magamait para sa gumagamit na ito. Pakiusap na kontakin ang iyong administrador. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Ang Dalawang-dahilan ng hindi aktibo na pagpapatunay diff --git a/modules/two_factor_authentication/config/locales/crowdin/fr.yml b/modules/two_factor_authentication/config/locales/crowdin/fr.yml index 5732c8e38dd6..470880c39b94 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fr.yml @@ -135,7 +135,7 @@ fr: error_invalid_backup_code: Code de sauvegarde 2FA non valide error_is_enforced_not_active: 'Erreur de configuration : l''authentification à deux facteurs est forcée, mais aucune stratégie active n''existe.' error_no_device: Aucun appareil 2FA enregistré trouvé pour cet utilisateur, bien qu'étant requis pour cette instance. - error_no_matching_strategy: Aucune stratégie 2FA correspondante disponible pour cet utilisateur. Veuillez contacter votre administrateur. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: L'administrateur a rendu obligatoire l'authentification à deux facteurs pour cette instance. Pour vous connecter, veuillez configurer une méthode d'authentification à deux facteurs. label_2fa_disabled: Authentification à deux facteurs non active diff --git a/modules/two_factor_authentication/config/locales/crowdin/he.yml b/modules/two_factor_authentication/config/locales/crowdin/he.yml index 99bf5902a16c..858dd981013e 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/he.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/he.yml @@ -140,7 +140,7 @@ he: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/hi.yml b/modules/two_factor_authentication/config/locales/crowdin/hi.yml index e1472a36ab93..3463dc1886c6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hi.yml @@ -135,7 +135,7 @@ hi: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'कॉंफ़िगरेशन त्रुटि: दो-चरणीय प्रमाणीकरण लागू किया गया है, लेकिन कोई सक्रिय रणनीतियाँ मौजूद नहीं हैं ।' error_no_device: इस उदाहरण के लिए आवश्यक होने के बावजूद, इस उपयोगकर्ता के लिए कोई पंजीकृत 2FA डिवाइस नहीं मिला । - error_no_matching_strategy: इस उपयोगकर्ता के लिए कोई मेल खाती 2FA रणनीति उपलब्ध नहीं है । कृपया अपने administratior से संपर्क करें । + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/hr.yml b/modules/two_factor_authentication/config/locales/crowdin/hr.yml index cb465dfcd00e..35b713adfac9 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hr.yml @@ -140,7 +140,7 @@ hr: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/hu.yml b/modules/two_factor_authentication/config/locales/crowdin/hu.yml index fa285fb34d11..583b0a9e0000 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hu.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hu.yml @@ -145,9 +145,7 @@ hu: error_no_device: 'Nem található regisztrált 2FA eszköz ehhez a felhasználóhoz, annak ellenére, hogy szükség van erre a kérelemre. ' - error_no_matching_strategy: 'Ehhez a felhasználóhoz nem áll rendelkezésre megfelelő 2FA stratégia. Kérjük, lépjen kapcsolatba adminisztrátorával. - - ' + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Kétlépcsős azonosítás kikapcsolva diff --git a/modules/two_factor_authentication/config/locales/crowdin/hy.yml b/modules/two_factor_authentication/config/locales/crowdin/hy.yml index eca9f8548b76..ec2ea1e3dcb6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hy.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hy.yml @@ -135,7 +135,7 @@ hy: error_invalid_backup_code: Անվավեր 2FA պահուստային կոդ error_is_enforced_not_active: Կազմաձևման սխալ՝ երկգործոն նույնականացումը պարտադրված է, սակայն ակտիվ ռազմավարություններ չկան։ error_no_device: Այս օգտատիրոջ համար գրանցված 2FA սարք չի գտնվել, չնայած որ այն պարտադիր է այս համակարգում։ - error_no_matching_strategy: Այս օգտատիրոջ համար համապատասխան 2FA ռազմավարություն հասանելի չէ։ Խնդրում ենք դիմել Ձեր ադմինիստրատորին։ + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Ադմինիստրատորը պարտադրել է երկգործոն նույնականացում այս համակարգի համար։ Մուտք գործելու համար խնդրում ենք ավելացնել երկգործոն նույնականացման եղանակ։ label_2fa_disabled: Երկգործոն նույնականացումն ակտիվ չէ diff --git a/modules/two_factor_authentication/config/locales/crowdin/id.yml b/modules/two_factor_authentication/config/locales/crowdin/id.yml index c77d85b293c7..dece52fc5cc5 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/id.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/id.yml @@ -130,7 +130,7 @@ id: error_invalid_backup_code: Kode cadangan 2FA tidak valid error_is_enforced_not_active: 'Kesalahan konfigurasi: dua faktor otentikasi yang telah diberlakukan, tapi ada tidak ada strategi yang aktif.' error_no_device: Tidak ada perangkat 2FA terdaftar yang ditemukan untuk pengguna ini, meskipun yang diperlukan untuk contoh ini. - error_no_matching_strategy: Tidak ada 2FA strategi yang cocok tersedia untuk pengguna ini. Silahkan hubungi administratior Anda. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Dua faktor otentikasi tidak aktif diff --git a/modules/two_factor_authentication/config/locales/crowdin/it.yml b/modules/two_factor_authentication/config/locales/crowdin/it.yml index 3dc853e474fc..98406cc4dbaf 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/it.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/it.yml @@ -135,7 +135,7 @@ it: error_invalid_backup_code: Codice di backup 2FA non valido error_is_enforced_not_active: 'Errore di configurazione: L''autenticazione a due fattori è stata applicata, ma non esiste nessuna strategia attiva.' error_no_device: Nessun dispositivo 2FA registrato trovato per questo utente, pur essendo necessaria per questa istanza. - error_no_matching_strategy: Nessuna strategia di corrispondenza 2FA disponibile per questo utente. Si prega di contattare il proprio amministratore. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: L'amministratore ha attivato l'autenticazione a due fattori per questa istanza. Per effettuare l'accesso, aggiungi un metodo di autenticazione a due fattori. label_2fa_disabled: L'autenticazione a due fattori non è attiva diff --git a/modules/two_factor_authentication/config/locales/crowdin/ja.yml b/modules/two_factor_authentication/config/locales/crowdin/ja.yml index 21195389d3e0..2ef266fb4f30 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ja.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ja.yml @@ -130,7 +130,7 @@ ja: error_invalid_backup_code: 2FAバックアップコードが無効です error_is_enforced_not_active: 構成エラー:2ファクター認証が実施されていますが、有効な方法はありません。 error_no_device: このサイトに必要であるにもかかわらず、このユーザーに登録された2FAデバイスが見つかりませんでした。 - error_no_matching_strategy: このユーザーに対応する2FA方法はありません。管理者に連絡してください。 + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: 2要素認証が有効ではありません diff --git a/modules/two_factor_authentication/config/locales/crowdin/ka.yml b/modules/two_factor_authentication/config/locales/crowdin/ka.yml index 9aeb8e020a78..631468daa8ee 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ka.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ka.yml @@ -135,7 +135,7 @@ ka: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/kk.yml b/modules/two_factor_authentication/config/locales/crowdin/kk.yml index ca2e9443e4ad..038f083bedb7 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/kk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/kk.yml @@ -135,7 +135,7 @@ kk: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/ko.yml b/modules/two_factor_authentication/config/locales/crowdin/ko.yml index acdb365cc5a6..b2238fce3740 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ko.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ko.yml @@ -128,7 +128,7 @@ ko: error_invalid_backup_code: 잘못된 2FA 백업 코드 error_is_enforced_not_active: '구성 오류: 2단계 인증이 적용되었지만, 존재하는 활성 전략이 없습니다.' error_no_device: 이 인스턴스에 필요하지만, 이 사용자에 대해 등록된 2FA 장치를 찾지 못했습니다. - error_no_matching_strategy: 이 사용자에 대해 사용 가능한 일치하는 2FA 전략이 없습니다. 관리자에게 문의하세요. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: 관리자가 이 인스턴스에 대해 2단계 인증을 적용했습니다. 로그인하려면 2단계 인증 방법을 추가하세요. label_2fa_disabled: 2단계 인증이 활성화되지 않았습니다. diff --git a/modules/two_factor_authentication/config/locales/crowdin/li.yml b/modules/two_factor_authentication/config/locales/crowdin/li.yml index 37fa215d00c4..ca861f49c3ba 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/li.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/li.yml @@ -135,7 +135,7 @@ li: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/lt.yml b/modules/two_factor_authentication/config/locales/crowdin/lt.yml index d1e950ebcb09..1e4328da19a6 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/lt.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/lt.yml @@ -145,7 +145,7 @@ lt: error_invalid_backup_code: Netinkamas 2FA atsarginis kodas error_is_enforced_not_active: 'Konfigūracijos klaida: dviejų veiksnių autentifikacija buvo įjungta, bet nėra aktyvių strategijų.' error_no_device: Šiam naudotojui nerastas joks 2FA įrenginys, nors tai ir reikalaujama. - error_no_matching_strategy: Nėra atitinkančios 2FA strategijos šiam naudotojui. Prašome susisiekti su administratoriumi. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Dviejų veiksnių autentifikacija neaktyvi diff --git a/modules/two_factor_authentication/config/locales/crowdin/lv.yml b/modules/two_factor_authentication/config/locales/crowdin/lv.yml index 6371ebb59b69..bac035f1c48e 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/lv.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/lv.yml @@ -140,7 +140,7 @@ lv: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/mn.yml b/modules/two_factor_authentication/config/locales/crowdin/mn.yml index 13218af68e43..36055627ce68 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/mn.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/mn.yml @@ -135,7 +135,7 @@ mn: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/ms.yml b/modules/two_factor_authentication/config/locales/crowdin/ms.yml index 6db41bfc5053..8b9a06f086f8 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ms.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ms.yml @@ -130,7 +130,7 @@ ms: error_invalid_backup_code: Kod sandaran 2FA tidak sah error_is_enforced_not_active: 'Ralat konfigurasi: Pengesahan Dua Faktor telah dikuatkuasakan, tetapi masih belum ada strategi sedia ada yang aktif.' error_no_device: Tiada peranti 2FA berdaftar yang ditemui bagi pengguna ini, walaupun diperlukan untuk contoh ini. - error_no_matching_strategy: Tiada strategi 2FA yang sepadan tersedia bagi pengguna ini. Sila hubungi pentadbir anda. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Pengesahan dua faktor tidak aktif diff --git a/modules/two_factor_authentication/config/locales/crowdin/ne.yml b/modules/two_factor_authentication/config/locales/crowdin/ne.yml index 0d11850ae4c4..cc5a9b4db530 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ne.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ne.yml @@ -135,7 +135,7 @@ ne: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/nl.yml b/modules/two_factor_authentication/config/locales/crowdin/nl.yml index 42b31d42f6a6..6663ef377cad 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/nl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/nl.yml @@ -135,7 +135,7 @@ nl: error_invalid_backup_code: Ongeldige 2FA back-up code error_is_enforced_not_active: 'Configuratiefout: tweefactorauthenticatie is afgedwongen, maar er zijn geen actieve strategieën.' error_no_device: Geen geregistreerd 2FA-apparaat gevonden voor deze gebruiker, ondanks dat dit vereist is voor dit voorbeeld. - error_no_matching_strategy: Er is geen overeenkomende 2FA-strategie beschikbaar voor deze gebruiker. Neem contact op met uw beheerder. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Twee-factor-authenticatie is niet actief diff --git a/modules/two_factor_authentication/config/locales/crowdin/no.yml b/modules/two_factor_authentication/config/locales/crowdin/no.yml index 0547c12d3b84..16ca49f40740 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/no.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/no.yml @@ -135,7 +135,7 @@ error_invalid_backup_code: Ugyldig 2FA backup-kode error_is_enforced_not_active: 'Konfigurasjonsfeil: Tofaktorautentisering har blitt håndhevet, men ingen aktive strategier eksisterer.' error_no_device: Ingen registrert 2FA-enhet funnet for denne brukeren, til tross for at det kreves for denne forekomsten. - error_no_matching_strategy: Ingen matchende 2FA-strategi tilgjengelig for denne brukeren. Ta kontakt med administratoren din. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Tofaktorautentisering ikke aktiv diff --git a/modules/two_factor_authentication/config/locales/crowdin/pl.yml b/modules/two_factor_authentication/config/locales/crowdin/pl.yml index 0d5aa4014a82..121d87a558d8 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pl.yml @@ -145,7 +145,7 @@ pl: error_invalid_backup_code: Nieprawidłowy kod kopii zapasowej 2FA error_is_enforced_not_active: 'Błąd konfiguracji: Wymuszono uwierzytelnianie dwuskładnikowe, ale nie istnieją żadne aktywne strategie.' error_no_device: Nie znaleziono zarejestrowanego urządzenia 2FA dla tego użytkownika, mimo że jest ono wymagane dla tego wystąpienia. - error_no_matching_strategy: Dla tego użytkownika nie jest dostępna żadna zgodna strategia 2FA. Skontaktuj się z administratorem. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Administrator wymusza uwierzytelnianie dwuskładnikowe w tym wystąpieniu. Aby się zalogować, dodaj metodę uwierzytelniania dwuskładnikowego. label_2fa_disabled: Uwierzytelnianie dwuskładnikowe nie jest aktywne diff --git a/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml b/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml index 9f58d572d8bd..456bf4bc8181 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml @@ -135,7 +135,7 @@ pt-BR: error_invalid_backup_code: Código de backup do 2FA inválido error_is_enforced_not_active: 'Erro de configuração: a autenticação de dois fatores foi implementada, mas não existe nenhuma estratégia ativa.' error_no_device: Nenhum dispositivo 2FA registrado foi encontrado para este usuário, apesar de ser necessário para esta instância. - error_no_matching_strategy: Nenhuma estratégia de 2FA disponível para este usuário. Entre em contato com o administrador. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: O administrador impôs a autenticação de dois fatores para esta instância. Para entrar, adicione um método de autenticação de dois fatores. label_2fa_disabled: Autenticação de dois fatores não ativa diff --git a/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml b/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml index 0de218bcc39c..749c27f3f1d4 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml @@ -135,7 +135,7 @@ pt-PT: error_invalid_backup_code: Código de backup 2FA inválido error_is_enforced_not_active: 'Erro de configuração: a autenticação de dois fatores foi implementada, mas nenhuma estratégia ativa existe.' error_no_device: Nenhum dispositivo registado 2FA encontrado para este usuário, apesar de ser necessário para esta instância. - error_no_matching_strategy: Nenhuma estratégia 2FA correspondente disponível para este usuário. Entre em contato com o administrador. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: O administrador ativou a autenticação de dois fatores para esta instância. Para iniciar sessão, adicione um método de autenticação de dois fatores. label_2fa_disabled: Autenticação de dois fatores não ativa diff --git a/modules/two_factor_authentication/config/locales/crowdin/ro.yml b/modules/two_factor_authentication/config/locales/crowdin/ro.yml index 7cc5c751db1f..53ed009ff41f 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ro.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ro.yml @@ -40,7 +40,7 @@ ro: one: WebAuthn few: WebAuthn other: WebAuthn - button_continue: Continuă + button_continue: Continuaţi button_make_active: Activate button_make_default: Marcați ca implicit button_otp_by_sms: SMS @@ -140,7 +140,7 @@ ro: error_invalid_backup_code: Cod de rezervă 2FA invalid error_is_enforced_not_active: 'Eroare de configurare: Autentificarea doi factori a fost impusă, dar nu există strategii active.' error_no_device: Nu s-a găsit niciun dispozitiv 2FA înregistrat pentru acest utilizator, deși este necesar pentru această instanță. - error_no_matching_strategy: Nu este disponibilă nicio strategie 2FA corespunzătoare pentru acest utilizator. Vă rugăm să vă contactați administratorul. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Autentificare doi factori diff --git a/modules/two_factor_authentication/config/locales/crowdin/ru.yml b/modules/two_factor_authentication/config/locales/crowdin/ru.yml index 31e788125cda..16237f961826 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ru.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ru.yml @@ -45,7 +45,7 @@ ru: few: WebAuthn many: WebAuthn other: WebAuthn - button_continue: Продолжить + button_continue: Далее button_make_active: Активировать button_make_default: Задать по умолчанию button_otp_by_sms: SMS @@ -145,7 +145,7 @@ ru: error_invalid_backup_code: Неправильный резервный код 2ФА error_is_enforced_not_active: 'Ошибка конфигурации: применена двухфакторная аутентификация, однако активных стратегий нет.' error_no_device: Для пользователя не найдено зарегистрированного устройства 2ФА, что требуется для этого экземпляра. - error_no_matching_strategy: Для этого пользователя нет подходящей стратегии 2ФА. Обратитесь к администратору. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Администратор включил двухфакторную аутентификацию для данного экземпляра. Чтобы войти в систему, пожалуйста, добавьте метод двухфакторной аутентификации. label_2fa_disabled: Двухфакторная аутентификация неактивна diff --git a/modules/two_factor_authentication/config/locales/crowdin/rw.yml b/modules/two_factor_authentication/config/locales/crowdin/rw.yml index 95e977c66f73..8f2af2c92ee5 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/rw.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/rw.yml @@ -135,7 +135,7 @@ rw: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/si.yml b/modules/two_factor_authentication/config/locales/crowdin/si.yml index 9cb306ccc01d..868c9d398621 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/si.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/si.yml @@ -135,7 +135,7 @@ si: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/sk.yml b/modules/two_factor_authentication/config/locales/crowdin/sk.yml index bb24c858c254..201aa524d45f 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sk.yml @@ -145,7 +145,7 @@ sk: error_invalid_backup_code: Neplatný 2FA záložný kód error_is_enforced_not_active: 'Chyba konfigurácie: Bola vynútená dvojfaktorová autentifikácia, ale neexistujú žiadne aktívne stratégie.' error_no_device: Pre tohto používateľa nebolo nájdené žiadne zaregistrované zariadenie 2FA, napriek tomu, že je to potrebné pre túto inštanciu. - error_no_matching_strategy: Pre daného používateľa nie je k dispozícii žiadna zodpovedajúca stratégia 2FA. Kontaktujte svojho správcu. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Dvojfaktorová autentifikácia nie je aktívna diff --git a/modules/two_factor_authentication/config/locales/crowdin/sl.yml b/modules/two_factor_authentication/config/locales/crowdin/sl.yml index bc08d1db06bb..30b9667551e2 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sl.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sl.yml @@ -145,7 +145,7 @@ sl: error_invalid_backup_code: Neveljavna rezervna koda 2FA error_is_enforced_not_active: 'Napaka v konfiguraciji: dvofaktorska overitev je bila izvršena, vendar nobena aktivna strategija ne obstaja.' error_no_device: Za tega uporabnika ni bila najdena nobena registrirana 2FA naprava, čeprav je za ta primer potrebna. - error_no_matching_strategy: Za tega uporabnika ni na voljo ustrezne strategije 2FA. Prosimo obrnite se na svojega upravnika. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Dvofaktorska avtentikacija ni aktivna diff --git a/modules/two_factor_authentication/config/locales/crowdin/sr.yml b/modules/two_factor_authentication/config/locales/crowdin/sr.yml index 9b1dbe0b9222..9b01a839df87 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sr.yml @@ -140,7 +140,7 @@ sr: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/sv.yml b/modules/two_factor_authentication/config/locales/crowdin/sv.yml index a6718961f836..94084672c751 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/sv.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/sv.yml @@ -135,7 +135,7 @@ sv: error_invalid_backup_code: Ogiltig 2FA reservkod error_is_enforced_not_active: 'Konfigurationsfel: tvåfaktorsautentisering har verkställts, men inga aktiva strategier finns.' error_no_device: Ingen registrerad 2FA enhet hittades för den här användaren, trots att det krävs för den här instansen. - error_no_matching_strategy: Ingen matchande 2FA strategi tillgänglig för den här användaren. Vänligen kontakta din administratör. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Administratören har gjort tvåfaktorsautentisering obligatorisk för den här instansen. Lägg till en metod för tvåfaktorsautentisering för att logga in. label_2fa_disabled: Tvåfaktorsautentisering är inaktiverad diff --git a/modules/two_factor_authentication/config/locales/crowdin/th.yml b/modules/two_factor_authentication/config/locales/crowdin/th.yml index 7c6105f6d580..d3bfd073b786 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/th.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/th.yml @@ -130,7 +130,7 @@ th: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/tr.yml b/modules/two_factor_authentication/config/locales/crowdin/tr.yml index 809541888e20..84d5097724a3 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/tr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/tr.yml @@ -135,7 +135,7 @@ tr: error_invalid_backup_code: Geçersiz 2FA yedekleme kodu error_is_enforced_not_active: 'Yapılandırma hatası: İki faktörlü kimlik doğrulama zorlandı, ancak etkin stratejiler mevcut değil.' error_no_device: Bu örnek için gerekli olmasına rağmen, bu kullanıcı için kayıtlı 2FA cihazı bulunamadı. - error_no_matching_strategy: Bu kullanıcı için eşleşen 2FA stratejisi yok. Lütfen yöneticinize başvurun. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: İki faktörlü kimlik doğrulama etkin değil diff --git a/modules/two_factor_authentication/config/locales/crowdin/uk.yml b/modules/two_factor_authentication/config/locales/crowdin/uk.yml index a7cb7d294c39..6dbeb94e1ea1 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/uk.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/uk.yml @@ -145,7 +145,7 @@ uk: error_invalid_backup_code: Недійсний код резервного копіювання 2FA error_is_enforced_not_active: 'Помилка конфігурації: Двофакторна аутентифікація була застосована, але активних стратегій не існує.' error_no_device: Для цього користувача не знайдено зареєстрованого пристрою 2FA, незважаючи на те, що для цього екземпляра потрібно. - error_no_matching_strategy: Для цього користувача не доступна відповідна стратегія 2FA. Зверніться до свого адміністратора. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: Адміністратор увімкнув для цього екземпляра двофакторну автентифікацію. Щоб увійти, додайте метод двофакторної автентифікації. label_2fa_disabled: Двофакторна аутентифікація не активна diff --git a/modules/two_factor_authentication/config/locales/crowdin/uz.yml b/modules/two_factor_authentication/config/locales/crowdin/uz.yml index 6eab70854008..94e65f361074 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/uz.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/uz.yml @@ -135,7 +135,7 @@ uz: error_invalid_backup_code: Invalid 2FA backup code error_is_enforced_not_active: 'Configuration error: Two-factor authentication has been enforced, but no active strategies exist.' error_no_device: No registered 2FA device found for this user, despite being required for this instance. - error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administratior. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Two-factor authentication not active diff --git a/modules/two_factor_authentication/config/locales/crowdin/vi.yml b/modules/two_factor_authentication/config/locales/crowdin/vi.yml index 2293094f261c..f92e45945acd 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/vi.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/vi.yml @@ -130,7 +130,7 @@ vi: error_invalid_backup_code: Mã sao lưu 2FA không hợp lệ error_is_enforced_not_active: 'Lỗi cấu hình: xác thực 2 yếu tố đã được thi hành, nhưng không có chiến lược nào đang được sử dụng.' error_no_device: Không có thiết bị 2FA đăng ký cho người dùng này, mặc dù được yêu cầu cho trường hợp này được tìm thấy. - error_no_matching_strategy: Không có chiến lược 2FA sẵn có nào phù hợp với người dùng này. Xin vui lòng liên hệ với administratior của bạn. + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: Xác thực 2 yếu tố không hoạt động diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml index 20285210d378..8a56825e4320 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-CN.yml @@ -130,7 +130,7 @@ zh-CN: error_invalid_backup_code: 2FA 备份代码无效 error_is_enforced_not_active: 配置错误:已强制执行双因子认证,但不存在活动策略。 error_no_device: 尽管此实例需要,但没有为该用户找到注册的 2FA 设备。 - error_no_matching_strategy: 没有匹配的 2FA 策略可供此用户使用。请联系您的管理员。 + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: 管理员已为此实例强制执行双重身份验证。要登录,请添加双重身份验证方法。 label_2fa_disabled: " 双因子认证未激活" diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml index ae69a2d037df..1d1f93531f0b 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml @@ -130,7 +130,7 @@ zh-TW: error_invalid_backup_code: 不正確2FA 備份代碼 error_is_enforced_not_active: '配置錯誤: 已強制執行兩階段驗證, 但無規則可套用。' error_no_device: 未為該使用者找到已註冊的2FA 設備, 儘管此實例是必需的。 - error_no_matching_strategy: 沒有匹配的2FA 策略可供此使用者使用。請聯繫您的系統管理員。 + error_no_matching_strategy: No matching 2FA strategy available for this user. Please contact your administrator. forced_registration: required_to_add_device: The administrator has enforced two-factor authentication for this instance. To sign in, please add a two factor authentication method. label_2fa_disabled: 兩階段驗證已關閉 diff --git a/modules/webhooks/config/locales/crowdin/af.yml b/modules/webhooks/config/locales/crowdin/af.yml index 5b4dcbce2834..bd96213da1ed 100644 --- a/modules/webhooks/config/locales/crowdin/af.yml +++ b/modules/webhooks/config/locales/crowdin/af.yml @@ -64,7 +64,7 @@ af: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/ar.yml b/modules/webhooks/config/locales/crowdin/ar.yml index 48f655378a69..f7e066123b08 100644 --- a/modules/webhooks/config/locales/crowdin/ar.yml +++ b/modules/webhooks/config/locales/crowdin/ar.yml @@ -72,7 +72,7 @@ ar: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/az.yml b/modules/webhooks/config/locales/crowdin/az.yml index fd0e4318bb3c..4dfeb7bca371 100644 --- a/modules/webhooks/config/locales/crowdin/az.yml +++ b/modules/webhooks/config/locales/crowdin/az.yml @@ -64,7 +64,7 @@ az: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/be.yml b/modules/webhooks/config/locales/crowdin/be.yml index 3957e25aac14..723829ed7289 100644 --- a/modules/webhooks/config/locales/crowdin/be.yml +++ b/modules/webhooks/config/locales/crowdin/be.yml @@ -68,7 +68,7 @@ be: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/bg.yml b/modules/webhooks/config/locales/crowdin/bg.yml index 0590e78f309f..f2880a2fa8c4 100644 --- a/modules/webhooks/config/locales/crowdin/bg.yml +++ b/modules/webhooks/config/locales/crowdin/bg.yml @@ -64,7 +64,7 @@ bg: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/ca.yml b/modules/webhooks/config/locales/crowdin/ca.yml index fd01682343c4..c00a9fd29779 100644 --- a/modules/webhooks/config/locales/crowdin/ca.yml +++ b/modules/webhooks/config/locales/crowdin/ca.yml @@ -64,7 +64,7 @@ ca: label_add_new: Afegeix un nou webhook label_edit: Edita el webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Encara no s'han definit cap webhooks. diff --git a/modules/webhooks/config/locales/crowdin/ckb-IR.yml b/modules/webhooks/config/locales/crowdin/ckb-IR.yml index 29efeb3ac89a..c58000ca58f0 100644 --- a/modules/webhooks/config/locales/crowdin/ckb-IR.yml +++ b/modules/webhooks/config/locales/crowdin/ckb-IR.yml @@ -64,7 +64,7 @@ ckb-IR: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/cs.yml b/modules/webhooks/config/locales/crowdin/cs.yml index d4aeb9cf29e9..4e3643e95d4d 100644 --- a/modules/webhooks/config/locales/crowdin/cs.yml +++ b/modules/webhooks/config/locales/crowdin/cs.yml @@ -72,7 +72,7 @@ cs: label_add_new: Přidat nový webhook label_edit: Upravit webhook label_x_events: - one: 1 událost + one: "%{count} event" other: "%{count} událostí" zero: Žádné události no_results_table: Zatím nebyly definovány žádné webhooky diff --git a/modules/webhooks/config/locales/crowdin/da.yml b/modules/webhooks/config/locales/crowdin/da.yml index 86be293b9fd2..29b0784773b7 100644 --- a/modules/webhooks/config/locales/crowdin/da.yml +++ b/modules/webhooks/config/locales/crowdin/da.yml @@ -64,7 +64,7 @@ da: label_add_new: Tilføj ny webhook label_edit: Rediger webhook label_x_events: - one: 1 hændelse + one: "%{count} hændelse" other: "%{count} hændelser" zero: Ingen hændelser no_results_table: Der er endnu ikke defineret nogen webhooks. diff --git a/modules/webhooks/config/locales/crowdin/de.yml b/modules/webhooks/config/locales/crowdin/de.yml index 791069b8032a..44664abe68fb 100644 --- a/modules/webhooks/config/locales/crowdin/de.yml +++ b/modules/webhooks/config/locales/crowdin/de.yml @@ -64,7 +64,7 @@ de: label_add_new: Webhook hinzufügen label_edit: Webhook bearbeiten label_x_events: - one: 1 Ereignis + one: "%{count} event" other: "%{count} Ereignisse" zero: Keine Ereignisse no_results_table: Es wurden noch keine Webhooks definiert. diff --git a/modules/webhooks/config/locales/crowdin/el.yml b/modules/webhooks/config/locales/crowdin/el.yml index 13d6ad46c0dd..0780fcc03179 100644 --- a/modules/webhooks/config/locales/crowdin/el.yml +++ b/modules/webhooks/config/locales/crowdin/el.yml @@ -64,7 +64,7 @@ el: label_add_new: Προσθήκη νέου webhook label_edit: Επεξεργασία webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Δεν έχουν οριστεί webhooks ακόμη. diff --git a/modules/webhooks/config/locales/crowdin/eo.yml b/modules/webhooks/config/locales/crowdin/eo.yml index 3df27270a442..ec778b965159 100644 --- a/modules/webhooks/config/locales/crowdin/eo.yml +++ b/modules/webhooks/config/locales/crowdin/eo.yml @@ -64,7 +64,7 @@ eo: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/es.yml b/modules/webhooks/config/locales/crowdin/es.yml index 958979e6c7e8..96eef7f9c616 100644 --- a/modules/webhooks/config/locales/crowdin/es.yml +++ b/modules/webhooks/config/locales/crowdin/es.yml @@ -64,7 +64,7 @@ es: label_add_new: Agregar nuevo webhook label_edit: Editar webhook label_x_events: - one: 1 evento + one: "%{count} event" other: "%{count} eventos" zero: No hay eventos no_results_table: Aún no se han definido webhooks. diff --git a/modules/webhooks/config/locales/crowdin/et.yml b/modules/webhooks/config/locales/crowdin/et.yml index 51b13b30ee1f..c89dddf1023c 100644 --- a/modules/webhooks/config/locales/crowdin/et.yml +++ b/modules/webhooks/config/locales/crowdin/et.yml @@ -64,7 +64,7 @@ et: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/eu.yml b/modules/webhooks/config/locales/crowdin/eu.yml index cf06a32a82a7..b91277ca4584 100644 --- a/modules/webhooks/config/locales/crowdin/eu.yml +++ b/modules/webhooks/config/locales/crowdin/eu.yml @@ -64,7 +64,7 @@ eu: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/fa.yml b/modules/webhooks/config/locales/crowdin/fa.yml index a389d5e73e60..98f538e9f978 100644 --- a/modules/webhooks/config/locales/crowdin/fa.yml +++ b/modules/webhooks/config/locales/crowdin/fa.yml @@ -64,7 +64,7 @@ fa: label_add_new: افزودن Webhook جدید label_edit: ویرایش Webhook label_x_events: - one: ۱ رویداد + one: "%{count} event" other: "%{count} رویداد" zero: بدون رویداد no_results_table: هنوز Webhookی تعریف نشده است. diff --git a/modules/webhooks/config/locales/crowdin/fi.yml b/modules/webhooks/config/locales/crowdin/fi.yml index 42db1451412d..4675fb165fb0 100644 --- a/modules/webhooks/config/locales/crowdin/fi.yml +++ b/modules/webhooks/config/locales/crowdin/fi.yml @@ -64,7 +64,7 @@ fi: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/fil.yml b/modules/webhooks/config/locales/crowdin/fil.yml index f8d597cf7ccf..d1d1f8c4bab1 100644 --- a/modules/webhooks/config/locales/crowdin/fil.yml +++ b/modules/webhooks/config/locales/crowdin/fil.yml @@ -64,7 +64,7 @@ fil: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/fr.yml b/modules/webhooks/config/locales/crowdin/fr.yml index df8eb49c6bed..ad4b75fab694 100644 --- a/modules/webhooks/config/locales/crowdin/fr.yml +++ b/modules/webhooks/config/locales/crowdin/fr.yml @@ -64,7 +64,7 @@ fr: label_add_new: Ajouter un nouveau webhook label_edit: Modifier le webhook label_x_events: - one: 1 événement + one: "%{count} événements" other: "%{count} événements" zero: Aucun événement no_results_table: Aucun webhook n'a encore été défini. diff --git a/modules/webhooks/config/locales/crowdin/he.yml b/modules/webhooks/config/locales/crowdin/he.yml index b9b69caf517f..90e0054ae7e7 100644 --- a/modules/webhooks/config/locales/crowdin/he.yml +++ b/modules/webhooks/config/locales/crowdin/he.yml @@ -66,7 +66,7 @@ he: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/hi.yml b/modules/webhooks/config/locales/crowdin/hi.yml index 1b6c938b99db..937d12b0d12d 100644 --- a/modules/webhooks/config/locales/crowdin/hi.yml +++ b/modules/webhooks/config/locales/crowdin/hi.yml @@ -64,7 +64,7 @@ hi: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/hr.yml b/modules/webhooks/config/locales/crowdin/hr.yml index a6e513bb6553..a230a5af0a8c 100644 --- a/modules/webhooks/config/locales/crowdin/hr.yml +++ b/modules/webhooks/config/locales/crowdin/hr.yml @@ -66,7 +66,7 @@ hr: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/hu.yml b/modules/webhooks/config/locales/crowdin/hu.yml index 4e1392fffa1f..19ff1b994b95 100644 --- a/modules/webhooks/config/locales/crowdin/hu.yml +++ b/modules/webhooks/config/locales/crowdin/hu.yml @@ -64,7 +64,7 @@ hu: label_add_new: Webhook hozzáadása label_edit: Webhook szerkesztése label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Nincs definiált webhook diff --git a/modules/webhooks/config/locales/crowdin/hy.yml b/modules/webhooks/config/locales/crowdin/hy.yml index 205d2e0561e6..c4da86f2ba33 100644 --- a/modules/webhooks/config/locales/crowdin/hy.yml +++ b/modules/webhooks/config/locales/crowdin/hy.yml @@ -64,7 +64,7 @@ hy: label_add_new: Ավելացնել նոր վեբհուկ label_edit: Խմբագրել վեբհուկը label_x_events: - one: 1 իրադարձություն + one: "%{count} event" other: "%{count} իրադարձություն" zero: Իրադարձություններ չկան no_results_table: Վեբհուկներ դեռ սահմանված չեն։ diff --git a/modules/webhooks/config/locales/crowdin/id.yml b/modules/webhooks/config/locales/crowdin/id.yml index f620fa7a8cbb..1aeb3473f564 100644 --- a/modules/webhooks/config/locales/crowdin/id.yml +++ b/modules/webhooks/config/locales/crowdin/id.yml @@ -62,7 +62,7 @@ id: label_add_new: Tambahkan webhook baru label_edit: Ubah webhook label_x_events: - one: 1 acara + one: "%{count} event" other: "%{count} acara" zero: Tidak ada acara no_results_table: Belum ada webhook yang ditentukan. diff --git a/modules/webhooks/config/locales/crowdin/it.yml b/modules/webhooks/config/locales/crowdin/it.yml index 65b73e8c32e7..10684ed66b31 100644 --- a/modules/webhooks/config/locales/crowdin/it.yml +++ b/modules/webhooks/config/locales/crowdin/it.yml @@ -64,7 +64,7 @@ it: label_add_new: Aggiungi nuovo webhook label_edit: Modifica webhook label_x_events: - one: 1 evento + one: "%{count} event" other: "%{count} eventi" zero: Nessun evento no_results_table: Non è stato definito ancora nessun webhook. diff --git a/modules/webhooks/config/locales/crowdin/ja.yml b/modules/webhooks/config/locales/crowdin/ja.yml index 31b8cfa2f7dd..a8424431e738 100644 --- a/modules/webhooks/config/locales/crowdin/ja.yml +++ b/modules/webhooks/config/locales/crowdin/ja.yml @@ -62,7 +62,7 @@ ja: label_add_new: 新しいWebhookを追加 label_edit: Webhookを編集 label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Webhookが定義されていません。 diff --git a/modules/webhooks/config/locales/crowdin/ka.yml b/modules/webhooks/config/locales/crowdin/ka.yml index d86f5fbd895a..c001092bb6f6 100644 --- a/modules/webhooks/config/locales/crowdin/ka.yml +++ b/modules/webhooks/config/locales/crowdin/ka.yml @@ -64,7 +64,7 @@ ka: label_add_new: Add new webhook label_edit: ვებჰუკის ჩასწორება label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/kk.yml b/modules/webhooks/config/locales/crowdin/kk.yml index f7cc237eddfb..0b74a3a5d683 100644 --- a/modules/webhooks/config/locales/crowdin/kk.yml +++ b/modules/webhooks/config/locales/crowdin/kk.yml @@ -64,7 +64,7 @@ kk: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/ko.yml b/modules/webhooks/config/locales/crowdin/ko.yml index 9526e3714d9c..58e8351913cf 100644 --- a/modules/webhooks/config/locales/crowdin/ko.yml +++ b/modules/webhooks/config/locales/crowdin/ko.yml @@ -62,7 +62,7 @@ ko: label_add_new: 새로운 Webhook 추가 label_edit: Webhook 편집 label_x_events: - one: 1개 이벤트 + one: "%{count} event" other: "%{count}개 이벤트" zero: 이벤트 없음 no_results_table: 아직 정의된 Webhook이 없습니다. diff --git a/modules/webhooks/config/locales/crowdin/li.yml b/modules/webhooks/config/locales/crowdin/li.yml index f470c3bf3d62..ec464c9d1ef8 100644 --- a/modules/webhooks/config/locales/crowdin/li.yml +++ b/modules/webhooks/config/locales/crowdin/li.yml @@ -64,7 +64,7 @@ li: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 gebeurtenis + one: "%{count} event" other: "%{count} events" zero: Gen gebeurtenisse no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/lt.yml b/modules/webhooks/config/locales/crowdin/lt.yml index b7ae97379c61..e24aeaac3db3 100644 --- a/modules/webhooks/config/locales/crowdin/lt.yml +++ b/modules/webhooks/config/locales/crowdin/lt.yml @@ -68,7 +68,7 @@ lt: label_add_new: Pridėti „webhook“ label_edit: Keisti „webhook“ label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Dar nenustatytas joks „webhook“. diff --git a/modules/webhooks/config/locales/crowdin/lv.yml b/modules/webhooks/config/locales/crowdin/lv.yml index 7752222605be..e878e75cd4e3 100644 --- a/modules/webhooks/config/locales/crowdin/lv.yml +++ b/modules/webhooks/config/locales/crowdin/lv.yml @@ -66,7 +66,7 @@ lv: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/mn.yml b/modules/webhooks/config/locales/crowdin/mn.yml index 04ed754d8647..8cb90717fd35 100644 --- a/modules/webhooks/config/locales/crowdin/mn.yml +++ b/modules/webhooks/config/locales/crowdin/mn.yml @@ -64,7 +64,7 @@ mn: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/ms.yml b/modules/webhooks/config/locales/crowdin/ms.yml index a2f4ddae916f..865c83f05eaf 100644 --- a/modules/webhooks/config/locales/crowdin/ms.yml +++ b/modules/webhooks/config/locales/crowdin/ms.yml @@ -62,7 +62,7 @@ ms: label_add_new: Tambah webhook baru label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Tiada webhook yang ditakrifkan lagi. diff --git a/modules/webhooks/config/locales/crowdin/ne.yml b/modules/webhooks/config/locales/crowdin/ne.yml index 27ff66d4d11d..54b275be823f 100644 --- a/modules/webhooks/config/locales/crowdin/ne.yml +++ b/modules/webhooks/config/locales/crowdin/ne.yml @@ -64,7 +64,7 @@ ne: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/nl.yml b/modules/webhooks/config/locales/crowdin/nl.yml index 6c3e1bf8229e..2301a9490d97 100644 --- a/modules/webhooks/config/locales/crowdin/nl.yml +++ b/modules/webhooks/config/locales/crowdin/nl.yml @@ -64,7 +64,7 @@ nl: label_add_new: Nieuwe webhook toevoegen label_edit: Webhook bewerken label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Er zijn nog geen webhooks gedefinieerd. diff --git a/modules/webhooks/config/locales/crowdin/no.yml b/modules/webhooks/config/locales/crowdin/no.yml index b382f8230c84..1855264e581c 100644 --- a/modules/webhooks/config/locales/crowdin/no.yml +++ b/modules/webhooks/config/locales/crowdin/no.yml @@ -64,7 +64,7 @@ label_add_new: Legg til ny webhook label_edit: Rediger webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Ingen webhooks har blitt definert ennå. diff --git a/modules/webhooks/config/locales/crowdin/pl.yml b/modules/webhooks/config/locales/crowdin/pl.yml index fee092584d61..61dabc955265 100644 --- a/modules/webhooks/config/locales/crowdin/pl.yml +++ b/modules/webhooks/config/locales/crowdin/pl.yml @@ -68,7 +68,7 @@ pl: label_add_new: Dodaj nowy webhook label_edit: Edytuj webhook label_x_events: - one: 1 zdarzenie + one: "%{count} event" other: 'Liczba zdarzeń: %{count}' zero: Brak zdarzeń no_results_table: Jeszcze nie określono żadnych webhooków. diff --git a/modules/webhooks/config/locales/crowdin/pt-BR.yml b/modules/webhooks/config/locales/crowdin/pt-BR.yml index e7409a456960..571ccb11f998 100644 --- a/modules/webhooks/config/locales/crowdin/pt-BR.yml +++ b/modules/webhooks/config/locales/crowdin/pt-BR.yml @@ -64,7 +64,7 @@ pt-BR: label_add_new: Adicionar novo webhook label_edit: Editar webhook label_x_events: - one: 1 evento + one: "%{count} event" other: "%{count} eventos" zero: Sem eventos no_results_table: Nenhum webhook definido. diff --git a/modules/webhooks/config/locales/crowdin/pt-PT.yml b/modules/webhooks/config/locales/crowdin/pt-PT.yml index f477180f58b2..bca2e3a37949 100644 --- a/modules/webhooks/config/locales/crowdin/pt-PT.yml +++ b/modules/webhooks/config/locales/crowdin/pt-PT.yml @@ -64,7 +64,7 @@ pt-PT: label_add_new: Adicionar novo webhook label_edit: Editar webhook label_x_events: - one: 1 evento + one: "%{count} event" other: "%{count} eventos" zero: Nenhum evento no_results_table: Nenhum webhook definido. diff --git a/modules/webhooks/config/locales/crowdin/ro.yml b/modules/webhooks/config/locales/crowdin/ro.yml index d329cdee9972..e963a9ff250f 100644 --- a/modules/webhooks/config/locales/crowdin/ro.yml +++ b/modules/webhooks/config/locales/crowdin/ro.yml @@ -66,7 +66,7 @@ ro: label_add_new: Adaugă un nou webhook label_edit: Editați webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Nu au fost definite încă niciun fel de webhooks. diff --git a/modules/webhooks/config/locales/crowdin/ru.yml b/modules/webhooks/config/locales/crowdin/ru.yml index 1211e7bb4a0e..c86670791995 100644 --- a/modules/webhooks/config/locales/crowdin/ru.yml +++ b/modules/webhooks/config/locales/crowdin/ru.yml @@ -68,7 +68,7 @@ ru: label_add_new: Добавить новый вебхук label_edit: Изменить вебхук label_x_events: - one: 1 событие + one: "%{count} event" other: "%{count} событий" zero: Нет событий no_results_table: Вебхуки еще не определены. diff --git a/modules/webhooks/config/locales/crowdin/rw.yml b/modules/webhooks/config/locales/crowdin/rw.yml index 3279d11d4508..897a4fbe158e 100644 --- a/modules/webhooks/config/locales/crowdin/rw.yml +++ b/modules/webhooks/config/locales/crowdin/rw.yml @@ -64,7 +64,7 @@ rw: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/si.yml b/modules/webhooks/config/locales/crowdin/si.yml index ffe23cc6c7cb..2b5938fca511 100644 --- a/modules/webhooks/config/locales/crowdin/si.yml +++ b/modules/webhooks/config/locales/crowdin/si.yml @@ -64,7 +64,7 @@ si: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/sk.yml b/modules/webhooks/config/locales/crowdin/sk.yml index 0db8d11b3c70..fe58bd6cac3f 100644 --- a/modules/webhooks/config/locales/crowdin/sk.yml +++ b/modules/webhooks/config/locales/crowdin/sk.yml @@ -68,7 +68,7 @@ sk: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/sl.yml b/modules/webhooks/config/locales/crowdin/sl.yml index c3b29798286b..ba0c809bda42 100644 --- a/modules/webhooks/config/locales/crowdin/sl.yml +++ b/modules/webhooks/config/locales/crowdin/sl.yml @@ -68,7 +68,7 @@ sl: label_add_new: Dodajte novo spletno zanko label_edit: Uredite spletno zanko label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: Še ni definirana nobena spletna zanka. diff --git a/modules/webhooks/config/locales/crowdin/sr.yml b/modules/webhooks/config/locales/crowdin/sr.yml index a3da3509b733..3940da59ca2f 100644 --- a/modules/webhooks/config/locales/crowdin/sr.yml +++ b/modules/webhooks/config/locales/crowdin/sr.yml @@ -66,7 +66,7 @@ sr: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/sv.yml b/modules/webhooks/config/locales/crowdin/sv.yml index 4bc4ba639f56..3e2a168c3a7b 100644 --- a/modules/webhooks/config/locales/crowdin/sv.yml +++ b/modules/webhooks/config/locales/crowdin/sv.yml @@ -64,7 +64,7 @@ sv: label_add_new: Lägg till ny webhook label_edit: Redigera webhook label_x_events: - one: 1 händelse + one: "%{count} event" other: "%{count} händelser" zero: Inga händelser no_results_table: Inga webhooks har definierats ännu. diff --git a/modules/webhooks/config/locales/crowdin/th.yml b/modules/webhooks/config/locales/crowdin/th.yml index 7c63b24c73a9..8aa4b6b9c042 100644 --- a/modules/webhooks/config/locales/crowdin/th.yml +++ b/modules/webhooks/config/locales/crowdin/th.yml @@ -62,7 +62,7 @@ th: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/tr.yml b/modules/webhooks/config/locales/crowdin/tr.yml index d66e40031bcc..c62a0887de9b 100644 --- a/modules/webhooks/config/locales/crowdin/tr.yml +++ b/modules/webhooks/config/locales/crowdin/tr.yml @@ -64,7 +64,7 @@ tr: label_add_new: Yeni web kancası ekle label_edit: Web kancasını düzenle label_x_events: - one: 1 olay + one: "%{count} event" other: "%{count} olay" zero: Olay yok no_results_table: Henüz bir web kancası tanımlanmadı. diff --git a/modules/webhooks/config/locales/crowdin/uk.yml b/modules/webhooks/config/locales/crowdin/uk.yml index b4a6a45d68a0..620c774d4a93 100644 --- a/modules/webhooks/config/locales/crowdin/uk.yml +++ b/modules/webhooks/config/locales/crowdin/uk.yml @@ -68,7 +68,7 @@ uk: label_add_new: Додати новий вебхук label_edit: Редагувати вебхук label_x_events: - one: 1 подія + one: "%{count} event" other: "%{count} події(-й)" zero: Немає подій no_results_table: Немає доданих вебхуків. diff --git a/modules/webhooks/config/locales/crowdin/uz.yml b/modules/webhooks/config/locales/crowdin/uz.yml index e4125f0f99a4..3e75a84f039e 100644 --- a/modules/webhooks/config/locales/crowdin/uz.yml +++ b/modules/webhooks/config/locales/crowdin/uz.yml @@ -64,7 +64,7 @@ uz: label_add_new: Add new webhook label_edit: Edit webhook label_x_events: - one: 1 event + one: "%{count} event" other: "%{count} events" zero: No events no_results_table: No webhooks have been defined yet. diff --git a/modules/webhooks/config/locales/crowdin/vi.yml b/modules/webhooks/config/locales/crowdin/vi.yml index 13f9fa3ee709..c697d4f0c62c 100644 --- a/modules/webhooks/config/locales/crowdin/vi.yml +++ b/modules/webhooks/config/locales/crowdin/vi.yml @@ -62,7 +62,7 @@ vi: label_add_new: Thêm webhook mới label_edit: Chỉnh sửa webhook label_x_events: - one: 1 sự kiện + one: "%{count} event" other: "%{count} sự kiện" zero: Không có sự kiện no_results_table: Chưa có webhook nào được xác định. diff --git a/modules/webhooks/config/locales/crowdin/zh-CN.yml b/modules/webhooks/config/locales/crowdin/zh-CN.yml index 049c6c0e7882..9ad4444c1497 100644 --- a/modules/webhooks/config/locales/crowdin/zh-CN.yml +++ b/modules/webhooks/config/locales/crowdin/zh-CN.yml @@ -62,7 +62,7 @@ zh-CN: label_add_new: 添加新的 Webhook label_edit: 编辑 Webhook label_x_events: - one: 1 个活动 + one: "%{count} event" other: "%{count} 个活动" zero: 无活动 no_results_table: 尚未定义任何 Webhook。 diff --git a/modules/webhooks/config/locales/crowdin/zh-TW.yml b/modules/webhooks/config/locales/crowdin/zh-TW.yml index ca8dbfac52ce..bc102035e9c7 100644 --- a/modules/webhooks/config/locales/crowdin/zh-TW.yml +++ b/modules/webhooks/config/locales/crowdin/zh-TW.yml @@ -62,7 +62,7 @@ zh-TW: label_add_new: 新增 Webhook label_edit: 編輯 Webhook label_x_events: - one: 1 個事件 + one: "%{count} event" other: "%{count} 個事件" zero: 沒有事件 no_results_table: 尚未定義任何webhooks 。 diff --git a/modules/wikis/config/locales/crowdin/af.yml b/modules/wikis/config/locales/crowdin/af.yml index 0fc88093c0ea..41ba7b3bb5e0 100644 --- a/modules/wikis/config/locales/crowdin/af.yml +++ b/modules/wikis/config/locales/crowdin/af.yml @@ -184,7 +184,7 @@ af: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/ar.yml b/modules/wikis/config/locales/crowdin/ar.yml index 5630eb905a45..d28f89b348cc 100644 --- a/modules/wikis/config/locales/crowdin/ar.yml +++ b/modules/wikis/config/locales/crowdin/ar.yml @@ -209,7 +209,7 @@ ar: main: Main wiki pages sub_pages_count: zero: "%{count} sub-pages" - one: 1 sub-page + one: "%{count} sub-page" two: "%{count} sub-pages" few: "%{count} sub-pages" many: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/az.yml b/modules/wikis/config/locales/crowdin/az.yml index c492a86f06ae..97629b83428e 100644 --- a/modules/wikis/config/locales/crowdin/az.yml +++ b/modules/wikis/config/locales/crowdin/az.yml @@ -184,7 +184,7 @@ az: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/be.yml b/modules/wikis/config/locales/crowdin/be.yml index 34b325ba6283..2c9bddc44844 100644 --- a/modules/wikis/config/locales/crowdin/be.yml +++ b/modules/wikis/config/locales/crowdin/be.yml @@ -196,7 +196,7 @@ be: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" many: "%{count} sub-pages" other: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/bg.yml b/modules/wikis/config/locales/crowdin/bg.yml index 4644c814c9f4..17ecab51a92a 100644 --- a/modules/wikis/config/locales/crowdin/bg.yml +++ b/modules/wikis/config/locales/crowdin/bg.yml @@ -184,7 +184,7 @@ bg: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/ca.yml b/modules/wikis/config/locales/crowdin/ca.yml index 5f5afdfe3875..f23020cb4b88 100644 --- a/modules/wikis/config/locales/crowdin/ca.yml +++ b/modules/wikis/config/locales/crowdin/ca.yml @@ -184,7 +184,7 @@ ca: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/ckb-IR.yml b/modules/wikis/config/locales/crowdin/ckb-IR.yml index ddef094744d3..21275783232e 100644 --- a/modules/wikis/config/locales/crowdin/ckb-IR.yml +++ b/modules/wikis/config/locales/crowdin/ckb-IR.yml @@ -184,7 +184,7 @@ ckb-IR: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/cs.yml b/modules/wikis/config/locales/crowdin/cs.yml index 18cb73dab80e..0ee3cc96dca9 100644 --- a/modules/wikis/config/locales/crowdin/cs.yml +++ b/modules/wikis/config/locales/crowdin/cs.yml @@ -196,7 +196,7 @@ cs: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" many: "%{count} sub-pages" other: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/da.yml b/modules/wikis/config/locales/crowdin/da.yml index 7c51f49c20c6..928482d30423 100644 --- a/modules/wikis/config/locales/crowdin/da.yml +++ b/modules/wikis/config/locales/crowdin/da.yml @@ -184,7 +184,7 @@ da: all: Alle wikisider main: Primære wikisider sub_pages_count: - one: 1 underside + one: "%{count} underside" other: "%{count} undersider" inline_wiki_page_dialog: title_add: Tilføj eksisterende wikiside diff --git a/modules/wikis/config/locales/crowdin/de.yml b/modules/wikis/config/locales/crowdin/de.yml index 1a2b469f59d0..09991834d393 100644 --- a/modules/wikis/config/locales/crowdin/de.yml +++ b/modules/wikis/config/locales/crowdin/de.yml @@ -184,8 +184,8 @@ de: all: Alle Wiki-Seiten main: Haupt-Wikiseiten sub_pages_count: - one: 1 Unterseite - other: "%{count} Unterseiten" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Vorhandene Wiki-Seite hinzufügen title_create: Neue Wiki-Seite anlegen diff --git a/modules/wikis/config/locales/crowdin/el.yml b/modules/wikis/config/locales/crowdin/el.yml index c70f5c1c3a6e..0aec22f15660 100644 --- a/modules/wikis/config/locales/crowdin/el.yml +++ b/modules/wikis/config/locales/crowdin/el.yml @@ -184,7 +184,7 @@ el: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/eo.yml b/modules/wikis/config/locales/crowdin/eo.yml index 8713084701fb..1d55b94172c7 100644 --- a/modules/wikis/config/locales/crowdin/eo.yml +++ b/modules/wikis/config/locales/crowdin/eo.yml @@ -184,7 +184,7 @@ eo: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/es.yml b/modules/wikis/config/locales/crowdin/es.yml index 944b8f2a6484..486ba6ced4c9 100644 --- a/modules/wikis/config/locales/crowdin/es.yml +++ b/modules/wikis/config/locales/crowdin/es.yml @@ -184,8 +184,8 @@ es: all: Todas las páginas wiki main: Páginas wiki principales sub_pages_count: - one: 1 subpágina - other: "%{count} subpáginas" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Añadir página wiki existente title_create: Crear nueva página de wiki diff --git a/modules/wikis/config/locales/crowdin/et.yml b/modules/wikis/config/locales/crowdin/et.yml index 9dc8a6a5771e..156f7715310d 100644 --- a/modules/wikis/config/locales/crowdin/et.yml +++ b/modules/wikis/config/locales/crowdin/et.yml @@ -184,7 +184,7 @@ et: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/eu.yml b/modules/wikis/config/locales/crowdin/eu.yml index 4bd5153fae80..a18afdd0d10b 100644 --- a/modules/wikis/config/locales/crowdin/eu.yml +++ b/modules/wikis/config/locales/crowdin/eu.yml @@ -184,7 +184,7 @@ eu: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/fa.yml b/modules/wikis/config/locales/crowdin/fa.yml index fc691ef120cb..0677bc0a1ebc 100644 --- a/modules/wikis/config/locales/crowdin/fa.yml +++ b/modules/wikis/config/locales/crowdin/fa.yml @@ -184,8 +184,8 @@ fa: all: همهٔ صفحه‌های ویکی main: صفحه‌های اصلی ویکی sub_pages_count: - one: ۱ زیرصفحه - other: "%{count} زیرصفحه" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: افزودن صفحهٔ ویکی موجود title_create: ایجاد صفحه Wiki جدید diff --git a/modules/wikis/config/locales/crowdin/fi.yml b/modules/wikis/config/locales/crowdin/fi.yml index 3f3db1d7c78b..522d95b95d41 100644 --- a/modules/wikis/config/locales/crowdin/fi.yml +++ b/modules/wikis/config/locales/crowdin/fi.yml @@ -184,7 +184,7 @@ fi: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/fil.yml b/modules/wikis/config/locales/crowdin/fil.yml index 1ce3b5137f5a..c27a7684496e 100644 --- a/modules/wikis/config/locales/crowdin/fil.yml +++ b/modules/wikis/config/locales/crowdin/fil.yml @@ -184,7 +184,7 @@ fil: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/fr.yml b/modules/wikis/config/locales/crowdin/fr.yml index 2ef4287566c9..bb3fb162dba6 100644 --- a/modules/wikis/config/locales/crowdin/fr.yml +++ b/modules/wikis/config/locales/crowdin/fr.yml @@ -184,8 +184,8 @@ fr: all: Toutes les pages du wiki main: Pages principales du wiki sub_pages_count: - one: 1 sous-page - other: "%{count} sous-pages" + one: Sous-page %{count} + other: Sous-pages %{count} inline_wiki_page_dialog: title_add: Ajouter une page wiki existante title_create: Créer une nouvelle page wiki diff --git a/modules/wikis/config/locales/crowdin/he.yml b/modules/wikis/config/locales/crowdin/he.yml index f1783e79ad4e..563355e27c58 100644 --- a/modules/wikis/config/locales/crowdin/he.yml +++ b/modules/wikis/config/locales/crowdin/he.yml @@ -190,7 +190,7 @@ he: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" two: "%{count} sub-pages" other: "%{count} sub-pages" inline_wiki_page_dialog: diff --git a/modules/wikis/config/locales/crowdin/hi.yml b/modules/wikis/config/locales/crowdin/hi.yml index be0a4146b892..bb8eec639284 100644 --- a/modules/wikis/config/locales/crowdin/hi.yml +++ b/modules/wikis/config/locales/crowdin/hi.yml @@ -184,7 +184,7 @@ hi: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/hr.yml b/modules/wikis/config/locales/crowdin/hr.yml index 706510025c22..256ae6444c34 100644 --- a/modules/wikis/config/locales/crowdin/hr.yml +++ b/modules/wikis/config/locales/crowdin/hr.yml @@ -190,7 +190,7 @@ hr: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" other: "%{count} sub-pages" inline_wiki_page_dialog: diff --git a/modules/wikis/config/locales/crowdin/hu.yml b/modules/wikis/config/locales/crowdin/hu.yml index 5c9481380151..b8948e6a27d8 100644 --- a/modules/wikis/config/locales/crowdin/hu.yml +++ b/modules/wikis/config/locales/crowdin/hu.yml @@ -184,7 +184,7 @@ hu: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Meglevő wiki lap hozzáadás diff --git a/modules/wikis/config/locales/crowdin/hy.yml b/modules/wikis/config/locales/crowdin/hy.yml index 557941cb6f47..b4cd1f651060 100644 --- a/modules/wikis/config/locales/crowdin/hy.yml +++ b/modules/wikis/config/locales/crowdin/hy.yml @@ -184,8 +184,8 @@ hy: all: Բոլոր վիքի էջերը main: Հիմնական վիքի էջերը sub_pages_count: - one: 1 ենթաէջ - other: "%{count} ենթաէջ" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Ավելացնել առկա վիքի էջ title_create: Ստեղծել նոր վիքի էջ diff --git a/modules/wikis/config/locales/crowdin/it.yml b/modules/wikis/config/locales/crowdin/it.yml index c783a5bf7a10..49d446abf3b1 100644 --- a/modules/wikis/config/locales/crowdin/it.yml +++ b/modules/wikis/config/locales/crowdin/it.yml @@ -184,8 +184,8 @@ it: all: Tutte le pagine wiki main: Pagine wiki principali sub_pages_count: - one: 1 sottopagina - other: "%{count} sottopagine" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Aggiungi una pagina wiki esistente title_create: Crea nuova pagina wiki diff --git a/modules/wikis/config/locales/crowdin/ka.yml b/modules/wikis/config/locales/crowdin/ka.yml index bc370300bf9e..4af7ae388afd 100644 --- a/modules/wikis/config/locales/crowdin/ka.yml +++ b/modules/wikis/config/locales/crowdin/ka.yml @@ -184,7 +184,7 @@ ka: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/kk.yml b/modules/wikis/config/locales/crowdin/kk.yml index e26f916579c2..cccccd28800d 100644 --- a/modules/wikis/config/locales/crowdin/kk.yml +++ b/modules/wikis/config/locales/crowdin/kk.yml @@ -184,7 +184,7 @@ kk: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/ko.yml b/modules/wikis/config/locales/crowdin/ko.yml index c9a010c90216..33e710783163 100644 --- a/modules/wikis/config/locales/crowdin/ko.yml +++ b/modules/wikis/config/locales/crowdin/ko.yml @@ -178,7 +178,7 @@ ko: all: 모든 위키 페이지 main: 기본 위키 페이지 sub_pages_count: - other: "%{count}개 하위 페이지" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: 기존 위키 페이지 추가 title_create: 새 위키 페이지 만들기 diff --git a/modules/wikis/config/locales/crowdin/li.yml b/modules/wikis/config/locales/crowdin/li.yml index fb09e069ced0..d2c4205cd17b 100644 --- a/modules/wikis/config/locales/crowdin/li.yml +++ b/modules/wikis/config/locales/crowdin/li.yml @@ -184,7 +184,7 @@ li: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/lt.yml b/modules/wikis/config/locales/crowdin/lt.yml index 655d45b8ee34..3ae79b561d51 100644 --- a/modules/wikis/config/locales/crowdin/lt.yml +++ b/modules/wikis/config/locales/crowdin/lt.yml @@ -196,7 +196,7 @@ lt: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" many: "%{count} sub-pages" other: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/lv.yml b/modules/wikis/config/locales/crowdin/lv.yml index a92144fcd05a..22f4d219bd2e 100644 --- a/modules/wikis/config/locales/crowdin/lv.yml +++ b/modules/wikis/config/locales/crowdin/lv.yml @@ -191,7 +191,7 @@ lv: main: Main wiki pages sub_pages_count: zero: "%{count} sub-pages" - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/mn.yml b/modules/wikis/config/locales/crowdin/mn.yml index d350a0a633d7..d65cd3c4a864 100644 --- a/modules/wikis/config/locales/crowdin/mn.yml +++ b/modules/wikis/config/locales/crowdin/mn.yml @@ -184,7 +184,7 @@ mn: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/ne.yml b/modules/wikis/config/locales/crowdin/ne.yml index 54882996873a..3f69af5afe26 100644 --- a/modules/wikis/config/locales/crowdin/ne.yml +++ b/modules/wikis/config/locales/crowdin/ne.yml @@ -184,7 +184,7 @@ ne: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/nl.yml b/modules/wikis/config/locales/crowdin/nl.yml index f7dc7763110a..ddae8f244fb8 100644 --- a/modules/wikis/config/locales/crowdin/nl.yml +++ b/modules/wikis/config/locales/crowdin/nl.yml @@ -184,7 +184,7 @@ nl: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Bestaande wikipagina toevoegen diff --git a/modules/wikis/config/locales/crowdin/no.yml b/modules/wikis/config/locales/crowdin/no.yml index bbb46f3d7999..28797f3f6c3a 100644 --- a/modules/wikis/config/locales/crowdin/no.yml +++ b/modules/wikis/config/locales/crowdin/no.yml @@ -184,7 +184,7 @@ all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/pl.yml b/modules/wikis/config/locales/crowdin/pl.yml index 7ad42e338e05..419f440edc28 100644 --- a/modules/wikis/config/locales/crowdin/pl.yml +++ b/modules/wikis/config/locales/crowdin/pl.yml @@ -196,10 +196,10 @@ pl: all: Wszystkie strony wiki main: Główne strony wiki sub_pages_count: - one: 1 podstrona - few: "%{count} podstrony" - many: "%{count} podstron" - other: "%{count} podstrony" + one: "%{count} sub-page" + few: "%{count} sub-pages" + many: "%{count} sub-pages" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Dodaj istniejącą stronę wiki title_create: Utwórz nową stronę wiki diff --git a/modules/wikis/config/locales/crowdin/pt-BR.yml b/modules/wikis/config/locales/crowdin/pt-BR.yml index 973c51e25466..1c8274c08292 100644 --- a/modules/wikis/config/locales/crowdin/pt-BR.yml +++ b/modules/wikis/config/locales/crowdin/pt-BR.yml @@ -184,8 +184,8 @@ pt-BR: all: Todas as páginas do wiki main: Páginas principais do wiki sub_pages_count: - one: 1 subpágina - other: "%{count} subpáginas" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Adicionar página wiki existente title_create: Criar nova página wiki diff --git a/modules/wikis/config/locales/crowdin/pt-PT.yml b/modules/wikis/config/locales/crowdin/pt-PT.yml index e710623449c2..c067037b5a65 100644 --- a/modules/wikis/config/locales/crowdin/pt-PT.yml +++ b/modules/wikis/config/locales/crowdin/pt-PT.yml @@ -184,8 +184,8 @@ pt-PT: all: Todas as páginas wiki main: Principais páginas wiki sub_pages_count: - one: 1 sub-página - other: "%{count} sub-páginas" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Adicionar página wiki existente title_create: Criar nova página wiki diff --git a/modules/wikis/config/locales/crowdin/ro.yml b/modules/wikis/config/locales/crowdin/ro.yml index 13753ac2b18e..40adb294ad73 100644 --- a/modules/wikis/config/locales/crowdin/ro.yml +++ b/modules/wikis/config/locales/crowdin/ro.yml @@ -190,9 +190,9 @@ ro: all: Toate paginile wiki main: Pagini wiki principale sub_pages_count: - one: 1 subpagină - few: "%{count} subpagini" - other: "%{count} subpagini" + one: "%{count} sub-page" + few: "%{count} sub-pages" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Adaugă o pagină wiki existentă title_create: Creează o pagină wiki nouă diff --git a/modules/wikis/config/locales/crowdin/ru.yml b/modules/wikis/config/locales/crowdin/ru.yml index 759043e5b6dc..ca1d7f07e0f0 100644 --- a/modules/wikis/config/locales/crowdin/ru.yml +++ b/modules/wikis/config/locales/crowdin/ru.yml @@ -196,10 +196,10 @@ ru: all: Все wiki-страницы main: Основные страницы вики sub_pages_count: - one: 1 подстраница - few: "%{count} подстраницы" - many: "%{count} подстраниц" - other: "%{count} подстраниц" + one: "%{count} sub-page" + few: "%{count} sub-pages" + many: "%{count} sub-pages" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Добавить существующую страницу вики title_create: Создать новую страницу вики diff --git a/modules/wikis/config/locales/crowdin/rw.yml b/modules/wikis/config/locales/crowdin/rw.yml index 454e1f933b2f..f0af300cb2aa 100644 --- a/modules/wikis/config/locales/crowdin/rw.yml +++ b/modules/wikis/config/locales/crowdin/rw.yml @@ -184,7 +184,7 @@ rw: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/si.yml b/modules/wikis/config/locales/crowdin/si.yml index 10ee3df70fe1..939dae48869b 100644 --- a/modules/wikis/config/locales/crowdin/si.yml +++ b/modules/wikis/config/locales/crowdin/si.yml @@ -184,7 +184,7 @@ si: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/sk.yml b/modules/wikis/config/locales/crowdin/sk.yml index 61f11b6ffd2a..fcc5ac96f88e 100644 --- a/modules/wikis/config/locales/crowdin/sk.yml +++ b/modules/wikis/config/locales/crowdin/sk.yml @@ -196,7 +196,7 @@ sk: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" many: "%{count} sub-pages" other: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/sl.yml b/modules/wikis/config/locales/crowdin/sl.yml index b5fbe9d1311e..28b643f1f2f5 100644 --- a/modules/wikis/config/locales/crowdin/sl.yml +++ b/modules/wikis/config/locales/crowdin/sl.yml @@ -196,7 +196,7 @@ sl: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" two: "%{count} sub-pages" few: "%{count} sub-pages" other: "%{count} sub-pages" diff --git a/modules/wikis/config/locales/crowdin/sr.yml b/modules/wikis/config/locales/crowdin/sr.yml index 81c5cec65873..6c6031f12a08 100644 --- a/modules/wikis/config/locales/crowdin/sr.yml +++ b/modules/wikis/config/locales/crowdin/sr.yml @@ -190,7 +190,7 @@ sr: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" few: "%{count} sub-pages" other: "%{count} sub-pages" inline_wiki_page_dialog: diff --git a/modules/wikis/config/locales/crowdin/sv.yml b/modules/wikis/config/locales/crowdin/sv.yml index 86318aa83173..b26bb6876a2c 100644 --- a/modules/wikis/config/locales/crowdin/sv.yml +++ b/modules/wikis/config/locales/crowdin/sv.yml @@ -184,8 +184,8 @@ sv: all: Alla Wiki-sidor main: Huvudsidor i Wiki sub_pages_count: - one: 1 undersida - other: "%{count} undersidor" + one: "%{count} sub-page" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Lägg till befintlig Wiki-sida title_create: Skapa ny wikisida diff --git a/modules/wikis/config/locales/crowdin/tr.yml b/modules/wikis/config/locales/crowdin/tr.yml index 3ab806f72658..81405eafefe2 100644 --- a/modules/wikis/config/locales/crowdin/tr.yml +++ b/modules/wikis/config/locales/crowdin/tr.yml @@ -184,7 +184,7 @@ tr: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/uk.yml b/modules/wikis/config/locales/crowdin/uk.yml index 1c7cc8819994..f6f0df15e851 100644 --- a/modules/wikis/config/locales/crowdin/uk.yml +++ b/modules/wikis/config/locales/crowdin/uk.yml @@ -196,10 +196,10 @@ uk: all: Усі сторінки Wiki main: Основні сторінки Wiki sub_pages_count: - one: "%{count} підсторінка" - few: "%{count} підсторінки" - many: "%{count} підсторінок" - other: "%{count} підсторінки" + one: "%{count} sub-page" + few: "%{count} sub-pages" + many: "%{count} sub-pages" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Додати наявну сторінку Wiki title_create: Створити нову сторінку Wiki diff --git a/modules/wikis/config/locales/crowdin/uz.yml b/modules/wikis/config/locales/crowdin/uz.yml index c1866fdd3ee6..f8576f3ea422 100644 --- a/modules/wikis/config/locales/crowdin/uz.yml +++ b/modules/wikis/config/locales/crowdin/uz.yml @@ -184,7 +184,7 @@ uz: all: All wiki pages main: Main wiki pages sub_pages_count: - one: 1 sub-page + one: "%{count} sub-page" other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: Add existing wiki page diff --git a/modules/wikis/config/locales/crowdin/zh-CN.yml b/modules/wikis/config/locales/crowdin/zh-CN.yml index c94eda133612..eef9cc777873 100644 --- a/modules/wikis/config/locales/crowdin/zh-CN.yml +++ b/modules/wikis/config/locales/crowdin/zh-CN.yml @@ -186,7 +186,7 @@ zh-CN: all: 所有 Wiki 页面 main: 主 Wiki 页面 sub_pages_count: - other: "%{count} 个子页面" + other: "%{count} sub-pages" inline_wiki_page_dialog: title_add: 添加现有 Wiki 页面 title_create: 新建 Wiki 页面 diff --git a/modules/xls_export/config/locales/crowdin/zh-CN.yml b/modules/xls_export/config/locales/crowdin/zh-CN.yml index 4ce2c82c3d3f..aab0c05d9f3e 100644 --- a/modules/xls_export/config/locales/crowdin/zh-CN.yml +++ b/modules/xls_export/config/locales/crowdin/zh-CN.yml @@ -14,4 +14,4 @@ zh-CN: sentence_separator_or: 或 xls_export: child_of: 此项的子项 - parent_of: 此项的父级 + parent_of: 此项的父项 From d1dbc00b1bfbf03dfad0cf0ead1028fcff11c12b Mon Sep 17 00:00:00 2001 From: Alexander Brandon Coles Date: Sun, 25 Oct 2026 20:13:20 +0000 Subject: [PATCH 7/7] Bump blocknote-extensions workflows to Node 24.22.1 Aligns the op-blocknote-extensions test and publish workflows with the Node version pinned everywhere else on the release branch and required by the root package.json engines field. --- .github/workflows/op-blocknote-extensions-publish.yml | 2 +- .github/workflows/op-blocknote-extensions-test.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/op-blocknote-extensions-publish.yml b/.github/workflows/op-blocknote-extensions-publish.yml index 6229ddd2180b..48b8a0d05955 100644 --- a/.github/workflows/op-blocknote-extensions-publish.yml +++ b/.github/workflows/op-blocknote-extensions-publish.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: - node-version: '24.18.0' + node-version: '24.22.1' registry-url: 'https://registry.npmjs.org' package-manager-cache: false diff --git a/.github/workflows/op-blocknote-extensions-test.yml b/.github/workflows/op-blocknote-extensions-test.yml index 8cfc2c163d31..2050c8f2f440 100644 --- a/.github/workflows/op-blocknote-extensions-test.yml +++ b/.github/workflows/op-blocknote-extensions-test.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false cache: npm cache-dependency-path: extensions/blocknote-extensions/package-lock.json @@ -51,7 +51,7 @@ jobs: - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: - node-version: '24.18.0' + node-version: '24.22.1' package-manager-cache: false cache: npm cache-dependency-path: extensions/blocknote-extensions/package-lock.json